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