| /*! |
| * jQuery UI Core 1.9.2 |
| * http://jqueryui.com |
| * |
| * Copyright 2012 jQuery Foundation and other contributors |
| * Released under the MIT license. |
| * http://jquery.org/license |
| * |
| * http://api.jqueryui.com/category/ui-core/ |
| */ |
| (function( $, undefined ) { |
| |
| var uuid = 0, |
| runiqueId = /^ui-id-\d+$/; |
| |
| // 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.9.2", |
| |
| keyCode: { |
| BACKSPACE: 8, |
| COMMA: 188, |
| DELETE: 46, |
| DOWN: 40, |
| END: 35, |
| ENTER: 13, |
| ESCAPE: 27, |
| HOME: 36, |
| LEFT: 37, |
| 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, |
| SPACE: 32, |
| TAB: 9, |
| UP: 38 |
| } |
| }); |
| |
| // plugins |
| $.fn.extend({ |
| _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 (($.ui.ie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { |
| scrollParent = this.parents().filter(function() { |
| return (/(relative|absolute|fixed)/).test($.css(this,'position')) && (/(auto|scroll)/).test($.css(this,'overflow')+$.css(this,'overflow-y')+$.css(this,'overflow-x')); |
| }).eq(0); |
| } else { |
| scrollParent = this.parents().filter(function() { |
| return (/(auto|scroll)/).test($.css(this,'overflow')+$.css(this,'overflow-y')+$.css(this,'overflow-x')); |
| }).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; |
| }, |
| |
| uniqueId: function() { |
| return this.each(function() { |
| if ( !this.id ) { |
| this.id = "ui-id-" + (++uuid); |
| } |
| }); |
| }, |
| |
| removeUniqueId: function() { |
| return this.each(function() { |
| if ( runiqueId.test( this.id ) ) { |
| $( this ).removeAttr( "id" ); |
| } |
| }); |
| } |
| }); |
| |
| // selectors |
| function focusable( element, isTabIndexNotNaN ) { |
| var map, mapName, img, |
| nodeName = element.nodeName.toLowerCase(); |
| if ( "area" === nodeName ) { |
| map = element.parentNode; |
| mapName = map.name; |
| 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 $.expr.filters.visible( element ) && |
| !$( element ).parents().andSelf().filter(function() { |
| return $.css( this, "visibility" ) === "hidden"; |
| }).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 element 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"; |
| }); |
| |
| // 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( $.css( elem, "padding" + this ) ) || 0; |
| if ( border ) { |
| size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; |
| } |
| if ( margin ) { |
| size -= parseFloat( $.css( elem, "margin" + this ) ) || 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" ); |
| }); |
| }; |
| }); |
| } |
| |
| // support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) |
| if ( $( "<a>" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) { |
| $.fn.removeData = (function( removeData ) { |
| return function( key ) { |
| if ( arguments.length ) { |
| return removeData.call( this, $.camelCase( key ) ); |
| } else { |
| return removeData.call( this ); |
| } |
| }; |
| })( $.fn.removeData ); |
| } |
| |
| |
| |
| |
| |
| // deprecated |
| |
| (function() { |
| var uaMatch = /msie ([\w.]+)/.exec( navigator.userAgent.toLowerCase() ) || []; |
| $.ui.ie = uaMatch.length ? true : false; |
| $.ui.ie6 = parseFloat( uaMatch[ 1 ], 10 ) === 6; |
| })(); |
| |
| $.fn.extend({ |
| disableSelection: function() { |
| return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + |
| ".ui-disableSelection", function( event ) { |
| event.preventDefault(); |
| }); |
| }, |
| |
| enableSelection: function() { |
| return this.unbind( ".ui-disableSelection" ); |
| } |
| }); |
| |
| $.extend( $.ui, { |
| // $.ui.plugin is deprecated. Use the proxy pattern instead. |
| plugin: { |
| add: function( module, option, set ) { |
| var i, |
| proto = $.ui[ module ].prototype; |
| for ( i in set ) { |
| proto.plugins[ i ] = proto.plugins[ i ] || []; |
| proto.plugins[ i ].push( [ option, set[ i ] ] ); |
| } |
| }, |
| call: function( instance, name, args ) { |
| var i, |
| set = instance.plugins[ name ]; |
| if ( !set || !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) { |
| return; |
| } |
| |
| for ( i = 0; i < set.length; i++ ) { |
| if ( instance.options[ set[ i ][ 0 ] ] ) { |
| set[ i ][ 1 ].apply( instance.element, args ); |
| } |
| } |
| } |
| }, |
| |
| contains: $.contains, |
| |
| // 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 ); |