client/player/js/ui/jquery.ui.core.js
author ymh <ymh.work@gmail.com>
Sat, 12 Jun 2010 04:25:05 +0200
changeset 0 cc4a51750724
permissions -rw-r--r--
first commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
/*!
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
 * jQuery UI 1.8.1
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 *
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * Dual licensed under the MIT (MIT-LICENSE.txt)
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * and GPL (GPL-LICENSE.txt) licenses.
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 *
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 * http://docs.jquery.com/UI
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
;jQuery.ui || (function($) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
//Helper functions and ui object
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
$.ui = {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
	version: "1.8.1",
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
	plugin: {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
		add: function(module, option, set) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
			var proto = $.ui[module].prototype;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
			for(var i in set) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
				proto.plugins[i] = proto.plugins[i] || [];
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
				proto.plugins[i].push([option, set[i]]);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
			}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
		},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
		call: function(instance, name, args) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
			var set = instance.plugins[name];
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
			if(!set || !instance.element[0].parentNode) { return; }
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
			for (var i = 0; i < set.length; i++) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
				if (instance.options[set[i][0]]) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
					set[i][1].apply(instance.element, args);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
				}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
			}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
		}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
	contains: function(a, b) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
		return document.compareDocumentPosition
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
			? a.compareDocumentPosition(b) & 16
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
			: a !== b && a.contains(b);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
	hasScroll: function(el, a) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
		//If overflow is hidden, the element might have extra content, but the user wants to hide it
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
		if ($(el).css('overflow') == 'hidden') { return false; }
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
		var scroll = (a && a == 'left') ? 'scrollLeft' : 'scrollTop',
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
			has = false;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
		if (el[scroll] > 0) { return true; }
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
		// TODO: determine which cases actually cause this to happen
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
		// if the element doesn't have the scroll set, see if it's possible to
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
		// set the scroll
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
		el[scroll] = 1;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
		has = (el[scroll] > 0);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
		el[scroll] = 0;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
		return has;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
	isOverAxis: function(x, reference, size) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
		//Determines when x coordinate is over "b" element axis
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
		return (x > reference) && (x < (reference + size));
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
	isOver: function(y, x, top, left, height, width) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
		//Determines when x, y coordinates is over "b" element
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
		return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
	keyCode: {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
		ALT: 18,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
		BACKSPACE: 8,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
		CAPS_LOCK: 20,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
		COMMA: 188,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
		CONTROL: 17,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
		DELETE: 46,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
		DOWN: 40,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
		END: 35,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
		ENTER: 13,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
		ESCAPE: 27,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
		HOME: 36,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
		INSERT: 45,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
		LEFT: 37,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
		NUMPAD_ADD: 107,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
		NUMPAD_DECIMAL: 110,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
		NUMPAD_DIVIDE: 111,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
		NUMPAD_ENTER: 108,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
		NUMPAD_MULTIPLY: 106,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
		NUMPAD_SUBTRACT: 109,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
		PAGE_DOWN: 34,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
		PAGE_UP: 33,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
		PERIOD: 190,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
		RIGHT: 39,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
		SHIFT: 16,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
		SPACE: 32,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
		TAB: 9,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
		UP: 38
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
	}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
};
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
//jQuery plugins
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
$.fn.extend({
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
	_focus: $.fn.focus,
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
	focus: function(delay, fn) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
		return typeof delay === 'number'
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
			? this.each(function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
				var elem = this;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
				setTimeout(function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
					$(elem).focus();
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
					(fn && fn.call(elem));
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
				}, delay);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
			})
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
			: this._focus.apply(this, arguments);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
	
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
	enableSelection: function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
		return this
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
			.attr('unselectable', 'off')
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
			.css('MozUserSelect', '');
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
	disableSelection: function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
		return this
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
			.attr('unselectable', 'on')
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
			.css('MozUserSelect', 'none');
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
	scrollParent: function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
		var scrollParent;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
		if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
			scrollParent = this.parents().filter(function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
			}).eq(0);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
		} else {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
			scrollParent = this.parents().filter(function() {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
				return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
			}).eq(0);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
		}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
	zIndex: function(zIndex) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
		if (zIndex !== undefined) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
			return this.css('zIndex', zIndex);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
		}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
		
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
		if (this.length) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
			var elem = $(this[0]), position, value;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
			while (elem.length && elem[0] !== document) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
				// Ignore z-index if position is set to a value where z-index is ignored by the browser
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
				// This makes behavior of this function consistent across browsers
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
				// WebKit always returns auto if the element is positioned
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
				position = elem.css('position');
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
				if (position == 'absolute' || position == 'relative' || position == 'fixed')
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
				{
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
					// IE returns 0 when zIndex is not specified
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
					// other browsers return a string
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
					// we ignore the case of nested elements with an explicit value of 0
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
					value = parseInt(elem.css('zIndex'));
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
					if (!isNaN(value) && value != 0) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
						return value;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
					}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
				}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
				elem = elem.parent();
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
			}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
		}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
		return 0;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
	}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
});
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
//Additional selectors
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
$.extend($.expr[':'], {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
	data: function(elem, i, match) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
		return !!$.data(elem, match[3]);
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
	focusable: function(element) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
		var nodeName = element.nodeName.toLowerCase(),
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
			tabIndex = $.attr(element, 'tabindex');
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
		return (/input|select|textarea|button|object/.test(nodeName)
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
			? !element.disabled
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
			: 'a' == nodeName || 'area' == nodeName
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
				? element.href || !isNaN(tabIndex)
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
				: !isNaN(tabIndex))
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
			// the element and all of its ancestors must be visible
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
			// the browser may report that the area is hidden
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
			&& !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
	},
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
	tabbable: function(element) {
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
		var tabIndex = $.attr(element, 'tabindex');
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
		return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
	}
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
});
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
cc4a51750724 first commit
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
})(jQuery);