/*! * jQuery UI 1.8.11 * * Copyright 2011, 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.11",	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({	_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" );	}});$.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 visible( element ) {	return !$( element ).parents().andSelf().filter(function() {		return $.curCSS( this, "visibility" ) === "hidden" ||			$.expr.filters.hidden( this );	}).length;}$.extend( $.expr[ ":" ], {	data: function( elem, i, match ) {		return !!$.data( elem, match[ 3 ] );	},	focusable: function( element ) {		var nodeName = element.nodeName.toLowerCase(),			tabIndex = $.attr( element, "tabindex" );		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 || !isNaN( tabIndex )				: !isNaN( tabIndex ))			// the element and all of its ancestors must be visible			&& visible( element );	},	tabbable: function( element ) {		var tabIndex = $.attr( element, "tabindex" );		return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );	}});// support$(function() {	var body = document.body,		div = body.appendChild( div = document.createElement( "div" ) );	$.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";});// 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 );
