web/static/ldt/js/jquery.js
author ymh <ymh.work@gmail.com>
Fri, 08 Apr 2011 17:21:37 +0200
changeset 69 4775601a2531
child 101 0b8e098398de
permissions -rw-r--r--
use platform and clean install files next
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
69
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/*!
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
 * jQuery JavaScript Library v1.5
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * http://jquery.com/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * Copyright 2011, John Resig
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * Dual licensed under the MIT or GPL Version 2 licenses.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 * http://jquery.org/license
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 *
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * Includes Sizzle.js
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 * http://sizzlejs.com/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 * Copyright 2011, The Dojo Foundation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
 * Released under the MIT, BSD, and GPL Licenses.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
 *
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
 * Date: Mon Jan 31 08:31:29 2011 -0500
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
 */
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
(function( window, undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
// Use the correct document accordingly with window argument (sandbox)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
var document = window.document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
var jQuery = (function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
// Define a local copy of jQuery
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
var jQuery = function( selector, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
		// The jQuery object is actually just the init constructor 'enhanced'
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
		return new jQuery.fn.init( selector, context, rootjQuery );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
	// Map over jQuery in case of overwrite
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
	_jQuery = window.jQuery,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
	// Map over the $ in case of overwrite
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
	_$ = window.$,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
	// A central reference to the root jQuery(document)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
	rootjQuery,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
	// A simple way to check for HTML strings or ID strings
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
	// (both of which we optimize for)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
	quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
	// Check if a string has a non-whitespace character in it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
	rnotwhite = /\S/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
	// Used for trimming whitespace
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
	trimLeft = /^\s+/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
	trimRight = /\s+$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
	// Check for digits
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
	rdigit = /\d/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
	// Match a standalone tag
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
	// JSON RegExp
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
	rvalidchars = /^[\],:{}\s]*$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
	// Useragent RegExp
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
	rwebkit = /(webkit)[ \/]([\w.]+)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
	rmsie = /(msie) ([\w.]+)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
	// Keep a UserAgent string for use with jQuery.browser
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
	userAgent = navigator.userAgent,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
	// For matching the engine and version of the browser
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
	browserMatch,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
	// Has the ready events already been bound?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
	readyBound = false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
	// The deferred used on DOM ready
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
	readyList,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
	// Promise methods
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
	promiseMethods = "then done fail isResolved isRejected promise".split( " " ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
	// The ready event handler
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
	DOMContentLoaded,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
	// Save a reference to some core methods
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
	toString = Object.prototype.toString,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
	hasOwn = Object.prototype.hasOwnProperty,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
	push = Array.prototype.push,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
	slice = Array.prototype.slice,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
	trim = String.prototype.trim,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
	indexOf = Array.prototype.indexOf,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
	// [[Class]] -> type pairs
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
	class2type = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
jQuery.fn = jQuery.prototype = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
	constructor: jQuery,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
	init: function( selector, context, rootjQuery ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
		var match, elem, ret, doc;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
		// Handle $(""), $(null), or $(undefined)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
		if ( !selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
		// Handle $(DOMElement)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
		if ( selector.nodeType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
			this.context = this[0] = selector;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
			this.length = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
		// The body element only exists once, optimize finding it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
		if ( selector === "body" && !context && document.body ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
			this.context = document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
			this[0] = document.body;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
			this.selector = "body";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
			this.length = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
		// Handle HTML strings
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
		if ( typeof selector === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
			// Are we dealing with HTML string or an ID?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
			match = quickExpr.exec( selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
			// Verify a match, and that no context was specified for #id
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
			if ( match && (match[1] || !context) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
				// HANDLE: $(html) -> $(array)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
				if ( match[1] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
					context = context instanceof jQuery ? context[0] : context;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
					doc = (context ? context.ownerDocument || context : document);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
					// If a single string is passed in and it's a single tag
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
					// just do a createElement and skip the rest
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
					ret = rsingleTag.exec( selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
					if ( ret ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
						if ( jQuery.isPlainObject( context ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
							selector = [ document.createElement( ret[1] ) ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
							jQuery.fn.attr.call( selector, context, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
						} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
							selector = [ doc.createElement( ret[1] ) ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
						selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
					return jQuery.merge( this, selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
				// HANDLE: $("#id")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
					elem = document.getElementById( match[2] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
					// Check parentNode to catch when Blackberry 4.6 returns
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
					// nodes that are no longer in the document #6963
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
					if ( elem && elem.parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
						// Handle the case where IE and Opera return items
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
						// by name instead of ID
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
						if ( elem.id !== match[2] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
							return rootjQuery.find( selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
						// Otherwise, we inject the element directly into the jQuery object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
						this.length = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
						this[0] = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
					this.context = document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
					this.selector = selector;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
					return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
			// HANDLE: $(expr, $(...))
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
			} else if ( !context || context.jquery ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
				return (context || rootjQuery).find( selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
			// HANDLE: $(expr, context)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
			// (which is just equivalent to: $(context).find(expr)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
				return this.constructor( context ).find( selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
		// HANDLE: $(function)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
		// Shortcut for document ready
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
		} else if ( jQuery.isFunction( selector ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
			return rootjQuery.ready( selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
		if (selector.selector !== undefined) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
			this.selector = selector.selector;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
			this.context = selector.context;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
		return jQuery.makeArray( selector, this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
	// Start with an empty selector
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
	selector: "",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
	// The current version of jQuery being used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
	jquery: "1.5",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
	// The default length of a jQuery object is 0
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
	length: 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
	// The number of elements contained in the matched element set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
	size: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
		return this.length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
	toArray: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
		return slice.call( this, 0 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
	// Get the Nth element in the matched element set OR
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
	// Get the whole matched element set as a clean array
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
	get: function( num ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
		return num == null ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
			// Return a 'clean' array
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
			this.toArray() :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
			// Return just the object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
			( num < 0 ? this[ this.length + num ] : this[ num ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
	// Take an array of elements and push it onto the stack
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
	// (returning the new matched element set)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
	pushStack: function( elems, name, selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
		// Build a new jQuery matched element set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
		var ret = this.constructor();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
		if ( jQuery.isArray( elems ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
			push.apply( ret, elems );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
			jQuery.merge( ret, elems );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
		// Add the old object onto the stack (as a reference)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
		ret.prevObject = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
		ret.context = this.context;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
		if ( name === "find" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
			ret.selector = this.selector + (this.selector ? " " : "") + selector;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
		} else if ( name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
			ret.selector = this.selector + "." + name + "(" + selector + ")";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
		// Return the newly-formed element set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
		return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
	// Execute a callback for every element in the matched set.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
	// (You can seed the arguments with an array of args, but this is
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
	// only used internally.)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
	each: function( callback, args ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
		return jQuery.each( this, callback, args );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
	ready: function( fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
		// Attach the listeners
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
		jQuery.bindReady();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
		// Add the callback
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
		readyList.done( fn );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
	eq: function( i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
		return i === -1 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
			this.slice( i ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
			this.slice( i, +i + 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
	first: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
		return this.eq( 0 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
	last: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
		return this.eq( -1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
	slice: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
		return this.pushStack( slice.apply( this, arguments ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
			"slice", slice.call(arguments).join(",") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
	map: function( callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
		return this.pushStack( jQuery.map(this, function( elem, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
			return callback.call( elem, i, elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
		}));
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
	end: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
		return this.prevObject || this.constructor(null);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
	// For internal use only.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
	// Behaves like an Array's method, not like a jQuery method.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
	push: push,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
	sort: [].sort,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
	splice: [].splice
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
// Give the init function the jQuery prototype for later instantiation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
jQuery.fn.init.prototype = jQuery.fn;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
jQuery.extend = jQuery.fn.extend = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
	 var options, name, src, copy, copyIsArray, clone,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
		target = arguments[0] || {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
		i = 1,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
		length = arguments.length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
		deep = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
	// Handle a deep copy situation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
	if ( typeof target === "boolean" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
		deep = target;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
		target = arguments[1] || {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
		// skip the boolean and the target
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
		i = 2;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
	// Handle case when target is a string or something (possible in deep copy)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
		target = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
	// extend jQuery itself if only one argument is passed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
	if ( length === i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
		target = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
		--i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
	for ( ; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
		// Only deal with non-null/undefined values
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
		if ( (options = arguments[ i ]) != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
			// Extend the base object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
			for ( name in options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
				src = target[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
				copy = options[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
				// Prevent never-ending loop
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
				if ( target === copy ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
					continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
				// Recurse if we're merging plain objects or arrays
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
					if ( copyIsArray ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
						copyIsArray = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
						clone = src && jQuery.isArray(src) ? src : [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
						clone = src && jQuery.isPlainObject(src) ? src : {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
					// Never move original objects, clone them
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
					target[ name ] = jQuery.extend( deep, clone, copy );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
				// Don't bring in undefined values
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
				} else if ( copy !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
					target[ name ] = copy;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
	// Return the modified object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
	return target;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
	noConflict: function( deep ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
		window.$ = _$;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
		if ( deep ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
			window.jQuery = _jQuery;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
		return jQuery;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
	// Is the DOM ready to be used? Set to true once it occurs.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
	isReady: false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
	// A counter to track how many items to wait for before
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
	// the ready event fires. See #6781
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
	readyWait: 1,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
	// Handle when the DOM is ready
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
	ready: function( wait ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
		// A third-party is pushing the ready event forwards
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
		if ( wait === true ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
			jQuery.readyWait--;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
		// Make sure that the DOM is not already loaded
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
		if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
			if ( !document.body ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
				return setTimeout( jQuery.ready, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
			// Remember that the DOM is ready
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
			jQuery.isReady = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
			// If a normal DOM Ready event fired, decrement, and wait if need be
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
			if ( wait !== true && --jQuery.readyWait > 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
				return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
			// If there are functions bound, to execute
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
			readyList.resolveWith( document, [ jQuery ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
			// Trigger any bound ready events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
			if ( jQuery.fn.trigger ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
				jQuery( document ).trigger( "ready" ).unbind( "ready" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   429
	bindReady: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   430
		if ( readyBound ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   431
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   432
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   433
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   434
		readyBound = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   435
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   436
		// Catch cases where $(document).ready() is called after the
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   437
		// browser event has already occurred.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   438
		if ( document.readyState === "complete" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   439
			// Handle it asynchronously to allow scripts the opportunity to delay ready
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   440
			return setTimeout( jQuery.ready, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   441
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   442
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   443
		// Mozilla, Opera and webkit nightlies currently support this event
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   444
		if ( document.addEventListener ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   445
			// Use the handy event callback
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   446
			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   447
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   448
			// A fallback to window.onload, that will always work
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   449
			window.addEventListener( "load", jQuery.ready, false );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   450
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   451
		// If IE event model is used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   452
		} else if ( document.attachEvent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   453
			// ensure firing before onload,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   454
			// maybe late but safe also for iframes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   455
			document.attachEvent("onreadystatechange", DOMContentLoaded);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   456
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   457
			// A fallback to window.onload, that will always work
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   458
			window.attachEvent( "onload", jQuery.ready );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   459
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   460
			// If IE and not a frame
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   461
			// continually check to see if the document is ready
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   462
			var toplevel = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   463
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   464
			try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   465
				toplevel = window.frameElement == null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   466
			} catch(e) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   467
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   468
			if ( document.documentElement.doScroll && toplevel ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   469
				doScrollCheck();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   470
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   471
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   472
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   473
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   474
	// See test/unit/core.js for details concerning isFunction.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   475
	// Since version 1.3, DOM methods and functions like alert
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   476
	// aren't supported. They return false on IE (#2968).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   477
	isFunction: function( obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   478
		return jQuery.type(obj) === "function";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   479
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   480
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   481
	isArray: Array.isArray || function( obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   482
		return jQuery.type(obj) === "array";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   483
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   484
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   485
	// A crude way of determining if an object is a window
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   486
	isWindow: function( obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   487
		return obj && typeof obj === "object" && "setInterval" in obj;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   488
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   489
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   490
	isNaN: function( obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   491
		return obj == null || !rdigit.test( obj ) || isNaN( obj );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   492
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   493
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   494
	type: function( obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   495
		return obj == null ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   496
			String( obj ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   497
			class2type[ toString.call(obj) ] || "object";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   498
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   499
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   500
	isPlainObject: function( obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   501
		// Must be an Object.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   502
		// Because of IE, we also have to check the presence of the constructor property.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   503
		// Make sure that DOM nodes and window objects don't pass through, as well
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   504
		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   505
			return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   506
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   507
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   508
		// Not own constructor property must be Object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   509
		if ( obj.constructor &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   510
			!hasOwn.call(obj, "constructor") &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   511
			!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   512
			return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   513
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   514
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   515
		// Own properties are enumerated firstly, so to speed up,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   516
		// if last one is own, then all properties are own.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   517
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   518
		var key;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   519
		for ( key in obj ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   520
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   521
		return key === undefined || hasOwn.call( obj, key );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   522
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   523
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   524
	isEmptyObject: function( obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   525
		for ( var name in obj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   526
			return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   527
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   528
		return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   529
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   530
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   531
	error: function( msg ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   532
		throw msg;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   533
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   534
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   535
	parseJSON: function( data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   536
		if ( typeof data !== "string" || !data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   537
			return null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   538
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   539
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   540
		// Make sure leading/trailing whitespace is removed (IE can't handle it)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   541
		data = jQuery.trim( data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   542
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   543
		// Make sure the incoming data is actual JSON
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   544
		// Logic borrowed from http://json.org/json2.js
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   545
		if ( rvalidchars.test(data.replace(rvalidescape, "@")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   546
			.replace(rvalidtokens, "]")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   547
			.replace(rvalidbraces, "")) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   548
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   549
			// Try to use the native JSON parser first
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   550
			return window.JSON && window.JSON.parse ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   551
				window.JSON.parse( data ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   552
				(new Function("return " + data))();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   553
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   554
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   555
			jQuery.error( "Invalid JSON: " + data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   556
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   557
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   558
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   559
	// Cross-browser xml parsing
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   560
	// (xml & tmp used internally)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   561
	parseXML: function( data , xml , tmp ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   562
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   563
		if ( window.DOMParser ) { // Standard
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   564
			tmp = new DOMParser();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   565
			xml = tmp.parseFromString( data , "text/xml" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   566
		} else { // IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   567
			xml = new ActiveXObject( "Microsoft.XMLDOM" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   568
			xml.async = "false";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   569
			xml.loadXML( data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   570
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   571
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   572
		tmp = xml.documentElement;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   573
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   574
		if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   575
			jQuery.error( "Invalid XML: " + data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   576
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   577
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   578
		return xml;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   579
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   580
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   581
	noop: function() {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   582
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   583
	// Evalulates a script in a global context
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   584
	globalEval: function( data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   585
		if ( data && rnotwhite.test(data) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   586
			// Inspired by code by Andrea Giammarchi
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   587
			// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   588
			var head = document.getElementsByTagName("head")[0] || document.documentElement,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   589
				script = document.createElement("script");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   590
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   591
			script.type = "text/javascript";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   592
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   593
			if ( jQuery.support.scriptEval() ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   594
				script.appendChild( document.createTextNode( data ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   595
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   596
				script.text = data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   597
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   598
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   599
			// Use insertBefore instead of appendChild to circumvent an IE6 bug.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   600
			// This arises when a base node is used (#2709).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   601
			head.insertBefore( script, head.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   602
			head.removeChild( script );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   603
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   604
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   605
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   606
	nodeName: function( elem, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   607
		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   608
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   609
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   610
	// args is for internal usage only
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   611
	each: function( object, callback, args ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   612
		var name, i = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   613
			length = object.length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   614
			isObj = length === undefined || jQuery.isFunction(object);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   615
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   616
		if ( args ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   617
			if ( isObj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   618
				for ( name in object ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   619
					if ( callback.apply( object[ name ], args ) === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   620
						break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   621
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   622
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   623
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   624
				for ( ; i < length; ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   625
					if ( callback.apply( object[ i++ ], args ) === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   626
						break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   627
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   628
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   629
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   630
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   631
		// A special, fast, case for the most common use of each
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   632
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   633
			if ( isObj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   634
				for ( name in object ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   635
					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   636
						break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   637
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   638
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   639
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   640
				for ( var value = object[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   641
					i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   642
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   643
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   644
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   645
		return object;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   646
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   647
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   648
	// Use native String.trim function wherever possible
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   649
	trim: trim ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   650
		function( text ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   651
			return text == null ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   652
				"" :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   653
				trim.call( text );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   654
		} :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   655
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   656
		// Otherwise use our own trimming functionality
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   657
		function( text ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   658
			return text == null ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   659
				"" :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   660
				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   661
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   662
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   663
	// results is for internal usage only
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   664
	makeArray: function( array, results ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   665
		var ret = results || [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   666
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   667
		if ( array != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   668
			// The window, strings (and functions) also have 'length'
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   669
			// The extra typeof function check is to prevent crashes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   670
			// in Safari 2 (See: #3039)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   671
			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   672
			var type = jQuery.type(array);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   673
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   674
			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   675
				push.call( ret, array );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   676
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   677
				jQuery.merge( ret, array );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   678
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   679
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   680
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   681
		return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   682
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   683
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   684
	inArray: function( elem, array ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   685
		if ( array.indexOf ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   686
			return array.indexOf( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   687
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   688
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   689
		for ( var i = 0, length = array.length; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   690
			if ( array[ i ] === elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   691
				return i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   692
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   693
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   694
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   695
		return -1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   696
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   697
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   698
	merge: function( first, second ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   699
		var i = first.length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   700
			j = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   701
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   702
		if ( typeof second.length === "number" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   703
			for ( var l = second.length; j < l; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   704
				first[ i++ ] = second[ j ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   705
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   706
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   707
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   708
			while ( second[j] !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   709
				first[ i++ ] = second[ j++ ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   710
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   711
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   712
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   713
		first.length = i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   714
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   715
		return first;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   716
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   717
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   718
	grep: function( elems, callback, inv ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   719
		var ret = [], retVal;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   720
		inv = !!inv;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   721
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   722
		// Go through the array, only saving the items
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   723
		// that pass the validator function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   724
		for ( var i = 0, length = elems.length; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   725
			retVal = !!callback( elems[ i ], i );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   726
			if ( inv !== retVal ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   727
				ret.push( elems[ i ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   728
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   729
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   730
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   731
		return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   732
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   733
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   734
	// arg is for internal usage only
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   735
	map: function( elems, callback, arg ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   736
		var ret = [], value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   737
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   738
		// Go through the array, translating each of the items to their
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   739
		// new value (or values).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   740
		for ( var i = 0, length = elems.length; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   741
			value = callback( elems[ i ], i, arg );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   742
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   743
			if ( value != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   744
				ret[ ret.length ] = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   745
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   746
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   747
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   748
		// Flatten any nested arrays
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   749
		return ret.concat.apply( [], ret );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   750
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   751
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   752
	// A global GUID counter for objects
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   753
	guid: 1,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   754
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   755
	proxy: function( fn, proxy, thisObject ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   756
		if ( arguments.length === 2 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   757
			if ( typeof proxy === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   758
				thisObject = fn;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   759
				fn = thisObject[ proxy ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   760
				proxy = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   761
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   762
			} else if ( proxy && !jQuery.isFunction( proxy ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   763
				thisObject = proxy;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   764
				proxy = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   765
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   766
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   767
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   768
		if ( !proxy && fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   769
			proxy = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   770
				return fn.apply( thisObject || this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   771
			};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   772
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   773
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   774
		// Set the guid of unique handler to the same of original handler, so it can be removed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   775
		if ( fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   776
			proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   777
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   778
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   779
		// So proxy can be declared as an argument
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   780
		return proxy;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   781
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   782
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   783
	// Mutifunctional method to get and set values to a collection
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   784
	// The value/s can be optionally by executed if its a function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   785
	access: function( elems, key, value, exec, fn, pass ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   786
		var length = elems.length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   787
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   788
		// Setting many attributes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   789
		if ( typeof key === "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   790
			for ( var k in key ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   791
				jQuery.access( elems, k, key[k], exec, fn, value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   792
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   793
			return elems;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   794
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   795
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   796
		// Setting one attribute
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   797
		if ( value !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   798
			// Optionally, function values get executed if exec is true
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   799
			exec = !pass && exec && jQuery.isFunction(value);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   800
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   801
			for ( var i = 0; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   802
				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   803
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   804
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   805
			return elems;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   806
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   807
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   808
		// Getting an attribute
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   809
		return length ? fn( elems[0], key ) : undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   810
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   811
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   812
	now: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   813
		return (new Date()).getTime();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   814
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   815
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   816
	// Create a simple deferred (one callbacks list)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   817
	_Deferred: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   818
		var // callbacks list
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   819
			callbacks = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   820
			// stored [ context , args ]
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   821
			fired,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   822
			// to avoid firing when already doing so
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   823
			firing,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   824
			// flag to know if the deferred has been cancelled
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   825
			cancelled,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   826
			// the deferred itself
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   827
			deferred  = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   828
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   829
				// done( f1, f2, ...)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   830
				done: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   831
					if ( !cancelled ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   832
						var args = arguments,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   833
							i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   834
							length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   835
							elem,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   836
							type,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   837
							_fired;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   838
						if ( fired ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   839
							_fired = fired;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   840
							fired = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   841
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   842
						for ( i = 0, length = args.length; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   843
							elem = args[ i ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   844
							type = jQuery.type( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   845
							if ( type === "array" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   846
								deferred.done.apply( deferred, elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   847
							} else if ( type === "function" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   848
								callbacks.push( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   849
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   850
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   851
						if ( _fired ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   852
							deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   853
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   854
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   855
					return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   856
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   857
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   858
				// resolve with given context and args
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   859
				resolveWith: function( context, args ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   860
					if ( !cancelled && !fired && !firing ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   861
						firing = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   862
						try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   863
							while( callbacks[ 0 ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   864
								callbacks.shift().apply( context, args );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   865
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   866
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   867
						finally {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   868
							fired = [ context, args ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   869
							firing = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   870
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   871
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   872
					return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   873
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   874
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   875
				// resolve with this as context and given arguments
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   876
				resolve: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   877
					deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() : this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   878
					return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   879
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   880
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   881
				// Has this deferred been resolved?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   882
				isResolved: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   883
					return !!( firing || fired );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   884
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   885
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   886
				// Cancel
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   887
				cancel: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   888
					cancelled = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   889
					callbacks = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   890
					return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   891
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   892
			};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   893
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   894
		return deferred;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   895
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   896
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   897
	// Full fledged deferred (two callbacks list)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   898
	Deferred: function( func ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   899
		var deferred = jQuery._Deferred(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   900
			failDeferred = jQuery._Deferred(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   901
			promise;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   902
		// Add errorDeferred methods, then and promise
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   903
		jQuery.extend( deferred, {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   904
			then: function( doneCallbacks, failCallbacks ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   905
				deferred.done( doneCallbacks ).fail( failCallbacks );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   906
				return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   907
			},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   908
			fail: failDeferred.done,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   909
			rejectWith: failDeferred.resolveWith,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   910
			reject: failDeferred.resolve,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   911
			isRejected: failDeferred.isResolved,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   912
			// Get a promise for this deferred
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   913
			// If obj is provided, the promise aspect is added to the object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   914
			promise: function( obj , i /* internal */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   915
				if ( obj == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   916
					if ( promise ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   917
						return promise;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   918
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   919
					promise = obj = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   920
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   921
				i = promiseMethods.length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   922
				while( i-- ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   923
					obj[ promiseMethods[ i ] ] = deferred[ promiseMethods[ i ] ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   924
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   925
				return obj;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   926
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   927
		} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   928
		// Make sure only one callback list will be used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   929
		deferred.then( failDeferred.cancel, deferred.cancel );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   930
		// Unexpose cancel
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   931
		delete deferred.cancel;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   932
		// Call given func if any
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   933
		if ( func ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   934
			func.call( deferred, deferred );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   935
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   936
		return deferred;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   937
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   938
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   939
	// Deferred helper
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   940
	when: function( object ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   941
		var args = arguments,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   942
			length = args.length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   943
			deferred = length <= 1 && object && jQuery.isFunction( object.promise ) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   944
				object :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   945
				jQuery.Deferred(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   946
			promise = deferred.promise(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   947
			resolveArray;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   948
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   949
		if ( length > 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   950
			resolveArray = new Array( length );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   951
			jQuery.each( args, function( index, element ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   952
				jQuery.when( element ).then( function( value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   953
					resolveArray[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   954
					if( ! --length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   955
						deferred.resolveWith( promise, resolveArray );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   956
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   957
				}, deferred.reject );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   958
			} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   959
		} else if ( deferred !== object ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   960
			deferred.resolve( object );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   961
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   962
		return promise;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   963
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   964
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   965
	// Use of jQuery.browser is frowned upon.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   966
	// More details: http://docs.jquery.com/Utilities/jQuery.browser
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   967
	uaMatch: function( ua ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   968
		ua = ua.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   969
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   970
		var match = rwebkit.exec( ua ) ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   971
			ropera.exec( ua ) ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   972
			rmsie.exec( ua ) ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   973
			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   974
			[];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   975
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   976
		return { browser: match[1] || "", version: match[2] || "0" };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   977
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   978
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   979
	sub: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   980
		function jQuerySubclass( selector, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   981
			return new jQuerySubclass.fn.init( selector, context );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   982
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   983
		jQuery.extend( true, jQuerySubclass, this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   984
		jQuerySubclass.superclass = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   985
		jQuerySubclass.fn = jQuerySubclass.prototype = this();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   986
		jQuerySubclass.fn.constructor = jQuerySubclass;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   987
		jQuerySubclass.subclass = this.subclass;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   988
		jQuerySubclass.fn.init = function init( selector, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   989
			if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   990
				context = jQuerySubclass(context);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   991
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   992
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   993
			return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   994
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   995
		jQuerySubclass.fn.init.prototype = jQuerySubclass.fn;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   996
		var rootjQuerySubclass = jQuerySubclass(document);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   997
		return jQuerySubclass;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   998
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
   999
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1000
	browser: {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1001
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1002
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1003
// Create readyList deferred
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1004
readyList = jQuery._Deferred();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1005
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1006
// Populate the class2type map
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1007
jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1008
	class2type[ "[object " + name + "]" ] = name.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1009
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1010
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1011
browserMatch = jQuery.uaMatch( userAgent );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1012
if ( browserMatch.browser ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1013
	jQuery.browser[ browserMatch.browser ] = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1014
	jQuery.browser.version = browserMatch.version;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1015
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1016
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1017
// Deprecated, use jQuery.browser.webkit instead
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1018
if ( jQuery.browser.webkit ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1019
	jQuery.browser.safari = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1020
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1021
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1022
if ( indexOf ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1023
	jQuery.inArray = function( elem, array ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1024
		return indexOf.call( array, elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1025
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1026
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1027
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1028
// IE doesn't match non-breaking spaces with \s
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1029
if ( rnotwhite.test( "\xA0" ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1030
	trimLeft = /^[\s\xA0]+/;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1031
	trimRight = /[\s\xA0]+$/;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1032
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1033
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1034
// All jQuery objects should point back to these
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1035
rootjQuery = jQuery(document);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1036
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1037
// Cleanup functions for the document ready method
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1038
if ( document.addEventListener ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1039
	DOMContentLoaded = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1040
		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1041
		jQuery.ready();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1042
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1043
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1044
} else if ( document.attachEvent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1045
	DOMContentLoaded = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1046
		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1047
		if ( document.readyState === "complete" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1048
			document.detachEvent( "onreadystatechange", DOMContentLoaded );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1049
			jQuery.ready();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1050
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1051
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1052
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1053
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1054
// The DOM ready check for Internet Explorer
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1055
function doScrollCheck() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1056
	if ( jQuery.isReady ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1057
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1058
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1059
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1060
	try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1061
		// If IE is used, use the trick by Diego Perini
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1062
		// http://javascript.nwbox.com/IEContentLoaded/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1063
		document.documentElement.doScroll("left");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1064
	} catch(e) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1065
		setTimeout( doScrollCheck, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1066
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1067
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1068
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1069
	// and execute any waiting functions
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1070
	jQuery.ready();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1071
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1072
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1073
// Expose jQuery to the global object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1074
return (window.jQuery = window.$ = jQuery);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1075
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1076
})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1077
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1078
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1079
(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1080
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1081
	jQuery.support = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1082
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1083
	var div = document.createElement("div");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1084
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1085
	div.style.display = "none";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1086
	div.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1087
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1088
	var all = div.getElementsByTagName("*"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1089
		a = div.getElementsByTagName("a")[0],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1090
		select = document.createElement("select"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1091
		opt = select.appendChild( document.createElement("option") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1092
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1093
	// Can't get basic test support
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1094
	if ( !all || !all.length || !a ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1095
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1096
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1097
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1098
	jQuery.support = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1099
		// IE strips leading whitespace when .innerHTML is used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1100
		leadingWhitespace: div.firstChild.nodeType === 3,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1101
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1102
		// Make sure that tbody elements aren't automatically inserted
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1103
		// IE will insert them into empty tables
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1104
		tbody: !div.getElementsByTagName("tbody").length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1105
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1106
		// Make sure that link elements get serialized correctly by innerHTML
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1107
		// This requires a wrapper element in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1108
		htmlSerialize: !!div.getElementsByTagName("link").length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1109
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1110
		// Get the style information from getAttribute
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1111
		// (IE uses .cssText insted)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1112
		style: /red/.test( a.getAttribute("style") ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1113
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1114
		// Make sure that URLs aren't manipulated
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1115
		// (IE normalizes it by default)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1116
		hrefNormalized: a.getAttribute("href") === "/a",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1117
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1118
		// Make sure that element opacity exists
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1119
		// (IE uses filter instead)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1120
		// Use a regex to work around a WebKit issue. See #5145
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1121
		opacity: /^0.55$/.test( a.style.opacity ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1122
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1123
		// Verify style float existence
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1124
		// (IE uses styleFloat instead of cssFloat)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1125
		cssFloat: !!a.style.cssFloat,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1126
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1127
		// Make sure that if no value is specified for a checkbox
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1128
		// that it defaults to "on".
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1129
		// (WebKit defaults to "" instead)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1130
		checkOn: div.getElementsByTagName("input")[0].value === "on",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1131
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1132
		// Make sure that a selected-by-default option has a working selected property.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1133
		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1134
		optSelected: opt.selected,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1135
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1136
		// Will be defined later
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1137
		deleteExpando: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1138
		optDisabled: false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1139
		checkClone: false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1140
		_scriptEval: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1141
		noCloneEvent: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1142
		boxModel: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1143
		inlineBlockNeedsLayout: false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1144
		shrinkWrapBlocks: false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1145
		reliableHiddenOffsets: true
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1146
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1147
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1148
	// Make sure that the options inside disabled selects aren't marked as disabled
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1149
	// (WebKit marks them as diabled)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1150
	select.disabled = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1151
	jQuery.support.optDisabled = !opt.disabled;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1152
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1153
	jQuery.support.scriptEval = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1154
		if ( jQuery.support._scriptEval === null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1155
			var root = document.documentElement,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1156
				script = document.createElement("script"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1157
				id = "script" + jQuery.now();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1158
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1159
			script.type = "text/javascript";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1160
			try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1161
				script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1162
			} catch(e) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1163
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1164
			root.insertBefore( script, root.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1165
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1166
			// Make sure that the execution of code works by injecting a script
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1167
			// tag with appendChild/createTextNode
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1168
			// (IE doesn't support this, fails, and uses .text instead)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1169
			if ( window[ id ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1170
				jQuery.support._scriptEval = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1171
				delete window[ id ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1172
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1173
				jQuery.support._scriptEval = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1174
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1175
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1176
			root.removeChild( script );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1177
			// release memory in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1178
			root = script = id  = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1179
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1180
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1181
		return jQuery.support._scriptEval;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1182
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1183
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1184
	// Test to see if it's possible to delete an expando from an element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1185
	// Fails in Internet Explorer
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1186
	try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1187
		delete div.test;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1188
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1189
	} catch(e) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1190
		jQuery.support.deleteExpando = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1191
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1192
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1193
	if ( div.attachEvent && div.fireEvent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1194
		div.attachEvent("onclick", function click() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1195
			// Cloning a node shouldn't copy over any
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1196
			// bound event handlers (IE does this)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1197
			jQuery.support.noCloneEvent = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1198
			div.detachEvent("onclick", click);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1199
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1200
		div.cloneNode(true).fireEvent("onclick");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1201
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1202
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1203
	div = document.createElement("div");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1204
	div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1205
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1206
	var fragment = document.createDocumentFragment();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1207
	fragment.appendChild( div.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1208
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1209
	// WebKit doesn't clone checked state correctly in fragments
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1210
	jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1211
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1212
	// Figure out if the W3C box model works as expected
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1213
	// document.body must exist before we can do this
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1214
	jQuery(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1215
		var div = document.createElement("div"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1216
			body = document.getElementsByTagName("body")[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1217
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1218
		// Frameset documents with no body should not run this code
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1219
		if ( !body ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1220
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1221
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1222
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1223
		div.style.width = div.style.paddingLeft = "1px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1224
		body.appendChild( div );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1225
		jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1226
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1227
		if ( "zoom" in div.style ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1228
			// Check if natively block-level elements act like inline-block
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1229
			// elements when setting their display to 'inline' and giving
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1230
			// them layout
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1231
			// (IE < 8 does this)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1232
			div.style.display = "inline";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1233
			div.style.zoom = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1234
			jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1235
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1236
			// Check if elements with layout shrink-wrap their children
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1237
			// (IE 6 does this)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1238
			div.style.display = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1239
			div.innerHTML = "<div style='width:4px;'></div>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1240
			jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1241
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1242
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1243
		div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1244
		var tds = div.getElementsByTagName("td");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1245
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1246
		// Check if table cells still have offsetWidth/Height when they are set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1247
		// to display:none and there are still other visible table cells in a
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1248
		// table row; if so, offsetWidth/Height are not reliable for use when
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1249
		// determining if an element has been hidden directly using
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1250
		// display:none (it is still safe to use offsets if a parent element is
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1251
		// hidden; don safety goggles and see bug #4512 for more information).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1252
		// (only IE 8 fails this test)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1253
		jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1254
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1255
		tds[0].style.display = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1256
		tds[1].style.display = "none";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1257
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1258
		// Check if empty table cells still have offsetWidth/Height
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1259
		// (IE < 8 fail this test)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1260
		jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1261
		div.innerHTML = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1262
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1263
		body.removeChild( div ).style.display = "none";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1264
		div = tds = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1265
	});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1266
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1267
	// Technique from Juriy Zaytsev
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1268
	// http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1269
	var eventSupported = function( eventName ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1270
		var el = document.createElement("div");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1271
		eventName = "on" + eventName;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1272
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1273
		// We only care about the case where non-standard event systems
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1274
		// are used, namely in IE. Short-circuiting here helps us to
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1275
		// avoid an eval call (in setAttribute) which can cause CSP
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1276
		// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1277
		if ( !el.attachEvent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1278
			return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1279
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1280
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1281
		var isSupported = (eventName in el);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1282
		if ( !isSupported ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1283
			el.setAttribute(eventName, "return;");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1284
			isSupported = typeof el[eventName] === "function";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1285
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1286
		el = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1287
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1288
		return isSupported;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1289
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1290
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1291
	jQuery.support.submitBubbles = eventSupported("submit");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1292
	jQuery.support.changeBubbles = eventSupported("change");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1293
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1294
	// release memory in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1295
	div = all = a = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1296
})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1297
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1298
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1299
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1300
var rbrace = /^(?:\{.*\}|\[.*\])$/;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1301
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1302
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1303
	cache: {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1304
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1305
	// Please use with caution
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1306
	uuid: 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1307
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1308
	// Unique for each copy of jQuery on the page
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1309
	// Non-digits removed to match rinlinejQuery
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1310
	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1311
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1312
	// The following elements throw uncatchable exceptions if you
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1313
	// attempt to add expando properties to them.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1314
	noData: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1315
		"embed": true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1316
		// Ban all objects except for Flash (which handle expandos)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1317
		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1318
		"applet": true
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1319
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1320
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1321
	hasData: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1322
		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1323
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1324
		return !!elem && !jQuery.isEmptyObject(elem);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1325
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1326
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1327
	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1328
		if ( !jQuery.acceptData( elem ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1329
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1330
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1331
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1332
		var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1333
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1334
			// We have to handle DOM nodes and JS objects differently because IE6-7
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1335
			// can't GC object references properly across the DOM-JS boundary
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1336
			isNode = elem.nodeType,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1337
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1338
			// Only DOM nodes need the global jQuery cache; JS object data is
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1339
			// attached directly to the object so GC can occur automatically
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1340
			cache = isNode ? jQuery.cache : elem,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1341
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1342
			// Only defining an ID for JS objects if its cache already exists allows
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1343
			// the code to shortcut on the same path as a DOM node with no cache
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1344
			id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1345
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1346
		// Avoid doing any more work than we need to when trying to get data on an
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1347
		// object that has no data at all
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1348
		if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1349
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1350
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1351
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1352
		if ( !id ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1353
			// Only DOM nodes need a new unique ID for each element since their data
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1354
			// ends up in the global cache
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1355
			if ( isNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1356
				elem[ jQuery.expando ] = id = ++jQuery.uuid;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1357
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1358
				id = jQuery.expando;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1359
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1360
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1361
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1362
		if ( !cache[ id ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1363
			cache[ id ] = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1364
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1365
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1366
		// An object can be passed to jQuery.data instead of a key/value pair; this gets
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1367
		// shallow copied over onto the existing cache
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1368
		if ( typeof name === "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1369
			if ( pvt ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1370
				cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1371
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1372
				cache[ id ] = jQuery.extend(cache[ id ], name);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1373
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1374
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1375
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1376
		thisCache = cache[ id ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1377
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1378
		// Internal jQuery data is stored in a separate object inside the object's data
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1379
		// cache in order to avoid key collisions between internal data and user-defined
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1380
		// data
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1381
		if ( pvt ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1382
			if ( !thisCache[ internalKey ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1383
				thisCache[ internalKey ] = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1384
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1385
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1386
			thisCache = thisCache[ internalKey ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1387
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1388
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1389
		if ( data !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1390
			thisCache[ name ] = data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1391
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1392
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1393
		// TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1394
		// not attempt to inspect the internal events object using jQuery.data, as this
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1395
		// internal data object is undocumented and subject to change.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1396
		if ( name === "events" && !thisCache[name] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1397
			return thisCache[ internalKey ] && thisCache[ internalKey ].events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1398
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1399
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1400
		return getByName ? thisCache[ name ] : thisCache;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1401
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1402
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1403
	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1404
		if ( !jQuery.acceptData( elem ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1405
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1406
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1407
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1408
		var internalKey = jQuery.expando, isNode = elem.nodeType,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1409
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1410
			// See jQuery.data for more information
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1411
			cache = isNode ? jQuery.cache : elem,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1412
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1413
			// See jQuery.data for more information
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1414
			id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1415
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1416
		// If there is already no cache entry for this object, there is no
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1417
		// purpose in continuing
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1418
		if ( !cache[ id ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1419
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1420
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1421
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1422
		if ( name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1423
			var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1424
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1425
			if ( thisCache ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1426
				delete thisCache[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1427
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1428
				// If there is no data left in the cache, we want to continue
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1429
				// and let the cache object itself get destroyed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1430
				if ( !jQuery.isEmptyObject(thisCache) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1431
					return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1432
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1433
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1434
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1435
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1436
		// See jQuery.data for more information
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1437
		if ( pvt ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1438
			delete cache[ id ][ internalKey ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1439
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1440
			// Don't destroy the parent cache unless the internal data object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1441
			// had been the only thing left in it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1442
			if ( !jQuery.isEmptyObject(cache[ id ]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1443
				return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1444
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1445
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1446
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1447
		var internalCache = cache[ id ][ internalKey ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1448
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1449
		// Browsers that fail expando deletion also refuse to delete expandos on
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1450
		// the window, but it will allow it on all other JS objects; other browsers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1451
		// don't care
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1452
		if ( jQuery.support.deleteExpando || cache != window ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1453
			delete cache[ id ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1454
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1455
			cache[ id ] = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1456
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1457
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1458
		// We destroyed the entire user cache at once because it's faster than
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1459
		// iterating through each key, but we need to continue to persist internal
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1460
		// data if it existed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1461
		if ( internalCache ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1462
			cache[ id ] = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1463
			cache[ id ][ internalKey ] = internalCache;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1464
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1465
		// Otherwise, we need to eliminate the expando on the node to avoid
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1466
		// false lookups in the cache for entries that no longer exist
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1467
		} else if ( isNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1468
			// IE does not allow us to delete expando properties from nodes,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1469
			// nor does it have a removeAttribute function on Document nodes;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1470
			// we must handle all of these cases
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1471
			if ( jQuery.support.deleteExpando ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1472
				delete elem[ jQuery.expando ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1473
			} else if ( elem.removeAttribute ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1474
				elem.removeAttribute( jQuery.expando );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1475
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1476
				elem[ jQuery.expando ] = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1477
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1478
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1479
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1480
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1481
	// For internal use only.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1482
	_data: function( elem, name, data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1483
		return jQuery.data( elem, name, data, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1484
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1485
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1486
	// A method for determining if a DOM node can handle the data expando
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1487
	acceptData: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1488
		if ( elem.nodeName ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1489
			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1490
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1491
			if ( match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1492
				return !(match === true || elem.getAttribute("classid") !== match);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1493
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1494
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1495
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1496
		return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1497
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1498
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1499
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1500
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1501
	data: function( key, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1502
		var data = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1503
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1504
		if ( typeof key === "undefined" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1505
			if ( this.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1506
				data = jQuery.data( this[0] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1507
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1508
				if ( this[0].nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1509
					var attr = this[0].attributes, name;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1510
					for ( var i = 0, l = attr.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1511
						name = attr[i].name;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1512
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1513
						if ( name.indexOf( "data-" ) === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1514
							name = name.substr( 5 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1515
							dataAttr( this[0], name, data[ name ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1516
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1517
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1518
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1519
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1520
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1521
			return data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1522
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1523
		} else if ( typeof key === "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1524
			return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1525
				jQuery.data( this, key );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1526
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1527
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1528
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1529
		var parts = key.split(".");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1530
		parts[1] = parts[1] ? "." + parts[1] : "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1531
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1532
		if ( value === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1533
			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1534
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1535
			// Try to fetch any internally stored data first
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1536
			if ( data === undefined && this.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1537
				data = jQuery.data( this[0], key );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1538
				data = dataAttr( this[0], key, data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1539
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1540
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1541
			return data === undefined && parts[1] ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1542
				this.data( parts[0] ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1543
				data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1544
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1545
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1546
			return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1547
				var $this = jQuery( this ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1548
					args = [ parts[0], value ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1549
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1550
				$this.triggerHandler( "setData" + parts[1] + "!", args );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1551
				jQuery.data( this, key, value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1552
				$this.triggerHandler( "changeData" + parts[1] + "!", args );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1553
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1554
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1555
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1556
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1557
	removeData: function( key ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1558
		return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1559
			jQuery.removeData( this, key );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1560
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1561
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1562
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1563
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1564
function dataAttr( elem, key, data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1565
	// If nothing was found internally, try to fetch any
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1566
	// data from the HTML5 data-* attribute
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1567
	if ( data === undefined && elem.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1568
		data = elem.getAttribute( "data-" + key );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1569
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1570
		if ( typeof data === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1571
			try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1572
				data = data === "true" ? true :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1573
				data === "false" ? false :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1574
				data === "null" ? null :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1575
				!jQuery.isNaN( data ) ? parseFloat( data ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1576
					rbrace.test( data ) ? jQuery.parseJSON( data ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1577
					data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1578
			} catch( e ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1579
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1580
			// Make sure we set the data so it isn't changed later
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1581
			jQuery.data( elem, key, data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1582
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1583
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1584
			data = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1585
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1586
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1587
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1588
	return data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1589
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1590
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1591
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1592
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1593
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1594
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1595
	queue: function( elem, type, data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1596
		if ( !elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1597
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1598
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1599
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1600
		type = (type || "fx") + "queue";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1601
		var q = jQuery._data( elem, type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1602
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1603
		// Speed up dequeue by getting out quickly if this is just a lookup
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1604
		if ( !data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1605
			return q || [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1606
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1607
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1608
		if ( !q || jQuery.isArray(data) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1609
			q = jQuery._data( elem, type, jQuery.makeArray(data) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1610
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1611
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1612
			q.push( data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1613
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1614
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1615
		return q;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1616
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1617
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1618
	dequeue: function( elem, type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1619
		type = type || "fx";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1620
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1621
		var queue = jQuery.queue( elem, type ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1622
			fn = queue.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1623
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1624
		// If the fx queue is dequeued, always remove the progress sentinel
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1625
		if ( fn === "inprogress" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1626
			fn = queue.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1627
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1628
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1629
		if ( fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1630
			// Add a progress sentinel to prevent the fx queue from being
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1631
			// automatically dequeued
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1632
			if ( type === "fx" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1633
				queue.unshift("inprogress");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1634
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1635
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1636
			fn.call(elem, function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1637
				jQuery.dequeue(elem, type);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1638
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1639
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1640
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1641
		if ( !queue.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1642
			jQuery.removeData( elem, type + "queue", true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1643
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1644
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1645
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1646
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1647
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1648
	queue: function( type, data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1649
		if ( typeof type !== "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1650
			data = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1651
			type = "fx";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1652
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1653
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1654
		if ( data === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1655
			return jQuery.queue( this[0], type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1656
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1657
		return this.each(function( i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1658
			var queue = jQuery.queue( this, type, data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1659
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1660
			if ( type === "fx" && queue[0] !== "inprogress" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1661
				jQuery.dequeue( this, type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1662
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1663
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1664
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1665
	dequeue: function( type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1666
		return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1667
			jQuery.dequeue( this, type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1668
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1669
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1670
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1671
	// Based off of the plugin by Clint Helfers, with permission.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1672
	// http://blindsignals.com/index.php/2009/07/jquery-delay/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1673
	delay: function( time, type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1674
		time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1675
		type = type || "fx";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1676
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1677
		return this.queue( type, function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1678
			var elem = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1679
			setTimeout(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1680
				jQuery.dequeue( elem, type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1681
			}, time );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1682
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1683
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1684
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1685
	clearQueue: function( type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1686
		return this.queue( type || "fx", [] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1687
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1688
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1689
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1690
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1691
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1692
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1693
var rclass = /[\n\t\r]/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1694
	rspaces = /\s+/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1695
	rreturn = /\r/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1696
	rspecialurl = /^(?:href|src|style)$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1697
	rtype = /^(?:button|input)$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1698
	rfocusable = /^(?:button|input|object|select|textarea)$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1699
	rclickable = /^a(?:rea)?$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1700
	rradiocheck = /^(?:radio|checkbox)$/i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1701
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1702
jQuery.props = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1703
	"for": "htmlFor",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1704
	"class": "className",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1705
	readonly: "readOnly",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1706
	maxlength: "maxLength",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1707
	cellspacing: "cellSpacing",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1708
	rowspan: "rowSpan",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1709
	colspan: "colSpan",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1710
	tabindex: "tabIndex",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1711
	usemap: "useMap",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1712
	frameborder: "frameBorder"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1713
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1714
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1715
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1716
	attr: function( name, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1717
		return jQuery.access( this, name, value, true, jQuery.attr );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1718
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1719
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1720
	removeAttr: function( name, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1721
		return this.each(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1722
			jQuery.attr( this, name, "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1723
			if ( this.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1724
				this.removeAttribute( name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1725
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1726
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1727
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1728
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1729
	addClass: function( value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1730
		if ( jQuery.isFunction(value) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1731
			return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1732
				var self = jQuery(this);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1733
				self.addClass( value.call(this, i, self.attr("class")) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1734
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1735
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1736
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1737
		if ( value && typeof value === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1738
			var classNames = (value || "").split( rspaces );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1739
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1740
			for ( var i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1741
				var elem = this[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1742
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1743
				if ( elem.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1744
					if ( !elem.className ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1745
						elem.className = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1746
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1747
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1748
						var className = " " + elem.className + " ",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1749
							setClass = elem.className;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1750
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1751
						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1752
							if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1753
								setClass += " " + classNames[c];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1754
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1755
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1756
						elem.className = jQuery.trim( setClass );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1757
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1758
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1759
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1760
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1761
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1762
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1763
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1764
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1765
	removeClass: function( value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1766
		if ( jQuery.isFunction(value) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1767
			return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1768
				var self = jQuery(this);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1769
				self.removeClass( value.call(this, i, self.attr("class")) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1770
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1771
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1772
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1773
		if ( (value && typeof value === "string") || value === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1774
			var classNames = (value || "").split( rspaces );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1775
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1776
			for ( var i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1777
				var elem = this[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1778
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1779
				if ( elem.nodeType === 1 && elem.className ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1780
					if ( value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1781
						var className = (" " + elem.className + " ").replace(rclass, " ");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1782
						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1783
							className = className.replace(" " + classNames[c] + " ", " ");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1784
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1785
						elem.className = jQuery.trim( className );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1786
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1787
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1788
						elem.className = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1789
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1790
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1791
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1792
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1793
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1794
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1795
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1796
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1797
	toggleClass: function( value, stateVal ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1798
		var type = typeof value,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1799
			isBool = typeof stateVal === "boolean";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1800
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1801
		if ( jQuery.isFunction( value ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1802
			return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1803
				var self = jQuery(this);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1804
				self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1805
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1806
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1807
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1808
		return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1809
			if ( type === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1810
				// toggle individual class names
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1811
				var className,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1812
					i = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1813
					self = jQuery( this ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1814
					state = stateVal,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1815
					classNames = value.split( rspaces );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1816
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1817
				while ( (className = classNames[ i++ ]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1818
					// check each className given, space seperated list
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1819
					state = isBool ? state : !self.hasClass( className );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1820
					self[ state ? "addClass" : "removeClass" ]( className );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1821
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1822
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1823
			} else if ( type === "undefined" || type === "boolean" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1824
				if ( this.className ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1825
					// store className if set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1826
					jQuery._data( this, "__className__", this.className );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1827
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1828
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1829
				// toggle whole className
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1830
				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1831
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1832
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1833
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1834
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1835
	hasClass: function( selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1836
		var className = " " + selector + " ";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1837
		for ( var i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1838
			if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1839
				return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1840
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1841
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1842
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1843
		return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1844
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1845
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1846
	val: function( value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1847
		if ( !arguments.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1848
			var elem = this[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1849
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1850
			if ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1851
				if ( jQuery.nodeName( elem, "option" ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1852
					// attributes.value is undefined in Blackberry 4.7 but
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1853
					// uses .value. See #6932
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1854
					var val = elem.attributes.value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1855
					return !val || val.specified ? elem.value : elem.text;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1856
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1857
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1858
				// We need to handle select boxes special
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1859
				if ( jQuery.nodeName( elem, "select" ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1860
					var index = elem.selectedIndex,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1861
						values = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1862
						options = elem.options,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1863
						one = elem.type === "select-one";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1864
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1865
					// Nothing was selected
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1866
					if ( index < 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1867
						return null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1868
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1869
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1870
					// Loop through all the selected options
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1871
					for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1872
						var option = options[ i ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1873
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1874
						// Don't return options that are disabled or in a disabled optgroup
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1875
						if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1876
								(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1877
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1878
							// Get the specific value for the option
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1879
							value = jQuery(option).val();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1880
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1881
							// We don't need an array for one selects
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1882
							if ( one ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1883
								return value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1884
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1885
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1886
							// Multi-Selects return an array
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1887
							values.push( value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1888
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1889
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1890
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1891
					return values;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1892
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1893
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1894
				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1895
				if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1896
					return elem.getAttribute("value") === null ? "on" : elem.value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1897
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1898
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1899
				// Everything else, we just grab the value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1900
				return (elem.value || "").replace(rreturn, "");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1901
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1902
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1903
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1904
			return undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1905
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1906
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1907
		var isFunction = jQuery.isFunction(value);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1908
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1909
		return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1910
			var self = jQuery(this), val = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1911
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1912
			if ( this.nodeType !== 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1913
				return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1914
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1915
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1916
			if ( isFunction ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1917
				val = value.call(this, i, self.val());
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1918
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1919
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1920
			// Treat null/undefined as ""; convert numbers to string
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1921
			if ( val == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1922
				val = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1923
			} else if ( typeof val === "number" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1924
				val += "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1925
			} else if ( jQuery.isArray(val) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1926
				val = jQuery.map(val, function (value) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1927
					return value == null ? "" : value + "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1928
				});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1929
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1930
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1931
			if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1932
				this.checked = jQuery.inArray( self.val(), val ) >= 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1933
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1934
			} else if ( jQuery.nodeName( this, "select" ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1935
				var values = jQuery.makeArray(val);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1936
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1937
				jQuery( "option", this ).each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1938
					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1939
				});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1940
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1941
				if ( !values.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1942
					this.selectedIndex = -1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1943
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1944
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1945
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1946
				this.value = val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1947
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1948
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1949
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1950
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1951
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1952
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1953
	attrFn: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1954
		val: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1955
		css: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1956
		html: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1957
		text: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1958
		data: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1959
		width: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1960
		height: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1961
		offset: true
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1962
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1963
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1964
	attr: function( elem, name, value, pass ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1965
		// don't get/set attributes on text, comment and attribute nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1966
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1967
			return undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1968
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1969
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1970
		if ( pass && name in jQuery.attrFn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1971
			return jQuery(elem)[name](value);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1972
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1973
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1974
		var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1975
			// Whether we are setting (or getting)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1976
			set = value !== undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1977
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1978
		// Try to normalize/fix the name
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1979
		name = notxml && jQuery.props[ name ] || name;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1980
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1981
		// Only do all the following if this is a node (faster for style)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1982
		if ( elem.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1983
			// These attributes require special treatment
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1984
			var special = rspecialurl.test( name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1985
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1986
			// Safari mis-reports the default selected property of an option
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1987
			// Accessing the parent's selectedIndex property fixes it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1988
			if ( name === "selected" && !jQuery.support.optSelected ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1989
				var parent = elem.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1990
				if ( parent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1991
					parent.selectedIndex;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1992
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1993
					// Make sure that it also works with optgroups, see #5701
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1994
					if ( parent.parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1995
						parent.parentNode.selectedIndex;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1996
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1997
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1998
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  1999
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2000
			// If applicable, access the attribute via the DOM 0 way
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2001
			// 'in' checks fail in Blackberry 4.7 #6931
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2002
			if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2003
				if ( set ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2004
					// We can't allow the type property to be changed (since it causes problems in IE)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2005
					if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2006
						jQuery.error( "type property can't be changed" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2007
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2008
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2009
					if ( value === null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2010
						if ( elem.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2011
							elem.removeAttribute( name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2012
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2013
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2014
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2015
						elem[ name ] = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2016
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2017
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2018
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2019
				// browsers index elements by id/name on forms, give priority to attributes.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2020
				if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2021
					return elem.getAttributeNode( name ).nodeValue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2022
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2023
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2024
				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2025
				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2026
				if ( name === "tabIndex" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2027
					var attributeNode = elem.getAttributeNode( "tabIndex" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2028
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2029
					return attributeNode && attributeNode.specified ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2030
						attributeNode.value :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2031
						rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2032
							0 :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2033
							undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2034
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2035
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2036
				return elem[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2037
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2038
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2039
			if ( !jQuery.support.style && notxml && name === "style" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2040
				if ( set ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2041
					elem.style.cssText = "" + value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2042
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2043
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2044
				return elem.style.cssText;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2045
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2046
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2047
			if ( set ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2048
				// convert the value to a string (all browsers do this but IE) see #1070
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2049
				elem.setAttribute( name, "" + value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2050
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2051
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2052
			// Ensure that missing attributes return undefined
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2053
			// Blackberry 4.7 returns "" from getAttribute #6938
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2054
			if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2055
				return undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2056
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2057
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2058
			var attr = !jQuery.support.hrefNormalized && notxml && special ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2059
					// Some attributes require a special call on IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2060
					elem.getAttribute( name, 2 ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2061
					elem.getAttribute( name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2062
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2063
			// Non-existent attributes return null, we normalize to undefined
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2064
			return attr === null ? undefined : attr;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2065
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2066
		// Handle everything which isn't a DOM element node
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2067
		if ( set ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2068
			elem[ name ] = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2069
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2070
		return elem[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2071
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2072
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2073
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2074
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2075
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2076
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2077
var rnamespaces = /\.(.*)$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2078
	rformElems = /^(?:textarea|input|select)$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2079
	rperiod = /\./g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2080
	rspace = / /g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2081
	rescape = /[^\w\s.|`]/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2082
	fcleanup = function( nm ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2083
		return nm.replace(rescape, "\\$&");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2084
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2085
	eventKey = "events";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2086
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2087
/*
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2088
 * A number of helper functions used for managing events.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2089
 * Many of the ideas behind this code originated from
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2090
 * Dean Edwards' addEvent library.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2091
 */
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2092
jQuery.event = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2093
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2094
	// Bind an event to an element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2095
	// Original by Dean Edwards
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2096
	add: function( elem, types, handler, data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2097
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2098
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2099
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2100
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2101
		// For whatever reason, IE has trouble passing the window object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2102
		// around, causing it to be cloned in the process
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2103
		if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2104
			elem = window;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2105
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2106
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2107
		if ( handler === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2108
			handler = returnFalse;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2109
		} else if ( !handler ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2110
			// Fixes bug #7229. Fix recommended by jdalton
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2111
		  return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2112
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2113
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2114
		var handleObjIn, handleObj;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2115
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2116
		if ( handler.handler ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2117
			handleObjIn = handler;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2118
			handler = handleObjIn.handler;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2119
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2120
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2121
		// Make sure that the function being executed has a unique ID
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2122
		if ( !handler.guid ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2123
			handler.guid = jQuery.guid++;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2124
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2125
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2126
		// Init the element's event structure
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2127
		var elemData = jQuery._data( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2128
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2129
		// If no elemData is found then we must be trying to bind to one of the
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2130
		// banned noData elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2131
		if ( !elemData ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2132
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2133
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2134
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2135
		var events = elemData[ eventKey ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2136
			eventHandle = elemData.handle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2137
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2138
		if ( typeof events === "function" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2139
			// On plain objects events is a fn that holds the the data
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2140
			// which prevents this data from being JSON serialized
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2141
			// the function does not need to be called, it just contains the data
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2142
			eventHandle = events.handle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2143
			events = events.events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2144
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2145
		} else if ( !events ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2146
			if ( !elem.nodeType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2147
				// On plain objects, create a fn that acts as the holder
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2148
				// of the values to avoid JSON serialization of event data
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2149
				elemData[ eventKey ] = elemData = function(){};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2150
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2151
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2152
			elemData.events = events = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2153
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2154
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2155
		if ( !eventHandle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2156
			elemData.handle = eventHandle = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2157
				// Handle the second event of a trigger and when
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2158
				// an event is called after a page has unloaded
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2159
				return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2160
					jQuery.event.handle.apply( eventHandle.elem, arguments ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2161
					undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2162
			};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2163
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2164
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2165
		// Add elem as a property of the handle function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2166
		// This is to prevent a memory leak with non-native events in IE.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2167
		eventHandle.elem = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2168
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2169
		// Handle multiple events separated by a space
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2170
		// jQuery(...).bind("mouseover mouseout", fn);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2171
		types = types.split(" ");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2172
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2173
		var type, i = 0, namespaces;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2174
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2175
		while ( (type = types[ i++ ]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2176
			handleObj = handleObjIn ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2177
				jQuery.extend({}, handleObjIn) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2178
				{ handler: handler, data: data };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2179
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2180
			// Namespaced event handlers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2181
			if ( type.indexOf(".") > -1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2182
				namespaces = type.split(".");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2183
				type = namespaces.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2184
				handleObj.namespace = namespaces.slice(0).sort().join(".");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2185
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2186
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2187
				namespaces = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2188
				handleObj.namespace = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2189
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2190
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2191
			handleObj.type = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2192
			if ( !handleObj.guid ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2193
				handleObj.guid = handler.guid;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2194
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2195
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2196
			// Get the current list of functions bound to this event
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2197
			var handlers = events[ type ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2198
				special = jQuery.event.special[ type ] || {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2199
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2200
			// Init the event handler queue
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2201
			if ( !handlers ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2202
				handlers = events[ type ] = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2203
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2204
				// Check for a special event handler
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2205
				// Only use addEventListener/attachEvent if the special
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2206
				// events handler returns false
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2207
				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2208
					// Bind the global event handler to the element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2209
					if ( elem.addEventListener ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2210
						elem.addEventListener( type, eventHandle, false );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2211
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2212
					} else if ( elem.attachEvent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2213
						elem.attachEvent( "on" + type, eventHandle );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2214
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2215
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2216
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2217
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2218
			if ( special.add ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2219
				special.add.call( elem, handleObj );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2220
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2221
				if ( !handleObj.handler.guid ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2222
					handleObj.handler.guid = handler.guid;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2223
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2224
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2225
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2226
			// Add the function to the element's handler list
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2227
			handlers.push( handleObj );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2228
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2229
			// Keep track of which events have been used, for global triggering
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2230
			jQuery.event.global[ type ] = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2231
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2232
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2233
		// Nullify elem to prevent memory leaks in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2234
		elem = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2235
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2236
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2237
	global: {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2238
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2239
	// Detach an event or set of events from an element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2240
	remove: function( elem, types, handler, pos ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2241
		// don't do events on text and comment nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2242
		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2243
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2244
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2245
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2246
		if ( handler === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2247
			handler = returnFalse;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2248
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2249
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2250
		var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2251
			elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2252
			events = elemData && elemData[ eventKey ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2253
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2254
		if ( !elemData || !events ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2255
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2256
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2257
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2258
		if ( typeof events === "function" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2259
			elemData = events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2260
			events = events.events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2261
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2262
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2263
		// types is actually an event object here
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2264
		if ( types && types.type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2265
			handler = types.handler;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2266
			types = types.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2267
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2268
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2269
		// Unbind all events for the element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2270
		if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2271
			types = types || "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2272
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2273
			for ( type in events ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2274
				jQuery.event.remove( elem, type + types );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2275
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2276
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2277
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2278
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2279
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2280
		// Handle multiple events separated by a space
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2281
		// jQuery(...).unbind("mouseover mouseout", fn);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2282
		types = types.split(" ");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2283
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2284
		while ( (type = types[ i++ ]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2285
			origType = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2286
			handleObj = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2287
			all = type.indexOf(".") < 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2288
			namespaces = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2289
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2290
			if ( !all ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2291
				// Namespaced event handlers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2292
				namespaces = type.split(".");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2293
				type = namespaces.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2294
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2295
				namespace = new RegExp("(^|\\.)" +
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2296
					jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2297
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2298
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2299
			eventType = events[ type ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2300
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2301
			if ( !eventType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2302
				continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2303
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2304
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2305
			if ( !handler ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2306
				for ( j = 0; j < eventType.length; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2307
					handleObj = eventType[ j ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2308
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2309
					if ( all || namespace.test( handleObj.namespace ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2310
						jQuery.event.remove( elem, origType, handleObj.handler, j );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2311
						eventType.splice( j--, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2312
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2313
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2314
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2315
				continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2316
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2317
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2318
			special = jQuery.event.special[ type ] || {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2319
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2320
			for ( j = pos || 0; j < eventType.length; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2321
				handleObj = eventType[ j ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2322
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2323
				if ( handler.guid === handleObj.guid ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2324
					// remove the given handler for the given type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2325
					if ( all || namespace.test( handleObj.namespace ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2326
						if ( pos == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2327
							eventType.splice( j--, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2328
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2329
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2330
						if ( special.remove ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2331
							special.remove.call( elem, handleObj );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2332
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2333
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2334
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2335
					if ( pos != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2336
						break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2337
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2338
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2339
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2340
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2341
			// remove generic event handler if no more handlers exist
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2342
			if ( eventType.length === 0 || pos != null && eventType.length === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2343
				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2344
					jQuery.removeEvent( elem, type, elemData.handle );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2345
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2346
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2347
				ret = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2348
				delete events[ type ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2349
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2350
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2351
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2352
		// Remove the expando if it's no longer used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2353
		if ( jQuery.isEmptyObject( events ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2354
			var handle = elemData.handle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2355
			if ( handle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2356
				handle.elem = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2357
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2358
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2359
			delete elemData.events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2360
			delete elemData.handle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2361
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2362
			if ( typeof elemData === "function" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2363
				jQuery.removeData( elem, eventKey, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2364
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2365
			} else if ( jQuery.isEmptyObject( elemData ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2366
				jQuery.removeData( elem, undefined, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2367
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2368
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2369
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2370
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2371
	// bubbling is internal
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2372
	trigger: function( event, data, elem /*, bubbling */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2373
		// Event object or event type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2374
		var type = event.type || event,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2375
			bubbling = arguments[3];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2376
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2377
		if ( !bubbling ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2378
			event = typeof event === "object" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2379
				// jQuery.Event object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2380
				event[ jQuery.expando ] ? event :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2381
				// Object literal
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2382
				jQuery.extend( jQuery.Event(type), event ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2383
				// Just the event type (string)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2384
				jQuery.Event(type);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2385
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2386
			if ( type.indexOf("!") >= 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2387
				event.type = type = type.slice(0, -1);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2388
				event.exclusive = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2389
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2390
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2391
			// Handle a global trigger
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2392
			if ( !elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2393
				// Don't bubble custom events when global (to avoid too much overhead)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2394
				event.stopPropagation();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2395
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2396
				// Only trigger if we've ever bound an event for it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2397
				if ( jQuery.event.global[ type ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2398
					// XXX This code smells terrible. event.js should not be directly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2399
					// inspecting the data cache
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2400
					jQuery.each( jQuery.cache, function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2401
						// internalKey variable is just used to make it easier to find
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2402
						// and potentially change this stuff later; currently it just
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2403
						// points to jQuery.expando
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2404
						var internalKey = jQuery.expando,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2405
							internalCache = this[ internalKey ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2406
						if ( internalCache && internalCache.events && internalCache.events[type] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2407
							jQuery.event.trigger( event, data, internalCache.handle.elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2408
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2409
					});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2410
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2411
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2412
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2413
			// Handle triggering a single element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2414
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2415
			// don't do events on text and comment nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2416
			if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2417
				return undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2418
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2419
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2420
			// Clean up in case it is reused
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2421
			event.result = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2422
			event.target = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2423
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2424
			// Clone the incoming data, if any
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2425
			data = jQuery.makeArray( data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2426
			data.unshift( event );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2427
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2428
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2429
		event.currentTarget = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2430
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2431
		// Trigger the event, it is assumed that "handle" is a function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2432
		var handle = elem.nodeType ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2433
			jQuery._data( elem, "handle" ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2434
			(jQuery._data( elem, eventKey ) || {}).handle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2435
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2436
		if ( handle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2437
			handle.apply( elem, data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2438
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2439
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2440
		var parent = elem.parentNode || elem.ownerDocument;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2441
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2442
		// Trigger an inline bound script
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2443
		try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2444
			if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2445
				if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2446
					event.result = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2447
					event.preventDefault();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2448
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2449
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2450
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2451
		// prevent IE from throwing an error for some elements with some event types, see #3533
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2452
		} catch (inlineError) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2453
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2454
		if ( !event.isPropagationStopped() && parent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2455
			jQuery.event.trigger( event, data, parent, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2456
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2457
		} else if ( !event.isDefaultPrevented() ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2458
			var old,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2459
				target = event.target,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2460
				targetType = type.replace( rnamespaces, "" ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2461
				isClick = jQuery.nodeName( target, "a" ) && targetType === "click",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2462
				special = jQuery.event.special[ targetType ] || {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2463
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2464
			if ( (!special._default || special._default.call( elem, event ) === false) &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2465
				!isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2466
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2467
				try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2468
					if ( target[ targetType ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2469
						// Make sure that we don't accidentally re-trigger the onFOO events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2470
						old = target[ "on" + targetType ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2471
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2472
						if ( old ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2473
							target[ "on" + targetType ] = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2474
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2475
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2476
						jQuery.event.triggered = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2477
						target[ targetType ]();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2478
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2479
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2480
				// prevent IE from throwing an error for some elements with some event types, see #3533
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2481
				} catch (triggerError) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2482
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2483
				if ( old ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2484
					target[ "on" + targetType ] = old;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2485
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2486
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2487
				jQuery.event.triggered = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2488
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2489
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2490
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2491
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2492
	handle: function( event ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2493
		var all, handlers, namespaces, namespace_re, events,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2494
			namespace_sort = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2495
			args = jQuery.makeArray( arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2496
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2497
		event = args[0] = jQuery.event.fix( event || window.event );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2498
		event.currentTarget = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2499
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2500
		// Namespaced event handlers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2501
		all = event.type.indexOf(".") < 0 && !event.exclusive;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2502
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2503
		if ( !all ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2504
			namespaces = event.type.split(".");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2505
			event.type = namespaces.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2506
			namespace_sort = namespaces.slice(0).sort();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2507
			namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2508
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2509
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2510
		event.namespace = event.namespace || namespace_sort.join(".");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2511
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2512
		events = jQuery._data(this, eventKey);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2513
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2514
		if ( typeof events === "function" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2515
			events = events.events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2516
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2517
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2518
		handlers = (events || {})[ event.type ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2519
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2520
		if ( events && handlers ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2521
			// Clone the handlers to prevent manipulation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2522
			handlers = handlers.slice(0);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2523
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2524
			for ( var j = 0, l = handlers.length; j < l; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2525
				var handleObj = handlers[ j ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2526
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2527
				// Filter the functions by class
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2528
				if ( all || namespace_re.test( handleObj.namespace ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2529
					// Pass in a reference to the handler function itself
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2530
					// So that we can later remove it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2531
					event.handler = handleObj.handler;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2532
					event.data = handleObj.data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2533
					event.handleObj = handleObj;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2534
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2535
					var ret = handleObj.handler.apply( this, args );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2536
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2537
					if ( ret !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2538
						event.result = ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2539
						if ( ret === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2540
							event.preventDefault();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2541
							event.stopPropagation();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2542
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2543
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2544
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2545
					if ( event.isImmediatePropagationStopped() ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2546
						break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2547
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2548
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2549
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2550
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2551
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2552
		return event.result;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2553
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2554
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2555
	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(" "),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2556
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2557
	fix: function( event ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2558
		if ( event[ jQuery.expando ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2559
			return event;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2560
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2561
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2562
		// store a copy of the original event object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2563
		// and "clone" to set read-only properties
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2564
		var originalEvent = event;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2565
		event = jQuery.Event( originalEvent );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2566
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2567
		for ( var i = this.props.length, prop; i; ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2568
			prop = this.props[ --i ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2569
			event[ prop ] = originalEvent[ prop ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2570
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2571
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2572
		// Fix target property, if necessary
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2573
		if ( !event.target ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2574
			// Fixes #1925 where srcElement might not be defined either
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2575
			event.target = event.srcElement || document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2576
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2577
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2578
		// check if target is a textnode (safari)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2579
		if ( event.target.nodeType === 3 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2580
			event.target = event.target.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2581
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2582
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2583
		// Add relatedTarget, if necessary
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2584
		if ( !event.relatedTarget && event.fromElement ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2585
			event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2586
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2587
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2588
		// Calculate pageX/Y if missing and clientX/Y available
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2589
		if ( event.pageX == null && event.clientX != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2590
			var doc = document.documentElement,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2591
				body = document.body;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2592
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2593
			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2594
			event.pageY = event.clientY + (doc && doc.scrollTop  || body && body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop  || 0);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2595
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2596
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2597
		// Add which for key events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2598
		if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2599
			event.which = event.charCode != null ? event.charCode : event.keyCode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2600
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2601
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2602
		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2603
		if ( !event.metaKey && event.ctrlKey ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2604
			event.metaKey = event.ctrlKey;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2605
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2606
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2607
		// Add which for click: 1 === left; 2 === middle; 3 === right
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2608
		// Note: button is not normalized, so don't use it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2609
		if ( !event.which && event.button !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2610
			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2611
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2612
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2613
		return event;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2614
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2615
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2616
	// Deprecated, use jQuery.guid instead
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2617
	guid: 1E8,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2618
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2619
	// Deprecated, use jQuery.proxy instead
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2620
	proxy: jQuery.proxy,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2621
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2622
	special: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2623
		ready: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2624
			// Make sure the ready event is setup
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2625
			setup: jQuery.bindReady,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2626
			teardown: jQuery.noop
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2627
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2628
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2629
		live: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2630
			add: function( handleObj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2631
				jQuery.event.add( this,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2632
					liveConvert( handleObj.origType, handleObj.selector ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2633
					jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2634
			},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2635
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2636
			remove: function( handleObj ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2637
				jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2638
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2639
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2640
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2641
		beforeunload: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2642
			setup: function( data, namespaces, eventHandle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2643
				// We only want to do this special case on windows
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2644
				if ( jQuery.isWindow( this ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2645
					this.onbeforeunload = eventHandle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2646
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2647
			},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2648
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2649
			teardown: function( namespaces, eventHandle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2650
				if ( this.onbeforeunload === eventHandle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2651
					this.onbeforeunload = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2652
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2653
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2654
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2655
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2656
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2657
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2658
jQuery.removeEvent = document.removeEventListener ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2659
	function( elem, type, handle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2660
		if ( elem.removeEventListener ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2661
			elem.removeEventListener( type, handle, false );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2662
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2663
	} :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2664
	function( elem, type, handle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2665
		if ( elem.detachEvent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2666
			elem.detachEvent( "on" + type, handle );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2667
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2668
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2669
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2670
jQuery.Event = function( src ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2671
	// Allow instantiation without the 'new' keyword
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2672
	if ( !this.preventDefault ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2673
		return new jQuery.Event( src );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2674
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2675
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2676
	// Event object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2677
	if ( src && src.type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2678
		this.originalEvent = src;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2679
		this.type = src.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2680
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2681
		// Events bubbling up the document may have been marked as prevented
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2682
		// by a handler lower down the tree; reflect the correct value.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2683
		this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false || 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2684
			src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2685
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2686
	// Event type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2687
	} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2688
		this.type = src;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2689
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2690
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2691
	// timeStamp is buggy for some events on Firefox(#3843)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2692
	// So we won't rely on the native value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2693
	this.timeStamp = jQuery.now();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2694
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2695
	// Mark it as fixed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2696
	this[ jQuery.expando ] = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2697
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2698
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2699
function returnFalse() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2700
	return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2701
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2702
function returnTrue() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2703
	return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2704
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2705
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2706
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2707
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2708
jQuery.Event.prototype = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2709
	preventDefault: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2710
		this.isDefaultPrevented = returnTrue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2711
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2712
		var e = this.originalEvent;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2713
		if ( !e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2714
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2715
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2716
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2717
		// if preventDefault exists run it on the original event
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2718
		if ( e.preventDefault ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2719
			e.preventDefault();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2720
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2721
		// otherwise set the returnValue property of the original event to false (IE)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2722
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2723
			e.returnValue = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2724
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2725
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2726
	stopPropagation: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2727
		this.isPropagationStopped = returnTrue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2728
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2729
		var e = this.originalEvent;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2730
		if ( !e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2731
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2732
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2733
		// if stopPropagation exists run it on the original event
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2734
		if ( e.stopPropagation ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2735
			e.stopPropagation();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2736
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2737
		// otherwise set the cancelBubble property of the original event to true (IE)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2738
		e.cancelBubble = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2739
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2740
	stopImmediatePropagation: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2741
		this.isImmediatePropagationStopped = returnTrue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2742
		this.stopPropagation();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2743
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2744
	isDefaultPrevented: returnFalse,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2745
	isPropagationStopped: returnFalse,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2746
	isImmediatePropagationStopped: returnFalse
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2747
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2748
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2749
// Checks if an event happened on an element within another element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2750
// Used in jQuery.event.special.mouseenter and mouseleave handlers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2751
var withinElement = function( event ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2752
	// Check if mouse(over|out) are still within the same parent element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2753
	var parent = event.relatedTarget;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2754
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2755
	// Firefox sometimes assigns relatedTarget a XUL element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2756
	// which we cannot access the parentNode property of
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2757
	try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2758
		// Traverse up the tree
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2759
		while ( parent && parent !== this ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2760
			parent = parent.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2761
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2762
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2763
		if ( parent !== this ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2764
			// set the correct event type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2765
			event.type = event.data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2766
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2767
			// handle event if we actually just moused on to a non sub-element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2768
			jQuery.event.handle.apply( this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2769
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2770
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2771
	// assuming we've left the element since we most likely mousedover a xul element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2772
	} catch(e) { }
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2773
},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2774
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2775
// In case of event delegation, we only need to rename the event.type,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2776
// liveHandler will take care of the rest.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2777
delegate = function( event ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2778
	event.type = event.data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2779
	jQuery.event.handle.apply( this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2780
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2781
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2782
// Create mouseenter and mouseleave events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2783
jQuery.each({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2784
	mouseenter: "mouseover",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2785
	mouseleave: "mouseout"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2786
}, function( orig, fix ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2787
	jQuery.event.special[ orig ] = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2788
		setup: function( data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2789
			jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2790
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2791
		teardown: function( data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2792
			jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2793
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2794
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2795
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2796
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2797
// submit delegation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2798
if ( !jQuery.support.submitBubbles ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2799
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2800
	jQuery.event.special.submit = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2801
		setup: function( data, namespaces ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2802
			if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2803
				jQuery.event.add(this, "click.specialSubmit", function( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2804
					var elem = e.target,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2805
						type = elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2806
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2807
					if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2808
						e.liveFired = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2809
						return trigger( "submit", this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2810
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2811
				});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2812
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2813
				jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2814
					var elem = e.target,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2815
						type = elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2816
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2817
					if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2818
						e.liveFired = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2819
						return trigger( "submit", this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2820
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2821
				});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2822
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2823
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2824
				return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2825
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2826
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2827
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2828
		teardown: function( namespaces ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2829
			jQuery.event.remove( this, ".specialSubmit" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2830
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2831
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2832
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2833
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2834
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2835
// change delegation, happens here so we have bind.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2836
if ( !jQuery.support.changeBubbles ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2837
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2838
	var changeFilters,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2839
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2840
	getVal = function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2841
		var type = elem.type, val = elem.value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2842
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2843
		if ( type === "radio" || type === "checkbox" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2844
			val = elem.checked;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2845
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2846
		} else if ( type === "select-multiple" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2847
			val = elem.selectedIndex > -1 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2848
				jQuery.map( elem.options, function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2849
					return elem.selected;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2850
				}).join("-") :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2851
				"";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2852
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2853
		} else if ( elem.nodeName.toLowerCase() === "select" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2854
			val = elem.selectedIndex;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2855
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2856
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2857
		return val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2858
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2859
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2860
	testChange = function testChange( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2861
		var elem = e.target, data, val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2862
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2863
		if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2864
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2865
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2866
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2867
		data = jQuery._data( elem, "_change_data" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2868
		val = getVal(elem);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2869
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2870
		// the current data will be also retrieved by beforeactivate
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2871
		if ( e.type !== "focusout" || elem.type !== "radio" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2872
			jQuery._data( elem, "_change_data", val );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2873
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2874
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2875
		if ( data === undefined || val === data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2876
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2877
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2878
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2879
		if ( data != null || val ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2880
			e.type = "change";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2881
			e.liveFired = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2882
			return jQuery.event.trigger( e, arguments[1], elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2883
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2884
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2885
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2886
	jQuery.event.special.change = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2887
		filters: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2888
			focusout: testChange,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2889
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2890
			beforedeactivate: testChange,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2891
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2892
			click: function( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2893
				var elem = e.target, type = elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2894
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2895
				if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2896
					return testChange.call( this, e );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2897
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2898
			},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2899
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2900
			// Change has to be called before submit
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2901
			// Keydown will be called before keypress, which is used in submit-event delegation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2902
			keydown: function( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2903
				var elem = e.target, type = elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2904
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2905
				if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2906
					(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2907
					type === "select-multiple" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2908
					return testChange.call( this, e );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2909
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2910
			},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2911
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2912
			// Beforeactivate happens also before the previous element is blurred
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2913
			// with this event you can't trigger a change event, but you can store
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2914
			// information
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2915
			beforeactivate: function( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2916
				var elem = e.target;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2917
				jQuery._data( elem, "_change_data", getVal(elem) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2918
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2919
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2920
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2921
		setup: function( data, namespaces ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2922
			if ( this.type === "file" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2923
				return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2924
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2925
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2926
			for ( var type in changeFilters ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2927
				jQuery.event.add( this, type + ".specialChange", changeFilters[type] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2928
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2929
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2930
			return rformElems.test( this.nodeName );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2931
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2932
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2933
		teardown: function( namespaces ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2934
			jQuery.event.remove( this, ".specialChange" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2935
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2936
			return rformElems.test( this.nodeName );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2937
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2938
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2939
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2940
	changeFilters = jQuery.event.special.change.filters;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2941
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2942
	// Handle when the input is .focus()'d
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2943
	changeFilters.focus = changeFilters.beforeactivate;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2944
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2945
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2946
function trigger( type, elem, args ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2947
	args[0].type = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2948
	return jQuery.event.handle.apply( elem, args );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2949
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2950
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2951
// Create "bubbling" focus and blur events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2952
if ( document.addEventListener ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2953
	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2954
		jQuery.event.special[ fix ] = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2955
			setup: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2956
				this.addEventListener( orig, handler, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2957
			}, 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2958
			teardown: function() { 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2959
				this.removeEventListener( orig, handler, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2960
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2961
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2962
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2963
		function handler( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2964
			e = jQuery.event.fix( e );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2965
			e.type = fix;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2966
			return jQuery.event.handle.call( this, e );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2967
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2968
	});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2969
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2970
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2971
jQuery.each(["bind", "one"], function( i, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2972
	jQuery.fn[ name ] = function( type, data, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2973
		// Handle object literals
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2974
		if ( typeof type === "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2975
			for ( var key in type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2976
				this[ name ](key, data, type[key], fn);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2977
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2978
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2979
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2980
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2981
		if ( jQuery.isFunction( data ) || data === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2982
			fn = data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2983
			data = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2984
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2985
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2986
		var handler = name === "one" ? jQuery.proxy( fn, function( event ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2987
			jQuery( this ).unbind( event, handler );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2988
			return fn.apply( this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2989
		}) : fn;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2990
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2991
		if ( type === "unload" && name !== "one" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2992
			this.one( type, data, fn );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2993
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2994
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2995
			for ( var i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2996
				jQuery.event.add( this[i], type, handler, data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2997
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2998
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  2999
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3000
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3001
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3002
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3003
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3004
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3005
	unbind: function( type, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3006
		// Handle object literals
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3007
		if ( typeof type === "object" && !type.preventDefault ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3008
			for ( var key in type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3009
				this.unbind(key, type[key]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3010
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3011
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3012
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3013
			for ( var i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3014
				jQuery.event.remove( this[i], type, fn );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3015
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3016
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3017
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3018
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3019
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3020
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3021
	delegate: function( selector, types, data, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3022
		return this.live( types, data, fn, selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3023
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3024
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3025
	undelegate: function( selector, types, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3026
		if ( arguments.length === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3027
				return this.unbind( "live" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3028
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3029
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3030
			return this.die( types, null, fn, selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3031
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3032
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3033
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3034
	trigger: function( type, data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3035
		return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3036
			jQuery.event.trigger( type, data, this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3037
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3038
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3039
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3040
	triggerHandler: function( type, data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3041
		if ( this[0] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3042
			var event = jQuery.Event( type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3043
			event.preventDefault();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3044
			event.stopPropagation();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3045
			jQuery.event.trigger( event, data, this[0] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3046
			return event.result;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3047
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3048
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3049
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3050
	toggle: function( fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3051
		// Save reference to arguments for access in closure
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3052
		var args = arguments,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3053
			i = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3054
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3055
		// link all the functions, so any of them can unbind this click handler
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3056
		while ( i < args.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3057
			jQuery.proxy( fn, args[ i++ ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3058
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3059
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3060
		return this.click( jQuery.proxy( fn, function( event ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3061
			// Figure out which function to execute
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3062
			var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3063
			jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3064
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3065
			// Make sure that clicks stop
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3066
			event.preventDefault();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3067
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3068
			// and execute the function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3069
			return args[ lastToggle ].apply( this, arguments ) || false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3070
		}));
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3071
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3072
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3073
	hover: function( fnOver, fnOut ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3074
		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3075
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3076
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3077
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3078
var liveMap = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3079
	focus: "focusin",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3080
	blur: "focusout",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3081
	mouseenter: "mouseover",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3082
	mouseleave: "mouseout"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3083
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3084
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3085
jQuery.each(["live", "die"], function( i, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3086
	jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3087
		var type, i = 0, match, namespaces, preType,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3088
			selector = origSelector || this.selector,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3089
			context = origSelector ? this : jQuery( this.context );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3090
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3091
		if ( typeof types === "object" && !types.preventDefault ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3092
			for ( var key in types ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3093
				context[ name ]( key, data, types[key], selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3094
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3095
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3096
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3097
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3098
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3099
		if ( jQuery.isFunction( data ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3100
			fn = data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3101
			data = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3102
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3103
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3104
		types = (types || "").split(" ");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3105
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3106
		while ( (type = types[ i++ ]) != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3107
			match = rnamespaces.exec( type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3108
			namespaces = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3109
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3110
			if ( match )  {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3111
				namespaces = match[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3112
				type = type.replace( rnamespaces, "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3113
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3114
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3115
			if ( type === "hover" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3116
				types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3117
				continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3118
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3119
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3120
			preType = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3121
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3122
			if ( type === "focus" || type === "blur" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3123
				types.push( liveMap[ type ] + namespaces );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3124
				type = type + namespaces;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3125
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3126
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3127
				type = (liveMap[ type ] || type) + namespaces;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3128
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3129
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3130
			if ( name === "live" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3131
				// bind live handler
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3132
				for ( var j = 0, l = context.length; j < l; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3133
					jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3134
						{ data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3135
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3136
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3137
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3138
				// unbind live handler
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3139
				context.unbind( "live." + liveConvert( type, selector ), fn );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3140
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3141
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3142
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3143
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3144
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3145
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3146
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3147
function liveHandler( event ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3148
	var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3149
		elems = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3150
		selectors = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3151
		events = jQuery._data( this, eventKey );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3152
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3153
	if ( typeof events === "function" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3154
		events = events.events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3155
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3156
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3157
	// Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3158
	if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3159
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3160
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3161
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3162
	if ( event.namespace ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3163
		namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3164
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3165
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3166
	event.liveFired = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3167
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3168
	var live = events.live.slice(0);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3169
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3170
	for ( j = 0; j < live.length; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3171
		handleObj = live[j];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3172
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3173
		if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3174
			selectors.push( handleObj.selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3175
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3176
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3177
			live.splice( j--, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3178
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3179
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3180
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3181
	match = jQuery( event.target ).closest( selectors, event.currentTarget );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3182
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3183
	for ( i = 0, l = match.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3184
		close = match[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3185
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3186
		for ( j = 0; j < live.length; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3187
			handleObj = live[j];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3188
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3189
			if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3190
				elem = close.elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3191
				related = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3192
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3193
				// Those two events require additional checking
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3194
				if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3195
					event.type = handleObj.preType;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3196
					related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3197
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3198
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3199
				if ( !related || related !== elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3200
					elems.push({ elem: elem, handleObj: handleObj, level: close.level });
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3201
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3202
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3203
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3204
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3205
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3206
	for ( i = 0, l = elems.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3207
		match = elems[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3208
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3209
		if ( maxLevel && match.level > maxLevel ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3210
			break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3211
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3212
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3213
		event.currentTarget = match.elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3214
		event.data = match.handleObj.data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3215
		event.handleObj = match.handleObj;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3216
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3217
		ret = match.handleObj.origHandler.apply( match.elem, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3218
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3219
		if ( ret === false || event.isPropagationStopped() ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3220
			maxLevel = match.level;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3221
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3222
			if ( ret === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3223
				stop = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3224
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3225
			if ( event.isImmediatePropagationStopped() ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3226
				break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3227
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3228
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3229
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3230
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3231
	return stop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3232
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3233
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3234
function liveConvert( type, selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3235
	return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3236
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3237
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3238
jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3239
	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3240
	"change select submit keydown keypress keyup error").split(" "), function( i, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3241
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3242
	// Handle event binding
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3243
	jQuery.fn[ name ] = function( data, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3244
		if ( fn == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3245
			fn = data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3246
			data = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3247
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3248
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3249
		return arguments.length > 0 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3250
			this.bind( name, data, fn ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3251
			this.trigger( name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3252
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3253
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3254
	if ( jQuery.attrFn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3255
		jQuery.attrFn[ name ] = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3256
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3257
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3258
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3259
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3260
/*!
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3261
 * Sizzle CSS Selector Engine
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3262
 *  Copyright 2011, The Dojo Foundation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3263
 *  Released under the MIT, BSD, and GPL Licenses.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3264
 *  More information: http://sizzlejs.com/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3265
 */
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3266
(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3267
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3268
var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3269
	done = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3270
	toString = Object.prototype.toString,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3271
	hasDuplicate = false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3272
	baseHasDuplicate = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3273
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3274
// Here we check if the JavaScript engine is using some sort of
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3275
// optimization where it does not always call our comparision
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3276
// function. If that is the case, discard the hasDuplicate value.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3277
//   Thus far that includes Google Chrome.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3278
[0, 0].sort(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3279
	baseHasDuplicate = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3280
	return 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3281
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3282
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3283
var Sizzle = function( selector, context, results, seed ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3284
	results = results || [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3285
	context = context || document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3286
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3287
	var origContext = context;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3288
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3289
	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3290
		return [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3291
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3292
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3293
	if ( !selector || typeof selector !== "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3294
		return results;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3295
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3296
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3297
	var m, set, checkSet, extra, ret, cur, pop, i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3298
		prune = true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3299
		contextXML = Sizzle.isXML( context ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3300
		parts = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3301
		soFar = selector;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3302
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3303
	// Reset the position of the chunker regexp (start from head)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3304
	do {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3305
		chunker.exec( "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3306
		m = chunker.exec( soFar );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3307
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3308
		if ( m ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3309
			soFar = m[3];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3310
		
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3311
			parts.push( m[1] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3312
		
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3313
			if ( m[2] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3314
				extra = m[3];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3315
				break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3316
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3317
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3318
	} while ( m );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3319
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3320
	if ( parts.length > 1 && origPOS.exec( selector ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3321
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3322
		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3323
			set = posProcess( parts[0] + parts[1], context );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3324
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3325
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3326
			set = Expr.relative[ parts[0] ] ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3327
				[ context ] :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3328
				Sizzle( parts.shift(), context );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3329
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3330
			while ( parts.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3331
				selector = parts.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3332
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3333
				if ( Expr.relative[ selector ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3334
					selector += parts.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3335
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3336
				
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3337
				set = posProcess( selector, set );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3338
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3339
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3340
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3341
	} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3342
		// Take a shortcut and set the context if the root selector is an ID
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3343
		// (but not if it'll be faster if the inner selector is an ID)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3344
		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3345
				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3346
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3347
			ret = Sizzle.find( parts.shift(), context, contextXML );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3348
			context = ret.expr ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3349
				Sizzle.filter( ret.expr, ret.set )[0] :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3350
				ret.set[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3351
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3352
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3353
		if ( context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3354
			ret = seed ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3355
				{ expr: parts.pop(), set: makeArray(seed) } :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3356
				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3357
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3358
			set = ret.expr ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3359
				Sizzle.filter( ret.expr, ret.set ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3360
				ret.set;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3361
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3362
			if ( parts.length > 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3363
				checkSet = makeArray( set );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3364
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3365
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3366
				prune = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3367
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3368
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3369
			while ( parts.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3370
				cur = parts.pop();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3371
				pop = cur;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3372
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3373
				if ( !Expr.relative[ cur ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3374
					cur = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3375
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3376
					pop = parts.pop();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3377
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3378
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3379
				if ( pop == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3380
					pop = context;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3381
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3382
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3383
				Expr.relative[ cur ]( checkSet, pop, contextXML );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3384
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3385
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3386
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3387
			checkSet = parts = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3388
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3389
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3390
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3391
	if ( !checkSet ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3392
		checkSet = set;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3393
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3394
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3395
	if ( !checkSet ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3396
		Sizzle.error( cur || selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3397
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3398
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3399
	if ( toString.call(checkSet) === "[object Array]" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3400
		if ( !prune ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3401
			results.push.apply( results, checkSet );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3402
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3403
		} else if ( context && context.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3404
			for ( i = 0; checkSet[i] != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3405
				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3406
					results.push( set[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3407
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3408
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3409
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3410
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3411
			for ( i = 0; checkSet[i] != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3412
				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3413
					results.push( set[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3414
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3415
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3416
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3417
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3418
	} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3419
		makeArray( checkSet, results );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3420
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3421
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3422
	if ( extra ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3423
		Sizzle( extra, origContext, results, seed );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3424
		Sizzle.uniqueSort( results );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3425
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3426
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3427
	return results;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3428
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3429
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3430
Sizzle.uniqueSort = function( results ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3431
	if ( sortOrder ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3432
		hasDuplicate = baseHasDuplicate;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3433
		results.sort( sortOrder );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3434
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3435
		if ( hasDuplicate ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3436
			for ( var i = 1; i < results.length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3437
				if ( results[i] === results[ i - 1 ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3438
					results.splice( i--, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3439
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3440
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3441
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3442
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3443
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3444
	return results;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3445
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3446
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3447
Sizzle.matches = function( expr, set ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3448
	return Sizzle( expr, null, null, set );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3449
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3450
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3451
Sizzle.matchesSelector = function( node, expr ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3452
	return Sizzle( expr, null, null, [node] ).length > 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3453
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3454
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3455
Sizzle.find = function( expr, context, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3456
	var set;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3457
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3458
	if ( !expr ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3459
		return [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3460
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3461
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3462
	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3463
		var match,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3464
			type = Expr.order[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3465
		
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3466
		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3467
			var left = match[1];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3468
			match.splice( 1, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3469
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3470
			if ( left.substr( left.length - 1 ) !== "\\" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3471
				match[1] = (match[1] || "").replace(/\\/g, "");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3472
				set = Expr.find[ type ]( match, context, isXML );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3473
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3474
				if ( set != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3475
					expr = expr.replace( Expr.match[ type ], "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3476
					break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3477
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3478
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3479
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3480
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3481
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3482
	if ( !set ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3483
		set = typeof context.getElementsByTagName !== "undefined" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3484
			context.getElementsByTagName( "*" ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3485
			[];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3486
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3487
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3488
	return { set: set, expr: expr };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3489
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3490
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3491
Sizzle.filter = function( expr, set, inplace, not ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3492
	var match, anyFound,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3493
		old = expr,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3494
		result = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3495
		curLoop = set,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3496
		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3497
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3498
	while ( expr && set.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3499
		for ( var type in Expr.filter ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3500
			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3501
				var found, item,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3502
					filter = Expr.filter[ type ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3503
					left = match[1];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3504
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3505
				anyFound = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3506
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3507
				match.splice(1,1);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3508
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3509
				if ( left.substr( left.length - 1 ) === "\\" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3510
					continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3511
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3512
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3513
				if ( curLoop === result ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3514
					result = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3515
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3516
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3517
				if ( Expr.preFilter[ type ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3518
					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3519
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3520
					if ( !match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3521
						anyFound = found = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3522
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3523
					} else if ( match === true ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3524
						continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3525
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3526
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3527
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3528
				if ( match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3529
					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3530
						if ( item ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3531
							found = filter( item, match, i, curLoop );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3532
							var pass = not ^ !!found;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3533
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3534
							if ( inplace && found != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3535
								if ( pass ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3536
									anyFound = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3537
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3538
								} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3539
									curLoop[i] = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3540
								}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3541
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3542
							} else if ( pass ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3543
								result.push( item );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3544
								anyFound = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3545
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3546
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3547
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3548
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3549
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3550
				if ( found !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3551
					if ( !inplace ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3552
						curLoop = result;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3553
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3554
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3555
					expr = expr.replace( Expr.match[ type ], "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3556
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3557
					if ( !anyFound ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3558
						return [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3559
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3560
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3561
					break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3562
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3563
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3564
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3565
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3566
		// Improper expression
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3567
		if ( expr === old ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3568
			if ( anyFound == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3569
				Sizzle.error( expr );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3570
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3571
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3572
				break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3573
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3574
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3575
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3576
		old = expr;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3577
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3578
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3579
	return curLoop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3580
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3581
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3582
Sizzle.error = function( msg ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3583
	throw "Syntax error, unrecognized expression: " + msg;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3584
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3585
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3586
var Expr = Sizzle.selectors = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3587
	order: [ "ID", "NAME", "TAG" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3588
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3589
	match: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3590
		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3591
		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3592
		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3593
		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3594
		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3595
		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3596
		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3597
		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3598
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3599
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3600
	leftMatch: {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3601
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3602
	attrMap: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3603
		"class": "className",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3604
		"for": "htmlFor"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3605
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3606
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3607
	attrHandle: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3608
		href: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3609
			return elem.getAttribute( "href" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3610
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3611
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3612
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3613
	relative: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3614
		"+": function(checkSet, part){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3615
			var isPartStr = typeof part === "string",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3616
				isTag = isPartStr && !/\W/.test( part ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3617
				isPartStrNotTag = isPartStr && !isTag;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3618
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3619
			if ( isTag ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3620
				part = part.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3621
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3622
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3623
			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3624
				if ( (elem = checkSet[i]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3625
					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3626
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3627
					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3628
						elem || false :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3629
						elem === part;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3630
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3631
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3632
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3633
			if ( isPartStrNotTag ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3634
				Sizzle.filter( part, checkSet, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3635
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3636
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3637
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3638
		">": function( checkSet, part ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3639
			var elem,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3640
				isPartStr = typeof part === "string",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3641
				i = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3642
				l = checkSet.length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3643
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3644
			if ( isPartStr && !/\W/.test( part ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3645
				part = part.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3646
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3647
				for ( ; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3648
					elem = checkSet[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3649
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3650
					if ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3651
						var parent = elem.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3652
						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3653
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3654
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3655
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3656
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3657
				for ( ; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3658
					elem = checkSet[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3659
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3660
					if ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3661
						checkSet[i] = isPartStr ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3662
							elem.parentNode :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3663
							elem.parentNode === part;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3664
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3665
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3666
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3667
				if ( isPartStr ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3668
					Sizzle.filter( part, checkSet, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3669
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3670
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3671
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3672
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3673
		"": function(checkSet, part, isXML){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3674
			var nodeCheck,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3675
				doneName = done++,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3676
				checkFn = dirCheck;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3677
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3678
			if ( typeof part === "string" && !/\W/.test(part) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3679
				part = part.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3680
				nodeCheck = part;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3681
				checkFn = dirNodeCheck;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3682
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3683
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3684
			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3685
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3686
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3687
		"~": function( checkSet, part, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3688
			var nodeCheck,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3689
				doneName = done++,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3690
				checkFn = dirCheck;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3691
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3692
			if ( typeof part === "string" && !/\W/.test( part ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3693
				part = part.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3694
				nodeCheck = part;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3695
				checkFn = dirNodeCheck;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3696
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3697
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3698
			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3699
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3700
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3701
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3702
	find: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3703
		ID: function( match, context, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3704
			if ( typeof context.getElementById !== "undefined" && !isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3705
				var m = context.getElementById(match[1]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3706
				// Check parentNode to catch when Blackberry 4.6 returns
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3707
				// nodes that are no longer in the document #6963
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3708
				return m && m.parentNode ? [m] : [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3709
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3710
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3711
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3712
		NAME: function( match, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3713
			if ( typeof context.getElementsByName !== "undefined" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3714
				var ret = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3715
					results = context.getElementsByName( match[1] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3716
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3717
				for ( var i = 0, l = results.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3718
					if ( results[i].getAttribute("name") === match[1] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3719
						ret.push( results[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3720
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3721
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3722
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3723
				return ret.length === 0 ? null : ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3724
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3725
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3726
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3727
		TAG: function( match, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3728
			if ( typeof context.getElementsByTagName !== "undefined" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3729
				return context.getElementsByTagName( match[1] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3730
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3731
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3732
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3733
	preFilter: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3734
		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3735
			match = " " + match[1].replace(/\\/g, "") + " ";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3736
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3737
			if ( isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3738
				return match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3739
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3740
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3741
			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3742
				if ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3743
					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3744
						if ( !inplace ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3745
							result.push( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3746
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3747
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3748
					} else if ( inplace ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3749
						curLoop[i] = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3750
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3751
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3752
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3753
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3754
			return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3755
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3756
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3757
		ID: function( match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3758
			return match[1].replace(/\\/g, "");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3759
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3760
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3761
		TAG: function( match, curLoop ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3762
			return match[1].toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3763
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3764
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3765
		CHILD: function( match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3766
			if ( match[1] === "nth" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3767
				if ( !match[2] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3768
					Sizzle.error( match[0] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3769
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3770
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3771
				match[2] = match[2].replace(/^\+|\s*/g, '');
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3772
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3773
				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3774
				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3775
					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3776
					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3777
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3778
				// calculate the numbers (first)n+(last) including if they are negative
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3779
				match[2] = (test[1] + (test[2] || 1)) - 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3780
				match[3] = test[3] - 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3781
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3782
			else if ( match[2] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3783
				Sizzle.error( match[0] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3784
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3785
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3786
			// TODO: Move to normal caching system
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3787
			match[0] = done++;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3788
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3789
			return match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3790
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3791
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3792
		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3793
			var name = match[1] = match[1].replace(/\\/g, "");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3794
			
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3795
			if ( !isXML && Expr.attrMap[name] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3796
				match[1] = Expr.attrMap[name];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3797
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3798
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3799
			// Handle if an un-quoted value was used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3800
			match[4] = ( match[4] || match[5] || "" ).replace(/\\/g, "");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3801
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3802
			if ( match[2] === "~=" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3803
				match[4] = " " + match[4] + " ";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3804
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3805
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3806
			return match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3807
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3808
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3809
		PSEUDO: function( match, curLoop, inplace, result, not ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3810
			if ( match[1] === "not" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3811
				// If we're dealing with a complex expression, or a simple one
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3812
				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3813
					match[3] = Sizzle(match[3], null, null, curLoop);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3814
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3815
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3816
					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3817
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3818
					if ( !inplace ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3819
						result.push.apply( result, ret );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3820
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3821
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3822
					return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3823
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3824
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3825
			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3826
				return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3827
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3828
			
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3829
			return match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3830
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3831
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3832
		POS: function( match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3833
			match.unshift( true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3834
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3835
			return match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3836
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3837
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3838
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3839
	filters: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3840
		enabled: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3841
			return elem.disabled === false && elem.type !== "hidden";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3842
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3843
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3844
		disabled: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3845
			return elem.disabled === true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3846
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3847
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3848
		checked: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3849
			return elem.checked === true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3850
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3851
		
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3852
		selected: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3853
			// Accessing this property makes selected-by-default
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3854
			// options in Safari work properly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3855
			elem.parentNode.selectedIndex;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3856
			
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3857
			return elem.selected === true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3858
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3859
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3860
		parent: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3861
			return !!elem.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3862
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3863
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3864
		empty: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3865
			return !elem.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3866
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3867
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3868
		has: function( elem, i, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3869
			return !!Sizzle( match[3], elem ).length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3870
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3871
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3872
		header: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3873
			return (/h\d/i).test( elem.nodeName );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3874
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3875
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3876
		text: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3877
			return "text" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3878
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3879
		radio: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3880
			return "radio" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3881
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3882
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3883
		checkbox: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3884
			return "checkbox" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3885
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3886
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3887
		file: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3888
			return "file" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3889
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3890
		password: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3891
			return "password" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3892
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3893
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3894
		submit: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3895
			return "submit" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3896
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3897
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3898
		image: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3899
			return "image" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3900
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3901
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3902
		reset: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3903
			return "reset" === elem.type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3904
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3905
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3906
		button: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3907
			return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3908
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3909
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3910
		input: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3911
			return (/input|select|textarea|button/i).test( elem.nodeName );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3912
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3913
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3914
	setFilters: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3915
		first: function( elem, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3916
			return i === 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3917
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3918
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3919
		last: function( elem, i, match, array ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3920
			return i === array.length - 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3921
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3922
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3923
		even: function( elem, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3924
			return i % 2 === 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3925
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3926
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3927
		odd: function( elem, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3928
			return i % 2 === 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3929
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3930
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3931
		lt: function( elem, i, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3932
			return i < match[3] - 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3933
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3934
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3935
		gt: function( elem, i, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3936
			return i > match[3] - 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3937
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3938
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3939
		nth: function( elem, i, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3940
			return match[3] - 0 === i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3941
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3942
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3943
		eq: function( elem, i, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3944
			return match[3] - 0 === i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3945
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3946
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3947
	filter: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3948
		PSEUDO: function( elem, match, i, array ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3949
			var name = match[1],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3950
				filter = Expr.filters[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3951
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3952
			if ( filter ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3953
				return filter( elem, i, match, array );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3954
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3955
			} else if ( name === "contains" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3956
				return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3957
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3958
			} else if ( name === "not" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3959
				var not = match[3];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3960
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3961
				for ( var j = 0, l = not.length; j < l; j++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3962
					if ( not[j] === elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3963
						return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3964
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3965
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3966
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3967
				return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3968
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3969
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3970
				Sizzle.error( name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3971
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3972
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3973
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3974
		CHILD: function( elem, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3975
			var type = match[1],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3976
				node = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3977
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3978
			switch ( type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3979
				case "only":
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3980
				case "first":
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3981
					while ( (node = node.previousSibling) )	 {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3982
						if ( node.nodeType === 1 ) { 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3983
							return false; 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3984
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3985
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3986
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3987
					if ( type === "first" ) { 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3988
						return true; 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3989
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3990
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3991
					node = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3992
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3993
				case "last":
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3994
					while ( (node = node.nextSibling) )	 {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3995
						if ( node.nodeType === 1 ) { 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3996
							return false; 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3997
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3998
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  3999
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4000
					return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4001
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4002
				case "nth":
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4003
					var first = match[2],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4004
						last = match[3];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4005
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4006
					if ( first === 1 && last === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4007
						return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4008
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4009
					
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4010
					var doneName = match[0],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4011
						parent = elem.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4012
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4013
					if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4014
						var count = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4015
						
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4016
						for ( node = parent.firstChild; node; node = node.nextSibling ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4017
							if ( node.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4018
								node.nodeIndex = ++count;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4019
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4020
						} 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4021
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4022
						parent.sizcache = doneName;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4023
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4024
					
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4025
					var diff = elem.nodeIndex - last;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4026
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4027
					if ( first === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4028
						return diff === 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4029
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4030
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4031
						return ( diff % first === 0 && diff / first >= 0 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4032
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4033
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4034
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4035
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4036
		ID: function( elem, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4037
			return elem.nodeType === 1 && elem.getAttribute("id") === match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4038
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4039
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4040
		TAG: function( elem, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4041
			return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4042
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4043
		
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4044
		CLASS: function( elem, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4045
			return (" " + (elem.className || elem.getAttribute("class")) + " ")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4046
				.indexOf( match ) > -1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4047
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4048
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4049
		ATTR: function( elem, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4050
			var name = match[1],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4051
				result = Expr.attrHandle[ name ] ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4052
					Expr.attrHandle[ name ]( elem ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4053
					elem[ name ] != null ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4054
						elem[ name ] :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4055
						elem.getAttribute( name ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4056
				value = result + "",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4057
				type = match[2],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4058
				check = match[4];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4059
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4060
			return result == null ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4061
				type === "!=" :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4062
				type === "=" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4063
				value === check :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4064
				type === "*=" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4065
				value.indexOf(check) >= 0 :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4066
				type === "~=" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4067
				(" " + value + " ").indexOf(check) >= 0 :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4068
				!check ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4069
				value && result !== false :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4070
				type === "!=" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4071
				value !== check :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4072
				type === "^=" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4073
				value.indexOf(check) === 0 :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4074
				type === "$=" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4075
				value.substr(value.length - check.length) === check :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4076
				type === "|=" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4077
				value === check || value.substr(0, check.length + 1) === check + "-" :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4078
				false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4079
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4080
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4081
		POS: function( elem, match, i, array ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4082
			var name = match[2],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4083
				filter = Expr.setFilters[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4084
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4085
			if ( filter ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4086
				return filter( elem, i, match, array );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4087
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4088
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4089
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4090
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4091
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4092
var origPOS = Expr.match.POS,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4093
	fescape = function(all, num){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4094
		return "\\" + (num - 0 + 1);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4095
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4096
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4097
for ( var type in Expr.match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4098
	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4099
	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4100
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4101
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4102
var makeArray = function( array, results ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4103
	array = Array.prototype.slice.call( array, 0 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4104
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4105
	if ( results ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4106
		results.push.apply( results, array );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4107
		return results;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4108
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4109
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4110
	return array;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4111
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4112
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4113
// Perform a simple check to determine if the browser is capable of
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4114
// converting a NodeList to an array using builtin methods.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4115
// Also verifies that the returned array holds DOM nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4116
// (which is not the case in the Blackberry browser)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4117
try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4118
	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4119
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4120
// Provide a fallback method if it does not work
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4121
} catch( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4122
	makeArray = function( array, results ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4123
		var i = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4124
			ret = results || [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4125
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4126
		if ( toString.call(array) === "[object Array]" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4127
			Array.prototype.push.apply( ret, array );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4128
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4129
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4130
			if ( typeof array.length === "number" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4131
				for ( var l = array.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4132
					ret.push( array[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4133
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4134
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4135
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4136
				for ( ; array[i]; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4137
					ret.push( array[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4138
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4139
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4140
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4141
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4142
		return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4143
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4144
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4145
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4146
var sortOrder, siblingCheck;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4147
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4148
if ( document.documentElement.compareDocumentPosition ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4149
	sortOrder = function( a, b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4150
		if ( a === b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4151
			hasDuplicate = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4152
			return 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4153
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4154
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4155
		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4156
			return a.compareDocumentPosition ? -1 : 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4157
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4158
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4159
		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4160
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4161
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4162
} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4163
	sortOrder = function( a, b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4164
		var al, bl,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4165
			ap = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4166
			bp = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4167
			aup = a.parentNode,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4168
			bup = b.parentNode,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4169
			cur = aup;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4170
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4171
		// The nodes are identical, we can exit early
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4172
		if ( a === b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4173
			hasDuplicate = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4174
			return 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4175
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4176
		// If the nodes are siblings (or identical) we can do a quick check
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4177
		} else if ( aup === bup ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4178
			return siblingCheck( a, b );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4179
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4180
		// If no parents were found then the nodes are disconnected
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4181
		} else if ( !aup ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4182
			return -1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4183
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4184
		} else if ( !bup ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4185
			return 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4186
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4187
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4188
		// Otherwise they're somewhere else in the tree so we need
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4189
		// to build up a full list of the parentNodes for comparison
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4190
		while ( cur ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4191
			ap.unshift( cur );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4192
			cur = cur.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4193
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4194
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4195
		cur = bup;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4196
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4197
		while ( cur ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4198
			bp.unshift( cur );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4199
			cur = cur.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4200
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4201
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4202
		al = ap.length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4203
		bl = bp.length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4204
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4205
		// Start walking down the tree looking for a discrepancy
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4206
		for ( var i = 0; i < al && i < bl; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4207
			if ( ap[i] !== bp[i] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4208
				return siblingCheck( ap[i], bp[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4209
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4210
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4211
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4212
		// We ended someplace up the tree so do a sibling check
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4213
		return i === al ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4214
			siblingCheck( a, bp[i], -1 ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4215
			siblingCheck( ap[i], b, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4216
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4217
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4218
	siblingCheck = function( a, b, ret ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4219
		if ( a === b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4220
			return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4221
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4222
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4223
		var cur = a.nextSibling;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4224
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4225
		while ( cur ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4226
			if ( cur === b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4227
				return -1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4228
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4229
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4230
			cur = cur.nextSibling;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4231
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4232
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4233
		return 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4234
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4235
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4236
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4237
// Utility function for retreiving the text value of an array of DOM nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4238
Sizzle.getText = function( elems ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4239
	var ret = "", elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4240
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4241
	for ( var i = 0; elems[i]; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4242
		elem = elems[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4243
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4244
		// Get the text from text nodes and CDATA nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4245
		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4246
			ret += elem.nodeValue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4247
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4248
		// Traverse everything else, except comment nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4249
		} else if ( elem.nodeType !== 8 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4250
			ret += Sizzle.getText( elem.childNodes );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4251
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4252
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4253
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4254
	return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4255
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4256
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4257
// Check to see if the browser returns elements by name when
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4258
// querying by getElementById (and provide a workaround)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4259
(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4260
	// We're going to inject a fake input element with a specified name
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4261
	var form = document.createElement("div"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4262
		id = "script" + (new Date()).getTime(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4263
		root = document.documentElement;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4264
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4265
	form.innerHTML = "<a name='" + id + "'/>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4266
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4267
	// Inject it into the root element, check its status, and remove it quickly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4268
	root.insertBefore( form, root.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4269
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4270
	// The workaround has to do additional checks after a getElementById
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4271
	// Which slows things down for other browsers (hence the branching)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4272
	if ( document.getElementById( id ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4273
		Expr.find.ID = function( match, context, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4274
			if ( typeof context.getElementById !== "undefined" && !isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4275
				var m = context.getElementById(match[1]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4276
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4277
				return m ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4278
					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4279
						[m] :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4280
						undefined :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4281
					[];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4282
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4283
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4284
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4285
		Expr.filter.ID = function( elem, match ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4286
			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4287
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4288
			return elem.nodeType === 1 && node && node.nodeValue === match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4289
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4290
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4291
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4292
	root.removeChild( form );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4293
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4294
	// release memory in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4295
	root = form = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4296
})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4297
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4298
(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4299
	// Check to see if the browser returns only elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4300
	// when doing getElementsByTagName("*")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4301
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4302
	// Create a fake element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4303
	var div = document.createElement("div");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4304
	div.appendChild( document.createComment("") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4305
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4306
	// Make sure no comments are found
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4307
	if ( div.getElementsByTagName("*").length > 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4308
		Expr.find.TAG = function( match, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4309
			var results = context.getElementsByTagName( match[1] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4310
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4311
			// Filter out possible comments
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4312
			if ( match[1] === "*" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4313
				var tmp = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4314
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4315
				for ( var i = 0; results[i]; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4316
					if ( results[i].nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4317
						tmp.push( results[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4318
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4319
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4320
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4321
				results = tmp;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4322
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4323
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4324
			return results;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4325
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4326
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4327
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4328
	// Check to see if an attribute returns normalized href attributes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4329
	div.innerHTML = "<a href='#'></a>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4330
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4331
	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4332
			div.firstChild.getAttribute("href") !== "#" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4333
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4334
		Expr.attrHandle.href = function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4335
			return elem.getAttribute( "href", 2 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4336
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4337
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4338
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4339
	// release memory in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4340
	div = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4341
})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4342
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4343
if ( document.querySelectorAll ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4344
	(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4345
		var oldSizzle = Sizzle,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4346
			div = document.createElement("div"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4347
			id = "__sizzle__";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4348
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4349
		div.innerHTML = "<p class='TEST'></p>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4350
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4351
		// Safari can't handle uppercase or unicode characters when
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4352
		// in quirks mode.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4353
		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4354
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4355
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4356
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4357
		Sizzle = function( query, context, extra, seed ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4358
			context = context || document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4359
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4360
			// Only use querySelectorAll on non-XML documents
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4361
			// (ID selectors don't work in non-HTML documents)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4362
			if ( !seed && !Sizzle.isXML(context) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4363
				// See if we find a selector to speed up
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4364
				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4365
				
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4366
				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4367
					// Speed-up: Sizzle("TAG")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4368
					if ( match[1] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4369
						return makeArray( context.getElementsByTagName( query ), extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4370
					
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4371
					// Speed-up: Sizzle(".CLASS")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4372
					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4373
						return makeArray( context.getElementsByClassName( match[2] ), extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4374
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4375
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4376
				
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4377
				if ( context.nodeType === 9 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4378
					// Speed-up: Sizzle("body")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4379
					// The body element only exists once, optimize finding it
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4380
					if ( query === "body" && context.body ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4381
						return makeArray( [ context.body ], extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4382
						
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4383
					// Speed-up: Sizzle("#ID")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4384
					} else if ( match && match[3] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4385
						var elem = context.getElementById( match[3] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4386
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4387
						// Check parentNode to catch when Blackberry 4.6 returns
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4388
						// nodes that are no longer in the document #6963
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4389
						if ( elem && elem.parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4390
							// Handle the case where IE and Opera return items
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4391
							// by name instead of ID
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4392
							if ( elem.id === match[3] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4393
								return makeArray( [ elem ], extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4394
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4395
							
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4396
						} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4397
							return makeArray( [], extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4398
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4399
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4400
					
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4401
					try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4402
						return makeArray( context.querySelectorAll(query), extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4403
					} catch(qsaError) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4404
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4405
				// qSA works strangely on Element-rooted queries
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4406
				// We can work around this by specifying an extra ID on the root
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4407
				// and working up from there (Thanks to Andrew Dupont for the technique)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4408
				// IE 8 doesn't work on object elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4409
				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4410
					var old = context.getAttribute( "id" ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4411
						nid = old || id,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4412
						hasParent = context.parentNode,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4413
						relativeHierarchySelector = /^\s*[+~]/.test( query );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4414
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4415
					if ( !old ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4416
						context.setAttribute( "id", nid );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4417
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4418
						nid = nid.replace( /'/g, "\\$&" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4419
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4420
					if ( relativeHierarchySelector && hasParent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4421
						context = context.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4422
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4423
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4424
					try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4425
						if ( !relativeHierarchySelector || hasParent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4426
							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4427
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4428
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4429
					} catch(pseudoError) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4430
					} finally {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4431
						if ( !old ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4432
							context.removeAttribute( "id" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4433
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4434
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4435
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4436
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4437
		
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4438
			return oldSizzle(query, context, extra, seed);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4439
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4440
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4441
		for ( var prop in oldSizzle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4442
			Sizzle[ prop ] = oldSizzle[ prop ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4443
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4444
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4445
		// release memory in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4446
		div = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4447
	})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4448
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4449
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4450
(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4451
	var html = document.documentElement,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4452
		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4453
		pseudoWorks = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4454
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4455
	try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4456
		// This should fail with an exception
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4457
		// Gecko does not error, returns false instead
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4458
		matches.call( document.documentElement, "[test!='']:sizzle" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4459
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4460
	} catch( pseudoError ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4461
		pseudoWorks = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4462
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4463
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4464
	if ( matches ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4465
		Sizzle.matchesSelector = function( node, expr ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4466
			// Make sure that attribute selectors are quoted
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4467
			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4468
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4469
			if ( !Sizzle.isXML( node ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4470
				try { 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4471
					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4472
						return matches.call( node, expr );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4473
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4474
				} catch(e) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4475
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4476
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4477
			return Sizzle(expr, null, null, [node]).length > 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4478
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4479
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4480
})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4481
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4482
(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4483
	var div = document.createElement("div");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4484
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4485
	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4486
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4487
	// Opera can't find a second classname (in 9.6)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4488
	// Also, make sure that getElementsByClassName actually exists
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4489
	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4490
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4491
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4492
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4493
	// Safari caches class attributes, doesn't catch changes (in 3.2)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4494
	div.lastChild.className = "e";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4495
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4496
	if ( div.getElementsByClassName("e").length === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4497
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4498
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4499
	
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4500
	Expr.order.splice(1, 0, "CLASS");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4501
	Expr.find.CLASS = function( match, context, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4502
		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4503
			return context.getElementsByClassName(match[1]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4504
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4505
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4506
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4507
	// release memory in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4508
	div = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4509
})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4510
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4511
function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4512
	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4513
		var elem = checkSet[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4514
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4515
		if ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4516
			var match = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4517
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4518
			elem = elem[dir];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4519
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4520
			while ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4521
				if ( elem.sizcache === doneName ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4522
					match = checkSet[elem.sizset];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4523
					break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4524
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4525
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4526
				if ( elem.nodeType === 1 && !isXML ){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4527
					elem.sizcache = doneName;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4528
					elem.sizset = i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4529
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4530
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4531
				if ( elem.nodeName.toLowerCase() === cur ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4532
					match = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4533
					break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4534
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4535
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4536
				elem = elem[dir];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4537
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4538
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4539
			checkSet[i] = match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4540
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4541
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4542
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4543
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4544
function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4545
	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4546
		var elem = checkSet[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4547
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4548
		if ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4549
			var match = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4550
			
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4551
			elem = elem[dir];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4552
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4553
			while ( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4554
				if ( elem.sizcache === doneName ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4555
					match = checkSet[elem.sizset];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4556
					break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4557
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4558
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4559
				if ( elem.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4560
					if ( !isXML ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4561
						elem.sizcache = doneName;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4562
						elem.sizset = i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4563
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4564
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4565
					if ( typeof cur !== "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4566
						if ( elem === cur ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4567
							match = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4568
							break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4569
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4570
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4571
					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4572
						match = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4573
						break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4574
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4575
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4576
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4577
				elem = elem[dir];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4578
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4579
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4580
			checkSet[i] = match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4581
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4582
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4583
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4584
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4585
if ( document.documentElement.contains ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4586
	Sizzle.contains = function( a, b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4587
		return a !== b && (a.contains ? a.contains(b) : true);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4588
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4589
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4590
} else if ( document.documentElement.compareDocumentPosition ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4591
	Sizzle.contains = function( a, b ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4592
		return !!(a.compareDocumentPosition(b) & 16);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4593
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4594
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4595
} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4596
	Sizzle.contains = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4597
		return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4598
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4599
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4600
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4601
Sizzle.isXML = function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4602
	// documentElement is verified for cases where it doesn't yet exist
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4603
	// (such as loading iframes in IE - #4833) 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4604
	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4605
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4606
	return documentElement ? documentElement.nodeName !== "HTML" : false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4607
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4608
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4609
var posProcess = function( selector, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4610
	var match,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4611
		tmpSet = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4612
		later = "",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4613
		root = context.nodeType ? [context] : context;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4614
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4615
	// Position selectors must be done after the filter
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4616
	// And so must :not(positional) so we move all PSEUDOs to the end
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4617
	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4618
		later += match[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4619
		selector = selector.replace( Expr.match.PSEUDO, "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4620
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4621
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4622
	selector = Expr.relative[selector] ? selector + "*" : selector;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4623
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4624
	for ( var i = 0, l = root.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4625
		Sizzle( selector, root[i], tmpSet );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4626
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4627
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4628
	return Sizzle.filter( later, tmpSet );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4629
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4630
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4631
// EXPOSE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4632
jQuery.find = Sizzle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4633
jQuery.expr = Sizzle.selectors;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4634
jQuery.expr[":"] = jQuery.expr.filters;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4635
jQuery.unique = Sizzle.uniqueSort;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4636
jQuery.text = Sizzle.getText;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4637
jQuery.isXMLDoc = Sizzle.isXML;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4638
jQuery.contains = Sizzle.contains;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4639
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4640
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4641
})();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4642
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4643
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4644
var runtil = /Until$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4645
	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4646
	// Note: This RegExp should be improved, or likely pulled from Sizzle
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4647
	rmultiselector = /,/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4648
	isSimple = /^.[^:#\[\.,]*$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4649
	slice = Array.prototype.slice,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4650
	POS = jQuery.expr.match.POS,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4651
	// methods guaranteed to produce a unique set when starting from a unique set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4652
	guaranteedUnique = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4653
		children: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4654
		contents: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4655
		next: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4656
		prev: true
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4657
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4658
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4659
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4660
	find: function( selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4661
		var ret = this.pushStack( "", "find", selector ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4662
			length = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4663
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4664
		for ( var i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4665
			length = ret.length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4666
			jQuery.find( selector, this[i], ret );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4667
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4668
			if ( i > 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4669
				// Make sure that the results are unique
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4670
				for ( var n = length; n < ret.length; n++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4671
					for ( var r = 0; r < length; r++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4672
						if ( ret[r] === ret[n] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4673
							ret.splice(n--, 1);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4674
							break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4675
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4676
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4677
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4678
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4679
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4680
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4681
		return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4682
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4683
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4684
	has: function( target ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4685
		var targets = jQuery( target );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4686
		return this.filter(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4687
			for ( var i = 0, l = targets.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4688
				if ( jQuery.contains( this, targets[i] ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4689
					return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4690
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4691
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4692
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4693
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4694
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4695
	not: function( selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4696
		return this.pushStack( winnow(this, selector, false), "not", selector);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4697
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4698
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4699
	filter: function( selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4700
		return this.pushStack( winnow(this, selector, true), "filter", selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4701
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4702
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4703
	is: function( selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4704
		return !!selector && jQuery.filter( selector, this ).length > 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4705
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4706
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4707
	closest: function( selectors, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4708
		var ret = [], i, l, cur = this[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4709
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4710
		if ( jQuery.isArray( selectors ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4711
			var match, selector,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4712
				matches = {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4713
				level = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4714
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4715
			if ( cur && selectors.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4716
				for ( i = 0, l = selectors.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4717
					selector = selectors[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4718
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4719
					if ( !matches[selector] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4720
						matches[selector] = jQuery.expr.match.POS.test( selector ) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4721
							jQuery( selector, context || this.context ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4722
							selector;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4723
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4724
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4725
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4726
				while ( cur && cur.ownerDocument && cur !== context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4727
					for ( selector in matches ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4728
						match = matches[selector];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4729
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4730
						if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4731
							ret.push({ selector: selector, elem: cur, level: level });
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4732
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4733
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4734
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4735
					cur = cur.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4736
					level++;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4737
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4738
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4739
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4740
			return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4741
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4742
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4743
		var pos = POS.test( selectors ) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4744
			jQuery( selectors, context || this.context ) : null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4745
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4746
		for ( i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4747
			cur = this[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4748
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4749
			while ( cur ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4750
				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4751
					ret.push( cur );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4752
					break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4753
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4754
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4755
					cur = cur.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4756
					if ( !cur || !cur.ownerDocument || cur === context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4757
						break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4758
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4759
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4760
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4761
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4762
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4763
		ret = ret.length > 1 ? jQuery.unique(ret) : ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4764
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4765
		return this.pushStack( ret, "closest", selectors );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4766
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4767
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4768
	// Determine the position of an element within
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4769
	// the matched set of elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4770
	index: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4771
		if ( !elem || typeof elem === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4772
			return jQuery.inArray( this[0],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4773
				// If it receives a string, the selector is used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4774
				// If it receives nothing, the siblings are used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4775
				elem ? jQuery( elem ) : this.parent().children() );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4776
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4777
		// Locate the position of the desired element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4778
		return jQuery.inArray(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4779
			// If it receives a jQuery object, the first element is used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4780
			elem.jquery ? elem[0] : elem, this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4781
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4782
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4783
	add: function( selector, context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4784
		var set = typeof selector === "string" ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4785
				jQuery( selector, context ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4786
				jQuery.makeArray( selector ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4787
			all = jQuery.merge( this.get(), set );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4788
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4789
		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4790
			all :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4791
			jQuery.unique( all ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4792
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4793
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4794
	andSelf: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4795
		return this.add( this.prevObject );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4796
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4797
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4798
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4799
// A painfully simple check to see if an element is disconnected
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4800
// from a document (should be improved, where feasible).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4801
function isDisconnected( node ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4802
	return !node || !node.parentNode || node.parentNode.nodeType === 11;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4803
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4804
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4805
jQuery.each({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4806
	parent: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4807
		var parent = elem.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4808
		return parent && parent.nodeType !== 11 ? parent : null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4809
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4810
	parents: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4811
		return jQuery.dir( elem, "parentNode" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4812
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4813
	parentsUntil: function( elem, i, until ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4814
		return jQuery.dir( elem, "parentNode", until );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4815
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4816
	next: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4817
		return jQuery.nth( elem, 2, "nextSibling" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4818
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4819
	prev: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4820
		return jQuery.nth( elem, 2, "previousSibling" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4821
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4822
	nextAll: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4823
		return jQuery.dir( elem, "nextSibling" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4824
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4825
	prevAll: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4826
		return jQuery.dir( elem, "previousSibling" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4827
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4828
	nextUntil: function( elem, i, until ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4829
		return jQuery.dir( elem, "nextSibling", until );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4830
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4831
	prevUntil: function( elem, i, until ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4832
		return jQuery.dir( elem, "previousSibling", until );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4833
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4834
	siblings: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4835
		return jQuery.sibling( elem.parentNode.firstChild, elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4836
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4837
	children: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4838
		return jQuery.sibling( elem.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4839
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4840
	contents: function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4841
		return jQuery.nodeName( elem, "iframe" ) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4842
			elem.contentDocument || elem.contentWindow.document :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4843
			jQuery.makeArray( elem.childNodes );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4844
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4845
}, function( name, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4846
	jQuery.fn[ name ] = function( until, selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4847
		var ret = jQuery.map( this, fn, until ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4848
                // The variable 'args' was introduced in
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4849
                // https://github.com/jquery/jquery/commit/52a0238
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4850
                // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4851
                // http://code.google.com/p/v8/issues/detail?id=1050
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4852
                    args = slice.call(arguments);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4853
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4854
		if ( !runtil.test( name ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4855
			selector = until;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4856
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4857
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4858
		if ( selector && typeof selector === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4859
			ret = jQuery.filter( selector, ret );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4860
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4861
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4862
		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4863
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4864
		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4865
			ret = ret.reverse();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4866
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4867
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4868
		return this.pushStack( ret, name, args.join(",") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4869
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4870
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4871
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4872
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4873
	filter: function( expr, elems, not ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4874
		if ( not ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4875
			expr = ":not(" + expr + ")";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4876
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4877
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4878
		return elems.length === 1 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4879
			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4880
			jQuery.find.matches(expr, elems);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4881
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4882
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4883
	dir: function( elem, dir, until ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4884
		var matched = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4885
			cur = elem[ dir ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4886
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4887
		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4888
			if ( cur.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4889
				matched.push( cur );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4890
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4891
			cur = cur[dir];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4892
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4893
		return matched;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4894
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4895
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4896
	nth: function( cur, result, dir, elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4897
		result = result || 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4898
		var num = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4899
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4900
		for ( ; cur; cur = cur[dir] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4901
			if ( cur.nodeType === 1 && ++num === result ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4902
				break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4903
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4904
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4905
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4906
		return cur;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4907
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4908
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4909
	sibling: function( n, elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4910
		var r = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4911
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4912
		for ( ; n; n = n.nextSibling ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4913
			if ( n.nodeType === 1 && n !== elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4914
				r.push( n );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4915
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4916
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4917
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4918
		return r;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4919
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4920
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4921
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4922
// Implement the identical functionality for filter and not
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4923
function winnow( elements, qualifier, keep ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4924
	if ( jQuery.isFunction( qualifier ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4925
		return jQuery.grep(elements, function( elem, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4926
			var retVal = !!qualifier.call( elem, i, elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4927
			return retVal === keep;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4928
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4929
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4930
	} else if ( qualifier.nodeType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4931
		return jQuery.grep(elements, function( elem, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4932
			return (elem === qualifier) === keep;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4933
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4934
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4935
	} else if ( typeof qualifier === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4936
		var filtered = jQuery.grep(elements, function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4937
			return elem.nodeType === 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4938
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4939
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4940
		if ( isSimple.test( qualifier ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4941
			return jQuery.filter(qualifier, filtered, !keep);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4942
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4943
			qualifier = jQuery.filter( qualifier, filtered );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4944
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4945
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4946
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4947
	return jQuery.grep(elements, function( elem, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4948
		return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4949
	});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4950
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4951
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4952
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4953
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4954
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4955
var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4956
	rleadingWhitespace = /^\s+/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4957
	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4958
	rtagName = /<([\w:]+)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4959
	rtbody = /<tbody/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4960
	rhtml = /<|&#?\w+;/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4961
	rnocache = /<(?:script|object|embed|option|style)/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4962
	// checked="checked" or checked (html5)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4963
	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4964
	wrapMap = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4965
		option: [ 1, "<select multiple='multiple'>", "</select>" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4966
		legend: [ 1, "<fieldset>", "</fieldset>" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4967
		thead: [ 1, "<table>", "</table>" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4968
		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4969
		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4970
		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4971
		area: [ 1, "<map>", "</map>" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4972
		_default: [ 0, "", "" ]
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4973
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4974
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4975
wrapMap.optgroup = wrapMap.option;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4976
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4977
wrapMap.th = wrapMap.td;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4978
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4979
// IE can't serialize <link> and <script> tags normally
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4980
if ( !jQuery.support.htmlSerialize ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4981
	wrapMap._default = [ 1, "div<div>", "</div>" ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4982
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4983
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4984
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4985
	text: function( text ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4986
		if ( jQuery.isFunction(text) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4987
			return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4988
				var self = jQuery( this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4989
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4990
				self.text( text.call(this, i, self.text()) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4991
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4992
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4993
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4994
		if ( typeof text !== "object" && text !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4995
			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4996
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4997
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4998
		return jQuery.text( this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  4999
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5000
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5001
	wrapAll: function( html ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5002
		if ( jQuery.isFunction( html ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5003
			return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5004
				jQuery(this).wrapAll( html.call(this, i) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5005
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5006
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5007
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5008
		if ( this[0] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5009
			// The elements to wrap the target around
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5010
			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5011
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5012
			if ( this[0].parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5013
				wrap.insertBefore( this[0] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5014
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5015
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5016
			wrap.map(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5017
				var elem = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5018
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5019
				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5020
					elem = elem.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5021
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5022
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5023
				return elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5024
			}).append(this);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5025
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5026
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5027
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5028
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5029
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5030
	wrapInner: function( html ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5031
		if ( jQuery.isFunction( html ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5032
			return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5033
				jQuery(this).wrapInner( html.call(this, i) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5034
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5035
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5036
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5037
		return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5038
			var self = jQuery( this ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5039
				contents = self.contents();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5040
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5041
			if ( contents.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5042
				contents.wrapAll( html );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5043
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5044
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5045
				self.append( html );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5046
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5047
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5048
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5049
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5050
	wrap: function( html ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5051
		return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5052
			jQuery( this ).wrapAll( html );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5053
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5054
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5055
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5056
	unwrap: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5057
		return this.parent().each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5058
			if ( !jQuery.nodeName( this, "body" ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5059
				jQuery( this ).replaceWith( this.childNodes );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5060
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5061
		}).end();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5062
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5063
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5064
	append: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5065
		return this.domManip(arguments, true, function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5066
			if ( this.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5067
				this.appendChild( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5068
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5069
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5070
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5071
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5072
	prepend: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5073
		return this.domManip(arguments, true, function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5074
			if ( this.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5075
				this.insertBefore( elem, this.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5076
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5077
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5078
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5079
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5080
	before: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5081
		if ( this[0] && this[0].parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5082
			return this.domManip(arguments, false, function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5083
				this.parentNode.insertBefore( elem, this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5084
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5085
		} else if ( arguments.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5086
			var set = jQuery(arguments[0]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5087
			set.push.apply( set, this.toArray() );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5088
			return this.pushStack( set, "before", arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5089
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5090
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5091
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5092
	after: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5093
		if ( this[0] && this[0].parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5094
			return this.domManip(arguments, false, function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5095
				this.parentNode.insertBefore( elem, this.nextSibling );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5096
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5097
		} else if ( arguments.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5098
			var set = this.pushStack( this, "after", arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5099
			set.push.apply( set, jQuery(arguments[0]).toArray() );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5100
			return set;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5101
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5102
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5103
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5104
	// keepData is for internal use only--do not document
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5105
	remove: function( selector, keepData ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5106
		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5107
			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5108
				if ( !keepData && elem.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5109
					jQuery.cleanData( elem.getElementsByTagName("*") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5110
					jQuery.cleanData( [ elem ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5111
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5112
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5113
				if ( elem.parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5114
					 elem.parentNode.removeChild( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5115
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5116
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5117
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5118
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5119
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5120
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5121
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5122
	empty: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5123
		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5124
			// Remove element nodes and prevent memory leaks
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5125
			if ( elem.nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5126
				jQuery.cleanData( elem.getElementsByTagName("*") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5127
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5128
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5129
			// Remove any remaining nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5130
			while ( elem.firstChild ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5131
				elem.removeChild( elem.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5132
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5133
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5134
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5135
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5136
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5137
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5138
	clone: function( dataAndEvents, deepDataAndEvents ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5139
		dataAndEvents = dataAndEvents == null ? true : dataAndEvents;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5140
		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5141
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5142
		return this.map( function () {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5143
			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5144
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5145
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5146
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5147
	html: function( value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5148
		if ( value === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5149
			return this[0] && this[0].nodeType === 1 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5150
				this[0].innerHTML.replace(rinlinejQuery, "") :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5151
				null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5152
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5153
		// See if we can take a shortcut and just use innerHTML
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5154
		} else if ( typeof value === "string" && !rnocache.test( value ) &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5155
			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5156
			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5157
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5158
			value = value.replace(rxhtmlTag, "<$1></$2>");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5159
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5160
			try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5161
				for ( var i = 0, l = this.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5162
					// Remove element nodes and prevent memory leaks
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5163
					if ( this[i].nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5164
						jQuery.cleanData( this[i].getElementsByTagName("*") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5165
						this[i].innerHTML = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5166
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5167
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5168
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5169
			// If using innerHTML throws an exception, use the fallback method
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5170
			} catch(e) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5171
				this.empty().append( value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5172
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5173
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5174
		} else if ( jQuery.isFunction( value ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5175
			this.each(function(i){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5176
				var self = jQuery( this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5177
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5178
				self.html( value.call(this, i, self.html()) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5179
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5180
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5181
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5182
			this.empty().append( value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5183
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5184
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5185
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5186
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5187
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5188
	replaceWith: function( value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5189
		if ( this[0] && this[0].parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5190
			// Make sure that the elements are removed from the DOM before they are inserted
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5191
			// this can help fix replacing a parent with child elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5192
			if ( jQuery.isFunction( value ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5193
				return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5194
					var self = jQuery(this), old = self.html();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5195
					self.replaceWith( value.call( this, i, old ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5196
				});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5197
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5198
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5199
			if ( typeof value !== "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5200
				value = jQuery( value ).detach();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5201
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5202
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5203
			return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5204
				var next = this.nextSibling,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5205
					parent = this.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5206
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5207
				jQuery( this ).remove();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5208
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5209
				if ( next ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5210
					jQuery(next).before( value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5211
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5212
					jQuery(parent).append( value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5213
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5214
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5215
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5216
			return this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5217
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5218
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5219
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5220
	detach: function( selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5221
		return this.remove( selector, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5222
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5223
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5224
	domManip: function( args, table, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5225
		var results, first, fragment, parent,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5226
			value = args[0],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5227
			scripts = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5228
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5229
		// We can't cloneNode fragments that contain checked, in WebKit
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5230
		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5231
			return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5232
				jQuery(this).domManip( args, table, callback, true );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5233
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5234
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5235
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5236
		if ( jQuery.isFunction(value) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5237
			return this.each(function(i) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5238
				var self = jQuery(this);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5239
				args[0] = value.call(this, i, table ? self.html() : undefined);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5240
				self.domManip( args, table, callback );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5241
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5242
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5243
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5244
		if ( this[0] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5245
			parent = value && value.parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5246
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5247
			// If we're in a fragment, just use that instead of building a new one
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5248
			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5249
				results = { fragment: parent };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5250
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5251
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5252
				results = jQuery.buildFragment( args, this, scripts );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5253
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5254
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5255
			fragment = results.fragment;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5256
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5257
			if ( fragment.childNodes.length === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5258
				first = fragment = fragment.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5259
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5260
				first = fragment.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5261
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5262
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5263
			if ( first ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5264
				table = table && jQuery.nodeName( first, "tr" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5265
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5266
				for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5267
					callback.call(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5268
						table ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5269
							root(this[i], first) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5270
							this[i],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5271
						// Make sure that we do not leak memory by inadvertently discarding
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5272
						// the original fragment (which might have attached data) instead of
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5273
						// using it; in addition, use the original fragment object for the last
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5274
						// item instead of first because it can end up being emptied incorrectly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5275
						// in certain situations (Bug #8070).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5276
						// Fragments from the fragment cache must always be cloned and never used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5277
						// in place.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5278
						results.cacheable || (l > 1 && i < lastIndex) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5279
							jQuery.clone( fragment, true, true ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5280
							fragment
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5281
					);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5282
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5283
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5284
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5285
			if ( scripts.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5286
				jQuery.each( scripts, evalScript );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5287
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5288
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5289
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5290
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5291
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5292
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5293
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5294
function root( elem, cur ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5295
	return jQuery.nodeName(elem, "table") ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5296
		(elem.getElementsByTagName("tbody")[0] ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5297
		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5298
		elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5299
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5300
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5301
function cloneCopyEvent( src, dest ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5302
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5303
	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5304
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5305
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5306
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5307
	var internalKey = jQuery.expando,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5308
			oldData = jQuery.data( src ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5309
			curData = jQuery.data( dest, oldData );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5310
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5311
	// Switch to use the internal data object, if it exists, for the next
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5312
	// stage of data copying
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5313
	if ( (oldData = oldData[ internalKey ]) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5314
		var events = oldData.events;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5315
				curData = curData[ internalKey ] = jQuery.extend({}, oldData);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5316
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5317
		if ( events ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5318
			delete curData.handle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5319
			curData.events = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5320
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5321
			for ( var type in events ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5322
				for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5323
					jQuery.event.add( dest, type, events[ type ][ i ], events[ type ][ i ].data );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5324
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5325
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5326
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5327
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5328
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5329
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5330
function cloneFixAttributes(src, dest) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5331
	// We do not need to do anything for non-Elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5332
	if ( dest.nodeType !== 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5333
		return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5334
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5335
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5336
	var nodeName = dest.nodeName.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5337
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5338
	// clearAttributes removes the attributes, which we don't want,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5339
	// but also removes the attachEvent events, which we *do* want
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5340
	dest.clearAttributes();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5341
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5342
	// mergeAttributes, in contrast, only merges back on the
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5343
	// original attributes, not the events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5344
	dest.mergeAttributes(src);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5345
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5346
	// IE6-8 fail to clone children inside object elements that use
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5347
	// the proprietary classid attribute value (rather than the type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5348
	// attribute) to identify the type of content to display
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5349
	if ( nodeName === "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5350
		dest.outerHTML = src.outerHTML;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5351
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5352
	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5353
		// IE6-8 fails to persist the checked state of a cloned checkbox
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5354
		// or radio button. Worse, IE6-7 fail to give the cloned element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5355
		// a checked appearance if the defaultChecked value isn't also set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5356
		if ( src.checked ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5357
			dest.defaultChecked = dest.checked = src.checked;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5358
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5359
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5360
		// IE6-7 get confused and end up setting the value of a cloned
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5361
		// checkbox/radio button to an empty string instead of "on"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5362
		if ( dest.value !== src.value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5363
			dest.value = src.value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5364
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5365
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5366
	// IE6-8 fails to return the selected option to the default selected
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5367
	// state when cloning options
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5368
	} else if ( nodeName === "option" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5369
		dest.selected = src.defaultSelected;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5370
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5371
	// IE6-8 fails to set the defaultValue to the correct value when
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5372
	// cloning other types of input fields
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5373
	} else if ( nodeName === "input" || nodeName === "textarea" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5374
		dest.defaultValue = src.defaultValue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5375
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5376
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5377
	// Event data gets referenced instead of copied if the expando
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5378
	// gets copied too
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5379
	dest.removeAttribute( jQuery.expando );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5380
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5381
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5382
jQuery.buildFragment = function( args, nodes, scripts ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5383
	var fragment, cacheable, cacheresults,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5384
		doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5385
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5386
	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5387
	// Cloning options loses the selected state, so don't cache them
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5388
	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5389
	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5390
	if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5391
		args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5392
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5393
		cacheable = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5394
		cacheresults = jQuery.fragments[ args[0] ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5395
		if ( cacheresults ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5396
			if ( cacheresults !== 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5397
				fragment = cacheresults;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5398
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5399
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5400
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5401
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5402
	if ( !fragment ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5403
		fragment = doc.createDocumentFragment();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5404
		jQuery.clean( args, doc, fragment, scripts );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5405
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5406
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5407
	if ( cacheable ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5408
		jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5409
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5410
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5411
	return { fragment: fragment, cacheable: cacheable };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5412
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5413
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5414
jQuery.fragments = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5415
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5416
jQuery.each({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5417
	appendTo: "append",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5418
	prependTo: "prepend",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5419
	insertBefore: "before",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5420
	insertAfter: "after",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5421
	replaceAll: "replaceWith"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5422
}, function( name, original ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5423
	jQuery.fn[ name ] = function( selector ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5424
		var ret = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5425
			insert = jQuery( selector ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5426
			parent = this.length === 1 && this[0].parentNode;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5427
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5428
		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5429
			insert[ original ]( this[0] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5430
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5431
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5432
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5433
			for ( var i = 0, l = insert.length; i < l; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5434
				var elems = (i > 0 ? this.clone(true) : this).get();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5435
				jQuery( insert[i] )[ original ]( elems );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5436
				ret = ret.concat( elems );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5437
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5438
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5439
			return this.pushStack( ret, name, insert.selector );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5440
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5441
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5442
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5443
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5444
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5445
	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5446
		var clone = elem.cloneNode(true),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5447
				srcElements,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5448
				destElements,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5449
				i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5450
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5451
		if ( !jQuery.support.noCloneEvent && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5452
			// IE copies events bound via attachEvent when using cloneNode.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5453
			// Calling detachEvent on the clone will also remove the events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5454
			// from the original. In order to get around this, we use some
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5455
			// proprietary methods to clear the events. Thanks to MooTools
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5456
			// guys for this hotness.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5457
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5458
			// Using Sizzle here is crazy slow, so we use getElementsByTagName
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5459
			// instead
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5460
			srcElements = elem.getElementsByTagName("*");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5461
			destElements = clone.getElementsByTagName("*");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5462
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5463
			// Weird iteration because IE will replace the length property
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5464
			// with an element if you are cloning the body and one of the
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5465
			// elements on the page has a name or id of "length"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5466
			for ( i = 0; srcElements[i]; ++i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5467
				cloneFixAttributes( srcElements[i], destElements[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5468
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5469
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5470
			cloneFixAttributes( elem, clone );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5471
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5472
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5473
		// Copy the events from the original to the clone
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5474
		if ( dataAndEvents ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5475
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5476
			cloneCopyEvent( elem, clone );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5477
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5478
			if ( deepDataAndEvents && "getElementsByTagName" in elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5479
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5480
				srcElements = elem.getElementsByTagName("*");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5481
				destElements = clone.getElementsByTagName("*");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5482
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5483
				if ( srcElements.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5484
					for ( i = 0; srcElements[i]; ++i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5485
						cloneCopyEvent( srcElements[i], destElements[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5486
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5487
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5488
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5489
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5490
		// Return the cloned set
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5491
		return clone;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5492
  },
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5493
	clean: function( elems, context, fragment, scripts ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5494
		context = context || document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5495
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5496
		// !context.createElement fails in IE with an error but returns typeof 'object'
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5497
		if ( typeof context.createElement === "undefined" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5498
			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5499
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5500
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5501
		var ret = [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5502
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5503
		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5504
			if ( typeof elem === "number" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5505
				elem += "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5506
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5507
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5508
			if ( !elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5509
				continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5510
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5511
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5512
			// Convert html string into DOM nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5513
			if ( typeof elem === "string" && !rhtml.test( elem ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5514
				elem = context.createTextNode( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5515
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5516
			} else if ( typeof elem === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5517
				// Fix "XHTML"-style tags in all browsers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5518
				elem = elem.replace(rxhtmlTag, "<$1></$2>");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5519
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5520
				// Trim whitespace, otherwise indexOf won't work as expected
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5521
				var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5522
					wrap = wrapMap[ tag ] || wrapMap._default,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5523
					depth = wrap[0],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5524
					div = context.createElement("div");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5525
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5526
				// Go to html and back, then peel off extra wrappers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5527
				div.innerHTML = wrap[1] + elem + wrap[2];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5528
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5529
				// Move to the right depth
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5530
				while ( depth-- ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5531
					div = div.lastChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5532
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5533
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5534
				// Remove IE's autoinserted <tbody> from table fragments
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5535
				if ( !jQuery.support.tbody ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5536
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5537
					// String was a <table>, *may* have spurious <tbody>
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5538
					var hasBody = rtbody.test(elem),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5539
						tbody = tag === "table" && !hasBody ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5540
							div.firstChild && div.firstChild.childNodes :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5541
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5542
							// String was a bare <thead> or <tfoot>
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5543
							wrap[1] === "<table>" && !hasBody ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5544
								div.childNodes :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5545
								[];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5546
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5547
					for ( var j = tbody.length - 1; j >= 0 ; --j ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5548
						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5549
							tbody[ j ].parentNode.removeChild( tbody[ j ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5550
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5551
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5552
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5553
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5554
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5555
				// IE completely kills leading whitespace when innerHTML is used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5556
				if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5557
					div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5558
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5559
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5560
				elem = div.childNodes;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5561
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5562
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5563
			if ( elem.nodeType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5564
				ret.push( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5565
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5566
				ret = jQuery.merge( ret, elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5567
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5568
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5569
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5570
		if ( fragment ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5571
			for ( i = 0; ret[i]; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5572
				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5573
					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5574
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5575
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5576
					if ( ret[i].nodeType === 1 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5577
						ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5578
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5579
					fragment.appendChild( ret[i] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5580
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5581
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5582
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5583
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5584
		return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5585
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5586
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5587
	cleanData: function( elems ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5588
		var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5589
			deleteExpando = jQuery.support.deleteExpando;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5590
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5591
		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5592
			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5593
				continue;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5594
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5595
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5596
			id = elem[ jQuery.expando ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5597
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5598
			if ( id ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5599
				data = cache[ id ] && cache[ id ][ internalKey ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5600
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5601
				if ( data && data.events ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5602
					for ( var type in data.events ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5603
						if ( special[ type ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5604
							jQuery.event.remove( elem, type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5605
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5606
						// This is a shortcut to avoid jQuery.event.remove's overhead
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5607
						} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5608
							jQuery.removeEvent( elem, type, data.handle );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5609
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5610
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5611
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5612
					// Null the DOM reference to avoid IE6/7/8 leak (#7054)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5613
					if ( data.handle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5614
						data.handle.elem = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5615
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5616
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5617
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5618
				if ( deleteExpando ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5619
					delete elem[ jQuery.expando ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5620
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5621
				} else if ( elem.removeAttribute ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5622
					elem.removeAttribute( jQuery.expando );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5623
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5624
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5625
				delete cache[ id ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5626
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5627
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5628
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5629
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5630
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5631
function evalScript( i, elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5632
	if ( elem.src ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5633
		jQuery.ajax({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5634
			url: elem.src,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5635
			async: false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5636
			dataType: "script"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5637
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5638
	} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5639
		jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5640
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5641
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5642
	if ( elem.parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5643
		elem.parentNode.removeChild( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5644
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5645
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5646
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5647
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5648
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5649
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5650
var ralpha = /alpha\([^)]*\)/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5651
	ropacity = /opacity=([^)]*)/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5652
	rdashAlpha = /-([a-z])/ig,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5653
	rupper = /([A-Z])/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5654
	rnumpx = /^-?\d+(?:px)?$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5655
	rnum = /^-?\d/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5656
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5657
	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5658
	cssWidth = [ "Left", "Right" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5659
	cssHeight = [ "Top", "Bottom" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5660
	curCSS,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5661
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5662
	getComputedStyle,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5663
	currentStyle,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5664
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5665
	fcamelCase = function( all, letter ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5666
		return letter.toUpperCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5667
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5668
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5669
jQuery.fn.css = function( name, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5670
	// Setting 'undefined' is a no-op
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5671
	if ( arguments.length === 2 && value === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5672
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5673
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5674
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5675
	return jQuery.access( this, name, value, true, function( elem, name, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5676
		return value !== undefined ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5677
			jQuery.style( elem, name, value ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5678
			jQuery.css( elem, name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5679
	});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5680
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5681
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5682
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5683
	// Add in style property hooks for overriding the default
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5684
	// behavior of getting and setting a style property
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5685
	cssHooks: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5686
		opacity: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5687
			get: function( elem, computed ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5688
				if ( computed ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5689
					// We should always get a number back from opacity
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5690
					var ret = curCSS( elem, "opacity", "opacity" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5691
					return ret === "" ? "1" : ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5692
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5693
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5694
					return elem.style.opacity;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5695
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5696
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5697
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5698
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5699
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5700
	// Exclude the following css properties to add px
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5701
	cssNumber: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5702
		"zIndex": true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5703
		"fontWeight": true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5704
		"opacity": true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5705
		"zoom": true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5706
		"lineHeight": true
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5707
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5708
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5709
	// Add in properties whose names you wish to fix before
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5710
	// setting or getting the value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5711
	cssProps: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5712
		// normalize float css property
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5713
		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5714
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5715
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5716
	// Get and set the style property on a DOM Node
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5717
	style: function( elem, name, value, extra ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5718
		// Don't set styles on text and comment nodes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5719
		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5720
			return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5721
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5722
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5723
		// Make sure that we're working with the right name
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5724
		var ret, origName = jQuery.camelCase( name ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5725
			style = elem.style, hooks = jQuery.cssHooks[ origName ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5726
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5727
		name = jQuery.cssProps[ origName ] || origName;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5728
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5729
		// Check if we're setting a value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5730
		if ( value !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5731
			// Make sure that NaN and null values aren't set. See: #7116
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5732
			if ( typeof value === "number" && isNaN( value ) || value == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5733
				return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5734
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5735
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5736
			// If a number was passed in, add 'px' to the (except for certain CSS properties)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5737
			if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5738
				value += "px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5739
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5740
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5741
			// If a hook was provided, use that value, otherwise just set the specified value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5742
			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5743
				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5744
				// Fixes bug #5509
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5745
				try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5746
					style[ name ] = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5747
				} catch(e) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5748
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5749
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5750
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5751
			// If a hook was provided get the non-computed value from there
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5752
			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5753
				return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5754
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5755
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5756
			// Otherwise just get the value from the style object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5757
			return style[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5758
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5759
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5760
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5761
	css: function( elem, name, extra ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5762
		// Make sure that we're working with the right name
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5763
		var ret, origName = jQuery.camelCase( name ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5764
			hooks = jQuery.cssHooks[ origName ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5765
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5766
		name = jQuery.cssProps[ origName ] || origName;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5767
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5768
		// If a hook was provided get the computed value from there
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5769
		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5770
			return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5771
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5772
		// Otherwise, if a way to get the computed value exists, use that
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5773
		} else if ( curCSS ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5774
			return curCSS( elem, name, origName );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5775
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5776
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5777
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5778
	// A method for quickly swapping in/out CSS properties to get correct calculations
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5779
	swap: function( elem, options, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5780
		var old = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5781
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5782
		// Remember the old values, and insert the new ones
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5783
		for ( var name in options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5784
			old[ name ] = elem.style[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5785
			elem.style[ name ] = options[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5786
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5787
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5788
		callback.call( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5789
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5790
		// Revert the old values
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5791
		for ( name in options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5792
			elem.style[ name ] = old[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5793
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5794
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5795
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5796
	camelCase: function( string ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5797
		return string.replace( rdashAlpha, fcamelCase );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5798
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5799
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5800
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5801
// DEPRECATED, Use jQuery.css() instead
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5802
jQuery.curCSS = jQuery.css;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5803
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5804
jQuery.each(["height", "width"], function( i, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5805
	jQuery.cssHooks[ name ] = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5806
		get: function( elem, computed, extra ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5807
			var val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5808
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5809
			if ( computed ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5810
				if ( elem.offsetWidth !== 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5811
					val = getWH( elem, name, extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5812
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5813
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5814
					jQuery.swap( elem, cssShow, function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5815
						val = getWH( elem, name, extra );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5816
					});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5817
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5818
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5819
				if ( val <= 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5820
					val = curCSS( elem, name, name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5821
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5822
					if ( val === "0px" && currentStyle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5823
						val = currentStyle( elem, name, name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5824
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5825
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5826
					if ( val != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5827
						// Should return "auto" instead of 0, use 0 for
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5828
						// temporary backwards-compat
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5829
						return val === "" || val === "auto" ? "0px" : val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5830
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5831
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5832
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5833
				if ( val < 0 || val == null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5834
					val = elem.style[ name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5835
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5836
					// Should return "auto" instead of 0, use 0 for
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5837
					// temporary backwards-compat
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5838
					return val === "" || val === "auto" ? "0px" : val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5839
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5840
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5841
				return typeof val === "string" ? val : val + "px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5842
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5843
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5844
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5845
		set: function( elem, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5846
			if ( rnumpx.test( value ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5847
				// ignore negative width and height values #1599
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5848
				value = parseFloat(value);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5849
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5850
				if ( value >= 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5851
					return value + "px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5852
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5853
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5854
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5855
				return value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5856
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5857
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5858
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5859
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5860
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5861
if ( !jQuery.support.opacity ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5862
	jQuery.cssHooks.opacity = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5863
		get: function( elem, computed ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5864
			// IE uses filters for opacity
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5865
			return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5866
				(parseFloat(RegExp.$1) / 100) + "" :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5867
				computed ? "1" : "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5868
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5869
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5870
		set: function( elem, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5871
			var style = elem.style;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5872
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5873
			// IE has trouble with opacity if it does not have layout
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5874
			// Force it by setting the zoom level
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5875
			style.zoom = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5876
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5877
			// Set the alpha filter to set the opacity
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5878
			var opacity = jQuery.isNaN(value) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5879
				"" :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5880
				"alpha(opacity=" + value * 100 + ")",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5881
				filter = style.filter || "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5882
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5883
			style.filter = ralpha.test(filter) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5884
				filter.replace(ralpha, opacity) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5885
				style.filter + ' ' + opacity;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5886
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5887
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5888
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5889
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5890
if ( document.defaultView && document.defaultView.getComputedStyle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5891
	getComputedStyle = function( elem, newName, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5892
		var ret, defaultView, computedStyle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5893
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5894
		name = name.replace( rupper, "-$1" ).toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5895
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5896
		if ( !(defaultView = elem.ownerDocument.defaultView) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5897
			return undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5898
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5899
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5900
		if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5901
			ret = computedStyle.getPropertyValue( name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5902
			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5903
				ret = jQuery.style( elem, name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5904
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5905
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5906
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5907
		return ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5908
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5909
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5910
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5911
if ( document.documentElement.currentStyle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5912
	currentStyle = function( elem, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5913
		var left, 
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5914
			ret = elem.currentStyle && elem.currentStyle[ name ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5915
			rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5916
			style = elem.style;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5917
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5918
		// From the awesome hack by Dean Edwards
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5919
		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5920
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5921
		// If we're not dealing with a regular pixel number
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5922
		// but a number that has a weird ending, we need to convert it to pixels
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5923
		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5924
			// Remember the original values
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5925
			left = style.left;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5926
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5927
			// Put in the new values to get a computed value out
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5928
			if ( rsLeft ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5929
				elem.runtimeStyle.left = elem.currentStyle.left;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5930
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5931
			style.left = name === "fontSize" ? "1em" : (ret || 0);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5932
			ret = style.pixelLeft + "px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5933
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5934
			// Revert the changed values
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5935
			style.left = left;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5936
			if ( rsLeft ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5937
				elem.runtimeStyle.left = rsLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5938
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5939
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5940
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5941
		return ret === "" ? "auto" : ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5942
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5943
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5944
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5945
curCSS = getComputedStyle || currentStyle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5946
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5947
function getWH( elem, name, extra ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5948
	var which = name === "width" ? cssWidth : cssHeight,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5949
		val = name === "width" ? elem.offsetWidth : elem.offsetHeight;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5950
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5951
	if ( extra === "border" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5952
		return val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5953
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5954
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5955
	jQuery.each( which, function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5956
		if ( !extra ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5957
			val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5958
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5959
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5960
		if ( extra === "margin" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5961
			val += parseFloat(jQuery.css( elem, "margin" + this )) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5962
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5963
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5964
			val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5965
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5966
	});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5967
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5968
	return val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5969
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5970
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5971
if ( jQuery.expr && jQuery.expr.filters ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5972
	jQuery.expr.filters.hidden = function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5973
		var width = elem.offsetWidth,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5974
			height = elem.offsetHeight;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5975
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5976
		return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5977
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5978
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5979
	jQuery.expr.filters.visible = function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5980
		return !jQuery.expr.filters.hidden( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5981
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5982
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5983
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5984
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5985
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5986
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5987
var r20 = /%20/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5988
	rbracket = /\[\]$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5989
	rCRLF = /\r?\n/g,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5990
	rhash = /#.*$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5991
	rheaders = /^(.*?):\s*(.*?)\r?$/mg, // IE leaves an \r character at EOL
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5992
	rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5993
	rnoContent = /^(?:GET|HEAD)$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5994
	rprotocol = /^\/\//,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5995
	rquery = /\?/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5996
	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5997
	rselectTextarea = /^(?:select|textarea)/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5998
	rspacesAjax = /\s+/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  5999
	rts = /([?&])_=[^&]*/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6000
	rurl = /^(\w+:)\/\/([^\/?#:]+)(?::(\d+))?/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6001
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6002
	// Keep a copy of the old load method
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6003
	_load = jQuery.fn.load,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6004
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6005
	/* Prefilters
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6006
	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6007
	 * 2) These are called:
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6008
	 *    - BEFORE asking for a transport
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6009
	 *    - AFTER param serialization (s.data is a string if s.processData is true)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6010
	 * 3) key is the dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6011
	 * 4) the catchall symbol "*" can be used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6012
	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6013
	 */
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6014
	prefilters = {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6015
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6016
	/* Transports bindings
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6017
	 * 1) key is the dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6018
	 * 2) the catchall symbol "*" can be used
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6019
	 * 3) selection will start with transport dataType and THEN go to "*" if needed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6020
	 */
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6021
	transports = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6022
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6023
// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6024
function addToPrefiltersOrTransports( structure ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6025
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6026
	// dataTypeExpression is optional and defaults to "*"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6027
	return function( dataTypeExpression, func ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6028
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6029
		if ( typeof dataTypeExpression !== "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6030
			func = dataTypeExpression;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6031
			dataTypeExpression = "*";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6032
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6033
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6034
		if ( jQuery.isFunction( func ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6035
			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6036
				i = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6037
				length = dataTypes.length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6038
				dataType,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6039
				list,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6040
				placeBefore;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6041
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6042
			// For each dataType in the dataTypeExpression
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6043
			for(; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6044
				dataType = dataTypes[ i ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6045
				// We control if we're asked to add before
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6046
				// any existing element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6047
				placeBefore = /^\+/.test( dataType );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6048
				if ( placeBefore ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6049
					dataType = dataType.substr( 1 ) || "*";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6050
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6051
				list = structure[ dataType ] = structure[ dataType ] || [];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6052
				// then we add to the structure accordingly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6053
				list[ placeBefore ? "unshift" : "push" ]( func );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6054
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6055
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6056
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6057
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6058
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6059
//Base inspection function for prefilters and transports
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6060
function inspectPrefiltersOrTransports( structure, options, originalOptions, jXHR,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6061
		dataType /* internal */, inspected /* internal */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6062
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6063
	dataType = dataType || options.dataTypes[ 0 ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6064
	inspected = inspected || {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6065
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6066
	inspected[ dataType ] = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6067
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6068
	var list = structure[ dataType ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6069
		i = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6070
		length = list ? list.length : 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6071
		executeOnly = ( structure === prefilters ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6072
		selection;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6073
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6074
	for(; i < length && ( executeOnly || !selection ); i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6075
		selection = list[ i ]( options, originalOptions, jXHR );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6076
		// If we got redirected to another dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6077
		// we try there if not done already
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6078
		if ( typeof selection === "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6079
			if ( inspected[ selection ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6080
				selection = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6081
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6082
				options.dataTypes.unshift( selection );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6083
				selection = inspectPrefiltersOrTransports(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6084
						structure, options, originalOptions, jXHR, selection, inspected );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6085
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6086
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6087
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6088
	// If we're only executing or nothing was selected
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6089
	// we try the catchall dataType if not done already
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6090
	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6091
		selection = inspectPrefiltersOrTransports(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6092
				structure, options, originalOptions, jXHR, "*", inspected );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6093
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6094
	// unnecessary when only executing (prefilters)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6095
	// but it'll be ignored by the caller in that case
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6096
	return selection;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6097
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6098
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6099
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6100
	load: function( url, params, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6101
		if ( typeof url !== "string" && _load ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6102
			return _load.apply( this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6103
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6104
		// Don't do a request if no elements are being requested
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6105
		} else if ( !this.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6106
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6107
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6108
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6109
		var off = url.indexOf( " " );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6110
		if ( off >= 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6111
			var selector = url.slice( off, url.length );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6112
			url = url.slice( 0, off );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6113
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6114
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6115
		// Default to a GET request
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6116
		var type = "GET";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6117
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6118
		// If the second parameter was provided
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6119
		if ( params ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6120
			// If it's a function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6121
			if ( jQuery.isFunction( params ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6122
				// We assume that it's the callback
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6123
				callback = params;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6124
				params = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6125
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6126
			// Otherwise, build a param string
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6127
			} else if ( typeof params === "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6128
				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6129
				type = "POST";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6130
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6131
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6132
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6133
		var self = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6134
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6135
		// Request the remote document
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6136
		jQuery.ajax({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6137
			url: url,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6138
			type: type,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6139
			dataType: "html",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6140
			data: params,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6141
			// Complete callback (responseText is used internally)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6142
			complete: function( jXHR, status, responseText ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6143
				// Store the response as specified by the jXHR object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6144
				responseText = jXHR.responseText;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6145
				// If successful, inject the HTML into all the matched elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6146
				if ( jXHR.isResolved() ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6147
					// #4825: Get the actual response in case
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6148
					// a dataFilter is present in ajaxSettings
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6149
					jXHR.done(function( r ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6150
						responseText = r;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6151
					});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6152
					// See if a selector was specified
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6153
					self.html( selector ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6154
						// Create a dummy div to hold the results
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6155
						jQuery("<div>")
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6156
							// inject the contents of the document in, removing the scripts
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6157
							// to avoid any 'Permission Denied' errors in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6158
							.append(responseText.replace(rscript, ""))
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6159
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6160
							// Locate the specified elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6161
							.find(selector) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6162
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6163
						// If not, just inject the full result
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6164
						responseText );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6165
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6166
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6167
				if ( callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6168
					self.each( callback, [ responseText, status, jXHR ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6169
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6170
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6171
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6172
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6173
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6174
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6175
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6176
	serialize: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6177
		return jQuery.param( this.serializeArray() );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6178
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6179
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6180
	serializeArray: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6181
		return this.map(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6182
			return this.elements ? jQuery.makeArray( this.elements ) : this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6183
		})
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6184
		.filter(function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6185
			return this.name && !this.disabled &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6186
				( this.checked || rselectTextarea.test( this.nodeName ) ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6187
					rinput.test( this.type ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6188
		})
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6189
		.map(function( i, elem ){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6190
			var val = jQuery( this ).val();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6191
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6192
			return val == null ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6193
				null :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6194
				jQuery.isArray( val ) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6195
					jQuery.map( val, function( val, i ){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6196
						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6197
					}) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6198
					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6199
		}).get();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6200
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6201
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6202
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6203
// Attach a bunch of functions for handling common AJAX events
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6204
jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6205
	jQuery.fn[ o ] = function( f ){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6206
		return this.bind( o, f );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6207
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6208
} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6209
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6210
jQuery.each( [ "get", "post" ], function( i, method ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6211
	jQuery[ method ] = function( url, data, callback, type ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6212
		// shift arguments if data argument was omitted
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6213
		if ( jQuery.isFunction( data ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6214
			type = type || callback;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6215
			callback = data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6216
			data = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6217
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6218
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6219
		return jQuery.ajax({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6220
			type: method,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6221
			url: url,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6222
			data: data,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6223
			success: callback,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6224
			dataType: type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6225
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6226
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6227
} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6228
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6229
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6230
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6231
	getScript: function( url, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6232
		return jQuery.get( url, null, callback, "script" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6233
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6234
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6235
	getJSON: function( url, data, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6236
		return jQuery.get( url, data, callback, "json" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6237
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6238
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6239
	ajaxSetup: function( settings ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6240
		jQuery.extend( true, jQuery.ajaxSettings, settings );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6241
		if ( settings.context ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6242
			jQuery.ajaxSettings.context = settings.context;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6243
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6244
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6245
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6246
	ajaxSettings: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6247
		url: location.href,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6248
		global: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6249
		type: "GET",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6250
		contentType: "application/x-www-form-urlencoded",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6251
		processData: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6252
		async: true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6253
		/*
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6254
		timeout: 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6255
		data: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6256
		dataType: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6257
		username: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6258
		password: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6259
		cache: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6260
		traditional: false,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6261
		headers: {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6262
		crossDomain: null,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6263
		*/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6264
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6265
		accepts: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6266
			xml: "application/xml, text/xml",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6267
			html: "text/html",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6268
			text: "text/plain",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6269
			json: "application/json, text/javascript",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6270
			"*": "*/*"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6271
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6272
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6273
		contents: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6274
			xml: /xml/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6275
			html: /html/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6276
			json: /json/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6277
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6278
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6279
		responseFields: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6280
			xml: "responseXML",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6281
			text: "responseText"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6282
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6283
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6284
		// List of data converters
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6285
		// 1) key format is "source_type destination_type" (a single space in-between)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6286
		// 2) the catchall symbol "*" can be used for source_type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6287
		converters: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6288
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6289
			// Convert anything to text
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6290
			"* text": window.String,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6291
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6292
			// Text to html (true = no transformation)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6293
			"text html": true,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6294
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6295
			// Evaluate text as a json expression
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6296
			"text json": jQuery.parseJSON,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6297
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6298
			// Parse text as xml
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6299
			"text xml": jQuery.parseXML
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6300
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6301
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6302
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6303
	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6304
	ajaxTransport: addToPrefiltersOrTransports( transports ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6305
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6306
	// Main method
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6307
	ajax: function( url, options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6308
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6309
		// If options is not an object,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6310
		// we simulate pre-1.5 signature
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6311
		if ( typeof options !== "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6312
			options = url;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6313
			url = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6314
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6315
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6316
		// Force options to be an object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6317
		options = options || {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6318
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6319
		var // Create the final options object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6320
			s = jQuery.extend( true, {}, jQuery.ajaxSettings, options ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6321
			// Callbacks contexts
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6322
			// We force the original context if it exists
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6323
			// or take it from jQuery.ajaxSettings otherwise
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6324
			// (plain objects used as context get extended)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6325
			callbackContext =
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6326
				( s.context = ( "context" in options ? options : jQuery.ajaxSettings ).context ) || s,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6327
			globalEventContext = callbackContext === s ? jQuery.event : jQuery( callbackContext ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6328
			// Deferreds
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6329
			deferred = jQuery.Deferred(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6330
			completeDeferred = jQuery._Deferred(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6331
			// Status-dependent callbacks
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6332
			statusCode = s.statusCode || {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6333
			// Headers (they are sent all at once)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6334
			requestHeaders = {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6335
			// Response headers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6336
			responseHeadersString,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6337
			responseHeaders,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6338
			// transport
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6339
			transport,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6340
			// timeout handle
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6341
			timeoutTimer,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6342
			// Cross-domain detection vars
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6343
			loc = document.location,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6344
			protocol = loc.protocol || "http:",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6345
			parts,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6346
			// The jXHR state
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6347
			state = 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6348
			// Loop variable
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6349
			i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6350
			// Fake xhr
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6351
			jXHR = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6352
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6353
				readyState: 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6354
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6355
				// Caches the header
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6356
				setRequestHeader: function( name, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6357
					if ( state === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6358
						requestHeaders[ name.toLowerCase() ] = value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6359
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6360
					return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6361
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6362
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6363
				// Raw string
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6364
				getAllResponseHeaders: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6365
					return state === 2 ? responseHeadersString : null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6366
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6367
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6368
				// Builds headers hashtable if needed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6369
				getResponseHeader: function( key ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6370
					var match;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6371
					if ( state === 2 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6372
						if ( !responseHeaders ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6373
							responseHeaders = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6374
							while( ( match = rheaders.exec( responseHeadersString ) ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6375
								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6376
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6377
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6378
						match = responseHeaders[ key.toLowerCase() ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6379
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6380
					return match || null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6381
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6382
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6383
				// Cancel the request
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6384
				abort: function( statusText ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6385
					statusText = statusText || "abort";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6386
					if ( transport ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6387
						transport.abort( statusText );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6388
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6389
					done( 0, statusText );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6390
					return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6391
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6392
			};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6393
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6394
		// Callback for when everything is done
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6395
		// It is defined here because jslint complains if it is declared
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6396
		// at the end of the function (which would be more logical and readable)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6397
		function done( status, statusText, responses, headers) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6398
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6399
			// Called once
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6400
			if ( state === 2 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6401
				return;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6402
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6403
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6404
			// State is "done" now
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6405
			state = 2;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6406
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6407
			// Clear timeout if it exists
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6408
			if ( timeoutTimer ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6409
				clearTimeout( timeoutTimer );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6410
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6411
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6412
			// Dereference transport for early garbage collection
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6413
			// (no matter how long the jXHR object will be used)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6414
			transport = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6415
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6416
			// Cache response headers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6417
			responseHeadersString = headers || "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6418
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6419
			// Set readyState
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6420
			jXHR.readyState = status ? 4 : 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6421
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6422
			var isSuccess,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6423
				success,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6424
				error,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6425
				response = responses ? ajaxHandleResponses( s, jXHR, responses ) : undefined,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6426
				lastModified,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6427
				etag;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6428
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6429
			// If successful, handle type chaining
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6430
			if ( status >= 200 && status < 300 || status === 304 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6431
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6432
				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6433
				if ( s.ifModified ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6434
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6435
					if ( ( lastModified = jXHR.getResponseHeader( "Last-Modified" ) ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6436
						jQuery.lastModified[ s.url ] = lastModified;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6437
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6438
					if ( ( etag = jXHR.getResponseHeader( "Etag" ) ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6439
						jQuery.etag[ s.url ] = etag;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6440
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6441
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6442
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6443
				// If not modified
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6444
				if ( status === 304 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6445
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6446
					statusText = "notmodified";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6447
					isSuccess = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6448
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6449
				// If we have data
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6450
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6451
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6452
					try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6453
						success = ajaxConvert( s, response );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6454
						statusText = "success";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6455
						isSuccess = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6456
					} catch(e) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6457
						// We have a parsererror
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6458
						statusText = "parsererror";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6459
						error = e;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6460
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6461
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6462
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6463
				// We extract error from statusText
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6464
				// then normalize statusText and status for non-aborts
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6465
				error = statusText;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6466
				if( status ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6467
					statusText = "error";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6468
					if ( status < 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6469
						status = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6470
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6471
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6472
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6473
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6474
			// Set data for the fake xhr object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6475
			jXHR.status = status;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6476
			jXHR.statusText = statusText;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6477
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6478
			// Success/Error
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6479
			if ( isSuccess ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6480
				deferred.resolveWith( callbackContext, [ success, statusText, jXHR ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6481
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6482
				deferred.rejectWith( callbackContext, [ jXHR, statusText, error ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6483
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6484
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6485
			// Status-dependent callbacks
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6486
			jXHR.statusCode( statusCode );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6487
			statusCode = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6488
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6489
			if ( s.global ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6490
				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6491
						[ jXHR, s, isSuccess ? success : error ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6492
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6493
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6494
			// Complete
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6495
			completeDeferred.resolveWith( callbackContext, [ jXHR, statusText ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6496
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6497
			if ( s.global ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6498
				globalEventContext.trigger( "ajaxComplete", [ jXHR, s] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6499
				// Handle the global AJAX counter
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6500
				if ( !( --jQuery.active ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6501
					jQuery.event.trigger( "ajaxStop" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6502
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6503
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6504
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6505
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6506
		// Attach deferreds
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6507
		deferred.promise( jXHR );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6508
		jXHR.success = jXHR.done;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6509
		jXHR.error = jXHR.fail;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6510
		jXHR.complete = completeDeferred.done;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6511
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6512
		// Status-dependent callbacks
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6513
		jXHR.statusCode = function( map ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6514
			if ( map ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6515
				var tmp;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6516
				if ( state < 2 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6517
					for( tmp in map ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6518
						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6519
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6520
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6521
					tmp = map[ jXHR.status ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6522
					jXHR.then( tmp, tmp );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6523
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6524
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6525
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6526
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6527
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6528
		// Remove hash character (#7531: and string promotion)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6529
		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6530
		// We also use the url parameter if available
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6531
		s.url = ( "" + ( url || s.url ) ).replace( rhash, "" ).replace( rprotocol, protocol + "//" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6532
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6533
		// Extract dataTypes list
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6534
		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6535
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6536
		// Determine if a cross-domain request is in order
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6537
		if ( !s.crossDomain ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6538
			parts = rurl.exec( s.url.toLowerCase() );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6539
			s.crossDomain = !!( parts &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6540
				( parts[ 1 ] != protocol || parts[ 2 ] != loc.hostname ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6541
					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6542
						( loc.port || ( protocol === "http:" ? 80 : 443 ) ) )
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6543
			);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6544
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6545
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6546
		// Convert data if not already a string
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6547
		if ( s.data && s.processData && typeof s.data !== "string" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6548
			s.data = jQuery.param( s.data, s.traditional );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6549
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6550
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6551
		// Apply prefilters
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6552
		inspectPrefiltersOrTransports( prefilters, s, options, jXHR );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6553
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6554
		// Uppercase the type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6555
		s.type = s.type.toUpperCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6556
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6557
		// Determine if request has content
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6558
		s.hasContent = !rnoContent.test( s.type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6559
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6560
		// Watch for a new set of requests
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6561
		if ( s.global && jQuery.active++ === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6562
			jQuery.event.trigger( "ajaxStart" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6563
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6564
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6565
		// More options handling for requests with no content
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6566
		if ( !s.hasContent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6567
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6568
			// If data is available, append data to url
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6569
			if ( s.data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6570
				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6571
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6572
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6573
			// Add anti-cache in url if needed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6574
			if ( s.cache === false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6575
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6576
				var ts = jQuery.now(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6577
					// try replacing _= if it is there
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6578
					ret = s.url.replace( rts, "$1_=" + ts );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6579
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6580
				// if nothing was replaced, add timestamp to the end
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6581
				s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6582
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6583
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6584
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6585
		// Set the correct header, if data is being sent
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6586
		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6587
			requestHeaders[ "content-type" ] = s.contentType;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6588
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6589
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6590
		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6591
		if ( s.ifModified ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6592
			if ( jQuery.lastModified[ s.url ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6593
				requestHeaders[ "if-modified-since" ] = jQuery.lastModified[ s.url ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6594
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6595
			if ( jQuery.etag[ s.url ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6596
				requestHeaders[ "if-none-match" ] = jQuery.etag[ s.url ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6597
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6598
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6599
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6600
		// Set the Accepts header for the server, depending on the dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6601
		requestHeaders.accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6602
			s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6603
			s.accepts[ "*" ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6604
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6605
		// Check for headers option
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6606
		for ( i in s.headers ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6607
			requestHeaders[ i.toLowerCase() ] = s.headers[ i ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6608
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6609
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6610
		// Allow custom headers/mimetypes and early abort
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6611
		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jXHR, s ) === false || state === 2 ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6612
				// Abort if not done already
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6613
				done( 0, "abort" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6614
				// Return false
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6615
				jXHR = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6616
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6617
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6618
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6619
			// Install callbacks on deferreds
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6620
			for ( i in { success: 1, error: 1, complete: 1 } ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6621
				jXHR[ i ]( s[ i ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6622
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6623
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6624
			// Get transport
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6625
			transport = inspectPrefiltersOrTransports( transports, s, options, jXHR );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6626
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6627
			// If no transport, we auto-abort
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6628
			if ( !transport ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6629
				done( -1, "No Transport" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6630
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6631
				// Set state as sending
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6632
				state = jXHR.readyState = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6633
				// Send global event
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6634
				if ( s.global ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6635
					globalEventContext.trigger( "ajaxSend", [ jXHR, s ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6636
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6637
				// Timeout
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6638
				if ( s.async && s.timeout > 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6639
					timeoutTimer = setTimeout( function(){
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6640
						jXHR.abort( "timeout" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6641
					}, s.timeout );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6642
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6643
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6644
				try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6645
					transport.send( requestHeaders, done );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6646
				} catch (e) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6647
					// Propagate exception as error if not done
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6648
					if ( status < 2 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6649
						done( -1, e );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6650
					// Simply rethrow otherwise
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6651
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6652
						jQuery.error( e );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6653
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6654
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6655
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6656
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6657
		return jXHR;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6658
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6659
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6660
	// Serialize an array of form elements or a set of
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6661
	// key/values into a query string
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6662
	param: function( a, traditional ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6663
		var s = [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6664
			add = function( key, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6665
				// If value is a function, invoke it and return its value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6666
				value = jQuery.isFunction( value ) ? value() : value;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6667
				s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6668
			};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6669
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6670
		// Set traditional to true for jQuery <= 1.3.2 behavior.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6671
		if ( traditional === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6672
			traditional = jQuery.ajaxSettings.traditional;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6673
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6674
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6675
		// If an array was passed in, assume that it is an array of form elements.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6676
		if ( jQuery.isArray( a ) || a.jquery ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6677
			// Serialize the form elements
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6678
			jQuery.each( a, function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6679
				add( this.name, this.value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6680
			} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6681
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6682
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6683
			// If traditional, encode the "old" way (the way 1.3.2 or older
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6684
			// did it), otherwise encode params recursively.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6685
			for ( var prefix in a ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6686
				buildParams( prefix, a[ prefix ], traditional, add );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6687
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6688
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6689
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6690
		// Return the resulting serialization
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6691
		return s.join( "&" ).replace( r20, "+" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6692
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6693
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6694
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6695
function buildParams( prefix, obj, traditional, add ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6696
	if ( jQuery.isArray( obj ) && obj.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6697
		// Serialize array item.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6698
		jQuery.each( obj, function( i, v ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6699
			if ( traditional || rbracket.test( prefix ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6700
				// Treat each array item as a scalar.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6701
				add( prefix, v );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6702
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6703
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6704
				// If array item is non-scalar (array or object), encode its
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6705
				// numeric index to resolve deserialization ambiguity issues.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6706
				// Note that rack (as of 1.0.0) can't currently deserialize
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6707
				// nested arrays properly, and attempting to do so may cause
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6708
				// a server error. Possible fixes are to modify rack's
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6709
				// deserialization algorithm or to provide an option or flag
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6710
				// to force array serialization to be shallow.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6711
				buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6712
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6713
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6714
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6715
	} else if ( !traditional && obj != null && typeof obj === "object" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6716
		// If we see an array here, it is empty and should be treated as an empty
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6717
		// object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6718
		if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6719
			add( prefix, "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6720
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6721
		// Serialize object item.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6722
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6723
			jQuery.each( obj, function( k, v ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6724
				buildParams( prefix + "[" + k + "]", v, traditional, add );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6725
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6726
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6727
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6728
	} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6729
		// Serialize scalar item.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6730
		add( prefix, obj );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6731
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6732
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6733
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6734
// This is still on the jQuery object... for now
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6735
// Want to move this to jQuery.ajax some day
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6736
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6737
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6738
	// Counter for holding the number of active queries
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6739
	active: 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6740
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6741
	// Last-Modified header cache for next request
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6742
	lastModified: {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6743
	etag: {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6744
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6745
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6746
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6747
/* Handles responses to an ajax request:
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6748
 * - sets all responseXXX fields accordingly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6749
 * - finds the right dataType (mediates between content-type and expected dataType)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6750
 * - returns the corresponding response
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6751
 */
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6752
function ajaxHandleResponses( s, jXHR, responses ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6753
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6754
	var contents = s.contents,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6755
		dataTypes = s.dataTypes,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6756
		responseFields = s.responseFields,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6757
		ct,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6758
		type,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6759
		finalDataType,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6760
		firstDataType;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6761
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6762
	// Fill responseXXX fields
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6763
	for( type in responseFields ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6764
		if ( type in responses ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6765
			jXHR[ responseFields[type] ] = responses[ type ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6766
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6767
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6768
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6769
	// Remove auto dataType and get content-type in the process
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6770
	while( dataTypes[ 0 ] === "*" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6771
		dataTypes.shift();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6772
		if ( ct === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6773
			ct = jXHR.getResponseHeader( "content-type" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6774
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6775
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6776
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6777
	// Check if we're dealing with a known content-type
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6778
	if ( ct ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6779
		for ( type in contents ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6780
			if ( contents[ type ] && contents[ type ].test( ct ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6781
				dataTypes.unshift( type );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6782
				break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6783
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6784
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6785
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6786
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6787
	// Check to see if we have a response for the expected dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6788
	if ( dataTypes[ 0 ] in responses ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6789
		finalDataType = dataTypes[ 0 ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6790
	} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6791
		// Try convertible dataTypes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6792
		for ( type in responses ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6793
			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6794
				finalDataType = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6795
				break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6796
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6797
			if ( !firstDataType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6798
				firstDataType = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6799
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6800
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6801
		// Or just use first one
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6802
		finalDataType = finalDataType || firstDataType;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6803
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6804
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6805
	// If we found a dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6806
	// We add the dataType to the list if needed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6807
	// and return the corresponding response
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6808
	if ( finalDataType ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6809
		if ( finalDataType !== dataTypes[ 0 ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6810
			dataTypes.unshift( finalDataType );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6811
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6812
		return responses[ finalDataType ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6813
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6814
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6815
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6816
// Chain conversions given the request and the original response
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6817
function ajaxConvert( s, response ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6818
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6819
	// Apply the dataFilter if provided
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6820
	if ( s.dataFilter ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6821
		response = s.dataFilter( response, s.dataType );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6822
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6823
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6824
	var dataTypes = s.dataTypes,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6825
		converters = s.converters,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6826
		i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6827
		length = dataTypes.length,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6828
		tmp,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6829
		// Current and previous dataTypes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6830
		current = dataTypes[ 0 ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6831
		prev,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6832
		// Conversion expression
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6833
		conversion,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6834
		// Conversion function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6835
		conv,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6836
		// Conversion functions (transitive conversion)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6837
		conv1,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6838
		conv2;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6839
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6840
	// For each dataType in the chain
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6841
	for( i = 1; i < length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6842
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6843
		// Get the dataTypes
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6844
		prev = current;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6845
		current = dataTypes[ i ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6846
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6847
		// If current is auto dataType, update it to prev
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6848
		if( current === "*" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6849
			current = prev;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6850
		// If no auto and dataTypes are actually different
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6851
		} else if ( prev !== "*" && prev !== current ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6852
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6853
			// Get the converter
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6854
			conversion = prev + " " + current;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6855
			conv = converters[ conversion ] || converters[ "* " + current ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6856
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6857
			// If there is no direct converter, search transitively
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6858
			if ( !conv ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6859
				conv2 = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6860
				for( conv1 in converters ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6861
					tmp = conv1.split( " " );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6862
					if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6863
						conv2 = converters[ tmp[1] + " " + current ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6864
						if ( conv2 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6865
							conv1 = converters[ conv1 ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6866
							if ( conv1 === true ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6867
								conv = conv2;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6868
							} else if ( conv2 === true ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6869
								conv = conv1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6870
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6871
							break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6872
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6873
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6874
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6875
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6876
			// If we found no converter, dispatch an error
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6877
			if ( !( conv || conv2 ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6878
				jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6879
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6880
			// If found converter is not an equivalence
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6881
			if ( conv !== true ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6882
				// Convert with 1 or 2 converters accordingly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6883
				response = conv ? conv( response ) : conv2( conv1(response) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6884
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6885
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6886
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6887
	return response;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6888
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6889
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6890
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6891
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6892
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6893
var jsc = jQuery.now(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6894
	jsre = /(\=)\?(&|$)|()\?\?()/i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6895
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6896
// Default jsonp settings
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6897
jQuery.ajaxSetup({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6898
	jsonp: "callback",
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6899
	jsonpCallback: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6900
		return jQuery.expando + "_" + ( jsc++ );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6901
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6902
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6903
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6904
// Detect, normalize options and install callbacks for jsonp requests
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6905
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, dataIsString /* internal */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6906
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6907
	dataIsString = ( typeof s.data === "string" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6908
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6909
	if ( s.dataTypes[ 0 ] === "jsonp" ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6910
		originalSettings.jsonpCallback ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6911
		originalSettings.jsonp != null ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6912
		s.jsonp !== false && ( jsre.test( s.url ) ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6913
				dataIsString && jsre.test( s.data ) ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6914
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6915
		var responseContainer,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6916
			jsonpCallback = s.jsonpCallback =
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6917
				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6918
			previous = window[ jsonpCallback ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6919
			url = s.url,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6920
			data = s.data,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6921
			replace = "$1" + jsonpCallback + "$2";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6922
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6923
		if ( s.jsonp !== false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6924
			url = url.replace( jsre, replace );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6925
			if ( s.url === url ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6926
				if ( dataIsString ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6927
					data = data.replace( jsre, replace );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6928
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6929
				if ( s.data === data ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6930
					// Add callback manually
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6931
					url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6932
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6933
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6934
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6935
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6936
		s.url = url;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6937
		s.data = data;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6938
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6939
		window[ jsonpCallback ] = function( response ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6940
			responseContainer = [ response ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6941
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6942
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6943
		s.complete = [ function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6944
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6945
			// Set callback back to previous value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6946
			window[ jsonpCallback ] = previous;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6947
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6948
			// Call if it was a function and we have a response
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6949
			if ( previous) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6950
				if ( responseContainer && jQuery.isFunction( previous ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6951
					window[ jsonpCallback ] ( responseContainer[ 0 ] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6952
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6953
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6954
				// else, more memory leak avoidance
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6955
				try{
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6956
					delete window[ jsonpCallback ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6957
				} catch( e ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6958
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6959
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6960
		}, s.complete ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6961
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6962
		// Use data converter to retrieve json after script execution
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6963
		s.converters["script json"] = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6964
			if ( ! responseContainer ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6965
				jQuery.error( jsonpCallback + " was not called" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6966
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6967
			return responseContainer[ 0 ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6968
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6969
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6970
		// force json dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6971
		s.dataTypes[ 0 ] = "json";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6972
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6973
		// Delegate to script
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6974
		return "script";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6975
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6976
} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6977
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6978
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6979
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6980
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6981
// Install script dataType
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6982
jQuery.ajaxSetup({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6983
	accepts: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6984
		script: "text/javascript, application/javascript"
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6985
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6986
	contents: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6987
		script: /javascript/
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6988
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6989
	converters: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6990
		"text script": function( text ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6991
			jQuery.globalEval( text );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6992
			return text;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6993
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6994
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6995
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6996
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6997
// Handle cache's special case and global
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6998
jQuery.ajaxPrefilter( "script", function( s ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  6999
	if ( s.cache === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7000
		s.cache = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7001
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7002
	if ( s.crossDomain ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7003
		s.type = "GET";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7004
		s.global = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7005
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7006
} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7007
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7008
// Bind script tag hack transport
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7009
jQuery.ajaxTransport( "script", function(s) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7010
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7011
	// This transport only deals with cross domain requests
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7012
	if ( s.crossDomain ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7013
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7014
		var script,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7015
			head = document.getElementsByTagName( "head" )[ 0 ] || document.documentElement;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7016
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7017
		return {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7018
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7019
			send: function( _, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7020
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7021
				script = document.createElement( "script" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7022
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7023
				script.async = "async";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7024
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7025
				if ( s.scriptCharset ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7026
					script.charset = s.scriptCharset;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7027
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7028
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7029
				script.src = s.url;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7030
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7031
				// Attach handlers for all browsers
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7032
				script.onload = script.onreadystatechange = function( _, isAbort ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7033
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7034
					if ( !script.readyState || /loaded|complete/.test( script.readyState ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7035
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7036
						// Handle memory leak in IE
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7037
						script.onload = script.onreadystatechange = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7038
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7039
						// Remove the script
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7040
						if ( head && script.parentNode ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7041
							head.removeChild( script );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7042
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7043
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7044
						// Dereference the script
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7045
						script = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7046
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7047
						// Callback if not abort
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7048
						if ( !isAbort ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7049
							callback( 200, "success" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7050
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7051
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7052
				};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7053
				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7054
				// This arises when a base node is used (#2709 and #4378).
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7055
				head.insertBefore( script, head.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7056
			},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7057
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7058
			abort: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7059
				if ( script ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7060
					script.onload( 0, 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7061
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7062
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7063
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7064
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7065
} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7066
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7067
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7068
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7069
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7070
var // Next active xhr id
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7071
	xhrId = jQuery.now(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7072
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7073
	// active xhrs
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7074
	xhrs = {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7075
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7076
	// #5280: see below
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7077
	xhrUnloadAbortInstalled,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7078
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7079
	// XHR used to determine supports properties
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7080
	testXHR;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7081
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7082
// Create the request object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7083
// (This is still attached to ajaxSettings for backward compatibility)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7084
jQuery.ajaxSettings.xhr = window.ActiveXObject ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7085
	/* Microsoft failed to properly
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7086
	 * implement the XMLHttpRequest in IE7 (can't request local files),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7087
	 * so we use the ActiveXObject when it is available
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7088
	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7089
	 * we need a fallback.
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7090
	 */
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7091
	function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7092
		if ( window.location.protocol !== "file:" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7093
			try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7094
				return new window.XMLHttpRequest();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7095
			} catch( xhrError ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7096
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7097
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7098
		try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7099
			return new window.ActiveXObject("Microsoft.XMLHTTP");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7100
		} catch( activeError ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7101
	} :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7102
	// For all other browsers, use the standard XMLHttpRequest object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7103
	function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7104
		return new window.XMLHttpRequest();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7105
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7106
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7107
// Test if we can create an xhr object
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7108
try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7109
	testXHR = jQuery.ajaxSettings.xhr();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7110
} catch( xhrCreationException ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7111
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7112
//Does this browser support XHR requests?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7113
jQuery.support.ajax = !!testXHR;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7114
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7115
// Does this browser support crossDomain XHR requests
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7116
jQuery.support.cors = testXHR && ( "withCredentials" in testXHR );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7117
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7118
// No need for the temporary xhr anymore
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7119
testXHR = undefined;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7120
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7121
// Create transport if the browser can provide an xhr
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7122
if ( jQuery.support.ajax ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7123
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7124
	jQuery.ajaxTransport(function( s ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7125
		// Cross domain only allowed if supported through XMLHttpRequest
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7126
		if ( !s.crossDomain || jQuery.support.cors ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7127
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7128
			var callback;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7129
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7130
			return {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7131
				send: function( headers, complete ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7132
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7133
					// #5280: we need to abort on unload or IE will keep connections alive
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7134
					if ( !xhrUnloadAbortInstalled ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7135
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7136
						xhrUnloadAbortInstalled = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7137
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7138
						jQuery(window).bind( "unload", function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7139
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7140
							// Abort all pending requests
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7141
							jQuery.each( xhrs, function( _, xhr ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7142
								if ( xhr.onreadystatechange ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7143
									xhr.onreadystatechange( 1 );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7144
								}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7145
							} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7146
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7147
						} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7148
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7149
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7150
					// Get a new xhr
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7151
					var xhr = s.xhr(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7152
						handle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7153
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7154
					// Open the socket
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7155
					// Passing null username, generates a login popup on Opera (#2865)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7156
					if ( s.username ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7157
						xhr.open( s.type, s.url, s.async, s.username, s.password );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7158
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7159
						xhr.open( s.type, s.url, s.async );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7160
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7161
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7162
					// Requested-With header
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7163
					// Not set for crossDomain requests with no content
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7164
					// (see why at http://trac.dojotoolkit.org/ticket/9486)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7165
					// Won't change header if already provided
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7166
					if ( !( s.crossDomain && !s.hasContent ) && !headers["x-requested-with"] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7167
						headers[ "x-requested-with" ] = "XMLHttpRequest";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7168
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7169
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7170
					// Need an extra try/catch for cross domain requests in Firefox 3
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7171
					try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7172
						jQuery.each( headers, function( key, value ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7173
							xhr.setRequestHeader( key, value );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7174
						} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7175
					} catch( _ ) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7176
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7177
					// Do send the request
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7178
					// This may raise an exception which is actually
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7179
					// handled in jQuery.ajax (so no try/catch here)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7180
					xhr.send( ( s.hasContent && s.data ) || null );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7181
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7182
					// Listener
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7183
					callback = function( _, isAbort ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7184
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7185
						// Was never called and is aborted or complete
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7186
						if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7187
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7188
							// Only called once
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7189
							callback = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7190
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7191
							// Do not keep as active anymore
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7192
							if ( handle ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7193
								xhr.onreadystatechange = jQuery.noop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7194
								delete xhrs[ handle ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7195
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7196
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7197
							// If it's an abort
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7198
							if ( isAbort ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7199
								// Abort it manually if needed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7200
								if ( xhr.readyState !== 4 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7201
									xhr.abort();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7202
								}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7203
							} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7204
								// Get info
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7205
								var status = xhr.status,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7206
									statusText,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7207
									responseHeaders = xhr.getAllResponseHeaders(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7208
									responses = {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7209
									xml = xhr.responseXML;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7210
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7211
								// Construct response list
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7212
								if ( xml && xml.documentElement /* #4958 */ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7213
									responses.xml = xml;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7214
								}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7215
								responses.text = xhr.responseText;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7216
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7217
								// Firefox throws an exception when accessing
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7218
								// statusText for faulty cross-domain requests
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7219
								try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7220
									statusText = xhr.statusText;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7221
								} catch( e ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7222
									// We normalize with Webkit giving an empty statusText
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7223
									statusText = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7224
								}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7225
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7226
								// Filter status for non standard behaviours
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7227
								status =
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7228
									// Opera returns 0 when it should be 304
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7229
									// Webkit returns 0 for failing cross-domain no matter the real status
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7230
									status === 0 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7231
										(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7232
											// Webkit, Firefox: filter out faulty cross-domain requests
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7233
											!s.crossDomain || statusText ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7234
											(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7235
												// Opera: filter out real aborts #6060
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7236
												responseHeaders ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7237
												304 :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7238
												0
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7239
											) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7240
											// We assume 302 but could be anything cross-domain related
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7241
											302
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7242
										) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7243
										(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7244
											// IE sometimes returns 1223 when it should be 204 (see #1450)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7245
											status == 1223 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7246
												204 :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7247
												status
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7248
										);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7249
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7250
								// Call complete
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7251
								complete( status, statusText, responses, responseHeaders );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7252
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7253
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7254
					};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7255
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7256
					// if we're in sync mode or it's in cache
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7257
					// and has been retrieved directly (IE6 & IE7)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7258
					// we need to manually fire the callback
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7259
					if ( !s.async || xhr.readyState === 4 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7260
						callback();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7261
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7262
						// Add to list of active xhrs
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7263
						handle = xhrId++;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7264
						xhrs[ handle ] = xhr;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7265
						xhr.onreadystatechange = callback;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7266
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7267
				},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7268
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7269
				abort: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7270
					if ( callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7271
						callback(0,1);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7272
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7273
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7274
			};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7275
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7276
	});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7277
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7278
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7279
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7280
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7281
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7282
var elemdisplay = {},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7283
	rfxtypes = /^(?:toggle|show|hide)$/,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7284
	rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7285
	timerId,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7286
	fxAttrs = [
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7287
		// height animations
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7288
		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7289
		// width animations
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7290
		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7291
		// opacity animations
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7292
		[ "opacity" ]
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7293
	];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7294
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7295
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7296
	show: function( speed, easing, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7297
		var elem, display;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7298
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7299
		if ( speed || speed === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7300
			return this.animate( genFx("show", 3), speed, easing, callback);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7301
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7302
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7303
			for ( var i = 0, j = this.length; i < j; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7304
				elem = this[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7305
				display = elem.style.display;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7306
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7307
				// Reset the inline display of this element to learn if it is
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7308
				// being hidden by cascaded rules or not
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7309
				if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7310
					display = elem.style.display = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7311
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7312
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7313
				// Set elements which have been overridden with display: none
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7314
				// in a stylesheet to whatever the default browser style is
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7315
				// for such an element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7316
				if ( display === "" && jQuery.css( elem, "display" ) === "none" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7317
					jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7318
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7319
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7320
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7321
			// Set the display of most of the elements in a second loop
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7322
			// to avoid the constant reflow
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7323
			for ( i = 0; i < j; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7324
				elem = this[i];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7325
				display = elem.style.display;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7326
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7327
				if ( display === "" || display === "none" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7328
					elem.style.display = jQuery._data(elem, "olddisplay") || "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7329
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7330
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7331
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7332
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7333
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7334
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7335
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7336
	hide: function( speed, easing, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7337
		if ( speed || speed === 0 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7338
			return this.animate( genFx("hide", 3), speed, easing, callback);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7339
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7340
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7341
			for ( var i = 0, j = this.length; i < j; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7342
				var display = jQuery.css( this[i], "display" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7343
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7344
				if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7345
					jQuery._data( this[i], "olddisplay", display );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7346
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7347
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7348
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7349
			// Set the display of the elements in a second loop
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7350
			// to avoid the constant reflow
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7351
			for ( i = 0; i < j; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7352
				this[i].style.display = "none";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7353
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7354
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7355
			return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7356
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7357
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7358
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7359
	// Save the old toggle function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7360
	_toggle: jQuery.fn.toggle,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7361
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7362
	toggle: function( fn, fn2, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7363
		var bool = typeof fn === "boolean";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7364
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7365
		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7366
			this._toggle.apply( this, arguments );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7367
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7368
		} else if ( fn == null || bool ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7369
			this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7370
				var state = bool ? fn : jQuery(this).is(":hidden");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7371
				jQuery(this)[ state ? "show" : "hide" ]();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7372
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7373
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7374
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7375
			this.animate(genFx("toggle", 3), fn, fn2, callback);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7376
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7377
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7378
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7379
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7380
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7381
	fadeTo: function( speed, to, easing, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7382
		return this.filter(":hidden").css("opacity", 0).show().end()
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7383
					.animate({opacity: to}, speed, easing, callback);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7384
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7385
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7386
	animate: function( prop, speed, easing, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7387
		var optall = jQuery.speed(speed, easing, callback);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7388
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7389
		if ( jQuery.isEmptyObject( prop ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7390
			return this.each( optall.complete );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7391
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7392
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7393
		return this[ optall.queue === false ? "each" : "queue" ](function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7394
			// XXX 'this' does not always have a nodeName when running the
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7395
			// test suite
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7396
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7397
			var opt = jQuery.extend({}, optall), p,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7398
				isElement = this.nodeType === 1,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7399
				hidden = isElement && jQuery(this).is(":hidden"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7400
				self = this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7401
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7402
			for ( p in prop ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7403
				var name = jQuery.camelCase( p );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7404
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7405
				if ( p !== name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7406
					prop[ name ] = prop[ p ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7407
					delete prop[ p ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7408
					p = name;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7409
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7410
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7411
				if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7412
					return opt.complete.call(this);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7413
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7414
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7415
				if ( isElement && ( p === "height" || p === "width" ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7416
					// Make sure that nothing sneaks out
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7417
					// Record all 3 overflow attributes because IE does not
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7418
					// change the overflow attribute when overflowX and
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7419
					// overflowY are set to the same value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7420
					opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7421
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7422
					// Set display property to inline-block for height/width
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7423
					// animations on inline elements that are having width/height
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7424
					// animated
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7425
					if ( jQuery.css( this, "display" ) === "inline" &&
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7426
							jQuery.css( this, "float" ) === "none" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7427
						if ( !jQuery.support.inlineBlockNeedsLayout ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7428
							this.style.display = "inline-block";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7429
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7430
						} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7431
							var display = defaultDisplay(this.nodeName);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7432
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7433
							// inline-level elements accept inline-block;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7434
							// block-level elements need to be inline with layout
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7435
							if ( display === "inline" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7436
								this.style.display = "inline-block";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7437
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7438
							} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7439
								this.style.display = "inline";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7440
								this.style.zoom = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7441
							}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7442
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7443
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7444
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7445
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7446
				if ( jQuery.isArray( prop[p] ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7447
					// Create (if needed) and add to specialEasing
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7448
					(opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7449
					prop[p] = prop[p][0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7450
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7451
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7452
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7453
			if ( opt.overflow != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7454
				this.style.overflow = "hidden";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7455
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7456
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7457
			opt.curAnim = jQuery.extend({}, prop);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7458
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7459
			jQuery.each( prop, function( name, val ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7460
				var e = new jQuery.fx( self, opt, name );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7461
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7462
				if ( rfxtypes.test(val) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7463
					e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7464
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7465
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7466
					var parts = rfxnum.exec(val),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7467
						start = e.cur() || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7468
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7469
					if ( parts ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7470
						var end = parseFloat( parts[2] ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7471
							unit = parts[3] || "px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7472
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7473
						// We need to compute starting value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7474
						if ( unit !== "px" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7475
							jQuery.style( self, name, (end || 1) + unit);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7476
							start = ((end || 1) / e.cur()) * start;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7477
							jQuery.style( self, name, start + unit);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7478
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7479
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7480
						// If a +=/-= token was provided, we're doing a relative animation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7481
						if ( parts[1] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7482
							end = ((parts[1] === "-=" ? -1 : 1) * end) + start;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7483
						}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7484
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7485
						e.custom( start, end, unit );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7486
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7487
					} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7488
						e.custom( start, val, "" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7489
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7490
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7491
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7492
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7493
			// For JS strict compliance
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7494
			return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7495
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7496
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7497
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7498
	stop: function( clearQueue, gotoEnd ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7499
		var timers = jQuery.timers;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7500
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7501
		if ( clearQueue ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7502
			this.queue([]);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7503
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7504
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7505
		this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7506
			// go in reverse order so anything added to the queue during the loop is ignored
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7507
			for ( var i = timers.length - 1; i >= 0; i-- ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7508
				if ( timers[i].elem === this ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7509
					if (gotoEnd) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7510
						// force the next step to be the last
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7511
						timers[i](true);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7512
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7513
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7514
					timers.splice(i, 1);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7515
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7516
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7517
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7518
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7519
		// start the next in the queue if the last step wasn't forced
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7520
		if ( !gotoEnd ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7521
			this.dequeue();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7522
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7523
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7524
		return this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7525
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7526
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7527
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7528
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7529
function genFx( type, num ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7530
	var obj = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7531
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7532
	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7533
		obj[ this ] = type;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7534
	});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7535
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7536
	return obj;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7537
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7538
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7539
// Generate shortcuts for custom animations
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7540
jQuery.each({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7541
	slideDown: genFx("show", 1),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7542
	slideUp: genFx("hide", 1),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7543
	slideToggle: genFx("toggle", 1),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7544
	fadeIn: { opacity: "show" },
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7545
	fadeOut: { opacity: "hide" },
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7546
	fadeToggle: { opacity: "toggle" }
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7547
}, function( name, props ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7548
	jQuery.fn[ name ] = function( speed, easing, callback ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7549
		return this.animate( props, speed, easing, callback );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7550
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7551
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7552
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7553
jQuery.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7554
	speed: function( speed, easing, fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7555
		var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7556
			complete: fn || !fn && easing ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7557
				jQuery.isFunction( speed ) && speed,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7558
			duration: speed,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7559
			easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7560
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7561
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7562
		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7563
			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7564
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7565
		// Queueing
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7566
		opt.old = opt.complete;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7567
		opt.complete = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7568
			if ( opt.queue !== false ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7569
				jQuery(this).dequeue();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7570
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7571
			if ( jQuery.isFunction( opt.old ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7572
				opt.old.call( this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7573
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7574
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7575
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7576
		return opt;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7577
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7578
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7579
	easing: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7580
		linear: function( p, n, firstNum, diff ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7581
			return firstNum + diff * p;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7582
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7583
		swing: function( p, n, firstNum, diff ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7584
			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7585
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7586
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7587
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7588
	timers: [],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7589
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7590
	fx: function( elem, options, prop ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7591
		this.options = options;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7592
		this.elem = elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7593
		this.prop = prop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7594
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7595
		if ( !options.orig ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7596
			options.orig = {};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7597
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7598
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7599
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7600
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7601
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7602
jQuery.fx.prototype = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7603
	// Simple function for setting a style value
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7604
	update: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7605
		if ( this.options.step ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7606
			this.options.step.call( this.elem, this.now, this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7607
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7608
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7609
		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7610
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7611
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7612
	// Get the current size
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7613
	cur: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7614
		if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7615
			return this.elem[ this.prop ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7616
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7617
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7618
		var r = parseFloat( jQuery.css( this.elem, this.prop ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7619
		return r || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7620
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7621
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7622
	// Start an animation from one number to another
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7623
	custom: function( from, to, unit ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7624
		var self = this,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7625
			fx = jQuery.fx;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7626
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7627
		this.startTime = jQuery.now();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7628
		this.start = from;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7629
		this.end = to;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7630
		this.unit = unit || this.unit || "px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7631
		this.now = this.start;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7632
		this.pos = this.state = 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7633
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7634
		function t( gotoEnd ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7635
			return self.step(gotoEnd);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7636
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7637
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7638
		t.elem = this.elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7639
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7640
		if ( t() && jQuery.timers.push(t) && !timerId ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7641
			timerId = setInterval(fx.tick, fx.interval);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7642
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7643
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7644
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7645
	// Simple 'show' function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7646
	show: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7647
		// Remember where we started, so that we can go back to it later
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7648
		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7649
		this.options.show = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7650
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7651
		// Begin the animation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7652
		// Make sure that we start at a small width/height to avoid any
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7653
		// flash of content
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7654
		this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7655
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7656
		// Start by showing the element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7657
		jQuery( this.elem ).show();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7658
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7659
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7660
	// Simple 'hide' function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7661
	hide: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7662
		// Remember where we started, so that we can go back to it later
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7663
		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7664
		this.options.hide = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7665
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7666
		// Begin the animation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7667
		this.custom(this.cur(), 0);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7668
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7669
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7670
	// Each step of an animation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7671
	step: function( gotoEnd ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7672
		var t = jQuery.now(), done = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7673
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7674
		if ( gotoEnd || t >= this.options.duration + this.startTime ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7675
			this.now = this.end;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7676
			this.pos = this.state = 1;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7677
			this.update();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7678
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7679
			this.options.curAnim[ this.prop ] = true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7680
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7681
			for ( var i in this.options.curAnim ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7682
				if ( this.options.curAnim[i] !== true ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7683
					done = false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7684
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7685
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7686
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7687
			if ( done ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7688
				// Reset the overflow
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7689
				if ( this.options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7690
					var elem = this.elem,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7691
						options = this.options;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7692
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7693
					jQuery.each( [ "", "X", "Y" ], function (index, value) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7694
						elem.style[ "overflow" + value ] = options.overflow[index];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7695
					} );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7696
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7697
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7698
				// Hide the element if the "hide" operation was done
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7699
				if ( this.options.hide ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7700
					jQuery(this.elem).hide();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7701
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7702
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7703
				// Reset the properties, if the item has been hidden or shown
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7704
				if ( this.options.hide || this.options.show ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7705
					for ( var p in this.options.curAnim ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7706
						jQuery.style( this.elem, p, this.options.orig[p] );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7707
					}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7708
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7709
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7710
				// Execute the complete function
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7711
				this.options.complete.call( this.elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7712
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7713
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7714
			return false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7715
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7716
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7717
			var n = t - this.startTime;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7718
			this.state = n / this.options.duration;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7719
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7720
			// Perform the easing function, defaults to swing
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7721
			var specialEasing = this.options.specialEasing && this.options.specialEasing[this.prop];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7722
			var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" : "linear");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7723
			this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7724
			this.now = this.start + ((this.end - this.start) * this.pos);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7725
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7726
			// Perform the next step of the animation
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7727
			this.update();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7728
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7729
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7730
		return true;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7731
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7732
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7733
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7734
jQuery.extend( jQuery.fx, {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7735
	tick: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7736
		var timers = jQuery.timers;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7737
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7738
		for ( var i = 0; i < timers.length; i++ ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7739
			if ( !timers[i]() ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7740
				timers.splice(i--, 1);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7741
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7742
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7743
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7744
		if ( !timers.length ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7745
			jQuery.fx.stop();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7746
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7747
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7748
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7749
	interval: 13,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7750
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7751
	stop: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7752
		clearInterval( timerId );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7753
		timerId = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7754
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7755
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7756
	speeds: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7757
		slow: 600,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7758
		fast: 200,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7759
		// Default speed
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7760
		_default: 400
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7761
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7762
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7763
	step: {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7764
		opacity: function( fx ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7765
			jQuery.style( fx.elem, "opacity", fx.now );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7766
		},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7767
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7768
		_default: function( fx ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7769
			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7770
				fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7771
			} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7772
				fx.elem[ fx.prop ] = fx.now;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7773
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7774
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7775
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7776
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7777
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7778
if ( jQuery.expr && jQuery.expr.filters ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7779
	jQuery.expr.filters.animated = function( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7780
		return jQuery.grep(jQuery.timers, function( fn ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7781
			return elem === fn.elem;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7782
		}).length;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7783
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7784
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7785
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7786
function defaultDisplay( nodeName ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7787
	if ( !elemdisplay[ nodeName ] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7788
		var elem = jQuery("<" + nodeName + ">").appendTo("body"),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7789
			display = elem.css("display");
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7790
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7791
		elem.remove();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7792
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7793
		if ( display === "none" || display === "" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7794
			display = "block";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7795
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7796
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7797
		elemdisplay[ nodeName ] = display;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7798
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7799
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7800
	return elemdisplay[ nodeName ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7801
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7802
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7803
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7804
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7805
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7806
var rtable = /^t(?:able|d|h)$/i,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7807
	rroot = /^(?:body|html)$/i;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7808
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7809
if ( "getBoundingClientRect" in document.documentElement ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7810
	jQuery.fn.offset = function( options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7811
		var elem = this[0], box;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7812
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7813
		if ( options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7814
			return this.each(function( i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7815
				jQuery.offset.setOffset( this, options, i );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7816
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7817
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7818
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7819
		if ( !elem || !elem.ownerDocument ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7820
			return null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7821
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7822
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7823
		if ( elem === elem.ownerDocument.body ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7824
			return jQuery.offset.bodyOffset( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7825
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7826
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7827
		try {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7828
			box = elem.getBoundingClientRect();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7829
		} catch(e) {}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7830
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7831
		var doc = elem.ownerDocument,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7832
			docElem = doc.documentElement;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7833
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7834
		// Make sure we're not dealing with a disconnected DOM node
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7835
		if ( !box || !jQuery.contains( docElem, elem ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7836
			return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7837
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7838
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7839
		var body = doc.body,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7840
			win = getWindow(doc),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7841
			clientTop  = docElem.clientTop  || body.clientTop  || 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7842
			clientLeft = docElem.clientLeft || body.clientLeft || 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7843
			scrollTop  = (win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7844
			scrollLeft = (win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7845
			top  = box.top  + scrollTop  - clientTop,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7846
			left = box.left + scrollLeft - clientLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7847
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7848
		return { top: top, left: left };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7849
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7850
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7851
} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7852
	jQuery.fn.offset = function( options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7853
		var elem = this[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7854
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7855
		if ( options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7856
			return this.each(function( i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7857
				jQuery.offset.setOffset( this, options, i );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7858
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7859
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7860
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7861
		if ( !elem || !elem.ownerDocument ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7862
			return null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7863
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7864
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7865
		if ( elem === elem.ownerDocument.body ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7866
			return jQuery.offset.bodyOffset( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7867
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7868
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7869
		jQuery.offset.initialize();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7870
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7871
		var computedStyle,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7872
			offsetParent = elem.offsetParent,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7873
			prevOffsetParent = elem,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7874
			doc = elem.ownerDocument,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7875
			docElem = doc.documentElement,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7876
			body = doc.body,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7877
			defaultView = doc.defaultView,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7878
			prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7879
			top = elem.offsetTop,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7880
			left = elem.offsetLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7881
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7882
		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7883
			if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7884
				break;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7885
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7886
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7887
			computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7888
			top  -= elem.scrollTop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7889
			left -= elem.scrollLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7890
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7891
			if ( elem === offsetParent ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7892
				top  += elem.offsetTop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7893
				left += elem.offsetLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7894
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7895
				if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7896
					top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7897
					left += parseFloat( computedStyle.borderLeftWidth ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7898
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7899
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7900
				prevOffsetParent = offsetParent;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7901
				offsetParent = elem.offsetParent;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7902
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7903
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7904
			if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7905
				top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7906
				left += parseFloat( computedStyle.borderLeftWidth ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7907
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7908
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7909
			prevComputedStyle = computedStyle;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7910
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7911
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7912
		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7913
			top  += body.offsetTop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7914
			left += body.offsetLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7915
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7916
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7917
		if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7918
			top  += Math.max( docElem.scrollTop, body.scrollTop );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7919
			left += Math.max( docElem.scrollLeft, body.scrollLeft );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7920
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7921
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7922
		return { top: top, left: left };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7923
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7924
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7925
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7926
jQuery.offset = {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7927
	initialize: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7928
		var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7929
			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>";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7930
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7931
		jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7932
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7933
		container.innerHTML = html;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7934
		body.insertBefore( container, body.firstChild );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7935
		innerDiv = container.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7936
		checkDiv = innerDiv.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7937
		td = innerDiv.nextSibling.firstChild.firstChild;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7938
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7939
		this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7940
		this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7941
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7942
		checkDiv.style.position = "fixed";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7943
		checkDiv.style.top = "20px";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7944
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7945
		// safari subtracts parent border width here which is 5px
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7946
		this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7947
		checkDiv.style.position = checkDiv.style.top = "";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7948
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7949
		innerDiv.style.overflow = "hidden";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7950
		innerDiv.style.position = "relative";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7951
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7952
		this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7953
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7954
		this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7955
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7956
		body.removeChild( container );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7957
		body = container = innerDiv = checkDiv = table = td = null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7958
		jQuery.offset.initialize = jQuery.noop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7959
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7960
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7961
	bodyOffset: function( body ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7962
		var top = body.offsetTop,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7963
			left = body.offsetLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7964
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7965
		jQuery.offset.initialize();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7966
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7967
		if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7968
			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7969
			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7970
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7971
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7972
		return { top: top, left: left };
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7973
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7974
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7975
	setOffset: function( elem, options, i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7976
		var position = jQuery.css( elem, "position" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7977
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7978
		// set position first, in-case top/left are set even on static elem
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7979
		if ( position === "static" ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7980
			elem.style.position = "relative";
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7981
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7982
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7983
		var curElem = jQuery( elem ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7984
			curOffset = curElem.offset(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7985
			curCSSTop = jQuery.css( elem, "top" ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7986
			curCSSLeft = jQuery.css( elem, "left" ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7987
			calculatePosition = (position === "absolute" && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7988
			props = {}, curPosition = {}, curTop, curLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7989
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7990
		// need to be able to calculate position if either top or left is auto and position is absolute
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7991
		if ( calculatePosition ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7992
			curPosition = curElem.position();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7993
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7994
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7995
		curTop  = calculatePosition ? curPosition.top  : parseInt( curCSSTop,  10 ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7996
		curLeft = calculatePosition ? curPosition.left : parseInt( curCSSLeft, 10 ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7997
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7998
		if ( jQuery.isFunction( options ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  7999
			options = options.call( elem, i, curOffset );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8000
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8001
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8002
		if (options.top != null) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8003
			props.top = (options.top - curOffset.top) + curTop;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8004
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8005
		if (options.left != null) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8006
			props.left = (options.left - curOffset.left) + curLeft;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8007
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8008
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8009
		if ( "using" in options ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8010
			options.using.call( elem, props );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8011
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8012
			curElem.css( props );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8013
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8014
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8015
};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8016
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8017
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8018
jQuery.fn.extend({
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8019
	position: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8020
		if ( !this[0] ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8021
			return null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8022
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8023
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8024
		var elem = this[0],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8025
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8026
		// Get *real* offsetParent
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8027
		offsetParent = this.offsetParent(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8028
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8029
		// Get correct offsets
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8030
		offset       = this.offset(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8031
		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8032
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8033
		// Subtract element margins
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8034
		// note: when an element has margin: auto the offsetLeft and marginLeft
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8035
		// are the same in Safari causing offset.left to incorrectly be 0
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8036
		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8037
		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8038
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8039
		// Add offsetParent borders
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8040
		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8041
		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8042
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8043
		// Subtract the two offsets
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8044
		return {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8045
			top:  offset.top  - parentOffset.top,
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8046
			left: offset.left - parentOffset.left
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8047
		};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8048
	},
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8049
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8050
	offsetParent: function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8051
		return this.map(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8052
			var offsetParent = this.offsetParent || document.body;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8053
			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8054
				offsetParent = offsetParent.offsetParent;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8055
			}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8056
			return offsetParent;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8057
		});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8058
	}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8059
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8060
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8061
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8062
// Create scrollLeft and scrollTop methods
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8063
jQuery.each( ["Left", "Top"], function( i, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8064
	var method = "scroll" + name;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8065
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8066
	jQuery.fn[ method ] = function(val) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8067
		var elem = this[0], win;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8068
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8069
		if ( !elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8070
			return null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8071
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8072
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8073
		if ( val !== undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8074
			// Set the scroll offset
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8075
			return this.each(function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8076
				win = getWindow( this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8077
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8078
				if ( win ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8079
					win.scrollTo(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8080
						!i ? val : jQuery(win).scrollLeft(),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8081
						 i ? val : jQuery(win).scrollTop()
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8082
					);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8083
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8084
				} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8085
					this[ method ] = val;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8086
				}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8087
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8088
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8089
			win = getWindow( elem );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8090
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8091
			// Return the scroll offset
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8092
			return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8093
				jQuery.support.boxModel && win.document.documentElement[ method ] ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8094
					win.document.body[ method ] :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8095
				elem[ method ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8096
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8097
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8098
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8099
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8100
function getWindow( elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8101
	return jQuery.isWindow( elem ) ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8102
		elem :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8103
		elem.nodeType === 9 ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8104
			elem.defaultView || elem.parentWindow :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8105
			false;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8106
}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8107
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8108
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8109
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8110
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8111
// Create innerHeight, innerWidth, outerHeight and outerWidth methods
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8112
jQuery.each([ "Height", "Width" ], function( i, name ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8113
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8114
	var type = name.toLowerCase();
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8115
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8116
	// innerHeight and innerWidth
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8117
	jQuery.fn["inner" + name] = function() {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8118
		return this[0] ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8119
			parseFloat( jQuery.css( this[0], type, "padding" ) ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8120
			null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8121
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8122
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8123
	// outerHeight and outerWidth
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8124
	jQuery.fn["outer" + name] = function( margin ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8125
		return this[0] ?
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8126
			parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) :
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8127
			null;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8128
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8129
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8130
	jQuery.fn[ type ] = function( size ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8131
		// Get window width or height
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8132
		var elem = this[0];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8133
		if ( !elem ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8134
			return size == null ? null : this;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8135
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8136
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8137
		if ( jQuery.isFunction( size ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8138
			return this.each(function( i ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8139
				var self = jQuery( this );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8140
				self[ type ]( size.call( this, i, self[ type ]() ) );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8141
			});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8142
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8143
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8144
		if ( jQuery.isWindow( elem ) ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8145
			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8146
			// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8147
			var docElemProp = elem.document.documentElement[ "client" + name ];
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8148
			return elem.document.compatMode === "CSS1Compat" && docElemProp ||
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8149
				elem.document.body[ "client" + name ] || docElemProp;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8150
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8151
		// Get document width or height
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8152
		} else if ( elem.nodeType === 9 ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8153
			// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8154
			return Math.max(
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8155
				elem.documentElement["client" + name],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8156
				elem.body["scroll" + name], elem.documentElement["scroll" + name],
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8157
				elem.body["offset" + name], elem.documentElement["offset" + name]
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8158
			);
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8159
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8160
		// Get or set width or height on the element
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8161
		} else if ( size === undefined ) {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8162
			var orig = jQuery.css( elem, type ),
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8163
				ret = parseFloat( orig );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8164
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8165
			return jQuery.isNaN( ret ) ? orig : ret;
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8166
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8167
		// Set the width or height on the element (default to pixels if value is unitless)
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8168
		} else {
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8169
			return this.css( type, typeof size === "string" ? size : size + "px" );
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8170
		}
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8171
	};
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8172
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8173
});
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8174
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8175
4775601a2531 use platform and clean install files next
ymh <ymh.work@gmail.com>
parents:
diff changeset
  8176
})(window);