| /*! |
| * jQuery UI 1.8.23 |
| * |
| * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) |
| * Dual licensed under the MIT or GPL Version 2 licenses. |
| * http://jquery.org/license |
| * |
| * http://docs.jquery.com/UI |
| */ |
| (function( $, undefined ) { |
| |
| // prevent duplicate loading |
| // this is only a problem because we proxy existing functions |
| // and we don't want to double proxy them |
| $.ui = $.ui || {}; |
| if ( $.ui.version ) { |
| return; |
| } |
| |
| $.extend( $.ui, { |
| version: "1.8.23", |
| |
| keyCode: { |
| ALT: 18, |
| BACKSPACE: 8, |
| CAPS_LOCK: 20, |
| COMMA: 188, |
| COMMAND: 91, |
| COMMAND_LEFT: 91, // COMMAND |
| COMMAND_RIGHT: 93, |
| CONTROL: 17, |
| DELETE: 46, |
| DOWN: 40, |
| END: 35, |
| ENTER: 13, |
| ESCAPE: 27, |
| HOME: 36, |
| INSERT: 45, |
| LEFT: 37, |
| MENU: 93, // COMMAND_RIGHT |
| NUMPAD_ADD: 107, |
| NUMPAD_DECIMAL: 110, |
| NUMPAD_DIVIDE: 111, |
| NUMPAD_ENTER: 108, |
| NUMPAD_MULTIPLY: 106, |
| NUMPAD_SUBTRACT: 109, |
| PAGE_DOWN: 34, |
| PAGE_UP: 33, |
| PERIOD: 190, |
| RIGHT: 39, |
| SHIFT: 16, |
| SPACE: 32, |
| TAB: 9, |
| UP: 38, |
| WINDOWS: 91 // COMMAND |
| } |
| }); |
| |
| // plugins |
| $.fn.extend({ |
| propAttr: $.fn.prop || $.fn.attr, |
| |
| _focus: $.fn.focus, |
| focus: function( delay, fn ) { |
| return typeof delay === "number" ? |
| this.each(function() { |
| var elem = this; |
| setTimeout(function() { |
| $( elem ).focus(); |
| if ( fn ) { |
| fn.call( elem ); |
| } |
| }, delay ); |
| }) : |
| this._focus.apply( this, arguments ); |
| }, |
| |
| scrollParent: function() { |
| var scrollParent; |
| if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { |
| scrollParent = this.parents().filter(function() { |
| 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)); |
| }).eq(0); |
| } else { |
| scrollParent = this.parents().filter(function() { |
| return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); |
| }).eq(0); |
| } |
| |
| return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; |
| }, |
| |
| zIndex: function( zIndex ) { |
| if ( zIndex !== undefined ) { |
| return this.css( "zIndex", zIndex ); |
| } |
| |
| if ( this.length ) { |
| var elem = $( this[ 0 ] ), position, value; |
| while ( elem.length && elem[ 0 ] !== document ) { |
| // Ignore z-index if position is set to a value where z-index is ignored by the browser |
| // This makes behavior of this function consistent across browsers |
| // WebKit always returns auto if the element is positioned |
| position = elem.css( "position" ); |
| if ( position === "absolute" || position === "relative" || position === "fixed" ) { |
| // IE returns 0 when zIndex is not specified |
| // other browsers return a string |
| // we ignore the case of nested elements with an explicit value of 0 |
| // <div style="z-index: -10;"><div style="z-index: 0;"></div></div> |
| value = parseInt( elem.css( "zIndex" ), 10 ); |
| if ( !isNaN( value ) && value !== 0 ) { |
| return value; |
| } |
| } |
| elem = elem.parent(); |
| } |
| } |
| |
| return 0; |
| }, |
| |
| disableSelection: function() { |
| return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + |
| ".ui-disableSelection", function( event ) { |
| event.preventDefault(); |
| }); |
| }, |
| |
| enableSelection: function() { |
| return this.unbind( ".ui-disableSelection" ); |
| } |
| }); |
| |
| // support: jQuery <1.8 |
| if ( !$( "<a>" ).outerWidth( 1 ).jquery ) { |
| $.each( [ "Width", "Height" ], function( i, name ) { |
| var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], |
| type = name.toLowerCase(), |
| orig = { |
| innerWidth: $.fn.innerWidth, |
| innerHeight: $.fn.innerHeight, |
| outerWidth: $.fn.outerWidth, |
| outerHeight: $.fn.outerHeight |
| }; |
| |
| function reduce( elem, size, border, margin ) { |
| $.each( side, function() { |
| size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; |
| if ( border ) { |
| size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; |
| } |
| if ( margin ) { |
| size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; |
| } |
| }); |
| return size; |
| } |
| |
| $.fn[ "inner" + name ] = function( size ) { |
| if ( size === undefined ) { |
| return orig[ "inner" + name ].call( this ); |
| } |
| |
| return this.each(function() { |
| $( this ).css( type, reduce( this, size ) + "px" ); |
| }); |
| }; |
| |
| $.fn[ "outer" + name] = function( size, margin ) { |
| if ( typeof size !== "number" ) { |
| return orig[ "outer" + name ].call( this, size ); |
| } |
| |
| return this.each(function() { |
| $( this).css( type, reduce( this, size, true, margin ) + "px" ); |
| }); |
| }; |
| }); |
| } |
| |
| // selectors |
| function focusable( element, isTabIndexNotNaN ) { |
| var nodeName = element.nodeName.toLowerCase(); |
| if ( "area" === nodeName ) { |
| var map = element.parentNode, |
| mapName = map.name, |
| img; |
| if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { |
| return false; |
| } |
| img = $( "img[usemap=#" + mapName + "]" )[0]; |
| return !!img && visible( img ); |
| } |
| return ( /input|select|textarea|button|object/.test( nodeName ) |
| ? !element.disabled |
| : "a" == nodeName |
| ? element.href || isTabIndexNotNaN |
| : isTabIndexNotNaN) |
| // the element and all of its ancestors must be visible |
| && visible( element ); |
| } |
| |
| function visible( element ) { |
| return !$( element ).parents().andSelf().filter(function() { |
| return $.curCSS( this, "visibility" ) === "hidden" || |
| $.expr.filters.hidden( this ); |
| }).length; |
| } |
| |
| $.extend( $.expr[ ":" ], { |
| data: $.expr.createPseudo ? |
| $.expr.createPseudo(function( dataName ) { |
| return function( elem ) { |
| return !!$.data( elem, dataName ); |
| }; |
| }) : |
| // support: jQuery <1.8 |
| function( elem, i, match ) { |
| return !!$.data( elem, match[ 3 ] ); |
| }, |
| |
| focusable: function( element ) { |
| return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); |
| }, |
| |
| tabbable: function( element ) { |
| var tabIndex = $.attr( element, "tabindex" ), |
| isTabIndexNaN = isNaN( tabIndex ); |
| return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); |
| } |
| }); |
| |
| // support |
| $(function() { |
| var body = document.body, |
| div = body.appendChild( div = document.createElement( "div" ) ); |
| |
| // access offsetHeight before setting the style to prevent a layout bug |
| // in IE 9 which causes the elemnt to continue to take up space even |
| // after it is removed from the DOM (#8026) |
| div.offsetHeight; |
| |
| $.extend( div.style, { |
| minHeight: "100px", |
| height: "auto", |
| padding: 0, |
| borderWidth: 0 |
| }); |
| |
| $.support.minHeight = div.offsetHeight === 100; |
| $.support.selectstart = "onselectstart" in div; |
| |
| // set display to none to avoid a layout bug in IE |
| // http://dev.jquery.com/ticket/4014 |
| body.removeChild( div ).style.display = "none"; |
| }); |
| |
| // jQuery <1.4.3 uses curCSS, in 1.4.3 - 1.7.2 curCSS = css, 1.8+ only has css |
| if ( !$.curCSS ) { |
| $.curCSS = $.css; |
| } |
| |
| |
| |
| |
| |
| // deprecated |
| $.extend( $.ui, { |
| // $.ui.plugin is deprecated. Use the proxy pattern instead. |
| plugin: { |
| add: function( module, option, set ) { |
| var proto = $.ui[ module ].prototype; |
| for ( var i in set ) { |
| proto.plugins[ i ] = proto.plugins[ i ] || []; |
| proto.plugins[ i ].push( [ option, set[ i ] ] ); |
| } |
| }, |
| call: function( instance, name, args ) { |
| var set = instance.plugins[ name ]; |
| if ( !set || !instance.element[ 0 ].parentNode ) { |
| return; |
| } |
| |
| for ( var i = 0; i < set.length; i++ ) { |
| if ( instance.options[ set[ i ][ 0 ] ] ) { |
| set[ i ][ 1 ].apply( instance.element, args ); |
| } |
| } |
| } |
| }, |
| |
| // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() |
| contains: function( a, b ) { |
| return document.compareDocumentPosition ? |
| a.compareDocumentPosition( b ) & 16 : |
| a !== b && a.contains( b ); |
| }, |
| |
| // only used by resizable |
| hasScroll: function( el, a ) { |
| |
| //If overflow is hidden, the element might have extra content, but the user wants to hide it |
| if ( $( el ).css( "overflow" ) === "hidden") { |
| return false; |
| } |
| |
| var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", |
| has = false; |
| |
| if ( el[ scroll ] > 0 ) { |
| return true; |
| } |
| |
| // TODO: determine which cases actually cause this to happen |
| // if the element doesn't have the scroll set, see if it's possible to |
| // set the scroll |
| el[ scroll ] = 1; |
| has = ( el[ scroll ] > 0 ); |
| el[ scroll ] = 0; |
| return has; |
| }, |
| |
| // these are odd functions, fix the API or move into individual plugins |
| isOverAxis: function( x, reference, size ) { |
| //Determines when x coordinate is over "b" element axis |
| return ( x > reference ) && ( x < ( reference + size ) ); |
| }, |
| isOver: function( y, x, top, left, height, width ) { |
| //Determines when x, y coordinates is over "b" element |
| return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); |
| } |
| }); |
| |
| })( jQuery ); |