jqueryui-1.10.1/0000755000175000017500000000000012111026004012420 5ustar metalmetaljqueryui-1.10.1/index.html0000644000175000017500000007531612107500070014436 0ustar metalmetal jQuery UI Example Page

Welcome to jQuery UI!

This page demonstrates the widgets you downloaded using the theme you selected in the download builder. We've included and linked to minified versions of jQuery, your personalized copy of jQuery UI (js/jquery-ui-1.10.1.custom.min.js), and css/smoothness/jquery-ui-1.10.1.custom.min.css which imports the entire jQuery UI CSS Framework. You can choose to link a subset of the CSS Framework depending on your needs.

You've downloaded components and a theme that are compatible with jQuery 1.6+. Please make sure you are using jQuery 1.6+ in your production environment.

YOUR COMPONENTS:

Accordion

First

Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.

Second

Phasellus mattis tincidunt nibh.

Third

Nam dui erat, auctor a, dignissim quis.

Autocomplete

Button

Tabs

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.
Nam dui erat, auctor a, dignissim quis, sollicitudin eu, felis. Pellentesque nisi urna, interdum eget, sagittis et, consequat vestibulum, lacus. Mauris porttitor ullamcorper augue.

Dialog

Open Dialog

Overlay and Shadow Classes (not currently used in UI widgets)

Lorem ipsum dolor sit amet, Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci.

Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat.

Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante. Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam.

Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi. Aliquam ante.

Suspendisse scelerisque dui nec velit. Duis augue augue, gravida euismod, vulputate ac, facilisis id, sem. Morbi in orci. Nulla purus lacus, pulvinar vel, malesuada ac, mattis nec, quam. Nam molestie scelerisque quam. Nullam feugiat cursus lacus.orem ipsum dolor sit amet, consectetur adipiscing elit. Donec libero risus, commodo vitae, pharetra mollis, posuere eu, pede. Nulla nec tortor. Donec id elit quis purus consectetur consequat. Nam congue semper tellus. Sed erat dolor, dapibus sit amet, venenatis ornare, ultrices ut, nisi.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Framework Icons (content color preview)

Slider

Datepicker

Progressbar

Highlight / Error

Hey! Sample ui-state-highlight style.


Alert: Sample ui-state-error style.

jqueryui-1.10.1/css/0000755000175000017500000000000012111026004013210 5ustar metalmetaljqueryui-1.10.1/css/smoothness/0000755000175000017500000000000012111026004015412 5ustar metalmetaljqueryui-1.10.1/css/smoothness/jquery-ui-1.10.1.custom.css0000644000175000017500000007363612107500070022127 0ustar metalmetal/*! jQuery UI - v1.10.1 - 2013-02-15 * http://jqueryui.com * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css * To view and modify this theme, visit http://jqueryui.com/themeroller/ * Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */ /* Layout helpers ----------------------------------*/ .ui-helper-hidden { display: none; } .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; border-collapse: collapse; } .ui-helper-clearfix:after { clear: both; } .ui-helper-clearfix { min-height: 0; /* support: IE7 */ } .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } .ui-front { z-index: 100; } /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } /* Misc visuals ----------------------------------*/ /* Overlays */ .ui-widget-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; } .ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; min-height: 0; /* support: IE7 */ } .ui-accordion .ui-accordion-icons { padding-left: 2.2em; } .ui-accordion .ui-accordion-noicons { padding-left: .7em; } .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; } .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; } .ui-autocomplete { position: absolute; top: 0; left: 0; cursor: default; } .ui-button { display: inline-block; position: relative; padding: 0; line-height: normal; margin-right: .1em; cursor: pointer; vertical-align: middle; text-align: center; overflow: visible; /* removes extra width in IE */ } .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; } /* to make room for the icon, a width needs to be set here */ .ui-button-icon-only { width: 2.2em; } /* button elements seem to need a little more width */ button.ui-button-icon-only { width: 2.4em; } .ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /* button text element */ .ui-button .ui-button-text { display: block; line-height: normal; } .ui-button-text-only .ui-button-text { padding: .4em 1em; } .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } /* no icon support for input elements, provide padding by default */ input.ui-button { padding: .4em 1em; } /* button icon element(s) */ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } /* button sets */ .ui-buttonset { margin-right: 7px; } .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } /* workarounds */ /* reset extra padding in Firefox, see h5bp.com/l */ input.ui-button::-moz-focus-inner, button.ui-button::-moz-focus-inner { border: 0; padding: 0; } .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } .ui-datepicker .ui-datepicker-header { position: relative; padding: .2em 0; } .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position: absolute; top: 2px; width: 1.8em; height: 1.8em; } .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } .ui-datepicker .ui-datepicker-prev { left: 2px; } .ui-datepicker .ui-datepicker-next { right: 2px; } .ui-datepicker .ui-datepicker-prev-hover { left: 1px; } .ui-datepicker .ui-datepicker-next-hover { right: 1px; } .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } .ui-datepicker .ui-datepicker-title select { font-size: 1em; margin: 1px 0; } .ui-datepicker select.ui-datepicker-month-year { width: 100%; } .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 49%; } .ui-datepicker table { width: 100%; font-size: .9em; border-collapse: collapse; margin: 0 0 .4em; } .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } .ui-datepicker td { border: 0; padding: 1px; } .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding: 0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width: auto; overflow: visible; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float: left; } /* with multiple calendars */ .ui-datepicker.ui-datepicker-multi { width: auto; } .ui-datepicker-multi .ui-datepicker-group { float: left; } .ui-datepicker-multi .ui-datepicker-group table { width: 95%; margin: 0 auto .4em; } .ui-datepicker-multi-2 .ui-datepicker-group { width: 50%; } .ui-datepicker-multi-3 .ui-datepicker-group { width: 33.3%; } .ui-datepicker-multi-4 .ui-datepicker-group { width: 25%; } .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width: 0; } .ui-datepicker-multi .ui-datepicker-buttonpane { clear: left; } .ui-datepicker-row-break { clear: both; width: 100%; font-size: 0; } /* RTL support */ .ui-datepicker-rtl { direction: rtl; } .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .ui-datepicker-rtl .ui-datepicker-buttonpane { clear: right; } .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .ui-datepicker-rtl .ui-datepicker-group { float: right; } .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width: 0; border-left-width: 1px; } .ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; outline: 0; } .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } .ui-dialog .ui-dialog-title { float: left; margin: .1em 0; white-space: nowrap; width: 90%; overflow: hidden; text-overflow: ellipsis; } .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 21px; margin: -10px 0 0 0; padding: 1px; height: 20px; } .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; } .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin-top: .5em; padding: .3em 1em .5em .4em; } .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } .ui-dialog .ui-resizable-se { width: 12px; height: 12px; right: -5px; bottom: -5px; background-position: 16px 16px; } .ui-draggable .ui-dialog-titlebar { cursor: move; } .ui-menu { list-style: none; padding: 2px; margin: 0; display: block; outline: none; } .ui-menu .ui-menu { margin-top: -3px; position: absolute; } .ui-menu .ui-menu-item { margin: 0; padding: 0; width: 100%; } .ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; } .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; min-height: 0; /* support: IE7 */ font-weight: normal; } .ui-menu .ui-menu-item a.ui-state-focus, .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } .ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; } .ui-menu .ui-state-disabled a { cursor: default; } /* icon support */ .ui-menu-icons { position: relative; } .ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; } /* left-aligned */ .ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; } /* right-aligned */ .ui-menu .ui-menu-icon { position: static; float: right; } .ui-progressbar { height: 2em; text-align: left; overflow: hidden; } .ui-progressbar .ui-progressbar-value { margin: -1px; height: 100%; } .ui-progressbar .ui-progressbar-overlay { background: url("images/animated-overlay.gif"); height: 100%; filter: alpha(opacity=25); opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { background-image: none; } .ui-resizable { position: relative; } .ui-resizable-handle { position: absolute; font-size: 0.1px; display: block; } .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px; } .ui-selectable-helper { position: absolute; z-index: 100; border: 1px dotted black; } .ui-slider { position: relative; text-align: left; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } /* For IE8 - See #6727 */ .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { filter: inherit; } .ui-slider-horizontal { height: .8em; } .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-slider-vertical { width: .8em; height: 100px; } .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; } .ui-spinner { position: relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } .ui-spinner-input { border: none; background: none; color: inherit; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } .ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } /* more specificity required here to overide default borders */ .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* vertical centre icon */ .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } .ui-spinner-up { top: 0; } .ui-spinner-down { bottom: 0; } /* TR overrides */ .ui-spinner .ui-icon-triangle-1-s { /* need to fix icons sprite */ background-position: -65px -16px; } .ui-tabs { position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ padding: .2em; } .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; } .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; } .ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; } .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } .ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; -webkit-box-shadow: 0 0 5px #aaa; box-shadow: 0 0 5px #aaa; } body .ui-tooltip { border-width: 2px; } /* Component containers ----------------------------------*/ .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } .ui-widget .ui-widget { font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } .ui-widget-content a { color: #222222; } .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } .ui-widget-header a { color: #222222; } /* Interaction states ----------------------------------*/ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121; text-decoration: none; } .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } /* Interaction Cues ----------------------------------*/ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a { color: #363636; } .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { width: 16px; height: 16px; background-position: 16px 16px; } .ui-icon, .ui-widget-content .ui-icon { background-image: url(images/ui-icons_222222_256x240.png); } .ui-widget-header .ui-icon { background-image: url(images/ui-icons_222222_256x240.png); } .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); } .ui-state-active .ui-icon { background-image: url(images/ui-icons_454545_256x240.png); } .ui-state-highlight .ui-icon { background-image: url(images/ui-icons_2e83ff_256x240.png); } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background-image: url(images/ui-icons_cd0a0a_256x240.png); } /* positioning */ .ui-icon-carat-1-n { background-position: 0 0; } .ui-icon-carat-1-ne { background-position: -16px 0; } .ui-icon-carat-1-e { background-position: -32px 0; } .ui-icon-carat-1-se { background-position: -48px 0; } .ui-icon-carat-1-s { background-position: -64px 0; } .ui-icon-carat-1-sw { background-position: -80px 0; } .ui-icon-carat-1-w { background-position: -96px 0; } .ui-icon-carat-1-nw { background-position: -112px 0; } .ui-icon-carat-2-n-s { background-position: -128px 0; } .ui-icon-carat-2-e-w { background-position: -144px 0; } .ui-icon-triangle-1-n { background-position: 0 -16px; } .ui-icon-triangle-1-ne { background-position: -16px -16px; } .ui-icon-triangle-1-e { background-position: -32px -16px; } .ui-icon-triangle-1-se { background-position: -48px -16px; } .ui-icon-triangle-1-s { background-position: -64px -16px; } .ui-icon-triangle-1-sw { background-position: -80px -16px; } .ui-icon-triangle-1-w { background-position: -96px -16px; } .ui-icon-triangle-1-nw { background-position: -112px -16px; } .ui-icon-triangle-2-n-s { background-position: -128px -16px; } .ui-icon-triangle-2-e-w { background-position: -144px -16px; } .ui-icon-arrow-1-n { background-position: 0 -32px; } .ui-icon-arrow-1-ne { background-position: -16px -32px; } .ui-icon-arrow-1-e { background-position: -32px -32px; } .ui-icon-arrow-1-se { background-position: -48px -32px; } .ui-icon-arrow-1-s { background-position: -64px -32px; } .ui-icon-arrow-1-sw { background-position: -80px -32px; } .ui-icon-arrow-1-w { background-position: -96px -32px; } .ui-icon-arrow-1-nw { background-position: -112px -32px; } .ui-icon-arrow-2-n-s { background-position: -128px -32px; } .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } .ui-icon-arrow-2-e-w { background-position: -160px -32px; } .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } .ui-icon-arrowstop-1-n { background-position: -192px -32px; } .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .ui-icon-arrowstop-1-w { background-position: -240px -32px; } .ui-icon-arrowthick-1-n { background-position: 0 -48px; } .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .ui-icon-arrowthick-1-se { background-position: -48px -48px; } .ui-icon-arrowthick-1-s { background-position: -64px -48px; } .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } .ui-icon-arrowthick-1-w { background-position: -96px -48px; } .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } .ui-icon-arrow-4 { background-position: 0 -80px; } .ui-icon-arrow-4-diag { background-position: -16px -80px; } .ui-icon-extlink { background-position: -32px -80px; } .ui-icon-newwin { background-position: -48px -80px; } .ui-icon-refresh { background-position: -64px -80px; } .ui-icon-shuffle { background-position: -80px -80px; } .ui-icon-transfer-e-w { background-position: -96px -80px; } .ui-icon-transferthick-e-w { background-position: -112px -80px; } .ui-icon-folder-collapsed { background-position: 0 -96px; } .ui-icon-folder-open { background-position: -16px -96px; } .ui-icon-document { background-position: -32px -96px; } .ui-icon-document-b { background-position: -48px -96px; } .ui-icon-note { background-position: -64px -96px; } .ui-icon-mail-closed { background-position: -80px -96px; } .ui-icon-mail-open { background-position: -96px -96px; } .ui-icon-suitcase { background-position: -112px -96px; } .ui-icon-comment { background-position: -128px -96px; } .ui-icon-person { background-position: -144px -96px; } .ui-icon-print { background-position: -160px -96px; } .ui-icon-trash { background-position: -176px -96px; } .ui-icon-locked { background-position: -192px -96px; } .ui-icon-unlocked { background-position: -208px -96px; } .ui-icon-bookmark { background-position: -224px -96px; } .ui-icon-tag { background-position: -240px -96px; } .ui-icon-home { background-position: 0 -112px; } .ui-icon-flag { background-position: -16px -112px; } .ui-icon-calendar { background-position: -32px -112px; } .ui-icon-cart { background-position: -48px -112px; } .ui-icon-pencil { background-position: -64px -112px; } .ui-icon-clock { background-position: -80px -112px; } .ui-icon-disk { background-position: -96px -112px; } .ui-icon-calculator { background-position: -112px -112px; } .ui-icon-zoomin { background-position: -128px -112px; } .ui-icon-zoomout { background-position: -144px -112px; } .ui-icon-search { background-position: -160px -112px; } .ui-icon-wrench { background-position: -176px -112px; } .ui-icon-gear { background-position: -192px -112px; } .ui-icon-heart { background-position: -208px -112px; } .ui-icon-star { background-position: -224px -112px; } .ui-icon-link { background-position: -240px -112px; } .ui-icon-cancel { background-position: 0 -128px; } .ui-icon-plus { background-position: -16px -128px; } .ui-icon-plusthick { background-position: -32px -128px; } .ui-icon-minus { background-position: -48px -128px; } .ui-icon-minusthick { background-position: -64px -128px; } .ui-icon-close { background-position: -80px -128px; } .ui-icon-closethick { background-position: -96px -128px; } .ui-icon-key { background-position: -112px -128px; } .ui-icon-lightbulb { background-position: -128px -128px; } .ui-icon-scissors { background-position: -144px -128px; } .ui-icon-clipboard { background-position: -160px -128px; } .ui-icon-copy { background-position: -176px -128px; } .ui-icon-contact { background-position: -192px -128px; } .ui-icon-image { background-position: -208px -128px; } .ui-icon-video { background-position: -224px -128px; } .ui-icon-script { background-position: -240px -128px; } .ui-icon-alert { background-position: 0 -144px; } .ui-icon-info { background-position: -16px -144px; } .ui-icon-notice { background-position: -32px -144px; } .ui-icon-help { background-position: -48px -144px; } .ui-icon-check { background-position: -64px -144px; } .ui-icon-bullet { background-position: -80px -144px; } .ui-icon-radio-on { background-position: -96px -144px; } .ui-icon-radio-off { background-position: -112px -144px; } .ui-icon-pin-w { background-position: -128px -144px; } .ui-icon-pin-s { background-position: -144px -144px; } .ui-icon-play { background-position: 0 -160px; } .ui-icon-pause { background-position: -16px -160px; } .ui-icon-seek-next { background-position: -32px -160px; } .ui-icon-seek-prev { background-position: -48px -160px; } .ui-icon-seek-end { background-position: -64px -160px; } .ui-icon-seek-start { background-position: -80px -160px; } /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ .ui-icon-seek-first { background-position: -80px -160px; } .ui-icon-stop { background-position: -96px -160px; } .ui-icon-eject { background-position: -112px -160px; } .ui-icon-volume-off { background-position: -128px -160px; } .ui-icon-volume-on { background-position: -144px -160px; } .ui-icon-power { background-position: 0 -176px; } .ui-icon-signal-diag { background-position: -16px -176px; } .ui-icon-signal { background-position: -32px -176px; } .ui-icon-battery-0 { background-position: -48px -176px; } .ui-icon-battery-1 { background-position: -64px -176px; } .ui-icon-battery-2 { background-position: -80px -176px; } .ui-icon-battery-3 { background-position: -96px -176px; } .ui-icon-circle-plus { background-position: 0 -192px; } .ui-icon-circle-minus { background-position: -16px -192px; } .ui-icon-circle-close { background-position: -32px -192px; } .ui-icon-circle-triangle-e { background-position: -48px -192px; } .ui-icon-circle-triangle-s { background-position: -64px -192px; } .ui-icon-circle-triangle-w { background-position: -80px -192px; } .ui-icon-circle-triangle-n { background-position: -96px -192px; } .ui-icon-circle-arrow-e { background-position: -112px -192px; } .ui-icon-circle-arrow-s { background-position: -128px -192px; } .ui-icon-circle-arrow-w { background-position: -144px -192px; } .ui-icon-circle-arrow-n { background-position: -160px -192px; } .ui-icon-circle-zoomin { background-position: -176px -192px; } .ui-icon-circle-zoomout { background-position: -192px -192px; } .ui-icon-circle-check { background-position: -208px -192px; } .ui-icon-circlesmall-plus { background-position: 0 -208px; } .ui-icon-circlesmall-minus { background-position: -16px -208px; } .ui-icon-circlesmall-close { background-position: -32px -208px; } .ui-icon-squaresmall-plus { background-position: -48px -208px; } .ui-icon-squaresmall-minus { background-position: -64px -208px; } .ui-icon-squaresmall-close { background-position: -80px -208px; } .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } .ui-icon-grip-solid-vertical { background-position: -32px -224px; } .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } .ui-icon-grip-diagonal-se { background-position: -80px -224px; } /* Misc visuals ----------------------------------*/ /* Corner radius */ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { border-top-left-radius: 4px; } .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { border-top-right-radius: 4px; } .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { border-bottom-left-radius: 4px; } .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { border-bottom-right-radius: 4px; } /* Overlays */ .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .3; filter: Alpha(Opacity=30); } .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .3; filter: Alpha(Opacity=30); border-radius: 8px; } jqueryui-1.10.1/css/smoothness/images/0000755000175000017500000000000012111026004016657 5ustar metalmetaljqueryui-1.10.1/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png0000644000175000017500000000040412107500070024133 0ustar metalmetalPNG  IHDR(dOgAMA asRGB cHRMz&u0`:pQ<bKGD݊IDAT(c (IUʑ.{%tEXtdate:create2013-02-15T16:36:39-05:00̛%tEXtdate:modify2013-02-15T16:36:39-05:00#eIENDB`jqueryui-1.10.1/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png0000644000175000017500000000060312107500070024152 0ustar metalmetalPNG  IHDRAgAMA asRGB cHRMz&u0`:pQ<bKGD XIDATH! AblA1{VY0ixxvDK_O9 aՔ}^JaȌ0bvBA$,Q"_44=SqcyEIW 7% z4hv`CfdkrXF\LZn'U )6H#7g~LbKGDHIDATx] cԸ{%G  m }]r27U,$Iƒ%4#f S7ݼ gyZB% _@vuR( x{H:~@d&d@߯B ]2XpY0Q!,X6?`i!',- Ѐ-Ohbq7 Lp1>t]hYxPBBBBBBŒqLDk?Ă.}RJ<  <; 3Q' ]ҧ D-${VT*ɖ+͒hQ/@ǯr1 > $$$$$$$$k-t1۩0 A |EǒAfC_`<}%0X"$ Зx@2\rod 6ٚ 4`R> a{nh!E #%Sw||LHHHHHHx,uyNC[U5 [4+9uWg2'ޗEoP? oOzgA"gÕB <=ζp{A3 'lO2J{lvAhlM],Nd0[;@tE]˳c`}6T1,VpxgNC^81 Qaz8c/e?+8ށY;hi3C(vv_8WߓŠDAB_XIgjPp }6# òxJvB83B6QaOi|A$xfKGܠfDtF31!!1ǃ蔽1^cb_BBBBF~'2* s nP+B Jj3D]V(^1搣`w9+ p.dkItFrlKr&sOеbsXOOlX?=b `9+4>x] (W<LYt {H| !!c1DDž ŀrZW-Po"ծRO.b|,tJ+#DU ΫDΞbݢ<܊F ѷk1֪Io[/!a(L^iUU5! BblnW!@\ih-oBe`v] PV@[= 0!uJ8%Y~1PIjB@^^bI$EHaZ֭֨;r.\ \\.3Pد$~2v6pVZj#˯z̘:IxEC1#Wh5*///b[V'Fs![j,`B]H_最N]q-ɹ[@h%>\v# ĺNPj?Q=`Ln G ^^X*u<b9K<;ZVZUŋpzumG…/4fncu#{kduX{OO8@xFW;ΑRQ/We@lvg4r<: *ܞnXWQ cp~q BA]?v%u8dͦ88M\zŢ$,zfl mnO?_gsBlhg>8>QY9^iђ]Sw^2 dp,`CbAoY}]m0c0cZzJo v4r߷~ a{z~яuQȊmjpzd>E͹QFs@ڋ,NN&$$$B/fԍ77k;zfM vxug;nt9P |t|r0GT/pvfN˿C\ _ʹ!ړ 3M#?YQݔ܀ oH k1V+&`>oH ]P.p4 rN vyN~=H;G[5G GFk|{781@= (5s -m[#TIQIi"!!!!!QAHk!1gg\wO0 6-En &dnu?\d;d@)i] . \ q'!另ɀ XxtkLc"`b v 80, ;N< 7QGW:G9=R\fg@@&ʳ Ptae!o!k>Wm_鈖_^`/d d2s3$+0ɋ;EgeB+o͗=dۙ`-@?q3.dD劯g7̋FKX=HU ,Mo铡046v*1#3֑*1+;֕*'$$$$$$8w&\L~@TaF2#o}2wsGG?`C2k=cgf<;xwο:=MB1ufD#@ѯ>UcpW&ٟ?D'. %Ͼk(_>w~}L:vv-@c@}\PB8۴}^c22O]8w(,PAwqbƴ_r6*U`!Wnm3T%?z]%wm\a8GiO,yEuW-ya߆~tWrW;A*٥ޢٷq4N;TbAf"H9zD#H9?wh2 # lu_(4Э%زC~bK_o?yh SPUXKW0͋=MQ nCACWǜ5q'm&eSlB ?R,lB;$=G"@ϑs$=Gr 7!f8PMBCeJ'̲"X6u AK?&>h!i_SRh;1h B͏Y6ΟEtPLghkCf7;(zB?D 7Nb% .op'e} _E@3T=(它eWj-3hz("ΞPv;㔛ESPLm{w Ɣc`5ŤC`2BCl:BGl0rMF]n9Lw+7H˴h;t$f]|yL`ϑs$=G"@ϑs$"X>@E]أ4lr:ڕy\d5n88݆AF-N,6iCleŅp?\krW-@ݖCd7_MllC4'c \Pm0k٘MЯ_淥A7Wt~U.WĎ.,Y>ь]: aݞ/b+w|*Z^g4u~kr&Pv fu;6HLk|h?B-BğJ1$iC@_ >%t*J_}@c Вu1l߿>[pIEp ;''0=wVy)@DBߐs$=G"@ϑ0iҜ?@8^AG{ѽvY`{n KWŬ˓3"uqyx\V+^tܗ?5ngO w*ie +@vU6W&}vr0ڎk'Hhe\Rn(lnkȨlyPWihwܸ]b|LTkZqackס1SFRL,A=fPlwIMs;$b~dޫp뫋;H2k(USUy5liVHn fPaDUaS*&)&$1%)@LSnH9zD#H9se*Y|ćW'9|Z$Zԕ"IbvfL1]F1Xm xvfsy,žvO>(SAD1^f+TýQ]! Ź\B;fH{lqtuCqPu?uȒU:{Ts#+zVh .(PtAxޡLF=Rz OTE-M >]ib]!&WQL*|?&n16Tgq~?2- .n]c TeyVG:Ut!ﵔg)`D.]T8UnB7y_gQ>Kƍ!{a9SSǭt!I.1!Ǻ`$z =G"@ϑs$,e0WffFVbˮ?o pΐW @ֺ2^b2вYeA +lX |Ȑ7sOZF]`|Q^ |97bŢ6l$k2#Ch=AΥrEQpV>c^sݝٽ-b#gs7JafX][4\~M5~WxOmBu"%~K|߳ȗnqrGCa> _œ_+.6ynr/m־?̷ki \a$T"/ĭs$3Q =|P@Ϲ*Ւ-oĊv8>I?,_b[G` v,3dX%5R0>3Q6ufyk>\1u` o*zb_`MvYD>T>yAqWUȅ._xS9 yyqMٖ o\!^FåNQL_|[>`Щ2E6f` tPPRkgI-vq sX|/Z-t=p k:y1u h+C:䆑bv׮cM[GIPya YqyVsQFEYuȧ"w̨_amIwyf]I@%WjV}: <#f| zkF~zxF1T=ӽJO@nak^ۯOG~Y6 + 6EH.x3U)Sj R-C `o"<hEӱDҢdڬq[p׹ZxP)혳kYX E]@륝~_8(\VUkyM.xߨ)E>ggź,P8%*hn)e\d(au.Tbܑ[@ d{R9w\*{G*/Qݫ4JpòZniͥi"Ȅ߫1T!H9zD#0 [{niJ/؃PQ cϮG/2P43"P->b |dp &kGݸ<9d<dz= 9M\K<%=Tc`/""B.+1h/ Z˜0Qf!?1B/q)!r#?a j#6=%#8kynW5d<}!+ )nKK e[+$x|q.YT)o6o5<6Gk_-Op{<_$c1Я c#>|q_xd[͢p s$=G"@Q @W(|훵%ʀʷ{,a~tn߬! #"w!Zu^F|훵%.zI)(א_)˯g-?lok_j翬-LsZصrEPp#ɕ?\i 3PJe+~5w"n 0\,1/?b h;S]Y?,vM!>Rh (}2GLP:B uJl!C2 $7/W"`v!T#{9NVM`h?8=;'Ua%aEc_?IBSOh!M?1t# u?_߯ZTXGXѺ˿|10汦-vf-os$k`ϑs$=G"@ϑs (OhXv^Wyܡ~ 覺qngnZv6a)pm/m+o콯)01hiOp``>xc^ N 1iy!%4~w'0HA=G"@ϑs$=G"@qz 0HBNlM,:Y#tvKy @'I7: "v j j/Wdwq tc @fkqtFR5_ANRbE` #C3!v.6{ `#vA|O舺K|vkxOk H9%tEXtdate:create2013-02-15T16:23:55-05:00%tEXtdate:modify2013-02-15T16:17:29-05:00tEXtSoftwareAdobe ImageReadyqe<IENDB`jqueryui-1.10.1/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png0000644000175000017500000000040312107500070024234 0ustar metalmetalPNG  IHDRG#7vgAMA asRGB cHRMz&u0`:pQ<bKGD݊IDAT(ch`ph4i%tEXtdate:create2013-02-15T16:36:39-05:00̛%tEXtdate:modify2013-02-15T16:36:39-05:00#eIENDB`jqueryui-1.10.1/css/smoothness/images/animated-overlay.gif0000644000175000017500000000331212107500070022613 0ustar metalmetalGIF89a((! NETSCAPE2.0! ,(( z KNY#7)zɭv[3ӵϰxPwEa؁FOfVYeΛ||/X\Wr݅o$m^K0>'$uf6G'Xg5Ȩ5)9):ZiYJyڪY! ,((}Q6Úa_y#ʩijK-|˱K3^Pw&KOә=7IfTzLMYhcdX\1iea }wl5CgGB)'hY9IHyȗ ʹYjZGh'j85P! ,(( mQ6,@o-`u$>Iz/ 69~[ޢՄ^Ot6Ac:vN?cUX|f&6ẍ́哲_~G(b8X%x7IXI9x(I:Y*XYvʚP! ,((oˁ;MZY|ƍ舝([99ږ1`P2!H>oQW^dsc2*Siy x[s^ݶVGWwgǸإx舙Y8IIyIZj)Xf):R! ,((CqMZYm5W(F~٩'-:Õ|ڒ1p?X1dFSLӨqne^ACjTpfԷUp|%ƌn]z~mHXx6X9)Hyi9ƈר)Z *Y! ,((˜CMZ5Yo}6-ʕz㒽h1C&'EfrtF9z&ۭ*V:&Tjeu~_}W5hbG6(iV((x:蹊JYY* P! ,((CMZՅl}'vexVZk 򮯱$bR3ƒHPGkBjymhXklvYvֻf7HXH(((9x3%txiY 9i*ZJzWP! ,((CMZՅl}'vexVZ%;ӨU{ZbQ0G͹SSRƆШ 2kYEV}v]xTpg7gvHX'㖨9)רe&) ji:hIZT;jqueryui-1.10.1/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png0000644000175000017500000000041012107500070023776 0ustar metalmetalPNG  IHDR(d5gAMA asRGB cHRMz&u0`:pQ<bKGD3rIDAT8c Q(sI.@F<#%tEXtdate:create2013-02-15T16:36:39-05:00̛%tEXtdate:modify2013-02-15T16:36:39-05:00#eIENDB`jqueryui-1.10.1/css/smoothness/images/ui-icons_2e83ff_256x240.png0000644000175000017500000001040112107500070023203 0ustar metalmetalPNG  IHDRIJgAMA1_PLTE.....................................................................KxDtRNS9Q* " < >7% z4hv`CfdkrXF\LZn'U )6H#7g~LbKGDHIDATx] cԸ{%G  m }]r27U,$Iƒ%4#f S7ݼ gyZB% _@vuR( x{H:~@d&d@߯B ]2XpY0Q!,X6?`i!',- Ѐ-Ohbq7 Lp1>t]hYxPBBBBBBŒqLDk?Ă.}RJ<  <; 3Q' ]ҧ D-${VT*ɖ+͒hQ/@ǯr1 > $$$$$$$$k-t1۩0 A |EǒAfC_`<}%0X"$ Зx@2\rod 6ٚ 4`R> a{nh!E #%Sw||LHHHHHHx,uyNC[U5 [4+9uWg2'ޗEoP? oOzgA"gÕB <=ζp{A3 'lO2J{lvAhlM],Nd0[;@tE]˳c`}6T1,VpxgNC^81 Qaz8c/e?+8ށY;hi3C(vv_8WߓŠDAB_XIgjPp }6# òxJvB83B6QaOi|A$xfKGܠfDtF31!!1ǃ蔽1^cb_BBBBF~'2* s nP+B Jj3D]V(^1搣`w9+ p.dkItFrlKr&sOеbsXOOlX?=b `9+4>x] (W<LYt {H| !!c1DDž ŀrZW-Po"ծRO.b|,tJ+#DU ΫDΞbݢ<܊F ѷk1֪Io[/!a(L^iUU5! BblnW!@\ih-oBe`v] PV@[= 0!uJ8%Y~1PIjB@^^bI$EHaZ֭֨;r.\ \\.3Pد$~2v6pVZj#˯z̘:IxEC1#Wh5*///b[V'Fs![j,`B]H_最N]q-ɹ[@h%>\v# ĺNPj?Q=`Ln G ^^X*u<b9K<;ZVZUŋpzumG…/4fncu#{kduX{OO8@xFW;ΑRQ/We@lvg4r<: *ܞnXWQ cp~q BA]?v%u8dͦ88M\zŢ$,zfl mnO?_gsBlhg>8>QY9^iђ]Sw^2 dp,`CbAoY}]m0c0cZzJo v4r߷~ a{z~яuQȊmjpzd>E͹QFs@ڋ,NN&$$$B/fԍ77k;zfM vxug;nt9P |t|r0GT/pvfN˿C\ _ʹ!ړ 3M#?YQݔ܀ oH k1V+&`>oH ]P.p4 rN vyN~=H;G[5G GFk|{781@= (5s -m[#TIQIi"!!!!!QAHk!1gg\wO0 6-En &dnu?\d;d@)i] . \ q'!另ɀ XxtkLc"`b v 80, ;N< 7QGW:G9=R\fg@@&ʳ Ptae!o!k>Wm_鈖_^`/d d2s3$+0ɋ;EgeB+o͗=dۙ`-@?q3.dD劯g7̋FKX=HU ,Mo铡046v*1#3֑*1+;֕*'$$$$$$8w&\L~@TaF2#o}2wsGG?>Pկxxqжuɚqf+6[\‡כWT4r6:]V:, (Ŵ8yG-(d H%tEXtdate:create2013-02-15T16:36:39-05:00̛%tEXtdate:modify2013-02-15T16:36:39-05:00#eIENDB`jqueryui-1.10.1/css/smoothness/images/ui-icons_454545_256x240.png0000644000175000017500000001530612107500070022771 0ustar metalmetalPNG  IHDREr@gAMA1_bKGDE;-IDATx]dU{^3#;;D /ر@ʃx!9H6F( ,FB Ad#axDZkNg ` 1s-9xm1h{PbWJX8kALyZPcg6d{{ֱP[<BXm['IheJUn^:ua2h5. ,v/Xm}}y"RS7noς_ v>'"k1p-]{\-je 3@J M :86ak\. QEZrZp#@]}Rt1TZp6vUAB(A 'TU]=.Iin?@5u}rG)T5B[= 9,ol(Y_.FT6aKObMSB{ZCZ qY Iz$=G# @ϑX<X(SG|xu÷EuR])䚝?Y8SL2ִ-Uz'W 1qnoe#?o*Vᮐq.ײɽ;+nQ`>wsC,ٜySg|ҙ#@ Z 9]y޾Kd-$P]ib]!&X{T~> +?C~ƘpDn?qLOZ5R鐚:v5@Uvϳ,tGI0`D13p -@Db FZ 9Iz$=qQi  GB6;F>SB#ZæL_~޷u0&g BTo/7=gw(=$:>^VUWQ^䲣j!gd lB8%sj7}F}ob0]`=L;-t(HQ|咟WxHص9ƅmGԭ&vn#KaUMV z׌ zt>JYmUE<. ]6^Wwx;,w׼MEr65]0VD66TwG_<{Ck@9>L%o-:&'^;E、4j_6 elrŒb*`caK˖f!kq?OuޚbU?Cn qCjgDHT"`gU$oxOz10bȁǕVwߵkϷY^`]o6P, iX lre+}56ZyW9dĈeoϭ:ݗῬ}p![ 7N ]OʐXcEF&]VQǨk̈g]i?az>1?+9UW:uX[JKWg^hnvt4ٯ2צiIWIvRqqr`0ޫ|1-r g5q50mg>-c潈|^d Hh$=G# @ϑx#|Yswpxc1'oad* rez62,U~!?ky1ȿ-ؒ_Z Z=ϖxg 5l' z37aۯ/%k" l/j‹ VFaXtcцe=kbb{9L@;Öj!H6Yrx3r>?>.8$uĘ vk6=u!?7 >#XUtC7Y*NRtU@orWHJQM}Ao[EV$ G! kk&sAWK3d;S"4q3&$?exz?:fKwV+TKH_2nc`PsM.%>g\EMB.v그oq7bF[* @SWw;,u˚7eo~un`7l]>vk%*B- )KI>V0Os\6eb͠z"]OvgP Tb_)v`r 烅՞B\;>1zN@ʿ {<_K? _)__XQGϢv*+֑q _a2 V%E ?o{|U wҺ2<~O4sqewk:A@]&,["Tbe>r//ye ȹvug9 o8'T+mogy(Ke+ _w XnxDez57/k]8_F)o -hwJVs/qƹ9tH;Q=$OZ@`:o;NU)М+xpa sdVO0ĩ2߁t3` _PRSa+-cX].~xt e/X|myW=aP}]q?jgȋ6Ph{ggC3݋[ 9(,Y3R=hk8z\XǚaCZm)BgJ;cO8>iT'xjkZ@fw{@*B@--JJ'x[(!.{G \ѰLVGĜm\d Jٯ ;`Mr䄣pz?`UkyM.9,R)2)NSKլuUG͞'EYiJ]eg?d," fn}(voRoy\fPMT_]5Z`Y_-s|?_aRFӯpqk(;JTW_,?z/Z?w ^UGi.PK G Iz$=G# @ϑ06~NS8>7dLluvu%&JSF$S7\ V,8 ]ƞ`vԍY 9>,Ym9Ӝcy؍yKz'D̞!YOp@hI=w9kynW5d"}!+ )KK E[+qJ1 C^hxm׶_fMOp@xǰPySgb#Đ_-~?Oi{xϑl=G# @ϑ t@W+쬛5}7%䯀{ʀC[Wz(ܬn߼!@D 7QE J!Zu[7>͛PEWM=h¤]͸۠T)Տڊwг淵/~6j-\iBCT]^1)ϰo0|ϕRtjU$ְm 3iq[<,5P(wF ޙ?sNyhzE((#j?`?7d&impÙ"u5 )\ 0 PzrU! .J5EYe<]I`<8];'I%WnIckW?QB#ۗkߵ!$ Y;@hn*VJ½5ʯYgݾy;@.:Wf8+govckYoH!=GIz$=G# @ϑ0m5v^Wz¡ƺIn#7\BSB hKʛx!f[X^W@r *bqiyߐ%4> =M XtzB # @ϑHs$9GWiAh:[Έ ,,Fht u)@ou)"V j͐^x4tc!_"5C\v%/}ӂ.> TF5S]u!(DLgzLX HF]lOs)``V^R Qw [n qtm S|H` %tEXtdate:create2013-02-15T16:23:55-05:00%tEXtdate:modify2013-02-15T16:17:29-05:00tEXtSoftwareAdobe ImageReadyqe<IENDB`jqueryui-1.10.1/css/smoothness/images/ui-icons_222222_256x240.png0000644000175000017500000001517512107500070022756 0ustar metalmetalPNG  IHDREr@gAMA1_bKGD"bIDATx_$]?=;{;k{>s#v!v/؎^8)CrĒtH, q+@  %H(!HLY>{NP]Ugnf;ڝUUWW߯~e&]" @@G[}ҩz8R?=99l" K|G^雫qir7~=k߽%@=s{8עW&iQr6Nz'xʳy6*!$oH+%iԡ`[gLJRڍM#H-2Rh3~&wu=Ԓ۶qЯ'i.V% s@^ap=bآ6ʒ'bpF|%fLDSD8tQ:(G# @y']:a>cLྃ=mpQza0w4gZҏJgn0Xlws1(elqu~(ͥ'_x s p@Xlp!A[0#ku4^znqp1W|`Ty)ff6 Q:(G# @qD2 Pv Aꭁ`R:sN# ?$>@ڀRM-J Ga-IU#oOKk~ȶQ{$B`!Ն^iu( >BowR2b)ڦi;1Rջ".h{L$0 =T!l17 (Šrk BŅ2*/2|*6LEF!ȦՠSfIW +7 HǴh۷$&]|yJ`qD8tQ:(9TK6zM.>@ѡYY@_Xzsm5TđS&؛3sm^E |]}s^ܕL` vH (KSUrB}7\dj~S1(`6b߽{:؆9'/ @w_n.eT?Lp߭|%[yF=WWݕs5U4ۗ!*^@b\}*@ȷU2!Mݎt\bBy,v=K[$ drK%8*?47""(G# @0jLҜez*齖q}b,ڕn ٗ''l0*Ļ`[~WB uZC- }.{kS'@-!niTUr{.McWM5 ogT`n(okH(ly6Piچhv߰mb|ִ&2mUchM)F3Mwе UUOfKR/k!blp#q>}]_{GiwcQݏR۫ GHe{t^I%|_ո6Ϫ"6WM٨zyI_Q*eEUFy!EmzϞrmO py_ɡ@iFأ80>◜ J9+\3g0_0ѹeJ3%ص|HB6 "0&n*_ >g{4Oɝ0{#kw **?u' %%+`3]4[/wt4٫0دL|'e(o̶#0 EŖ]T{=JtZ?7KHIXtA'tbofJz.*}"n)9͛ MrE 6VbL1`޶t:;_W4n([͖rԞkٙn|{l(umVm |c@y-)?Z\g.}jJ>}.i .I "黟_%n借 ~O^Ƥϸ.WՐCo=!ud<엌Ts|S_\)+{,f,zqa5DqqX rHbnbY,{YiUgF)ۚz ?Č~S M1vP6:k\gKbk[Ukq"T~&sȐB2|AcO{dШcSErOg:kjV K((!*":h 8tQ:(G@MˬK)wvSw<,и"!\uSevg 1D$Vn%N1Pg})tglG+[AlUpEq9^B.ȊEJ9ݴc2 %dnvE8yMrB۬)l 6֗Bc9^$~0]|Vљ4d=MP-oXנrG6F d>[_Pz"bnX41o [tk`HAiS3cCp;m|@7_y(_P&vd=K\l3EÓ> E* .o*ջ,LآUyZ4_מ,"~7'<|S9 eK-PdL "f_X2mM9Ͽ* &.luUdq@JT#C)+y "j *dܾ}|yUj!˞98c𧁔evIY:C"Vƣ qύRS9=im U0I  |?JV|dYU)&?CM'{f?d9*O3\9(SJ]D) 9XE_رm cZ$Wf8qt! @( )k|>_<'']@/6_6wvۼ}z( I 7+$e]qe,b /eĿb/ܾ*C$RƼ#}S%fjKᣧ\ʹU?i|Q]]wjVt,e/ܮjQ2M8_U85K a}-G[M)!mHH<+ (KJdzr%s[v!pw{;ɚQ5kM@hx`cgؐ0Kի*boi=5#Ơ{,ō }o5Hca V RsKe ?8+yx78_Eۘf0s&EPp/vet?,=UJEMkɫ哈ô52 =͞qǀ|Nh;Q^~;8)Oۡ߾C}^hld?-fn8#d.:%VJ@_J'PhtEG~9 Fb+?J W?P}ttti5޴d=քϰI 7x?R|[5W~Ŏ>Mr) y4(˥ ȝ|!,c>M!# @qD8te[@wiG4n ,٢ז1u>ڱn-MZ,>M }3 m {='}H) )x|V5 R=1.6" }, "category": "core" } jqueryui-1.10.1/development-bundle/ui.position.jquery.json0000644000175000017500000000267412107500066022725 0ustar metalmetal{ "name": "ui.position", "title": "jQuery UI Position", "description": "Positions elements relative to other elements.", "keywords": [ "ui", "position", "offset", "relative", "absolute", "fixed", "collision" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/position/", "demo": "http://jqueryui.com/position/", "docs": "http://api.jqueryui.com/position/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6" }, "category": "core" } jqueryui-1.10.1/development-bundle/ui.dialog.jquery.json0000644000175000017500000000304412107500066022310 0ustar metalmetal{ "name": "ui.dialog", "title": "jQuery UI Dialog", "description": "Displays customizable dialog windows.", "keywords": [ "ui", "dialog", "modal", "alert", "popup" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/dialog/", "demo": "http://jqueryui.com/dialog/", "docs": "http://api.jqueryui.com/dialog/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.button": "1.10.1", "ui.draggable": "1.10.1", "ui.position": "1.10.1", "ui.resizable": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.spinner.jquery.json0000644000175000017500000000300712107500066022526 0ustar metalmetal{ "name": "ui.spinner", "title": "jQuery UI Spinner", "description": "Displays buttons to easily input numbers via the keyboard or mouse.", "keywords": [ "ui", "spinner", "form", "number", "spinbutton", "stepper" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/spinner/", "demo": "http://jqueryui.com/spinner/", "docs": "http://api.jqueryui.com/spinner/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.button": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.effect-drop.jquery.json0000644000175000017500000000272212107500066023251 0ustar metalmetal{ "name": "ui.effect-drop", "title": "jQuery UI Drop Effect", "description": "Moves an element in one direction and hides it at the same time.", "keywords": [ "ui", "drop", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/drop-effect/", "demo": "http://jqueryui.com/drop-effect/", "docs": "http://api.jqueryui.com/drop-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.effect-transfer.jquery.json0000644000175000017500000000271512107500066024133 0ustar metalmetal{ "name": "ui.effect-transfer", "title": "jQuery UI Transfer Effect", "description": "Displays a transfer effect from one element to another.", "keywords": [ "ui", "transfer", "effect" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/transfer-effect/", "demo": "http://jqueryui.com/transfer-effect/", "docs": "http://api.jqueryui.com/transfer-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.effect-blind.jquery.json0000644000175000017500000000265312107500066023400 0ustar metalmetal{ "name": "ui.effect-blind", "title": "jQuery UI Blind Effect", "description": "Blinds the element.", "keywords": [ "ui", "blind", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/blind-effect/", "demo": "http://jqueryui.com/blind-effect/", "docs": "http://api.jqueryui.com/blind-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.draggable.jquery.json0000644000175000017500000000274412107500066022767 0ustar metalmetal{ "name": "ui.draggable", "title": "jQuery UI Draggable", "description": "Enables dragging functionality for any element.", "keywords": [ "ui", "draggable", "drag", "drop" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/draggable/", "demo": "http://jqueryui.com/draggable/", "docs": "http://api.jqueryui.com/draggable/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.mouse": "1.10.1" }, "category": "interaction" } jqueryui-1.10.1/development-bundle/package.json0000644000175000017500000000305512107500066020514 0ustar metalmetal{ "name": "jquery-ui", "title": "jQuery UI", "description": "A curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library.", "version": "1.10.1", "homepage": "http://jqueryui.com", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "repository": { "type": "git", "url": "git://github.com/jquery/jquery-ui.git" }, "bugs": "http://bugs.jqueryui.com/", "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "dependencies": {}, "devDependencies": { "grunt": "~0.3.17", "grunt-css": "0.2.0", "grunt-compare-size": "0.1.4", "grunt-html": "0.1.1", "grunt-junit": "0.1.5", "grunt-git-authors": "1.0.0", "rimraf": "2.0.1", "testswarm": "1.0.0-alpha" }, "keywords": [] } jqueryui-1.10.1/development-bundle/ui.effect.jquery.json0000644000175000017500000000300712107500066022304 0ustar metalmetal{ "name": "ui.effect", "title": "jQuery UI Effects Core", "description": "Extends the internal jQuery effects. Includes morphing and easing. Required by all other effects.", "keywords": [ "ui", "effect", "animation", "show", "hide", "color", "class", "transition", "easing" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/", "demo": "http://jqueryui.com/effects/", "docs": "http://api.jqueryui.com/category/effects-core/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.droppable.jquery.json0000644000175000017500000000277512107500066023033 0ustar metalmetal{ "name": "ui.droppable", "title": "jQuery UI Droppable", "description": "Enables drop targets for draggable elements.", "keywords": [ "ui", "droppable", "drag", "drop" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/droppable/", "demo": "http://jqueryui.com/droppable/", "docs": "http://api.jqueryui.com/droppable/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.mouse": "1.10.1", "ui.draggable": "1.10.1" }, "category": "interaction" } jqueryui-1.10.1/development-bundle/ui.button.jquery.json0000644000175000017500000000267312107500066022373 0ustar metalmetal{ "name": "ui.button", "title": "jQuery UI Button", "description": "Enhances a form with themable buttons.", "keywords": [ "ui", "button", "form", "radio", "checkbox" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/button/", "demo": "http://jqueryui.com/button/", "docs": "http://api.jqueryui.com/button/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.effect-bounce.jquery.json0000644000175000017500000000272412107500066023562 0ustar metalmetal{ "name": "ui.effect-bounce", "title": "jQuery UI Bounce Effect", "description": "Bounces an element horizontally or vertically n times.", "keywords": [ "ui", "bounce", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/bounce-effect/", "demo": "http://jqueryui.com/bounce-effect/", "docs": "http://api.jqueryui.com/bounce-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.menu.jquery.json0000644000175000017500000000266212107500066022022 0ustar metalmetal{ "name": "ui.menu", "title": "jQuery UI Menu", "description": "Creates nestable menus.", "keywords": [ "ui", "menu", "dropdown", "flyout" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/menu/", "demo": "http://jqueryui.com/menu/", "docs": "http://api.jqueryui.com/menu/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.position": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.effect-shake.jquery.json0000644000175000017500000000271512107500066023402 0ustar metalmetal{ "name": "ui.effect-shake", "title": "jQuery UI Shake Effect", "description": "Shakes an element horizontally or vertically n times.", "keywords": [ "ui", "shake", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/shake-effect/", "demo": "http://jqueryui.com/shake-effect/", "docs": "http://api.jqueryui.com/shake-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.core.jquery.json0000644000175000017500000000256712107500066022012 0ustar metalmetal{ "name": "ui.core", "title": "jQuery UI Core", "description": "The core of jQuery UI, required for all interactions and widgets.", "keywords": [ "ui", "core" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/", "demo": "http://jqueryui.com/", "docs": "http://api.jqueryui.com/category/ui-core/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6" }, "category": "core" } jqueryui-1.10.1/development-bundle/ui.effect-highlight.jquery.json0000644000175000017500000000300112107500066024243 0ustar metalmetal{ "name": "ui.effect-highlight", "title": "jQuery UI Highlight Effect", "description": "Highlights the background of an element in a defined color for a custom duration.", "keywords": [ "ui", "highlight", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/highlight-effect/", "demo": "http://jqueryui.com/highlight-effect/", "docs": "http://api.jqueryui.com/highlight-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.resizable.jquery.json0000644000175000017500000000273212107500066023034 0ustar metalmetal{ "name": "ui.resizable", "title": "jQuery UI Resizable", "description": "Enables resize functionality for any element.", "keywords": [ "ui", "resizable", "resize" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/resizable/", "demo": "http://jqueryui.com/resizable/", "docs": "http://api.jqueryui.com/resizable/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.mouse": "1.10.1" }, "category": "interaction" } jqueryui-1.10.1/development-bundle/themes/0000755000175000017500000000000012111026004017476 5ustar metalmetaljqueryui-1.10.1/development-bundle/themes/base/0000755000175000017500000000000012111026004020410 5ustar metalmetaljqueryui-1.10.1/development-bundle/themes/base/jquery.ui.slider.css0000644000175000017500000000244212107500066024352 0ustar metalmetal/*! * jQuery UI Slider 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Slider#theming */ .ui-slider { position: relative; text-align: left; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } /* For IE8 - See #6727 */ .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { filter: inherit; } .ui-slider-horizontal { height: .8em; } .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-slider-vertical { width: .8em; height: 100px; } .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; } jqueryui-1.10.1/development-bundle/themes/base/jquery.ui.menu.css0000644000175000017500000000244612107500066024040 0ustar metalmetal/*! * jQuery UI Menu 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Menu#theming */ .ui-menu { list-style: none; padding: 2px; margin: 0; display: block; outline: none; } .ui-menu .ui-menu { margin-top: -3px; position: absolute; } .ui-menu .ui-menu-item { margin: 0; padding: 0; width: 100%; } .ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; } .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; min-height: 0; /* support: IE7 */ font-weight: normal; } .ui-menu .ui-menu-item a.ui-state-focus, .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } .ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; } .ui-menu .ui-state-disabled a { cursor: default; } /* icon support */ .ui-menu-icons { position: relative; } .ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; } /* left-aligned */ .ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; } /* right-aligned */ .ui-menu .ui-menu-icon { position: static; float: right; } jqueryui-1.10.1/development-bundle/themes/base/jquery.ui.button.css0000644000175000017500000000475512107500066024414 0ustar metalmetal/*! * jQuery UI Button 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Button#theming */ .ui-button { display: inline-block; position: relative; padding: 0; line-height: normal; margin-right: .1em; cursor: pointer; vertical-align: middle; text-align: center; overflow: visible; /* removes extra width in IE */ } .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; } /* to make room for the icon, a width needs to be set here */ .ui-button-icon-only { width: 2.2em; } /* button elements seem to need a little more width */ button.ui-button-icon-only { width: 2.4em; } .ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /* button text element */ .ui-button .ui-button-text { display: block; line-height: normal; } .ui-button-text-only .ui-button-text { padding: .4em 1em; } .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } /* no icon support for input elements, provide padding by default */ input.ui-button { padding: .4em 1em; } /* button icon element(s) */ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } /* button sets */ .ui-buttonset { margin-right: 7px; } .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } /* workarounds */ /* reset extra padding in Firefox, see h5bp.com/l */ input.ui-button::-moz-focus-inner, button.ui-button::-moz-focus-inner { border: 0; padding: 0; } jqueryui-1.10.1/development-bundle/themes/base/jquery.ui.spinner.css0000644000175000017500000000223612107500066024547 0ustar metalmetal/*! * jQuery UI Spinner 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://docs.jquery.com/UI/Spinner#theming */ .ui-spinner { position: relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } .ui-spinner-input { border: none; background: none; color: inherit; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } .ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } /* more specificity required here to overide default borders */ .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* vertical centre icon */ .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } .ui-spinner-up { top: 0; } .ui-spinner-down { bottom: 0; } /* TR overrides */ .ui-spinner .ui-icon-triangle-1-s { /* need to fix icons sprite */ background-position: -65px -16px; } jqueryui-1.10.1/development-bundle/themes/base/jquery-ui.css0000644000175000017500000007701212107500070023070 0ustar metalmetal/*! jQuery UI - v1.10.1 - 2013-02-15 * http://jqueryui.com * Includes: jquery.ui.core.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css * Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */ /* Layout helpers ----------------------------------*/ .ui-helper-hidden { display: none; } .ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } .ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; border-collapse: collapse; } .ui-helper-clearfix:after { clear: both; } .ui-helper-clearfix { min-height: 0; /* support: IE7 */ } .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } .ui-front { z-index: 100; } /* Interaction Cues ----------------------------------*/ .ui-state-disabled { cursor: default !important; } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } /* Misc visuals ----------------------------------*/ /* Overlays */ .ui-widget-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; } .ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; min-height: 0; /* support: IE7 */ } .ui-accordion .ui-accordion-icons { padding-left: 2.2em; } .ui-accordion .ui-accordion-noicons { padding-left: .7em; } .ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; } .ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; } .ui-autocomplete { position: absolute; top: 0; left: 0; cursor: default; } .ui-button { display: inline-block; position: relative; padding: 0; line-height: normal; margin-right: .1em; cursor: pointer; vertical-align: middle; text-align: center; overflow: visible; /* removes extra width in IE */ } .ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; } /* to make room for the icon, a width needs to be set here */ .ui-button-icon-only { width: 2.2em; } /* button elements seem to need a little more width */ button.ui-button-icon-only { width: 2.4em; } .ui-button-icons-only { width: 3.4em; } button.ui-button-icons-only { width: 3.7em; } /* button text element */ .ui-button .ui-button-text { display: block; line-height: normal; } .ui-button-text-only .ui-button-text { padding: .4em 1em; } .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } .ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } .ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } /* no icon support for input elements, provide padding by default */ input.ui-button { padding: .4em 1em; } /* button icon element(s) */ .ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } .ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } .ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } .ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } /* button sets */ .ui-buttonset { margin-right: 7px; } .ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } /* workarounds */ /* reset extra padding in Firefox, see h5bp.com/l */ input.ui-button::-moz-focus-inner, button.ui-button::-moz-focus-inner { border: 0; padding: 0; } .ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } .ui-datepicker .ui-datepicker-header { position: relative; padding: .2em 0; } .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position: absolute; top: 2px; width: 1.8em; height: 1.8em; } .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } .ui-datepicker .ui-datepicker-prev { left: 2px; } .ui-datepicker .ui-datepicker-next { right: 2px; } .ui-datepicker .ui-datepicker-prev-hover { left: 1px; } .ui-datepicker .ui-datepicker-next-hover { right: 1px; } .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } .ui-datepicker .ui-datepicker-title select { font-size: 1em; margin: 1px 0; } .ui-datepicker select.ui-datepicker-month-year { width: 100%; } .ui-datepicker select.ui-datepicker-month, .ui-datepicker select.ui-datepicker-year { width: 49%; } .ui-datepicker table { width: 100%; font-size: .9em; border-collapse: collapse; margin: 0 0 .4em; } .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } .ui-datepicker td { border: 0; padding: 1px; } .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding: 0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width: auto; overflow: visible; } .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float: left; } /* with multiple calendars */ .ui-datepicker.ui-datepicker-multi { width: auto; } .ui-datepicker-multi .ui-datepicker-group { float: left; } .ui-datepicker-multi .ui-datepicker-group table { width: 95%; margin: 0 auto .4em; } .ui-datepicker-multi-2 .ui-datepicker-group { width: 50%; } .ui-datepicker-multi-3 .ui-datepicker-group { width: 33.3%; } .ui-datepicker-multi-4 .ui-datepicker-group { width: 25%; } .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width: 0; } .ui-datepicker-multi .ui-datepicker-buttonpane { clear: left; } .ui-datepicker-row-break { clear: both; width: 100%; font-size: 0; } /* RTL support */ .ui-datepicker-rtl { direction: rtl; } .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } .ui-datepicker-rtl .ui-datepicker-buttonpane { clear: right; } .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, .ui-datepicker-rtl .ui-datepicker-group { float: right; } .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width: 0; border-left-width: 1px; } .ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; outline: 0; } .ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } .ui-dialog .ui-dialog-title { float: left; margin: .1em 0; white-space: nowrap; width: 90%; overflow: hidden; text-overflow: ellipsis; } .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 21px; margin: -10px 0 0 0; padding: 1px; height: 20px; } .ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; } .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin-top: .5em; padding: .3em 1em .5em .4em; } .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } .ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } .ui-dialog .ui-resizable-se { width: 12px; height: 12px; right: -5px; bottom: -5px; background-position: 16px 16px; } .ui-draggable .ui-dialog-titlebar { cursor: move; } .ui-menu { list-style: none; padding: 2px; margin: 0; display: block; outline: none; } .ui-menu .ui-menu { margin-top: -3px; position: absolute; } .ui-menu .ui-menu-item { margin: 0; padding: 0; width: 100%; } .ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; } .ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; min-height: 0; /* support: IE7 */ font-weight: normal; } .ui-menu .ui-menu-item a.ui-state-focus, .ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; } .ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; } .ui-menu .ui-state-disabled a { cursor: default; } /* icon support */ .ui-menu-icons { position: relative; } .ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; } /* left-aligned */ .ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; } /* right-aligned */ .ui-menu .ui-menu-icon { position: static; float: right; } .ui-progressbar { height: 2em; text-align: left; overflow: hidden; } .ui-progressbar .ui-progressbar-value { margin: -1px; height: 100%; } .ui-progressbar .ui-progressbar-overlay { background: url("images/animated-overlay.gif"); height: 100%; filter: alpha(opacity=25); opacity: 0.25; } .ui-progressbar-indeterminate .ui-progressbar-value { background-image: none; } .ui-resizable { position: relative; } .ui-resizable-handle { position: absolute; font-size: 0.1px; display: block; } .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px; } .ui-selectable-helper { position: absolute; z-index: 100; border: 1px dotted black; } .ui-slider { position: relative; text-align: left; } .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } /* For IE8 - See #6727 */ .ui-slider.ui-state-disabled .ui-slider-handle, .ui-slider.ui-state-disabled .ui-slider-range { filter: inherit; } .ui-slider-horizontal { height: .8em; } .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } .ui-slider-horizontal .ui-slider-range-min { left: 0; } .ui-slider-horizontal .ui-slider-range-max { right: 0; } .ui-slider-vertical { width: .8em; height: 100px; } .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } .ui-slider-vertical .ui-slider-range-min { bottom: 0; } .ui-slider-vertical .ui-slider-range-max { top: 0; } .ui-spinner { position: relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; } .ui-spinner-input { border: none; background: none; color: inherit; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; } .ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; } /* more specificity required here to overide default borders */ .ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* vertical centre icon */ .ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } .ui-spinner-up { top: 0; } .ui-spinner-down { bottom: 0; } /* TR overrides */ .ui-spinner .ui-icon-triangle-1-s { /* need to fix icons sprite */ background-position: -65px -16px; } .ui-tabs { position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ padding: .2em; } .ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } .ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; } .ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } .ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; } .ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; } .ui-tabs .ui-tabs-nav li a, /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } .ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } .ui-tooltip { padding: 8px; position: absolute; z-index: 9999; max-width: 300px; -webkit-box-shadow: 0 0 5px #aaa; box-shadow: 0 0 5px #aaa; } body .ui-tooltip { border-width: 2px; } /* Component containers ----------------------------------*/ .ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; } .ui-widget .ui-widget { font-size: 1em; } .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; } .ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; } .ui-widget-content a { color: #222222/*{fcContent}*/; } .ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; } .ui-widget-header a { color: #222222/*{fcHeader}*/; } /* Interaction states ----------------------------------*/ .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; } .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; } .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; } .ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #212121/*{fcHover}*/; text-decoration: none; } .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; } .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; } /* Interaction Cues ----------------------------------*/ .ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; } .ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; } .ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; } .ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; } .ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; } .ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } .ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } .ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } .ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); /* For IE8 - See #6059 */ } /* Icons ----------------------------------*/ /* states and images */ .ui-icon { width: 16px; height: 16px; background-position: 16px 16px; } .ui-icon, .ui-widget-content .ui-icon { background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; } .ui-widget-header .ui-icon { background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; } .ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; } .ui-state-hover .ui-icon, .ui-state-focus .ui-icon { background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; } .ui-state-active .ui-icon { background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; } .ui-state-highlight .ui-icon { background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; } .ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; } /* positioning */ .ui-icon-carat-1-n { background-position: 0 0; } .ui-icon-carat-1-ne { background-position: -16px 0; } .ui-icon-carat-1-e { background-position: -32px 0; } .ui-icon-carat-1-se { background-position: -48px 0; } .ui-icon-carat-1-s { background-position: -64px 0; } .ui-icon-carat-1-sw { background-position: -80px 0; } .ui-icon-carat-1-w { background-position: -96px 0; } .ui-icon-carat-1-nw { background-position: -112px 0; } .ui-icon-carat-2-n-s { background-position: -128px 0; } .ui-icon-carat-2-e-w { background-position: -144px 0; } .ui-icon-triangle-1-n { background-position: 0 -16px; } .ui-icon-triangle-1-ne { background-position: -16px -16px; } .ui-icon-triangle-1-e { background-position: -32px -16px; } .ui-icon-triangle-1-se { background-position: -48px -16px; } .ui-icon-triangle-1-s { background-position: -64px -16px; } .ui-icon-triangle-1-sw { background-position: -80px -16px; } .ui-icon-triangle-1-w { background-position: -96px -16px; } .ui-icon-triangle-1-nw { background-position: -112px -16px; } .ui-icon-triangle-2-n-s { background-position: -128px -16px; } .ui-icon-triangle-2-e-w { background-position: -144px -16px; } .ui-icon-arrow-1-n { background-position: 0 -32px; } .ui-icon-arrow-1-ne { background-position: -16px -32px; } .ui-icon-arrow-1-e { background-position: -32px -32px; } .ui-icon-arrow-1-se { background-position: -48px -32px; } .ui-icon-arrow-1-s { background-position: -64px -32px; } .ui-icon-arrow-1-sw { background-position: -80px -32px; } .ui-icon-arrow-1-w { background-position: -96px -32px; } .ui-icon-arrow-1-nw { background-position: -112px -32px; } .ui-icon-arrow-2-n-s { background-position: -128px -32px; } .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } .ui-icon-arrow-2-e-w { background-position: -160px -32px; } .ui-icon-arrow-2-se-nw { background-position: -176px -32px; } .ui-icon-arrowstop-1-n { background-position: -192px -32px; } .ui-icon-arrowstop-1-e { background-position: -208px -32px; } .ui-icon-arrowstop-1-s { background-position: -224px -32px; } .ui-icon-arrowstop-1-w { background-position: -240px -32px; } .ui-icon-arrowthick-1-n { background-position: 0 -48px; } .ui-icon-arrowthick-1-ne { background-position: -16px -48px; } .ui-icon-arrowthick-1-e { background-position: -32px -48px; } .ui-icon-arrowthick-1-se { background-position: -48px -48px; } .ui-icon-arrowthick-1-s { background-position: -64px -48px; } .ui-icon-arrowthick-1-sw { background-position: -80px -48px; } .ui-icon-arrowthick-1-w { background-position: -96px -48px; } .ui-icon-arrowthick-1-nw { background-position: -112px -48px; } .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } .ui-icon-arrowreturn-1-w { background-position: -64px -64px; } .ui-icon-arrowreturn-1-n { background-position: -80px -64px; } .ui-icon-arrowreturn-1-e { background-position: -96px -64px; } .ui-icon-arrowreturn-1-s { background-position: -112px -64px; } .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } .ui-icon-arrow-4 { background-position: 0 -80px; } .ui-icon-arrow-4-diag { background-position: -16px -80px; } .ui-icon-extlink { background-position: -32px -80px; } .ui-icon-newwin { background-position: -48px -80px; } .ui-icon-refresh { background-position: -64px -80px; } .ui-icon-shuffle { background-position: -80px -80px; } .ui-icon-transfer-e-w { background-position: -96px -80px; } .ui-icon-transferthick-e-w { background-position: -112px -80px; } .ui-icon-folder-collapsed { background-position: 0 -96px; } .ui-icon-folder-open { background-position: -16px -96px; } .ui-icon-document { background-position: -32px -96px; } .ui-icon-document-b { background-position: -48px -96px; } .ui-icon-note { background-position: -64px -96px; } .ui-icon-mail-closed { background-position: -80px -96px; } .ui-icon-mail-open { background-position: -96px -96px; } .ui-icon-suitcase { background-position: -112px -96px; } .ui-icon-comment { background-position: -128px -96px; } .ui-icon-person { background-position: -144px -96px; } .ui-icon-print { background-position: -160px -96px; } .ui-icon-trash { background-position: -176px -96px; } .ui-icon-locked { background-position: -192px -96px; } .ui-icon-unlocked { background-position: -208px -96px; } .ui-icon-bookmark { background-position: -224px -96px; } .ui-icon-tag { background-position: -240px -96px; } .ui-icon-home { background-position: 0 -112px; } .ui-icon-flag { background-position: -16px -112px; } .ui-icon-calendar { background-position: -32px -112px; } .ui-icon-cart { background-position: -48px -112px; } .ui-icon-pencil { background-position: -64px -112px; } .ui-icon-clock { background-position: -80px -112px; } .ui-icon-disk { background-position: -96px -112px; } .ui-icon-calculator { background-position: -112px -112px; } .ui-icon-zoomin { background-position: -128px -112px; } .ui-icon-zoomout { background-position: -144px -112px; } .ui-icon-search { background-position: -160px -112px; } .ui-icon-wrench { background-position: -176px -112px; } .ui-icon-gear { background-position: -192px -112px; } .ui-icon-heart { background-position: -208px -112px; } .ui-icon-star { background-position: -224px -112px; } .ui-icon-link { background-position: -240px -112px; } .ui-icon-cancel { background-position: 0 -128px; } .ui-icon-plus { background-position: -16px -128px; } .ui-icon-plusthick { background-position: -32px -128px; } .ui-icon-minus { background-position: -48px -128px; } .ui-icon-minusthick { background-position: -64px -128px; } .ui-icon-close { background-position: -80px -128px; } .ui-icon-closethick { background-position: -96px -128px; } .ui-icon-key { background-position: -112px -128px; } .ui-icon-lightbulb { background-position: -128px -128px; } .ui-icon-scissors { background-position: -144px -128px; } .ui-icon-clipboard { background-position: -160px -128px; } .ui-icon-copy { background-position: -176px -128px; } .ui-icon-contact { background-position: -192px -128px; } .ui-icon-image { background-position: -208px -128px; } .ui-icon-video { background-position: -224px -128px; } .ui-icon-script { background-position: -240px -128px; } .ui-icon-alert { background-position: 0 -144px; } .ui-icon-info { background-position: -16px -144px; } .ui-icon-notice { background-position: -32px -144px; } .ui-icon-help { background-position: -48px -144px; } .ui-icon-check { background-position: -64px -144px; } .ui-icon-bullet { background-position: -80px -144px; } .ui-icon-radio-on { background-position: -96px -144px; } .ui-icon-radio-off { background-position: -112px -144px; } .ui-icon-pin-w { background-position: -128px -144px; } .ui-icon-pin-s { background-position: -144px -144px; } .ui-icon-play { background-position: 0 -160px; } .ui-icon-pause { background-position: -16px -160px; } .ui-icon-seek-next { background-position: -32px -160px; } .ui-icon-seek-prev { background-position: -48px -160px; } .ui-icon-seek-end { background-position: -64px -160px; } .ui-icon-seek-start { background-position: -80px -160px; } /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ .ui-icon-seek-first { background-position: -80px -160px; } .ui-icon-stop { background-position: -96px -160px; } .ui-icon-eject { background-position: -112px -160px; } .ui-icon-volume-off { background-position: -128px -160px; } .ui-icon-volume-on { background-position: -144px -160px; } .ui-icon-power { background-position: 0 -176px; } .ui-icon-signal-diag { background-position: -16px -176px; } .ui-icon-signal { background-position: -32px -176px; } .ui-icon-battery-0 { background-position: -48px -176px; } .ui-icon-battery-1 { background-position: -64px -176px; } .ui-icon-battery-2 { background-position: -80px -176px; } .ui-icon-battery-3 { background-position: -96px -176px; } .ui-icon-circle-plus { background-position: 0 -192px; } .ui-icon-circle-minus { background-position: -16px -192px; } .ui-icon-circle-close { background-position: -32px -192px; } .ui-icon-circle-triangle-e { background-position: -48px -192px; } .ui-icon-circle-triangle-s { background-position: -64px -192px; } .ui-icon-circle-triangle-w { background-position: -80px -192px; } .ui-icon-circle-triangle-n { background-position: -96px -192px; } .ui-icon-circle-arrow-e { background-position: -112px -192px; } .ui-icon-circle-arrow-s { background-position: -128px -192px; } .ui-icon-circle-arrow-w { background-position: -144px -192px; } .ui-icon-circle-arrow-n { background-position: -160px -192px; } .ui-icon-circle-zoomin { background-position: -176px -192px; } .ui-icon-circle-zoomout { background-position: -192px -192px; } .ui-icon-circle-check { background-position: -208px -192px; } .ui-icon-circlesmall-plus { background-position: 0 -208px; } .ui-icon-circlesmall-minus { background-position: -16px -208px; } .ui-icon-circlesmall-close { background-position: -32px -208px; } .ui-icon-squaresmall-plus { background-position: -48px -208px; } .ui-icon-squaresmall-minus { background-position: -64px -208px; } .ui-icon-squaresmall-close { background-position: -80px -208px; } .ui-icon-grip-dotted-vertical { background-position: 0 -224px; } .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } .ui-icon-grip-solid-vertical { background-position: -32px -224px; } .ui-icon-grip-solid-horizontal { background-position: -48px -224px; } .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } .ui-icon-grip-diagonal-se { background-position: -80px -224px; } /* Misc visuals ----------------------------------*/ /* Corner radius */ .ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { border-top-left-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { border-top-right-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { border-bottom-left-radius: 4px/*{cornerRadius}*/; } .ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { border-bottom-right-radius: 4px/*{cornerRadius}*/; } /* Overlays */ .ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3/*{opacityOverlay}*/; filter: Alpha(Opacity=30)/*{opacityFilterOverlay}*/; } .ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3/*{opacityShadow}*/; filter: Alpha(Opacity=30)/*{opacityFilterShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; } jqueryui-1.10.1/development-bundle/themes/base/images/0000755000175000017500000000000012111026004021655 5ustar metalmetaljqueryui-1.10.1/development-bundle/themes/base/images/ui-bg_flat_75_ffffff_40x100.png0000644000175000017500000000026212107500066027140 0ustar metalmetalPNG  IHDR(ddrzyIDATh1 R 7(ȚV`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X V`%X Vj)2NIENDB`jqueryui-1.10.1/development-bundle/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png0000644000175000017500000000017012107500066027154 0ustar metalmetalPNG  IHDRoX ?IDAT81 0Bѯl`6Cs<]:[&BA e7lQJŜQY*IENDB`jqueryui-1.10.1/development-bundle/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png0000644000175000017500000000015612107500066027022 0ustar metalmetalPNG  IHDRoX 5IDAT81 yUXHa@[{UUu@7 DFIENDB`jqueryui-1.10.1/development-bundle/themes/base/images/ui-icons_cd0a0a_256x240.png0000644000175000017500000001042112107500066026243 0ustar metalmetalPNG  IHDRIJPLTE 7NtRNS2P."Tp@f` <BHJZ&0R,4j8D|($ blߝF>n~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?sn~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?s'$uf6G'Xg5Ȩ5)9):ZiYJyڪY! ,((}Q6Úa_y#ʩijK-|˱K3^Pw&KOә=7IfTzLMYhcdX\1iea }wl5CgGB)'hY9IHyȗ ʹYjZGh'j85P! ,(( mQ6,@o-`u$>Iz/ 69~[ޢՄ^Ot6Ac:vN?cUX|f&6ẍ́哲_~G(b8X%x7IXI9x(I:Y*XYvʚP! ,((oˁ;MZY|ƍ舝([99ږ1`P2!H>oQW^dsc2*Siy x[s^ݶVGWwgǸإx舙Y8IIyIZj)Xf):R! ,((CqMZYm5W(F~٩'-:Õ|ڒ1p?X1dFSLӨqne^ACjTpfԷUp|%ƌn]z~mHXx6X9)Hyi9ƈר)Z *Y! ,((˜CMZ5Yo}6-ʕz㒽h1C&'EfrtF9z&ۭ*V:&Tjeu~_}W5hbG6(iV((x:蹊JYY* P! ,((CMZՅl}'vexVZk 򮯱$bR3ƒHPGkBjymhXklvYvֻf7HXH(((9x3%txiY 9i*ZJzWP! ,((CMZՅl}'vexVZ%;ӨU{ZbQ0G͹SSRƆШ 2kYEV}v]xTpg7gvHX'㖨9)רe&) ji:hIZT;jqueryui-1.10.1/development-bundle/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png0000644000175000017500000000026412107500066027010 0ustar metalmetalPNG  IHDR(ddrz{IDATh1 17Y$t3;_TUAUPTUAUPTUAUPTUAUPTUAUPTUAUPTUAUPTUAUPTUAUPTUAUPTUAUPTUAUPTüŝc)IENDB`jqueryui-1.10.1/development-bundle/themes/base/images/ui-icons_2e83ff_256x240.png0000644000175000017500000001042112107500066026210 0ustar metalmetalPNG  IHDRIJPLTE...............................................................................%̘NtRNS2P."Tp@f` <BHJZ&0R,4j8D|($ blߝF>n~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?sIDAT81 0Cџ $CB}1@)e_ƅ`I8-%cM0 )" LIENDB`jqueryui-1.10.1/development-bundle/themes/base/images/ui-icons_454545_256x240.png0000644000175000017500000001042112107500066025765 0ustar metalmetalPNG  IHDRIJPLTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEڲNtRNS2P."Tp@f` <BHJZ&0R,4j8D|($ blߝF>n~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?sn~hhHIDATx]b۶H儒-{iZK:glkn-tIqq? E$dK>$>;PZsVh!Sy0E0}H)-t koܪKp\RϠ .E7 ) *V;~Pe Bx*,=$zDؾ JҸٻ9{ ǸHpqW@"2'B[$ @TiH/b٥96!XHq`DE*R HV!%;" i] dddddddd4y5  Rb@(8CdŪݡ,@T@ibrq0alX!pe, =4bW { 5Ƭhu~(Q^@3="b5XC@JCT76q_5 @,r šɩD)T|O@ ON-ՙ [n@RXIm݋(F @?=0puL;g$@6η K`>п @h գKVn"a" %l@.v$/U^ G:#`` uTtK~ŋZ5T%kxk]\*Q ,҇B44 OXK|yg+_M(lоEO V$T1BXb-|?@ fBXr%'@ҹA\IJ,}BBc\V rh(]tI^}oצo S3 ";ʙb}"߰ ){b$Gwwݾab")T@pF_er6JvШ"mޭM-d76x˰6ӥ;/`>KrP\_^u1%OTM.}Q3.Nس})>-w`a+sy$t)NbFFFFBejnNVn4,A*X*5>PGa 3 {oB &<L[ Nc.öi=`Q@d ͆I.Il`\t[< Cit484-r +f쑱BCB MH iy }>rxp|z;BǏ;burcK4tz1G~`ؚK| ̔>ۡO$~ Ao)0pzz }i`;ADm8n:cfA@s7L Z/..h8or? N93B~o_'`opO- :TG L;7]`B%˛>*wTpM0H}&t ^1'Oqr'2P͡+z,tIW''|en=dzgRm[NStK{҉mؓVt6ҲR`ζN&}B U(rۗ&1%Q''?l׸+&r{jN಻4) `N狌. ߭ ǣ)q 2?n3Hb`} .`pqY1e_bu7e+N_F(DT,L}LLrmP5|x芥1cx DAb`M(7NED~Mz +4BXd.Mzv͈Pd8p<6?8N*x.6ڍ6GFZ)O !lSshssNp8`'0/<s}.@Ǩs7ξO۟VDa5av]m1+3y6۠>@u50Ps51==p *KVҫ܂ݻc$N4(Xr2###c- 賟Lδ>]5.sYs1f0;'̨Yg銛{@9 `aC(=%bo2=n1 jBoS$n#m=i0ci9}oI qT]W%.(؅]z\x f"]o'u䫵tk{v;AC3ֆwwR_#X (xҋ/q%W hpk_IX'b/fXKi"#####QCLi2t 5L0 QiH2;yTOok;ע ٶ`RNg{zy!Kxm?A(vU~mL(`o/!nmX-{v[ dw=n「sdwzn(}Oy~ m ?XU;,V'+ V&JRZ]᧭:zC'-߆@y 4u `Vۓwъ#zP@Q N>2/{\o)W~a3xLw :_Q;=pּdt\'8~3SRP6y+XQ*޺r ̗ѭ*޺r gl/\U^u$|mbVnw \V|D͊NVNy7k<;/E}?E*dzgO ~g/96f cD}% g$QG7o)U Jo,O@0߾Q(;bw:5 NwRN5Iy'K?}:9mֽ*@f@jU9mҫÍ{$ؗ}dFp|%!DdF>}G{@FFFFFFƦQܞH 3 u Mo~vy}mwz<7nP9rWku=|_nz쿳}@IXn?s7% z4hv`CfdkrXF\LZn'U )6H#7g~LbKGDHIDATx] cԸ{%G  m }]r27U,$Iƒ%4#f S7ݼ gyZB% _@vuR( x{H:~@d&d@߯B ]2XpY0Q!,X6?`i!',- Ѐ-Ohbq7 Lp1>t]hYxPBBBBBBŒqLDk?Ă.}RJ<  <; 3Q' ]ҧ D-${VT*ɖ+͒hQ/@ǯr1 > $$$$$$$$k-t1۩0 A |EǒAfC_`<}%0X"$ Зx@2\rod 6ٚ 4`R> a{nh!E #%Sw||LHHHHHHx,uyNC[U5 [4+9uWg2'ޗEoP? oOzgA"gÕB <=ζp{A3 'lO2J{lvAhlM],Nd0[;@tE]˳c`}6T1,VpxgNC^81 Qaz8c/e?+8ށY;hi3C(vv_8WߓŠDAB_XIgjPp }6# òxJvB83B6QaOi|A$xfKGܠfDtF31!!1ǃ蔽1^cb_BBBBF~'2* s nP+B Jj3D]V(^1搣`w9+ p.dkItFrlKr&sOеbsXOOlX?=b `9+4>x] (W<LYt {H| !!c1DDž ŀrZW-Po"ծRO.b|,tJ+#DU ΫDΞbݢ<܊F ѷk1֪Io[/!a(L^iUU5! BblnW!@\ih-oBe`v] PV@[= 0!uJ8%Y~1PIjB@^^bI$EHaZ֭֨;r.\ \\.3Pد$~2v6pVZj#˯z̘:IxEC1#Wh5*///b[V'Fs![j,`B]H_最N]q-ɹ[@h%>\v# ĺNPj?Q=`Ln G ^^X*u<b9K<;ZVZUŋpzumG…/4fncu#{kduX{OO8@xFW;ΑRQ/We@lvg4r<: *ܞnXWQ cp~q BA]?v%u8dͦ88M\zŢ$,zfl mnO?_gsBlhg>8>QY9^iђ]Sw^2 dp,`CbAoY}]m0c0cZzJo v4r߷~ a{z~яuQȊmjpzd>E͹QFs@ڋ,NN&$$$B/fԍ77k;zfM vxug;nt9P |t|r0GT/pvfN˿C\ _ʹ!ړ 3M#?YQݔ܀ oH k1V+&`>oH ]P.p4 rN vyN~=H;G[5G GFk|{781@= (5s -m[#TIQIi"!!!!!QAHk!1gg\wO0 6-En &dnu?\d;d@)i] . \ q'!另ɀ XxtkLc"`b v 80, ;N< 7QGW:G9=R\fg@@&ʳ Ptae!o!k>Wm_鈖_^`/d d2s3$+0ɋ;EgeB+o͗=dۙ`-@?q3.dD劯g7̋FKX=HU ,Mo铡046v*1#3֑*1+;֕*'$$$$$$8w&\L~@TaF2#o}2wsGG?`C2k=cgf<;xwο:=MB1ufD#@ѯ>UcpW&ٟ?D'. %Ͼk(_>w~}L:vv-@c@}\PB8۴}^c22O]8w(,PAwqbƴ_r6*U`!Wnm3T%?z]%wm\a8GiO,yEuW-ya߆~tWrW;A*٥ޢٷq4N;TbAf"H9zD#H9?wh2 # lu_(4Э%زC~bK_o?yh SPUXKW0͋=MQ nCACWǜ5q'm&eSlB ?R,lB;$=G"@ϑs$=Gr 7!f8PMBCeJ'̲"X6u AK?&>h!i_SRh;1h B͏Y6ΟEtPLghkCf7;(zB?D 7Nb% .op'e} _E@3T=(它eWj-3hz("ΞPv;㔛ESPLm{w Ɣc`5ŤC`2BCl:BGl0rMF]n9Lw+7H˴h;t$f]|yL`ϑs$=G"@ϑs$"X>@E]أ4lr:ڕy\d5n88݆AF-N,6iCleŅp?\krW-@ݖCd7_MllC4'c \Pm0k٘MЯ_淥A7Wt~U.WĎ.,Y>ь]: aݞ/b+w|*Z^g4u~kr&Pv fu;6HLk|h?B-BğJ1$iC@_ >%t*J_}@c Вu1l߿>[pIEp ;''0=wVy)@DBߐs$=G"@ϑ0iҜ?@8^AG{ѽvY`{n KWŬ˓3"uqyx\V+^tܗ?5ngO w*ie +@vU6W&}vr0ڎk'Hhe\Rn(lnkȨlyPWihwܸ]b|LTkZqackס1SFRL,A=fPlwIMs;$b~dޫp뫋;H2k(USUy5liVHn fPaDUaS*&)&$1%)@LSnH9zD#H9se*Y|ćW'9|Z$Zԕ"IbvfL1]F1Xm xvfsy,žvO>(SAD1^f+TýQ]! Ź\B;fH{lqtuCqPu?uȒU:{Ts#+zVh .(PtAxޡLF=Rz OTE-M >]ib]!&WQL*|?&n16Tgq~?2- .n]c TeyVG:Ut!ﵔg)`D.]T8UnB7y_gQ>Kƍ!{a9SSǭt!I.1!Ǻ`$z =G"@ϑs$,e0WffFVbˮ?o pΐW @ֺ2^b2вYeA +lX |Ȑ7sOZF]`|Q^ |97bŢ6l$k2#Ch=AΥrEQpV>c^sݝٽ-b#gs7JafX][4\~M5~WxOmBu"%~K|߳ȗnqrGCa> _œ_+.6ynr/m־?̷ki \a$T"/ĭs$3Q =|P@Ϲ*Ւ-oĊv8>I?,_b[G` v,3dX%5R0>3Q6ufyk>\1u` o*zb_`MvYD>T>yAqWUȅ._xS9 yyqMٖ o\!^FåNQL_|[>`Щ2E6f` tPPRkgI-vq sX|/Z-t=p k:y1u h+C:䆑bv׮cM[GIPya YqyVsQFEYuȧ"w̨_amIwyf]I@%WjV}: <#f| zkF~zxF1T=ӽJO@nak^ۯOG~Y6 + 6EH.x3U)Sj R-C `o"<hEӱDҢdڬq[p׹ZxP)혳kYX E]@륝~_8(\VUkyM.xߨ)E>ggź,P8%*hn)e\d(au.Tbܑ[@ d{R9w\*{G*/Qݫ4JpòZniͥi"Ȅ߫1T!H9zD#0 [{niJ/؃PQ cϮG/2P43"P->b |dp &kGݸ<9d<dz= 9M\K<%=Tc`/""B.+1h/ Z˜0Qf!?1B/q)!r#?a j#6=%#8kynW5d<}!+ )nKK e[+$x|q.YT)o6o5<6Gk_-Op{<_$c1Я c#>|q_xd[͢p s$=G"@Q @W(|훵%ʀʷ{,a~tn߬! #"w!Zu^F|훵%.zI)(א_)˯g-?lok_j翬-LsZصrEPp#ɕ?\i 3PJe+~5w"n 0\,1/?b h;S]Y?,vM!>Rh (}2GLP:B uJl!C2 $7/W"`v!T#{9NVM`h?8=;'Ua%aEc_?IBSOh!M?1t# u?_߯ZTXGXѺ˿|10汦-vf-os$k`ϑs$=G"@ϑs (OhXv^Wyܡ~ 覺qngnZv6a)pm/m+o콯)01hiOp``>xc^ N 1iy!%4~w'0HA=G"@ϑs$=G"@qz 0HBNlM,:Y#tvKy @'I7: "v j j/Wdwq tc @fkqtFR5_ANRbE` #C3!v.6{ `#vA|O舺K|vkxOk H9%tEXtdate:create2013-02-15T16:23:55-05:00%tEXtdate:modify2013-02-15T16:17:29-05:00tEXtSoftwareAdobe ImageReadyqe<IENDB`jqueryui-1.10.1/development-bundle/themes/smoothness/images/ui-bg_glass_65_ffffff_1x400.png0000644000175000017500000000040312107500070030522 0ustar metalmetalPNG  IHDRG#7vgAMA asRGB cHRMz&u0`:pQ<bKGD݊IDAT(ch`ph4i%tEXtdate:create2013-02-15T16:36:39-05:00̛%tEXtdate:modify2013-02-15T16:36:39-05:00#eIENDB`jqueryui-1.10.1/development-bundle/themes/smoothness/images/animated-overlay.gif0000644000175000017500000000331212107500070027101 0ustar metalmetalGIF89a((! NETSCAPE2.0! ,(( z KNY#7)zɭv[3ӵϰxPwEa؁FOfVYeΛ||/X\Wr݅o$m^K0>'$uf6G'Xg5Ȩ5)9):ZiYJyڪY! ,((}Q6Úa_y#ʩijK-|˱K3^Pw&KOә=7IfTzLMYhcdX\1iea }wl5CgGB)'hY9IHyȗ ʹYjZGh'j85P! ,(( mQ6,@o-`u$>Iz/ 69~[ޢՄ^Ot6Ac:vN?cUX|f&6ẍ́哲_~G(b8X%x7IXI9x(I:Y*XYvʚP! ,((oˁ;MZY|ƍ舝([99ږ1`P2!H>oQW^dsc2*Siy x[s^ݶVGWwgǸإx舙Y8IIyIZj)Xf):R! ,((CqMZYm5W(F~٩'-:Õ|ڒ1p?X1dFSLӨqne^ACjTpfԷUp|%ƌn]z~mHXx6X9)Hyi9ƈר)Z *Y! ,((˜CMZ5Yo}6-ʕz㒽h1C&'EfrtF9z&ۭ*V:&Tjeu~_}W5hbG6(iV((x:蹊JYY* P! ,((CMZՅl}'vexVZk 򮯱$bR3ƒHPGkBjymhXklvYvֻf7HXH(((9x3%txiY 9i*ZJzWP! ,((CMZՅl}'vexVZ%;ӨU{ZbQ0G͹SSRƆШ 2kYEV}v]xTpg7gvHX'㖨9)רe&) ji:hIZT;jqueryui-1.10.1/development-bundle/themes/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png0000644000175000017500000000041012107500070030264 0ustar metalmetalPNG  IHDR(d5gAMA asRGB cHRMz&u0`:pQ<bKGD3rIDAT8c Q(sI.@F<#%tEXtdate:create2013-02-15T16:36:39-05:00̛%tEXtdate:modify2013-02-15T16:36:39-05:00#eIENDB`jqueryui-1.10.1/development-bundle/themes/smoothness/images/ui-icons_2e83ff_256x240.png0000644000175000017500000001040112107500070027471 0ustar metalmetalPNG  IHDRIJgAMA1_PLTE.....................................................................KxDtRNS9Q* " < >7% z4hv`CfdkrXF\LZn'U )6H#7g~LbKGDHIDATx] cԸ{%G  m }]r27U,$Iƒ%4#f S7ݼ gyZB% _@vuR( x{H:~@d&d@߯B ]2XpY0Q!,X6?`i!',- Ѐ-Ohbq7 Lp1>t]hYxPBBBBBBŒqLDk?Ă.}RJ<  <; 3Q' ]ҧ D-${VT*ɖ+͒hQ/@ǯr1 > $$$$$$$$k-t1۩0 A |EǒAfC_`<}%0X"$ Зx@2\rod 6ٚ 4`R> a{nh!E #%Sw||LHHHHHHx,uyNC[U5 [4+9uWg2'ޗEoP? oOzgA"gÕB <=ζp{A3 'lO2J{lvAhlM],Nd0[;@tE]˳c`}6T1,VpxgNC^81 Qaz8c/e?+8ށY;hi3C(vv_8WߓŠDAB_XIgjPp }6# òxJvB83B6QaOi|A$xfKGܠfDtF31!!1ǃ蔽1^cb_BBBBF~'2* s nP+B Jj3D]V(^1搣`w9+ p.dkItFrlKr&sOеbsXOOlX?=b `9+4>x] (W<LYt {H| !!c1DDž ŀrZW-Po"ծRO.b|,tJ+#DU ΫDΞbݢ<܊F ѷk1֪Io[/!a(L^iUU5! BblnW!@\ih-oBe`v] PV@[= 0!uJ8%Y~1PIjB@^^bI$EHaZ֭֨;r.\ \\.3Pد$~2v6pVZj#˯z̘:IxEC1#Wh5*///b[V'Fs![j,`B]H_最N]q-ɹ[@h%>\v# ĺNPj?Q=`Ln G ^^X*u<b9K<;ZVZUŋpzumG…/4fncu#{kduX{OO8@xFW;ΑRQ/We@lvg4r<: *ܞnXWQ cp~q BA]?v%u8dͦ88M\zŢ$,zfl mnO?_gsBlhg>8>QY9^iђ]Sw^2 dp,`CbAoY}]m0c0cZzJo v4r߷~ a{z~яuQȊmjpzd>E͹QFs@ڋ,NN&$$$B/fԍ77k;zfM vxug;nt9P |t|r0GT/pvfN˿C\ _ʹ!ړ 3M#?YQݔ܀ oH k1V+&`>oH ]P.p4 rN vyN~=H;G[5G GFk|{781@= (5s -m[#TIQIi"!!!!!QAHk!1gg\wO0 6-En &dnu?\d;d@)i] . \ q'!另ɀ XxtkLc"`b v 80, ;N< 7QGW:G9=R\fg@@&ʳ Ptae!o!k>Wm_鈖_^`/d d2s3$+0ɋ;EgeB+o͗=dۙ`-@?q3.dD劯g7̋FKX=HU ,Mo铡046v*1#3֑*1+;֕*'$$$$$$8w&\L~@TaF2#o}2wsGG?>Pկxxqжuɚqf+6[\‡כWT4r6:]V:, (Ŵ8yG-(d H%tEXtdate:create2013-02-15T16:36:39-05:00̛%tEXtdate:modify2013-02-15T16:36:39-05:00#eIENDB`jqueryui-1.10.1/development-bundle/themes/smoothness/images/ui-icons_454545_256x240.png0000644000175000017500000001530612107500070027257 0ustar metalmetalPNG  IHDREr@gAMA1_bKGDE;-IDATx]dU{^3#;;D /ر@ʃx!9H6F( ,FB Ad#axDZkNg ` 1s-9xm1h{PbWJX8kALyZPcg6d{{ֱP[<BXm['IheJUn^:ua2h5. ,v/Xm}}y"RS7noς_ v>'"k1p-]{\-je 3@J M :86ak\. QEZrZp#@]}Rt1TZp6vUAB(A 'TU]=.Iin?@5u}rG)T5B[= 9,ol(Y_.FT6aKObMSB{ZCZ qY Iz$=G# @ϑX<X(SG|xu÷EuR])䚝?Y8SL2ִ-Uz'W 1qnoe#?o*Vᮐq.ײɽ;+nQ`>wsC,ٜySg|ҙ#@ Z 9]y޾Kd-$P]ib]!&X{T~> +?C~ƘpDn?qLOZ5R鐚:v5@Uvϳ,tGI0`D13p -@Db FZ 9Iz$=qQi  GB6;F>SB#ZæL_~޷u0&g BTo/7=gw(=$:>^VUWQ^䲣j!gd lB8%sj7}F}ob0]`=L;-t(HQ|咟WxHص9ƅmGԭ&vn#KaUMV z׌ zt>JYmUE<. ]6^Wwx;,w׼MEr65]0VD66TwG_<{Ck@9>L%o-:&'^;E、4j_6 elrŒb*`caK˖f!kq?OuޚbU?Cn qCjgDHT"`gU$oxOz10bȁǕVwߵkϷY^`]o6P, iX lre+}56ZyW9dĈeoϭ:ݗῬ}p![ 7N ]OʐXcEF&]VQǨk̈g]i?az>1?+9UW:uX[JKWg^hnvt4ٯ2צiIWIvRqqr`0ޫ|1-r g5q50mg>-c潈|^d Hh$=G# @ϑx#|Yswpxc1'oad* rez62,U~!?ky1ȿ-ؒ_Z Z=ϖxg 5l' z37aۯ/%k" l/j‹ VFaXtcцe=kbb{9L@;Öj!H6Yrx3r>?>.8$uĘ vk6=u!?7 >#XUtC7Y*NRtU@orWHJQM}Ao[EV$ G! kk&sAWK3d;S"4q3&$?exz?:fKwV+TKH_2nc`PsM.%>g\EMB.v그oq7bF[* @SWw;,u˚7eo~un`7l]>vk%*B- )KI>V0Os\6eb͠z"]OvgP Tb_)v`r 烅՞B\;>1zN@ʿ {<_K? _)__XQGϢv*+֑q _a2 V%E ?o{|U wҺ2<~O4sqewk:A@]&,["Tbe>r//ye ȹvug9 o8'T+mogy(Ke+ _w XnxDez57/k]8_F)o -hwJVs/qƹ9tH;Q=$OZ@`:o;NU)М+xpa sdVO0ĩ2߁t3` _PRSa+-cX].~xt e/X|myW=aP}]q?jgȋ6Ph{ggC3݋[ 9(,Y3R=hk8z\XǚaCZm)BgJ;cO8>iT'xjkZ@fw{@*B@--JJ'x[(!.{G \ѰLVGĜm\d Jٯ ;`Mr䄣pz?`UkyM.9,R)2)NSKլuUG͞'EYiJ]eg?d," fn}(voRoy\fPMT_]5Z`Y_-s|?_aRFӯpqk(;JTW_,?z/Z?w ^UGi.PK G Iz$=G# @ϑ06~NS8>7dLluvu%&JSF$S7\ V,8 ]ƞ`vԍY 9>,Ym9Ӝcy؍yKz'D̞!YOp@hI=w9kynW5d"}!+ )KK E[+qJ1 C^hxm׶_fMOp@xǰPySgb#Đ_-~?Oi{xϑl=G# @ϑ t@W+쬛5}7%䯀{ʀC[Wz(ܬn߼!@D 7QE J!Zu[7>͛PEWM=h¤]͸۠T)Տڊwг淵/~6j-\iBCT]^1)ϰo0|ϕRtjU$ְm 3iq[<,5P(wF ޙ?sNyhzE((#j?`?7d&impÙ"u5 )\ 0 PzrU! .J5EYe<]I`<8];'I%WnIckW?QB#ۗkߵ!$ Y;@hn*VJ½5ʯYgݾy;@.:Wf8+govckYoH!=GIz$=G# @ϑ0m5v^Wz¡ƺIn#7\BSB hKʛx!f[X^W@r *bqiyߐ%4> =M XtzB # @ϑHs$9GWiAh:[Έ ,,Fht u)@ou)"V j͐^x4tc!_"5C\v%/}ӂ.> TF5S]u!(DLgzLX HF]lOs)``V^R Qw [n qtm S|H` %tEXtdate:create2013-02-15T16:23:55-05:00%tEXtdate:modify2013-02-15T16:17:29-05:00tEXtSoftwareAdobe ImageReadyqe<IENDB`jqueryui-1.10.1/development-bundle/themes/smoothness/images/ui-icons_222222_256x240.png0000644000175000017500000001517512107500070027244 0ustar metalmetalPNG  IHDREr@gAMA1_bKGD"bIDATx_$]?=;{;k{>s#v!v/؎^8)CrĒtH, q+@  %H(!HLY>{NP]Ugnf;ڝUUWW߯~e&]" @@G[}ҩz8R?=99l" K|G^雫qir7~=k߽%@=s{8עW&iQr6Nz'xʳy6*!$oH+%iԡ`[gLJRڍM#H-2Rh3~&wu=Ԓ۶qЯ'i.V% s@^ap=bآ6ʒ'bpF|%fLDSD8tQ:(G# @y']:a>cLྃ=mpQza0w4gZҏJgn0Xlws1(elqu~(ͥ'_x s p@Xlp!A[0#ku4^znqp1W|`Ty)ff6 Q:(G# @qD2 Pv Aꭁ`R:sN# ?$>@ڀRM-J Ga-IU#oOKk~ȶQ{$B`!Ն^iu( >BowR2b)ڦi;1Rջ".h{L$0 =T!l17 (Šrk BŅ2*/2|*6LEF!ȦՠSfIW +7 HǴh۷$&]|yJ`qD8tQ:(9TK6zM.>@ѡYY@_Xzsm5TđS&؛3sm^E |]}s^ܕL` vH (KSUrB}7\dj~S1(`6b߽{:؆9'/ @w_n.eT?Lp߭|%[yF=WWݕs5U4ۗ!*^@b\}*@ȷU2!Mݎt\bBy,v=K[$ drK%8*?47""(G# @0jLҜez*齖q}b,ڕn ٗ''l0*Ļ`[~WB uZC- }.{kS'@-!niTUr{.McWM5 ogT`n(okH(ly6Piچhv߰mb|ִ&2mUchM)F3Mwе UUOfKR/k!blp#q>}]_{GiwcQݏR۫ GHe{t^I%|_ո6Ϫ"6WM٨zyI_Q*eEUFy!EmzϞrmO py_ɡ@iFأ80>◜ J9+\3g0_0ѹeJ3%ص|HB6 "0&n*_ >g{4Oɝ0{#kw **?u' %%+`3]4[/wt4٫0دL|'e(o̶#0 EŖ]T{=JtZ?7KHIXtA'tbofJz.*}"n)9͛ MrE 6VbL1`޶t:;_W4n([͖rԞkٙn|{l(umVm |c@y-)?Z\g.}jJ>}.i .I "黟_%n借 ~O^Ƥϸ.WՐCo=!ud<엌Ts|S_\)+{,f,zqa5DqqX rHbnbY,{YiUgF)ۚz ?Č~S M1vP6:k\gKbk[Ukq"T~&sȐB2|AcO{dШcSErOg:kjV K((!*":h 8tQ:(G@MˬK)wvSw<,и"!\uSevg 1D$Vn%N1Pg})tglG+[AlUpEq9^B.ȊEJ9ݴc2 %dnvE8yMrB۬)l 6֗Bc9^$~0]|Vљ4d=MP-oXנrG6F d>[_Pz"bnX41o [tk`HAiS3cCp;m|@7_y(_P&vd=K\l3EÓ> E* .o*ջ,LآUyZ4_מ,"~7'<|S9 eK-PdL "f_X2mM9Ͽ* &.luUdq@JT#C)+y "j *dܾ}|yUj!˞98c𧁔evIY:C"Vƣ qύRS9=im U0I  |?JV|dYU)&?CM'{f?d9*O3\9(SJ]D) 9XE_رm cZ$Wf8qt! @( )k|>_<'']@/6_6wvۼ}z( I 7+$e]qe,b /eĿb/ܾ*C$RƼ#}S%fjKᣧ\ʹU?i|Q]]wjVt,e/ܮjQ2M8_U85K a}-G[M)!mHH<+ (KJdzr%s[v!pw{;ɚQ5kM@hx`cgؐ0Kի*boi=5#Ơ{,ō }o5Hca V RsKe ?8+yx78_Eۘf0s&EPp/vet?,=UJEMkɫ哈ô52 =͞qǀ|Nh;Q^~;8)Oۡ߾C}^hld?-fn8#d.:%VJ@_J'PhtEG~9 Fb+?J W?P}ttti5޴d=քϰI 7x?R|[5W~Ŏ>Mr) y4(˥ ȝ|!,c>M!# @qD8te[@wiG4n ,٢ז1u>ڱn-MZ,>M }3 m {='}H) )x|V5 R=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.autocomplete.jquery.json0000644000175000017500000000304212107500066023550 0ustar metalmetal{ "name": "ui.autocomplete", "title": "jQuery UI Autocomplete", "description": "Lists suggested words as the user is typing.", "keywords": [ "ui", "autocomplete", "form", "word", "predict", "suggest" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/autocomplete/", "demo": "http://jqueryui.com/autocomplete/", "docs": "http://api.jqueryui.com/autocomplete/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.menu": "1.10.1", "ui.position": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.mouse.jquery.json0000644000175000017500000000270412107500066022203 0ustar metalmetal{ "name": "ui.mouse", "title": "jQuery UI Mouse", "description": "Abstracts mouse-based interactions to assist in creating certain widgets.", "keywords": [ "ui", "mouse", "abstraction" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/mouse/", "demo": "http://jqueryui.com/mouse/", "docs": "http://api.jqueryui.com/mouse/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1" }, "category": "core" } jqueryui-1.10.1/development-bundle/ui.progressbar.jquery.json0000644000175000017500000000301712107500066023402 0ustar metalmetal{ "name": "ui.progressbar", "title": "jQuery UI Progressbar", "description": "Displays a status indicator for loading state, standard percentage, and other progress indicators.", "keywords": [ "ui", "progressbar", "determinate", "status" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/progressbar/", "demo": "http://jqueryui.com/progressbar/", "docs": "http://api.jqueryui.com/progressbar/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.effect-explode.jquery.json0000644000175000017500000000300712107500066023742 0ustar metalmetal{ "name": "ui.effect-explode", "title": "jQuery UI Explode Effect", "description": "Explodes an element in all directions into n pieces. Implodes an element to its original wholeness.", "keywords": [ "ui", "explode", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/explode-effect/", "demo": "http://jqueryui.com/explode-effect/", "docs": "http://api.jqueryui.com/explode-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.tooltip.jquery.json0000644000175000017500000000272212107500066022545 0ustar metalmetal{ "name": "ui.tooltip", "title": "jQuery UI Tooltip", "description": "Shows additional information for any element on hover or focus.", "keywords": [ "ui", "tooltip" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/tooltip/", "demo": "http://jqueryui.com/tooltip/", "docs": "http://api.jqueryui.com/tooltip/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.position": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/demos/0000755000175000017500000000000012111026004017320 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/accordion/0000755000175000017500000000000012111026004021261 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/accordion/hoverintent.html0000644000175000017500000000735612107500066024541 0ustar metalmetal jQuery UI Accordion - Open on hoverintent

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.

Section 2

Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.

  • List item one
  • List item two
  • List item three

Section 4

Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.

Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Click headers to expand/collapse content that is broken into logical sections, much like tabs. Optionally, toggle sections open/closed on mouseover.

The underlying HTML markup is a series of headers (H3 tags) and content divs so the content is usable without JavaScript.

jqueryui-1.10.1/development-bundle/demos/accordion/no-auto-height.html0000644000175000017500000000333012107500066025010 0ustar metalmetal jQuery UI Accordion - No auto height

Section 1

Mauris mauris ante, blandit et, ultrices a, susceros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.

Section 2

Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.

  • List item
  • List item
  • List item
  • List item
  • List item
  • List item
  • List item

Setting heightStyle: "content" allows the accordion panels to keep their native height.

jqueryui-1.10.1/development-bundle/demos/accordion/collapsible.html0000644000175000017500000000450312107500066024454 0ustar metalmetal jQuery UI Accordion - Collapse content

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.

Section 2

Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.

  • List item one
  • List item two
  • List item three

Section 4

Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.

Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

By default, accordions always keep one section open. To allow for all sections to be be collapsible, set the collapsible option to true. Click on the currently open section to collapse its content pane.

jqueryui-1.10.1/development-bundle/demos/accordion/index.html0000644000175000017500000000103612107500066023270 0ustar metalmetal jQuery UI Accordion Demos jqueryui-1.10.1/development-bundle/demos/accordion/fillspace.html0000644000175000017500000000571112107500066024127 0ustar metalmetal jQuery UI Accordion - Fill space

Resize the outer container:

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.

Section 2

Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.

  • List item one
  • List item two
  • List item three

Section 4

Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.

Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Because the accordion is comprised of block-level elements, by default its width fills the available horizontal space. To fill the vertical space allocated by its container, set the heightStyle option to "fill", and the script will automatically set the dimensions of the accordion to the height of its parent container.

jqueryui-1.10.1/development-bundle/demos/accordion/default.html0000644000175000017500000000465112107500066023613 0ustar metalmetal jQuery UI Accordion - Default functionality

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.

Section 2

Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.

  • List item one
  • List item two
  • List item three

Section 4

Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.

Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Click headers to expand/collapse content that is broken into logical sections, much like tabs. Optionally, toggle sections open/closed on mouseover.

The underlying HTML markup is a series of headers (H3 tags) and content divs so the content is usable without JavaScript.

jqueryui-1.10.1/development-bundle/demos/accordion/custom-icons.html0000644000175000017500000000540612107500066024611 0ustar metalmetal jQuery UI Accordion - Customize icons

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.

Section 2

Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.

  • List item one
  • List item two
  • List item three

Section 4

Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.

Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Customize the header icons with the icons option, which accepts classes for the header's default and active (open) state. Use any class from the UI CSS framework, or create custom classes with background images.

jqueryui-1.10.1/development-bundle/demos/accordion/sortable.html0000644000175000017500000000535512107500066024004 0ustar metalmetal jQuery UI Accordion - Sortable

Section 1

Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.

Section 2

Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna.

Section 3

Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.

  • List item one
  • List item two
  • List item three

Section 4

Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est.

Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.

Drag the header to re-order panels.

jqueryui-1.10.1/development-bundle/demos/demos.css0000644000175000017500000000043712107500066021157 0ustar metalmetalbody { font-size: 62.5%; font-family: "Trebuchet MS", "Arial", "Helvetica", "Verdana", "sans-serif"; } table { font-size: 1em; } .demo-description { clear: both; padding: 12px; font-size: 1.3em; line-height: 1.4em; } .ui-draggable, .ui-droppable { background-position: top; } jqueryui-1.10.1/development-bundle/demos/effect/0000755000175000017500000000000012111026004020554 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/effect/index.html0000644000175000017500000000037512107500070022563 0ustar metalmetal jQuery UI Effects Demos jqueryui-1.10.1/development-bundle/demos/effect/easing.html0000644000175000017500000000535012107500070022720 0ustar metalmetal jQuery UI Effects - Easing demo

All easings provided by jQuery UI are drawn above, using a HTML canvas element. Click a diagram to see the easing in action.

jqueryui-1.10.1/development-bundle/demos/effect/default.html0000644000175000017500000000676412107500070023110 0ustar metalmetal jQuery UI Effects - Effect demo

Effect

Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.

Run Effect

Click the button above to show the effect.

jqueryui-1.10.1/development-bundle/demos/progressbar/0000755000175000017500000000000012111026004021651 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/progressbar/indeterminate.html0000644000175000017500000000306012107500070025373 0ustar metalmetal jQuery UI Progressbar - Indeterminate Value

Indeterminate progress bar and switching between determinate and indeterminate styles.

jqueryui-1.10.1/development-bundle/demos/progressbar/label.html0000644000175000017500000000247212107500070023630 0ustar metalmetal jQuery UI Progressbar - Custom Label
Loading...

Custom updated label demo.

jqueryui-1.10.1/development-bundle/demos/progressbar/index.html0000644000175000017500000000047512107500070023661 0ustar metalmetal jQuery UI Progressbar Demos jqueryui-1.10.1/development-bundle/demos/progressbar/images/0000755000175000017500000000000012111026004023116 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/progressbar/images/pbar-ani.gif0000644000175000017500000001744212107500070025313 0ustar metalmetalGIF89a0JΔŔŌsskRkcJBJB֜! NETSCAPE2.0! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP !,0pIͻ"di"l)k1|+plJ cպfxL./f϶q} zy| ¶žȝʰ!,0ЉAǻc di(il0߱| n?!gD:KbyTFaSj" xL.^6|N|q} z{~ øƢɩ!,0I18 AHihZb뾰H8l$|@-Ga1C:bTFuTfxL.ޯ/|nj{N8~ {|w} ý Űȶˤ!,0I)8k !bh辰[8l$|@-G$aC:{eIJ_MjjxL.ޯ/|nj{N8~ {}w ľ Ʊɷ̦!,0ĸ8}ChAplͺrI`+x¤h!a*SXպPCaL.-'Fu{~3 }y ¾ ǻɹ̲!,09Ÿ8}`(a h,jp,Kﳑp&RiD|(Ij z]fK4z-&{p ~ ~~y #  ĴǷž ˳г!,0I8qx`("aHlf,7\ﴑpqI4"wJt80 }} { b z ®˽ɸ ϱԭ!,0I#{O($Il)t}ov_pH,y$d"=`s*|BԬ:fX\(xFCyng4Qx/: ~~| |c þȺƴ ̯!,0I#{O($Il)t}ov_pH,y$d"=`s*|BԬ:fX\(xFCyng4Qx/: ~~| |c { ɼǶ ͯ!,0Ik#{O($Il)t}ov_pH,y$d"=`s*|BԬ:fX\(xFCyng4Qx/: ~~| |c ʻȶ !,0Iubͻ#dYl뾫tm*ۆpH,2ul6K_IBMNi<.nft } }d ­˼ɷ ϰ!,00ISͻ!dil)kI`/H$HK:Kf|F#j5ixxpPnzng`Mo㾮x/> ~~|` ­˼ɷ ϰҿ!,0pઽ8W!DihZHp<4ʸ\六p#v>h<ږ`әJFSj5 ~~|a ­˼ɷ ϰҽ!,0p8k+`"AhAp,&kI}pH,{d&˦t{Si՚fX\(xFCyng4Qrax } }c ­˼ɷ ϰһ!,0p8k+`"AhAp,&kIRVoH,{plJs:FUL*R xL.&.u{~w~ {{}y y; Ǹų ˬ !,0p)8}`(bh,jp,ޭ1{ظG,>g@:eI%FfzŦ[@.h28Lkqbt80 }}{ {< ÿɺǵ ͮ!,0pI8}`(bh,jp,ޭ1{ظG,>g@:eI%FfzŦ[@.h28|5sa{ 0 }} { z îƶʼ ϱѶ!,0pI .{"dDlf,n]q<@G,ȡqyDLyFZ4xr{^l>xٝ~ wyx Űȸ̾ ѳӶ!,0pI+ .{O($ l)t}oe' n$PHP%ZSjyf+nj(,'>xo/ ~~ | {= þƶɹͿ Ҵ!,0pI .{O($ l)t}oe' n$PHP%ZSjyf+nj(,'>xo/ ~~ | {= þƶɹ ͵Ӵ;jqueryui-1.10.1/development-bundle/demos/progressbar/default.html0000644000175000017500000000126112107500070024170 0ustar metalmetal jQuery UI Progressbar - Default functionality

Default determinate progress bar.

jqueryui-1.10.1/development-bundle/demos/droppable/0000755000175000017500000000000012111026004021270 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/droppable/accepted-elements.html0000644000175000017500000000310312107500066025547 0ustar metalmetal jQuery UI Droppable - Accept

I'm draggable but can't be dropped

Drag me to my target

accept: '#draggable'

Specify using the accept option which element (or group of elements) is accepted by the target droppable.

jqueryui-1.10.1/development-bundle/demos/droppable/index.html0000644000175000017500000000110312107500070023265 0ustar metalmetal jQuery UI Droppable Demos jqueryui-1.10.1/development-bundle/demos/droppable/images/0000755000175000017500000000000012111026004022535 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/droppable/images/high_tatras2_min.jpg0000644000175000017500000000416412107500066026500 0ustar metalmetalJFIFHHC    ' .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQROC&&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOH`!0!1A"Qa#2qBR"!1AQ2aq ?Ұ_(m_WB}x{+vs5וrqJ.-a,@$]y\CVn .%HB(HChRRK{YsG?za^$F+CdYwn>ʦfO $Nu9xUHY\~V98wZ608d!zQG|0ǫ\ԓ<_\,*1ǫEY0.p?J{ekw+2Z'TpefBn3Rv7d^a~*I܁cm)SuasH,;>ծȅ 3DPcbqɦO`FA 9̀j%psAܧYΆlIck\BT<[-k8nAL}u?5I1#WXoѸ|H(B9j꣟eQHmm'zaS2Hۚ|IK)pG}Q #rs+\fFU0X}ji Xҵ8&6WbV(C5_M#-&"0v(GYgiLDS'S)DFݝozح5k?FeB{|Pn-.=UV,@C2ɑ?J%a,~Y?>%[;F)Vm9;c*5L>BxKH2qGST$/ݞOTmt> ^B@.8; Ǘ4`fve.hsp}SI|ϧK+aW{\sϴO,>Cؠ ㌒Hکiq%_60{TV%m?&/hW:]ĺaFj}\ bʇ:<%ڳhO :X(SAK!'3UQO8Aގܶ5^qHV@~'TbeOSSЅQVB7;0~ϫ71e3?/@`0:1pRYe fĐ[^bL V<pQf뮱s s\txv$ossTI4Q<:8e16V<'˹OG>|'ն4,9$,gh Oe_ NcYp]m~J80.EXb$v? Խ~IӜ(Q)|2c{cweK,BpO 𢡊gQX4%\luoWGHTÙf9H;^ہ e$}m`/Φ*X"8&Fe.hʤ`.ه77pR}q\b@F \%|2ҁnO%}p wXy kD=L |ֶ`}\M+iVɳ)E]<[}vp: ynM<@Cц^ة$N LK6-JPoM49MbIYk "0;ۃl9ӰΧĐI7?ui|eWH ?*ukqbeN$T}D0Oe.!9Sj*7;\4$s|x\eKVx+t&ZW4zۍ0"T!CJts~&'ؚz:m[rGnbesw<[K]Jg]4s-#m̢S}㊳3W/:!1΢@^ݱ|`^~,+&e'Ϧ feԓ41SeU7{Ú JTR>䌎yig/xV2$$Z %ts:bk8d o;ok۞0<\ν4+DT<8K`Wo]Te{{RK k+ckA|hƔ[R^֗ܶAƓiIRuM62LPxf`<ʷێ8TMPMB,[b_opU<"Q)+['팮~˒+R L/LK1#}MN]UqCz_[ -'~ Z47.sΜvԐ!X.F=g9 !f-{Ϯ*&NꎦtyN&Voks,hie@"$IˈhVmGL%6&UѨ֩dw+pI'Qjqueryui-1.10.1/development-bundle/demos/droppable/images/high_tatras4.jpg0000644000175000017500000006044612107500070025637 0ustar metalmetalJFIFHHC     #!)!$%'('+.+&.#&'&C   &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ! &5UaPsAVJ+@E|6Ʋ,:Y 5"YQh((%m5\\PP(!@DF..(("5usThdIJ D`h* s<#VvJ@@DAUijdV-s_^(4DRD,h !fK7; _$:@[`JjA cT^zDoKcNҰҍd@B6EAŠFYcbXQ„𸭹yo.m9WU[+`ywMu@ bbP\\YnKK.T+=N΀@ Ξ\_8Ǥ@A@9QkeFl][9܀e^s?Z:@BA`N3#:%\q]hkd@u#?zKz/N@.gDjO_.lǼ'殚8}lwc\Fnqvwv /sx6WfzLE9bO@,y//S<;ROs-'p*9Pnft.}HcBݯY.Q~Mc+ڲY^ȥ_2ι1KZ%E5CN__OZԸ͝5{-`oQ֖}N9"ik"Gsۙ("He\[*o7sϙLwN$M$s*EB%lvlg"J٥ii jQ{͚9ev^vѲӣ 7.o FJŨA\\trުղ1`+`*T)ۛݛR=9j)HkBԲ bKdA!OE4:{%'==i2cШic<jķQ?>-V"]nJS鍚Zl^z@S)J ldmjG"eu|`tWw/Xk.҈i%5Za +%|lk>6yJ>K;nK;YpmM秸t001*D=!҉pjgAً婍9a#3f8K l6 V͑5lY'>}ggo{Y]=6dk2fz%wη9ӛ˽JloClwùn{w\U^&JESIlF)nGm )[-f~iFL=^Z'#;[bmBYS9քԲ\ъE;] 5d4I^ ˭LJ{Peo:&H[5I5aH8oK3fGʲ<:]>Y$ԧ5}ՃY.[%9܌Y|гtkN=fjO5Od=l>9FCeCFߣpRa]^̥д;enyvnYvn;V֞NڲYtsH/IDӬ%fN%.!"1 2A#0@34$Bp11111鉏\LLLLzbcӉmq1ٕU?NS}˭.D.tnK[?Nff󶜜re[ra'`fh5Ks33333333333333 u;Ez<&JPg3j33?Nffffffff~bc KPuφI :0}$B#NtZ.ىm3d6l&"bs9}9s9sPRjL 9\N/11116Ͱɶu̎8bbbbbmfٶm+:S"\*raS8TxUCz{ ޝat6M/PJHQ^zZݍSKǵTw M̯F&j)[W}™njuJ WVpzkOSԩ뺕E~R^7`S aNY3:=Wzj qIڞrIU;(e?:mg34p;M+[[xlPL_>WFimVmJwjzos\u"hV>Ϭ5iW~koAsh"8}lt'l79ONl鼬U+5XjtM%#]*41͹wZRNٛZm|؇!f0  *b1Fa] F sjUrOh5$ZQmuZ[{6mNĶW$&^_V=,~@ukLm%xFխ٪XhXrⶶXɶMlR24#-Ȱmk~E *3yh@P&ŔY>=2fL꯿PM_!]'af*QnD;IPtMjmwU­irS!Q_fZk6CK0Z/ϯ:CMoRuw0[!,pk"l1[pW1g%會Tpa]߱!f$l;*oRI-g]MV>}wdϣy[$V|C 6Lq,R|/ {p,֎J Q|v)h1G#සs+\Q"ї `',0ˈ>ӛ(2Q˼SO|.Oɛ38'ұ>'> o"F#f>Z0@q1EON':NѨ:R] abK*V-X +ƒɊ' ,*TF5@!BU׸_;yT E_-U J;]:5}WOv`eK`4Í/sD$3aX,xǣ*pCZ7/eb݊5`홥>+yi'/s ȀdbgLGn#2̱VVͻGc/?™H~WueqınՉ%v2b@Y[n8})īk)+Y%'ϩ0Ϳ-9\.+fPܰţsU]YJoGhcl #s+mE=AgoV 6ڳ;bg8ݶ(.Tkxo^#-bȽbZ@7CQhՓ=ֺUZ8[ h8 n;5b۰Mgm#5"=fV۶ygrS m UJ >7"*Ku'ɫeBoHUB5DEQP& ;Z’*D6m{%h,mycj@mk?n;iی{eBGs~6 n f WevV՜}fÐs]n h S(ak)XVrOTJ^Mkݺ gbjʍ/l/jMwr͑(".M~@_fy46ɼWIi[XY1-hk 6EΤ+-} 1FQk`36dS즻Ǿ[DiXqeu%C+7Bb[2J|qbS^|(W"TgJחkewlSޢ=iMZEUz5UFPToj D+[@ZЩm*fJaY|R"!s,SiN s/ -ڟ'0KGwm%4 %v^Si_ԵS{ށ]l+u559IET]l*HʛaFTyT 4U*n-ٱXY\|ܬmMuj W%)}N.>A3IG`agܪl=$+o`)5~Pf1X*VoiK6 Oh!E;8e=Sj*(3h7&ZZu.p{c.*m5-,uFmK<$˜;JqIEkre;dGyaOm+h.2lmSUslvӀnڶY[)nCݕPTmK=nٕcm̓ "%UL ӣ5)RZְ3XQFrc>@0_7\cQjҺDs3Ӎ;,Z% ] Z>  NfUگ0<cs@W- !01@"2AQ#Bp?a7V-HwƗ4&8t4YJ<jtG@]GGS#r[6 O>{&osU!oWѵm0{Pƿ)bp3IL)Ts-KMC>Fs w +~|L)mV*S{D^#݈iaxQx!V6666.'QA7jr(7(m[FA!} / 5(4@Dd# uS(2B B!)5r{06kGlfNnSGܫmH@/BU&!r,T)]i4EL ҂()Qr*(5Fcm- )BkiS\!:؅@*lx(.uDJ'X/)! 1A0"2Qa#@Bp?//R8Ǎ{.YeDoo[H_2[8௎B>W#ضݺD5ɲ$buwI\9~vSJ$O/VrGoH>D]\ hyYCӑu{!/.eOgx#qBy`]d\Eˏ(J-+/#;->keЈv>t>ɺFG,]>2-X? d蛸k$[WRYgi\d0i*Bx5^$d9t[Qde,t3KqrV`D8x<}7COJIi࿸>*/c zTo~eܘFf$mjQQ/kyGvgFVOmYv&QtŴ3DpF3O#K*]dE ͐fK, dZEQ<؄R:DИIQ=OY97?ˡu{5c&7Khtǖ8`I1 K%;!1AQ"a2q #0BR@P$3brp?gGiU1>cub&j7:8Msa >3˧OTHu[)b :8YU5*D:P(IN3m0_ڈKz%xͭqՂOWe# a_vG B#QOU2^#LMIiۄ@7"ʎ,PEq1ѹZ^UMBwDt_ KeE7s2qK|EW SXZPoE`ᙂv3.bUrFVb qg q]JʧITtIQT=ϕUz*ꊎUi*ZF}²TnLW iG4-*ȎFfUJ\r 5]삾U* QyPTsSu:FfH<\bBcLnM;fdJ#"ul.3((iL.SHVMT6CUS|NDDQhvm)SJL.d*N]S(j9B9@4PTe vZ]eSE˔ D.꫘G[)v*YDYp#G#'n /[ P*!QJЉ-)u'eehL벨J#ur6C.iYKm^nM!w^PVE n8)׋N(>TjUʐ(_+ʂ! R (A 1Nahud4RH_f [b#y+謨fv Q=NiDa`V!NKD#6 VDB.d6 Ux\]ERDARtK-M[SSU Y tzf8Z_5BMk>͐.210.uh@12F4WWPelu8yiUkZCт(cZEARA)Neɋàl.R"db JZV*E~KګU,Ĉ҄ΥO &xUϲoZP Ddun?s` nМ\Ik|**C"^..1?>2\)R[d@LRtKEi7MMܔXJIlr\OA-K6( ZJV..!Dg`_~Q8VQW V1GEt_Uк18U$(3 h-"lpЭdKn]OϚg<6"ɽWLe]{(SW/lQv!:vu xDIelFBakDk(_qJ2ďM!YhDm(hGijDqSUEu +K*!S]RO[aPY~ꒆ{*#5(H*^B P*!1AQaq 0@P?!W*WJ+_F1coX*R@o1}K\r.\XesE Wlew.\r.\aV;l(g Mx "紿r\~.\~,aBB/CYf-TYo@ź3ǡ.\rG?b.\ƒE\ =8)߼URɍ8O]]T:&Z:CS1R!w^JJf%eO&R= ED۸1/J0hu({I,{=oo$Y0A w.9*viL@*=J,/䨺кx霿8@SvHBBPw._-n73/RJbP)K.NHh RT[)X< bJ{f-^%';l9E_. iIǟ\=F#&ML *xe٫#u+x9p358FPJ,)8P;AlS wVl9(x;90?0DG WA8tZ=뻄@ YOY|~rɿL͙̒"<T`uEh|4#|˗.\1EiCrplfI <)#T.fGjL[1-huJmDEa{P_;g%fgZf x'Q ^abA".Faco~s9Ksh6ŏ}ϲlc;2Heui*c2vnSNwSU7PkZُ0ubyk6mf8@+hJ0Z:hciCfo0GDa=ۈۛŸj2mLGmep3_p]Y@ qj9ͧX~% ZĤ"Ҵ}uv/]+,Vr>YΧ?g`;H1D`pvͮL_hj'b[9K-AѾ_X\|6S/q" uw8ć y mmϼ& _0v)"Rnls3$YQ@_=Qɖ `l\Vr¾ (ԣ7(aYeS7Regª5s( ]AsZ/Syxy_2m؝y rW \j$c  z*e<2nCZUd:lO3t<\G&\#.eW f͛m- T﹝֠yenXGݎ@cf['p)2 , N[)`k!97N)q6#\ ɹR+mmwpb㵫3h،|%Ь=Fh%4Qm- T_VFDuAV'oZo'){z Y[A!n .z`ld*S/U}@>nY}^C+?h'K#Zx+e2y5&2P0Дpf@ rB'=pymޘ4^%F"J`^,&p**Y1V͡/"|Q%D:?rBT18U ½ޮ(3l0FsKܑCɀj[OB}G@$ɹDR߁J(7P\\|S [FWN* 徧-1ơtZ6删/o`({!p788y0M..wn"Yw/XHVG>%ODU$+ψ8fpbΗVufq/n,Dz8M`ʀ-{L]Ai|Qy)x!/_)ݏyxmJV>-e fitn6Ǝڡ/-qep|~Rvט5in LIi"p.Q$)Z<0e5O S<5Er߀+QqX`D29aqVݣ̾)q8 (TQ 2V齒حa`0r]rV17 9+x3AqXg%)PV{_@(>EKDҗ|+9%-DMS-L5q^^]{!]2|M~HAtC^w+b iStqqa"p@pф0,81PNxmA@YaNT9䀶aD-ih,[e9"Y'ȆImz:N im8MO6AG0p/@2XeF_ YjNVKC.gSS_8*z.615QfoiX&`# @X&иͧġAVS +\ [RSLЊTk3t #<:6eXf̳>pC`P3,̲8b +):~AmQ]i-jI>Y \qMu*ߐHK1I1_|]QWR0އ$l>H&SB%rXRPjbQ6ֽ26**61%XY3NƼKIT#$Ph5(\Ѫht%:\` fA򘁰A Qpoq+H?qHѼQg f? "΅1Rm|W)z s? |YJĉNd jf¦ȃ<̀dB ̨.yiȈN# spJڑjřs,+(9s _JA.i̍5fL`?eȩɆH%D ̅/K h2MU 2axkbATV;'fRI0, Օ3D9⷏4,BQw\e/wS)fjʬc=կ×Hmg)jPڹYq+Zl=>iu~U O/tA4I_ gzkslO+Qs7cư}H>H,ZV2?NEWE}<^*1T#ݼG)!1 AQaq0@с`?++LW^Cpa/TRO^jV*|*T!.0Ð*eK/pxw!j9_Be-{*=J·kQePE=}@ AL|i>.\3[a.{6>( oچ/T0\ZkY?2&YgQWwV yTx<=sa]#P[}¢$=N0bW[D|"hZctJ z;_;r5&3mOfcߍVo'!=F001$vC0w9'qǬc F={ϼ0J=D</u72Mʂq9g &pن0ڂ4ܺ'7ļUpi:DiM} %`Ux{.rp&sUe3h=fCk:XNC4V+)K[ aJ*&>s׆$ Hv?%^Ccȕ\c,EW eaC=Ÿ1*P˦$|%Otc) % 21#+QpJn !ȖBm=J6ȷQ EXifTZVV.Q!umpJ$ $k %anwx;R8bΧRKC.p-WK%ʬ.i?#!1A Qa0q@?|meضmlI3 /!6ݞ#or[>C |ͯqmGe}^e'S3nA$ ~\d!|ׄϲ1ߢiɟ~]#0bgr?/P`Fެ9-͘MǢm06 -a$gvos{#搹[|a. gCe >/Dua>\]_!̀yleDsi۷M;pن}_ M${K;jvAa}]6or??/BoK>dAKkCdm&/D_%< ˖/m ɂycϸr!#=2`H5u"6z- H24́`Xsb'IL~O[`17.ace7~\?^t '#NϬ钃؏ŋKA[ [!X>{yz _VOq%'12 'q1䷖0܄myevoaof.a;#nrqq] n%鳗BR#@w%/N݅a'lblY?{_bڅˆo~il[%Kn>PvFXu :L9gvK Ρ[iZ)qOrdʁ3sx̃ذK~_#Ɛf[qo!$l{$Ceo(!1AQaq 0?-fOI{s1b]8Ж7jV7(Fr@Xd lV5xBpԡD.`F T} \\r˗_UjT%KH̩U~\b8J ~~a,aL(DeNAn%;q*0Ptz?\Yqb˗#2_5 & -㩉[Kq _t#6*eȂqJh7+}u_ŋ&g(a_B~ 9 }O!K" ^S=Qeaj9U(W-FVo~%ՠ0־Ҏd74n0Hó>5a啈10qE0}E%˗. ] ~"9H<ӏSq@Ust.l1m;;JKѡwpXQb6'cV0I1.k/SxmKE (P,O ]T  *^(%Kq}|u0ീP!p35a(juз P#XzֈD1-D [>p@[[C:AtC 0Y"ܐyb pnWJ&]C .igx`gS؞"Ȑ"nNX_}ĂeX*&=f>$0K1>&~W#uX.(sEeKw<@7 ]~! ^7 zCCm1.bVQO){>%%>ʎ瀁pQԣGRJ:&Z(!T:h3eH2 ŶXwp!:Jt,(S]70 n7)AKg>ryrs:[Tbao{~'K)gtavw}q* 0Mj,Ye ,% 8vҳXضQ &ղ>z|J.s%7Y_D9~89jDɘ@sϨULХɚ1Ԥ/3WeSֺr|eUU6"l 9uUځ[w T] g߼Õ jaX(((crP*(My\\p y-lF4=)kO*UC_,/vycN :%Ytѡ}J|GQ_eN!D4ﳹb\5WR{`y(_~,2F+vA27%k'W`4°U6̤q0 ^"-Ģ(y\1TX9 d03R [D3Ld=uJP  XF oaN#( XU,".,#kO0 ~ (%36b iN2X84BD*¾ ,&E+u RFS~eQ/_ .MC"U|A.cEv(>0m~!G',ku"6*q%Ee&U@//FBcJQ Q_"vǼ@V7GE\n8̻l a͆PǀO@ͅ3k/&6V(7 vVh!RHGv2/mpY4~H H "*.[U0*5Jj9|B9㲺L͂|Ժ=[5`߭eTauz! "A9Q,>b66 8liܤ!9ӉF[f,J-ZS)hf,!GxK4||"F*WhppBÓq1MڼcX,()K*%.B>Lr`55^ԇ0=]s^`&*R\CZeF^ cN_J1`] f:Y ߶bd4|EjRc>噩FggJW LnڋYUV+-pjmg!tD`/KKraP^\ l/R.r|J]N^å[]BҠ/ B5#n_1X_(,,Bv~G*ٞWk|Do+KB3$pUu]g/( k[ o;KTcC :Iѭa9*QǨo!8um(UI*K %v@ ɺ+„(ýz{,:#,7og!Q1F5_b"nh\d }R+;wz#pPup,2yp9*a"+~dsG Ư@q˸ȧ1ۼ+Pc4^f)^{ 0v x%iKU6.1[+V0OKŽr:sCMo2`4 aҳng&`t7*2Бψ>.ӛ&-lzf@s 廒Iܵ햣u`[2kw~sVeTaSO,PBy٘&~řJEplKcDV{0*X- gi6 0?heKvmkv]k5Ф|ղ4VDh ,Zo6 ~& 4޲flN.8L~1nNb;K,7ɟ1ObiZ9~|4UAxay⠷{~XR%t @VCᅢ! UDd Wdn+Z`bUԻtdV YYATnsOu Kp- $p6-'NkZGgۖ5bv}׈_Mna֥@ WZuZҘ5 @}BgT1¡m7+Z6AQeR#kZR6hO̥E@wUYW&!JlZe5IVs\;qpc &,оd&i#՟Ԡ*QNzw|uWEdkR:Zo̽ \ӮsifdbstM z6 xJ姪0 mz=~. }@y ռR( 02ȣk19P2ɨxiM׊W5k"]p^4s(kΦEo0AG8 PMv5xw@*I NPKnzft`) 8HSʾ܏}T=/t58ly]`wjqg<^83y0'h7tcFMU h#(f~4d7;_)| 6ݺ;0eb "nMdCqj!?2xU,t92  WVX/Xɔ|9/_n L!Ee"È(Dl2 ;Jk8ϧSJ!;l Q,4╱&.p!è@ s<6JفkD|'kC^?UF\ Ҝ9`o T doo\8 wfϬ.fq1xO$4bCn.ɯ#b+ur c \oY$SB?v\γ*ܭ-qU@4WOB2W,/Ѻj9q\ZyRE}0Cm^.,ayYgAͽEh UJ.fߚvzPkL\ K:@M4]F͜JmDxb35b,pXD l48hqVuPm|?jkQ*]AdVFbY7KPA`(+ƣpEQ& ݝ8;l\,2zV@}}2&h1CUEk)=ے >,yQ1i}+u }UmW^j;"Ek`kE=Pڧ7[KS =81Y;WuPicĪԺC Ubג"il-I v^ Uvl:j$Lb<Ūh̓m9o&gܫ *<̳t[Kꨔwr؃\@TƳ(hV/Ħ*J1O{aGmU[UlBSGS,l+(C.B1~;%2u/S Zbeh5*/wp8:i7]ħHrp1xk$O^u01 zB*p-fpnqBŶlv\}U]멎^^jS<5eQP+,#ADIf@D6]FRq_[(0_C윊Qk6+WX& !emy")Xvx^a@y6h-BV-`BըDqtБh)_C* o )CbyH3NagUh5q(׌,,[cX׾ ,е ]Z@.Q|>uBlLkA%ıEKSGtR>+޸AOqJp#D^8M‚{Tb +v Wܭu۞ MFB޼h ұhj,eĭ b{9B9l^}FHk2٬`f!>8$*Uu"*:B|̙Ǟ.SlHKavFW%+TxBNV'M%>4N}N4[h=L6^\qZ7D)]@0*h>BcMe|[j:2Ώ842ohE--c(Tnqb[7"v@UsyR_]ꈥ3Z4XU= _;SM9`Kv )1-514SN73b2YPoEV3Ga?*$Y&y,7R{ePrwTk(y#~1nWT^^e1p %{_RR;S0*]~!:xp|UBՍ;fAqLƍ-z-@<2n~%AWV>OK1\mA] YLO1Q j"*.Oյ腪,f]X'|Dc0pw*[ ߩ^A?0tlh ..~ heK>)*0)=qeakFD,iT`YUJ=ܨfH ׉?{!-Ul:~FfoZJ4#*P6nUŶCͅWEy;l9}y5zp):/fu+]M ģL\1UFXMc C"A*u~3d3yc z~PmurЌB,[[sEc]6]2 RPšb;?\zJKXKfz-˂ֽ@(yJx'՟y*RjupԂ}=BXWظoIǬjqueryui-1.10.1/development-bundle/demos/droppable/images/high_tatras3_min.jpg0000644000175000017500000000355512107500070026477 0ustar metalmetalJFIFHHC   '0"$'92<;8276?GZL?CUD67NkOU]`efe=KownbvZceaC..aA7AaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaH`!2!1A"Qaq2#4BR"!1Q"A2aq ?X ^xK#U1RDEFa˃@r9:kYhFVIS-`ulc 4@EoJ Ȥ g8~4-fss{kJj81Ҟ:b2Y*:z|#':֏D"6UQ0q,2qc80mcKM|TȬN44ly۠ UCV)&0$hȒ~ԕ> Jʭ>SIiWҌ b?m|:s YVQĀnA!JZMQ9'H 7Y} F̌5;cdv~3 $!tV:#޹0Air0SqIy7ci@u%V;8-s'q4 n,Ԓ-+lPD%NGE& %e=9k2kF mm! :X^((8s,#dǘcsI?3A.2s]ۻpό.qRLKo˩?Pvh?+lr# JĀ>6T"6u捊|]>jCF.r3ړ*܍\CI;T%gplcZDi+O98 z;lXFl=*>W2Ĭ<:տ #ץk'FOK@ΩI]1eRƪ: Kio I|PlkT^tBbY#nZFFuo~md `e :_jRB?jqueryui-1.10.1/development-bundle/demos/droppable/images/high_tatras3.jpg0000644000175000017500000006000712107500066025634 0ustar metalmetalJFIFHHC   '0"$'92<;8276?GZL?CUD67NkOU]`efe=KownbvZceaC..aA7Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ! ̒ 'i.XJbo_w9@%ʓtjEVW@Vs=܃)AdkJMQJ$:&>?u;p"|6JN (FpkR>}ޞCW(4$S U\Jk5JdQLrg;fnyZUJТi59lQݬyTފJ荠|,F7+eūFZs|:OI3z+: D h~o\Z8Ŝ)G%ҡyD(ITSI1GiPR$aʌV^14hlվˋgt+^z%;4+(i#١AP [WWq:RqfUal:Rh[ 2B j fmKRRoy,q ;urcɱXze*LS X'mNwuH2K}Ui,*8$Ub怹/͙jK "+Ӵɗ2I&L)tKh$Jj'0q&yuSJYfڽ-cZֿ:捙Z2blD{4MoNWZF@`՛F9(S=.|g)nj}ZPЙzS)NH²+!6Q}:5feny1mZͫ=YH!^'q,o!<@JwB|c}9jR9gGȌa5LqN: cڼFiz- .e,6ӓэ0h+ 2ϭfJ73#R\"i֗<nr_gL'M , p;Eivߟ9֚cK$gp+WYHZ[i? tp ~=L݉ ӟ$5',JKSLjvQ3F+9Mq9l޽G6)mJgX=}{1HfB0 $RPt۟oQuD͏cN| [BI2 LE̠]Z(N.uI%bNtr0LIi#=*-mSZ<>Kvtv.T|YEJn%eKUz7D2#L^)H0Ƹĉ#'u(>pO;WJ7b/ZQRjJ_7$HcݙH@yͮz4MljAzҰ|f,RTo-V,ـQ0mK銝+*YM$H-Aaliϝ(Iwrιd-Rf&0&4S٫92ky4Ȍ)WLw3ee)EɍY/mZD (!"12A #@B04{ ` -T*S.*"W(I8zTyF}a25ֵۋOV7xi nTGlpx.j+q}{!>k5"/ƽ>s>S'3i~&N/#+P;MoiQLgp0c˹4]{i9 Er+~X)R?(A =Fhzza%­i"؈ϰm.4#r%FfG&a/ hO;d6jD qDX`a.`| P(J{_AB"K Cz Ԏa$Oq-@@h0N4ODK:eb_B+*`}2]N> Z/Ʌ/[ba*epyMyjE^+K X 5肛Z͍1-<1C[\RD==Vn`$Xͅ,rKXtY+.\j 5 CJ-;u9Ròo lR 2O]A1 vcM~T9:|T1 ,"|Ve\ 'V޲+^L,N7xsV ^V`!EP4*0k,-GJ>aف@DmB,Aa֍L_"!tLKѠ=1Ńc3mZ%™ qZr+#S* .!)f(S C bD/OQp!B*3jXCX? J_.oS'*le`cGЃ2-}T«|O}b{C9,%'Zh*\)&vʰl'fHlYTqy Կ?s7|_={Bg`U"eƋsuԣxS9g'pByߝ!~v3fz\pahxLT#ؽ7gR+G&1-+FxNF*@&GT{K/̫G'(p'P,i4ŏ@AÈO+Vdfx؄"K z*5 @nB\K.peE0yJ-1~6Hߏ]Uq'ZY2Pn!(X09=N6.L\[Lְ'"_p'j`-=o(EZp41n==C[|D-ُT*'h@rl"}J>vn Ms>P_YJ>gi&P/&]eTc鮌 Ģ'<4+q X*0'FH=cC#پGYF+6F\ٚ4X8ȪAcT"lGToUjW5+.|FۛouWJ1 MYeL b\\"0 @!1APap?ckYxhMQ CnCl"A(tgx*tnh@pq%(ES5@& f _y5Fu aG6XO P1% 01!A@a23Q?\^bw>>,pPg,E1?J=ct,qGe#be\='EbkZ֪ZP͕>Ҋ/^2PQz6v" Qҋ϶ҡr8jno1y*h P25BZtYZℎYpq;1š+[Q+3>p!4vVeNéovcٓo8 -1t4.!qE kɟb~+Qb̻F]y/~xee ..}mGemc*~QJQRr Kzħ1pPzgFB0!1A "Qaq02@BR3?ս3+CED%RhgKbSky͗w30(w/(ܙ=N(j.-ܶ d~ Rfܗ"!\Z]1,OJJ}Hni?dϽ#R\?)`Թvis&qN(b7p$~M=?ܰܽ'sԻĝD}/%";z]*M?K-׉'"D&].▫Ú\>&yJ|TRsLd峭mHj\bCW, R|ґ*9Xd1K:[2ϸv-TjNS7.Θ#T-c GqԓzІ6>ئ |14u+7##Q+X1YlYl'O 䑭^Itǹv._7kt#q\-CNɚe8T<4,n 7Ů. | 2^feoLQO%56y:Qܱ^D<" "X&"Kn7?LgGFIȃ6,ŧR&+4SԤ.=w;3) v0Yf m?3)ht}0lV/sMm)sZLz䉒H%m9;c?; M=)wȑOsX;riD} ,͋Lnb& [M:=JW.j,KL3IZe6#Jެ &֕918[e5R%HJdtJ/sXDRy,8^,_VXg:t^i-WBû-fft!ZfL44شyMqIx/z.OJ*`TB{iPR>&)SE-`kS>ɎQ)Wr "NJq$CQ{K:D$ZIhK#4ܖHdA= <nj|)ViǓ%/%3ra_562En@'R B,jҢ 33m8Z6 Nbi\2]fLrD/'cNX2zՉ߻vZt؍ӃK$q_#83LxڊD*OqR0sױ :tF$Syd}M{٧^a.v^v*K==:FՐ2Yv3O5"ۗ_-ɞK6:%=.un)si<'*j۞XLti0˖OV?.CçjJ_y0l]޻$B/KQ:`Y1OQI7,]ߖH-"dOsσ=2]KR6/bTܰ2ڐסtKD[ddRru2DQK1b2i֤EdM/UE)!1AQaq @0?! _ث? nĮ|b.[N]u? <P:h55p%"fk陮r:"2rs0c~ LWyg,=xeY:\Җ߰J؝T5( SMkP3uB|g? T^)s-^L1 +Gԝ{Nr yʖP{e'q*20yD Xsf"hiJ #^8NI*i2|(;8~⠇.ʎc;ʮ7Ami[1_p5BSdE >C2&X0z*bo hb뙶a)AK &­X} ]W'0)]Sk˲DqR =dy+>?l2 vfU{\6Q|ZFh{So)qWls}qYoz3a^o@︉eKЍ*}QA>[AIV{pGE'% ZT(;b/ Rκ@0O:%_,(AwA ORieY Zr̡łb? m0VcMaQJ'ob@`߰ALe\?1DSZK/dPCf_s&VHLsNe bޫ#`Plkr:"#OL`VV/rը)EꥵA\CX7|J2,`μEep>`z>DzMrb 0SY *yKRNYt,o17r"+GSYkA^M*R+hrFnr<QQAɴ[nˈa +oւ-ivEnc PY@L9횲VjeUp+[5G<` *Ύ|(nA ҥlwp'JAʳ h^CܥE *cxULܺ Waݒ+H0 <-V[S2)jPBR[u2dzqڔ]JC*ƀZĵ\F.a<8L ˨uX; ̀f- u)%4{gÀp%Y,Јk2/:sW1!y7PQ,ĽUE¸vT VTJ_HqXn+Q:XPi9f=TVRNvGU`(:>e^ggŮs;oy" 1v\k9^Wk"6g>*cJWwŌu1#Vm찋s73W6*、[}e<4Ӧn6JrsJe2{Bʨ*R(pKa5W9\^ظSq+)k:T?b7˪͜¦̡]K8pJcQamt4qa`aE>jbZI(Z!N eȀ(g#HQ^oDubQʋ@ږnc.Yj]]WVsq'EiYXqD(\*@l`+"LK8Kr&wa%.<1C<-])Q,\Uٸhf% ;|$?K #,YQ䍚5Gpp0KW3b.w2oRWFk:,o Mէ( kO3g,GN78 TEbb+w,?2k#unSc6J쮩}1;&?/-6M Ԡ`8oJ2ɉYgFj˓$pE[m]2Tڿ\KZ?#ōd })M5TK3IY~%` EVn|䴏oVN]e|QK{Zl_u|J;uC?63!Zԩ?Q8h՘#)Yd91:iVp¶hq\j j+a}!v?Rͯ,G#[bW^)9f+ڇ˨&"ưun@r+ N9M~cHQg'p?юor#(T_XVoN8M=je/,n\(%ʞ!EN&c_&Jajpfu vgJh1eJ5Qu-H k /Xknq/,4Rj6u<1q,|Lt˕34^َQyJ7'Uf}?+2Qҏ;ŷ3 k]R`l[Ը( {.{x#]krj-y`TU_y*n)|J_Xipl^.a5l6RW@moT}p WQ"C»moR+wq}/p.~%7Q bcܷrXD L`_;^PŲapkaĢd䆬cQ(W*b7<͉z~ q&-7:*%`WuluGvKf, ]4 W|GCeW9jh8Ek=T_-4w,A|JbtA̪yK2[Z,|K)qsI i,ЁCj< "ZӸQgS_ Y瘟lq ln~`.GәaԳe/;Yw.dω0wiF7+s?,3AXS 9>%%N/k9`& ]kš:V, BAmeRWvReM>V'9B}\E]8ao^aFYXb4o*o]*U6IA[3P(aRj5q_r:1 bs?,1.NxKn]/NL6"T*,yN="XЃSf%Z\W-1qnW"'j% 0+`q,-sN8Lc}b0J}%LX}@+طw׈`M2BSqlarbUWkj+]fA Jbfc>%*B7a]KO"/P-*n1Mz'Q9m?Qf4KPo,8fQ >S!i+|-n6uԩq-!.ͶZxxJBð3Iܠ|!sq ,ogȣG4 m_XiJm%YwU\Cˉ+g#6rK2cpyEA, ˄W@ L ]B 6T^^P PLE,LbaV,"o)uW-+B<,W/ƂᇽJٟ `RRqSLc} ϲPLqU(کMb@,M]VU.26qZ.kOL SlV18.,_L8Uk[̖&Q+n1ݴ{+78`vbb0q5E 5; JH~FtfxiU\FKW(iT i 7;pER4S v\ ̱-dLÇ@x S>E4cq|jد3G78}f$(hf|MVD-|le'ss!I:IJrSq+Csԃ25mɗuUӲ_6ΝgS ˶wC/ AlqbiA¶s5\Uޥch5J3{q/cxCd=pA EՒdWp l+|8ATqx/u/HLJeF\9zz0 "ʆqKi%P2Vep}Kjt#ڽJS$huJSsrhǨG=@W%>GaVaU D37^5;kQ#GnVʯ"wr~"ihxbmP&8) 7S ~sƕv7>9]ګ9 lx UX/0P3PUێL u*7cGPoG#`/oS.sL v1+epm\K4*mX%P&lb%kr6{ `f)M^1UaRux.25xNк]G"wt<-~c]4|~24/U) BfcEK[OlB+lF SL] r@. .TʀLw*mM ̳y^(xƠ S#әR&UW9Zab#p!]!ot'1Q ݧő*?w\NF#?\*g.; ^/ ICN]\ `\~h9G?} bu/Q&M*Z-st @z9 EmԄǀ^~f6АC"`1V!ws8} 6Q|:.i ~?OD0 L"TdTr I:ㄞN8Kw/lU{4IrARav'7)5;L8'HAYܸ)0q$7S75+0&.Aٰ..Dᙺ {<)OIOU &\WPh.('b!zOC& A9AbbD!\_G(Bv5C<[,YPĵek` ⵍb 18]z4D_ E[6A~)k$LZ7Z>@NYO DC^(Rk,Q ,˲dSw)~J NP|_RBeҹ } 1(d'O-ǗwI5=; _ݗ.*CNakg8ApZ͂I#lA{Ev,Xq(N\GҞm%& ybD߄zwgcv'P1d;c ξ% sx=ToO {;='eEtHR1p|!1AQ 0aq?I)/g:;OmM?OA.r\|,svgV;"YXoK,(B}A'189$2u%継4`dѐC1Ld24Je/'?>K˼ o?)Kt8%|/rv;9!̆y-e!y&>Ƥk |e3H>7ݒGL/aAñ{Ζv;=e!+~2Xre|ed?[vYB&cf 8Besgۖt nCScyߙg,A?8l'n# υ:dm)o?7|xy>g~|t`-8Bm]~ee.D2BoFi'&2Ą{%m_܄Xu$ۄsǧάu6u3)jߙ&X5geفfs #2W u*bxXo'N0C=zPl_s|!1v}O"Ou,~Y+x6 NǙ&vχd|2 O-O[><#Dcٳ2?1m^ ϟrb6sϡYfA߃0Y`N`dϛ밃&<>mL%~7C~)C08<>WBE }+X#G w5BL2dɓ&L1111111 ]B%+Wk:}a '!S5GCU)9|g .!j~]@Bp[}5BӭYi/|sp)1XSWh&L2dɓ&LLLLLLnPj 4:q3x&ˌmucU" wxbsx Ǐ0蒸Њ¼kX`U0F!bz΍L>./1I!₟ydkL:l"9 "M'qDpR'6RLTЅc#:Āe009w'!y"NaA> [1|ɓ&L2dɉ|(&m/eR@A[^Me}(=-pϭx:3SIx%3xP@ٿxS0zV:p('Ӄ{Ty/%CXx0k ?P ~H;(4kR9a OiEJn*y |$=OYN:#E FML)ju}8b? )2nEr Ѯ 8Tt|1;s0Ȁyх"bTٳ4BԌcn"{>p0+s5PxɓRGa\z.,S90e흾s^V)ہQ5 Vh>FϷLa@ Oy2z:}沖 1dRLOoxdÿy<:t P u5Ap*F/;Q&\GrRi_FU ;of3IDq12{v q-C|-Ӱ>ydU6T}ܢH-(:a/xe(MqzX|lxMi cx+fqD#`>EbGL& QQ-px0(.R_! $¿eIbk&6'?oek`p)(qH;1'pgX%V5@Ŝ4pHic0 'e05 ҏ?X {9`W尌Ku(#h/ F$ߦ%4Ql 7D1ZAt"Mq:9≍^۔]" ugX"pz}9fA"}aȰ\cxN:xyʂ yW!_h[.1Zu=f4Wp^JW[VLxrvos^=\#78 1_i2 Tc@ty5{*[; C]++ax/)w!\󿃬]` VuxtQ(u!ҍSӈz8G#F&qy3@|}%Ϝ{E;Ŀ]3y]b,'}Ix2@KdHU?кV|c)e0;be +CxuxQbPg -]`#64cf$\U& 5ɚktSJs9vLHCvU^dLTd{ DMjD)޹U`Laڳ"]j0RHo[ Ghhx4z!<1w_EAo!^0B+U 8_wz@  X9dѣH'9<`~=e!| uw--(ɳZ0"X߬lCn+h%ٺs@{ּЀ|ETzTi>'B́u? 7Xelnna,/ےJ]>q(.&оsCI<>n(Fcu1W&6w\4( ,/5~ M_}ڴr֑', vYY4|U*|(yw?ZL|o8o5n}bdJ͡"*z"[8b78q #2L ii4p-tQ8n؟r1/v^STzvvMx`E7 ukR 6#mU.CVol\+c"_!)WE~`D\Zt? & ̸=a`49ۅYt[k7 YIPߜ+k 噱~sBٷ 9(%6{mCћ-/;2kª9?>qdI@Wxr}EOn4S>n- 횠[HM) D#gX#)cGX}NJ!񓠏E)q7Cv^4ZbA&\m7E 8*f4er_<}7;2E9ӀQӉ UJ c[pޕ{[VH A6WDߟ d0q}_ &Ô}#V|ioƃb"pKN%';] y6drлz:=#ɻ. 3Tta_P{䓣 +} lr1~@ᇳό녎wAGܱNI"@dx(G5/}@pKz]7gW5ѽt9oأ cژ NYTlS7gK{ߓd(89 m}G/<bCA%a_YM]`Ѵbac/427<6Ox2[ko$DӲǬ`4/1YBcJt8]}`"[C`zb;*Ϭ+9 PC 7_7*D3YɛK\9疌P8/񛊇 כ`}lX zqm 4Gxȉhlpf !2`Vz6Sr6Z*UqVT}\r)h=bF8\WCܿ tF[֎ΑQL#1t$}7mA%Cd#A5sHmfHn@63p +6vcƨ˲-"P>ma٨G}`'HvQk;;-C͆o]y '($nƸ)Dވ[M_'^q9 u g~hO.d@Jե=*NFl$O|4W\n] 13CNƟ i9e(P !z ;P}ÇpwֱE#!7B&szӖNTk *I6cQW Q{T$?XMG@.E3Jy\vx{|+GWh/4qĊWJ0ZIa2EJPˆ >ޱ^nLYč񈘌ȷ΀wE+`Yo"7lNYa#G}u 9]^?%ML߲>*œ!jƲ:Qy-@)*E߬ɻyƥγgy7u柂:V:U~pMb9`c@L[o4ֺѿ )z+x0 h,.r?g\n|x-Z|c&EA&N]bPLHS\󬈙+ۇl\ [0wF~<˃5(sýC5kd((z<;6Կ^0;L0 [.EGTT;qY\`#$J:pc E/>ےҩ> )*Ψ~?lO#DU rR" Bv/Qj2:$#.$Q{Đ>4DJcmT@ތ Os[ɻr&:2` FzDN6Ķ=Z7Ry@!;ݿ0^LT."BF~a/X#5%ؘ^'SUT#0ںg*?;i<8p*}o$ VqX᭟.@_"8`]㬕7D#߮A fSiaJ^qrzs8م m˶9)` ! vqhq/8Dz7 |<ƞ^v@7+?(64gTxĴ:|`. /mL~LD g3Ef MϜe$EJMחKutѧyig O)1C vs=curꚯ@3hqSIwSc.<Ǭ-~>0tͥH ]^ qи{rvE}*h) Pf#o)7e-MTgx{Ys|cC^^>$5}ʢثƋ4DS^3UvLr|P#Qx W{4W?QGxЛatxd. =N>r(P6}tKe(bQI7}5i;"epDRh[r 97ÿX!P^?Q=`P'Z9I&rOHSgrO)u0 !x (G(dYX]ķ^8sSZXHZdEWh]i.!I+=cL̓{ %mpݩv>0,wrR4M \E27_Qyp,0 {hfzq*ܔ,dM>pU)~1W&{r *gҳo],rWﮬW81 m4<9Y7XڇP]gSoŽ#,!͸U_ys$ݸX>5o_*Ih9G~٬$w{a"Prha ,b7Fj\]8N/C&˧lt k. dU嫅1›CSF͸\|Pm]Ǽ7P?Yћ&|C)J=39iF:j:OĠvdQRwlӇnM7LBxnQFl]~-pT'`mVoˀmz| x6?BB+?Wt8`cbIw`aUڻ0V%ߌ nXHm"}y; K#W2Rv%d~q hbuqN2ã,{ 57:cpSęg/1D )mwtljy~]} )*g*" 3ߌR:* xB=ਁE!v+pNV&qW>+9?#eT>ʗW8.Pvx L\ك{/4ow4y,vK @0Q0O;AN Ay{4Fo;A|GJYyplT+ VӟyAK-I`֞2z Ey> 9HTWeO>LDUu` |Rirb10 vy|;>aChGe;~ W

36F7,-@WAFLNRSR2>ZaZP`JQROC&&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO ! ΀k` wWf}Q)ś\hmE:YmTO=\h#F\ii%zCƈڠ4_ ̼;F6Mr njD|cEãa;rӂ\|u8\ @QsPӑ۶911EDrLi\#pz\V;O{s<7^rۘ%QJKIdw%80jE[wN{LG|(=N_P|v%8uw J-Ɠ(9FFsgz0 =0dJ!- )/ SMOykƗ(S;qVKUIu>f„ J:G؇=Ϭyxg^ ~}BAg}@ɮ-NJ(2BzlƎů elmŋ͍ ͩwrhO&WEa.Ʃbh&zܲ"z|vMEN&%ƻL9vev^%iИ42zt'ph+L(պTkI'.sҳq^pϖ~m}Ey 5Zzũ\2]蕯Z07g3GM[=tYu8cԕ͆g|g/]=.-f>?' mSF GwžآT(se^Θwn~Ԇ4ѫ&kUm[zفf̨!g)6ڤbs>Zm|,1|iLu`i;;wr :̞Ż*mmU˕3.Lƍ%K8yv٧5omt2z8b1IG%{Ƒa浳-.2 Vフ֔fѳɡl1} ZeϟXbARQt4N*睴+3Q[6!Rvbi~ifsю‡q[t|y(y.Pw5·L3UN̓k222Ф1}֦DTm\ځCvTm-Tq8= eZ4~6{ ;Gz8ӝzwБS&͸th jwR=Tfj8_W<)gS-;pէ&uw8fLY oMkXE)#%mGfT&f^:7m^ c챟3.sS-ֱnS.ukcNGB~idzVR^dF~dT2"mv:ΣJЯbuFZ3d)nez\wQCB=ђVND+!"1 02A#3B4$CD.R-b MƦYZ厡6RZ|}OwU}`O1^X1DcC>>:jx2zk ՕsP 9@)R'La S v3lLyy*X86K_~$-{\fPcaAVm?P&<rWy) kzx;fq1 UMKo{'"ƻO(TG=a[UnccgOġEL2)Df̣&_,2oc3&|Ι+;@klưMr k`5X*%6i?~aOT_}e7\+IXN-Տ&2`i_Y[u7gMr s^KOyљӶ.vԀ aEżbW]\42SR*da(sBA#R+^cpG~I3⮙lUӏK\ -\ta:eSQ"ïPճ 56%m 0bfgoOIHj:agNSr5ҺP% p tRpw`dQ jƅBk+{P7+y*A6%0t}??]eWjj,\%L6pWTC6l0溬vN웜YfX֦Unx*i3uĬyVg0 #Ҋ=:UPk+$'? &kIEO!jY fֱ<&S3zzx߿ڍVmz/ETfgtF{s b%:<!ʘ0z{%huKK+MivUô9.+zȳ6 yt:VJ",8 ~_ H.1LKݮ-mobQr^[b uot$ka{B@y.`8Ubj} kvEU{,蕘tjn:NF.q6GZ XLpʿvEP#Zt XX_*Y%}$(D!SjJA$<ū]ejy#ͫ7͓s/c"6NjU 貲'+{VeIFyH܈G>Y-c?BЎȣ"C(&M;v/tBxEz/({;gU,X_L&% x+z隆'DNϤؗq/ULxx#!YelRmOi(N"bc4'{%*;};J%mR-+?"\XXxbR:'(IHbC(NՙIGs?J?NJ:6bW?y9%ώID8\,J-^tXel['v9R? )> B%Q$%K3'Ȫhŋd'6ZHV'#.)f>:ME g YymK!(dc. [>IPdLxlQQ佋3y<]iwDخi8i#G15 䣣Y rd mHoE(lk6E}~5!1"AQa2q 0@3BRbr#?+rLLQOBy.gѦ'V8&-HG^3XK\l,P|K&asJ׹rD),>+l؊Јr~!7SnɕSQcY?r,vGʽ>dj|8$i&=|j!)g I"J?EO^TEIȦE#mܘ1A.ҤmzGصQje;S);iV9ѢDtE'+RJxsW/_ T mr(JµzGRoO_7ȳ'}w?o_u'tHȪvLI3ɣ SMO2r/*Fn\gC?7&|"`?ӅܿH UʥM8}Kw] kΓ7#=#e?QTCy3fVЗN8X.zO9?JS'))}ror!mL-廚I*~bhLTs7%J\dSdDIHYjY2"̳2IH$`!=uJc%?f7w]K̖ɒ/Y-%*=Lnфt8xj܉^K1SȽ;A q.|ފm[[iشQNq|n J̆UYfEHM)?AU-J0[=44y:vRZ>L(+wnD^MfJpFۙ;CÚK"2JO!cH"*#l(uP:jp^Rpp|CW76bܪ2[#)LȩTJlUE0*D-?r)/\.t'ĮR&j-RwQI?1.nE|E?r{z4KDN2Crm'du԰7:M-iԽ%G΄蹲).w$r'v*y=.X"!nՇm뢼0dzر'!1AQaq ?!ܯA"pa#YpɑX_!k,$r/׏KWSMzeFG7H@e[K#TaK܋=]UBl,g09]>}LnsKsM@'^"rE9==8@"8\dH9tiGl};`T^6MhchQgN8_'Sl%f;s^u EM )yc>ōВlGy&]NH'qtΣ Y[S,p¹A({!}MzA'D}]Ls.Ȳ[nҦކ(x _c  PWPIE9M= CKڴ@:HF!"oL\jkЎU*Q(u୫ 'wUB{*ʩp#ͺ VD˚Js<:*y&d-!ݸXŻq?QcLMiM,טWDRsX%\׿LJBx0ϧ24zL) `ua0*>&PnO=^V !U>ȯC%.KJh`Ñjp_ g_O*ΦvVa˖\Lj` ͩ(a]ˋ_*`aqrc`30f'~VQxj h/ 4pޖٷ ,9ۨ%eqxIT QY [gT_O') nDph 9wqd38 T2Ae߈>ofFY.1h~c2@٤V~"،w [)*c{DJg Z5XsAq‡dS<a5R^#PXvX cJ#7 UM}M<=Fȼ%r &-9Bk o_q5|݇} os8E@v"nU9;WqPvK(@ UkʚGĥSLZT<.nxA-s›LA b- |Lf8<ǔ'P+2lĕ2q$/t{J3M|qmad" 25n+ ḺuW)9V7E VtK, KۅR܊+Di*.h3\\7T{H~"xPS.F0}jZSMQ6TtO}*2HjQ•XS!6iz*@п'5dqQ /4H>.AO뙓t`(%^?iѢs+i.-8F=, OwGT0$%"ˑdy*nIz~+:߹I9K0DXtutq3s/q -DII!CɦUB.|4Q}J~`Z"<9]5 ߼zdq==.冮"Q Nwdx!θiA6Wy<9 e3=[ÈrEʎhҫ`ֽgp7qG_*E2}KV%\21UY}@E̾RVDCK=(f\/Vyh)Ry F+?VQ5.dsTw+RxnTw7q +)F9#ZP< he'F&>NJ0*ZVS3Ht&J2Q/S=-ETq63D* K E*ڧQ8 ꥟UVcA}bqMKSz68gTAU5U Xf`Z.]hLu*KhQoڟ$YDk1HyH3LH1jB)8JcUјW"WQ.~v{ӛ(A\@79-..hUlIZƾ=.Cww;J[H*ɸ0"7Sg bʸ٢ P6RSZqrLar,pīYAq;"bg_.W4)xf01(w, q7]? x;О%Tk0^~E.F:.p͟2Zeȏ"\D+BVMgJ(%]r/4hF.*y!,0'5ɧ0 (;g把[5bЮ|Gkg$|1si@OJ`?E!AR^/sf~ b\?"M-9B%ͻxK H (! S\t@0ipX[KnN!+KW)崛ԩt]MAn9:2 WͯY̭Ys A+`raH|1,E ~5s$]& p9LiT{Pzk eᗴ_3;pSD)KܲD懈e2q~5  M M)Q!fc=4SYeZد Sf_RƱ'+jvKA-f||$вOH1v2}MDA)Ws-G>eMV8'yE;jWvD"\"Tg9%|o25qCpj7V);1rp(k1mAd?ZUap) 'kL% o N]T0GMQޘ$g=pAXymJjwK;Gb*.a}u b1\#;IZ΁g>X?ߘ y˂^ (ᮺ.-/~.dkq<.0t T;f >UoiJw 6hϕTyaU^l.D<(1 ZjFSV$ sG qԥwGJ^(L41CK%U#ޅx&ʥq4f鄾G}A GNT12yJ^KBpXrJ1j?D5~JJz"đ0a(`T^y?2Am4W,F"3OnT+Z8wEVj9*QԽk j6l(ث=`5}\6WS1;bƭyD=%"MLbs*`m]Eaj/ Ϥ̀~5g 2+D|mLw-Wľ5k ,&g kX&0#I-_.P;Gs.K}j-AD<bW$)DDhVIG4s[}S%l/{|V08W+@ ]cYy|K2sBԫpL5 Jo1c]QD \ÖP7 /\̣ ='BJr2rԪgg3 oL-19 Uj! .YY2x7'{Rq,[7=^(1VϺ7C?νOt2-PbK'sW]z QoJWgs4W[Kx٘ cCas|$(<6K!7j IJ©kf}~bzmbf3Bݎ@w*9I 2&yR S*NfC41sנHsK(U69 fLX-CZE6rG':!NI"YAjLrILg#nT֙P `v2/ ȨZ6OvA%7~&'#ď "o'A|1|O?`'#77h[-'loYoC>(6vS6[#J~r\X~Dc=dG̓?% "}\lB"^ cݿn_,26nCa{8C^}.%dKvkga!XG#I1`YNzV_:ߑϛl,t̸2NΜuYtp#<{/|#FY<ncKmoA9գ7H H9 2qϗ]ٺ@Y&HGf?-}9oiI\;n2-F7lH6,ggCwPKOVF:N19gANfr߂Be'fݗ)/ 2~'#C# ςݯlxl.Ϝu=O˖C~笟E6eBzM`zߩ($97-lL/8KrzFls>Zum)[mX 'зH<vd? {"?޷^oȍ]7$O`!6r!,am>9{-.Zݐ{ iE ^_8]^$o6Ye-=8I˅mJ|yw\WBnlXo3V_=j7?7_ mf_8.l|Z(q|qbqr/7t0G(.lŐ}//al{/m -,6̛~YN $ .<},͓y-Wˎq<~?7/xla-eS+^^oWD:dˡb_ `˦GgZ l)/XL:lc̀_<˜ ? ɖO~oE/[`/ ~/2"SzyDPaPcחȔO4y &Xs1OeAnPb6\JO9{9v!AٮS^w(&=bY<_X$VW󃎦*ݡvHe: 7Qtes0[@ˀKTbE;Y&kzʐzMbwGN wL{<ΰF}Va85be؀8;ΦCo7f5Au"y= ʨU~5r=>*IEKz-&x엙_ hY8E1j>3jLD?wX' _Y!ںp;*}5p6=FL/Oxa+yb3 :Ř@ܞ-Օr5WS5tֱ :n]2v 6aZe?Go@g T~2T^"-]Itj`|yxN2̟׉)g+dk6`$¼jJ$7 W38sq472Ϧ67@60GN÷ɄQa4p?;a R{.D\'FF+S5e ;$#"L^׼K1x`eƞMTT돜FW`J&u7Ts6-P>yc㞰D~y`+?x1ROfѽZyކHVzq!FNQ\J +..kA=q^({H^&8X-5gڃӈD]88l{;ċ 1iiCbok/`:;` WQ~9{ŠGHg~c!HX D/3VE71 0j~K <v\4~qV$@.NHɈZ'lb]̈r{y‘z.$<!av>n''߄7(gc5&{ ~NgY#0 Q 煌~f"!rβMsk>-/<5۷GB uMq1o<ޣE𫪈ζkG_p 3?xAhP1ga!^ۆ Rxj sMZ{[Ii Œvzĥb(sroaȶ~2cO&@okE܄ Ϝ=ifؑ#M #[c샤B""e Jtp؄ =^JĊ(IG9@"+T򿌫4׷:pX iT<}|zbcQyX&PAvفA:LIeWZ5&|Htdi3fc.+ 6bӂyaq6muqNLn?=c!8q0Lrh8r3Jsu, $BLJgt>Vi;pW3vhZfw*Gُ*:ŝc#޽'E Q~mЛY &q]A}̴A46f?"8ۻ_0,[n4v{󔵾\AKXhk 6f)zr* (vzbe $sp)MM#:l։ÑW>/>2!{ {ǰ'G CI36{+QMxnh]YTrKGBoѓh=ytqxnƬhj0h<9$oAl ^Qw.;#/ԇ`6c`/ dmi@&'2{HPJ]ٕJT(PH8,&y\ &fu('5ju86P4z0 6sR79ڸ߇*ޟ-n'LB(-a (Mи' xbuT WP (EGxqiupA6%V xր9)os"mb^|x_dȚS;\.p.0mѽ"ACgٿYȂYA&We{rp=p4X׺U*h&ё1#:U8%?1yjUkOC}|*03jPȘ(0֢{I0yZ d  jDx}ark~>p18lB84֜<_ȗxHy6RQu>9N81$HUpAִt|7 (Ji 2?9+ x6 E~$L4Eo[ٯXo(q HޜTm]9e> Fp+Es26k.B|Mw$Nhjμ(gK\4]FaD~p{A|$"2hB кw!\>[$(|7,>Qu%`!/ **\Mą 16O?yT } s.VrpI3r DEʢxF߬$TۯO (~8gtW*;*媵x4@1 4Ǖ C;d"nԔTs=piPe.o!te!@aAܿ/8EBTtWOcDUx<~KLS_<- s1 8*sOJ+9ew/{MWFtW@eHX&UZoJn;aٛh.ʤH8?3AՒSq:Y>3@tRtqe$0sxxeoۍbxp8$xŤo;6_ /n?bR2ۖxAx1:D.>RJDȢ*A6fSbj'3ٵ10j94د<1i/& V"NHD _\D@'70aMXһ/ lB|sq悞Q}h7 kMo[ zx߰‘:[saCSX; "x3]5@"p߼2,tyR9{QA XpTpx mߜ1͓k)K[I@嗌M# sfkÀH1*~{bJOuYS֘j0A8< |b G>?°`f}⌳/O.!Sf0lH]ѣopp.l+m8wTڕ}$)RNK5HLWXR Fް fIVр̋)vԙlx$ ;'"h6_c]}pH;O+ Dm9(I^W!B$mP&$z -A01. ~ؤXމi oWhM7ـ1Go}8F:B\Eu:@W.8:@!{=} ]'| 4':FCN5*P~<K˓fSS0AWYһ{Në&ynq#ebbF2.baɀE~&>]x?ㅽn,~::4[󖚬sJő/*ǥ Hf*qPOmy<#pD'! %iboxZu3 L.㜳I`x5t:D2a/3Zc~x ޳eMs/€-։ոtCjyk3W`` N>;(r=hHB=`@ vsIMs-0[.!*&c+q`|8Ɂ> cD&D98Ce11 oO7*e;70rҧ[~h K-9 e]^y(׈3dԺ~eOvD:ccPaa+=9*v ~zLH&bSP8B ʡp{0CyYRk{ )K3(/L6ˏTGQVlQXvp ,\9*suûεָcegnyw󓰴9OS<㣞BV5 0w6zw@^e܅5>PB=&`8cBg~=aRu.[5> Wy Q^ָsq@$xv6?+.teΠc"}W%,D}Sh/?z!HdÉ#N<*/37tU7WfjcV/ Xƿ9 1jf5b*EOm[̹@Cً+hX±rx-('4R]v70V(FP"{ ,FIGI7{=]||Y - F׹I̓*E2%&lr˪i{]-$f94~ </P'.;{~qHo͹o X::L]Ϡ =b9E-<St? ko㚡qɂaLw(iѳ#8O!8~rq+0f | c^ʺ%޷ `*<>٦I_n'3[;ib>pd #z-%qYb-z9 /oND=Lt! ًP">zq"s9'fmϗ4"Ey,9qg|o~~d08|c`]K]Od h9gtUwxd(h 2v$'ܹ2X9ðhJ(l1ٍq]v/2&ףUW-:t+q`"8w0>w͏Lpf)w+ +j{N*c|p.UQ._XZNLנD8G. !4]1!UD뤚m0dK{XAWgae?|nHu)OlK7m>q */5E{8x n\" wqG1#aCzG-SxM㈆. ؚO>0x6j A8AH77ɑk]012ǃ &BU:\s\ht}^/G7 8W; L.di( Iibi^yDz|55 My"KJe|- =8"sׁW˄X71%C 񊛠_;d.Am9^? ")(WgXoSƗnODk mXuNӀnyG~zP0@7ǞNpAM%]H+ bM76[JGyIm$_o5.zUr" +92+1K2v^ANAC8%+~?xta?xX~ζ=X3 Ldm~?xn9<'~h') pHG>#t'*ѻXS忬/+C5Rg#YȒ4q .χ7üiC"YNȼX-ǹpK0ٱ?ʆsvb!^v$a8Bv}hqPmzu3qʍOkjqueryui-1.10.1/development-bundle/demos/droppable/images/high_tatras.jpg0000644000175000017500000005472212107500066025560 0ustar metalmetalJFIFHHC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222 ! -pmz1ju³ܵbdm|j"$͖nuf=gO\+hrSR+Tcu})/OO%S8@ _kfJ+/.vܺ^ՕidDVTbvLS^4"ص*m,?6g9m)e*DA N͘sGI)1O9WYEaѕ穡J!EU6pO,0w L@fu7ΙYM9mkjYZ\fkQTyW'(Im@%IH1Xޣ 8|'?Mm秏6o28q5XY ݧæ /'_6nʴ.UkL.Z~Đv'urwo"ܥh]vw鲹} 4KjF}35u)!vwtss[X]?GJ(@y<-y}8t24gMN =@@Kl֌ֹyfթF{GK?;^2ο&H_-Ϯ=[Jk2ċ4Vl=fʚfVm@Hǎ7rf/2Mn L]-GP9dS]hlz]3y 7\~9.c; B+_ /}^X*˛V@fҺNsӋn6jm|(1`'`V4fΊ73wLlY}5cO%rV1dXNMQQ!EaeU6bH1!(:&|RVu{g$ 9rǢ /|ͫ7-L9eU]1M֤5Y=`Qa]syyjCc573RpY\xi/ \5,1neNr^~]zd_i^gu.  S>ydT߫ÏъFuY8{aʹEEmY $6uJ~X/L鞚9gN3ܥe.UeF:bmFIs7˓YǮ#LK! YMk,QnBT{R=|sbcs2Kos:l^O3oB5 =f h}b̎!|_laHfR+.e!%tv֪˙W+y8鋳WFrxפ $/5cϤSleYؼڜDϕzHӕ/n:\2 ;-rRN:DWk8wLRK5ǐxܚP/}vhxיrı,BOlĬPlREa{˛@a S4{\bm.\\Ey tgĬ69 G=axrMsED2ct @1u4c|\8Akb =I]jIO_3m'C|Sհ3ؙqO63Dldr|~LMe d\CFgs)\I1A (P_W@&Su DœLL1#8Ԯx RAVUn$e_ǧ>,ʼnqJџ6K_ vj&+p#yƌ%YiY5}u4uѪ O(ɏ.Չ2VumP}ԏw'Z12[Y h SSu':*F~u!%cg:H8ړ(r,5:sHeXP~Ϗ_}pLk-sn1VY)?*^"\LV4W "!r a]Ul겜@_K| )z=ƒonX2/ q Ø ߸ui"@2Ycfm\װpNO 2/U]p&eH2)ͦuN^*3EMr?]Zke}^l6%D%6moAMM:qM+^Ly|d/mbHz'H(ߎy!V5/f|l"e ~'{39=!참֯V;鐀qf$>dRz4&{#?lwa'jy(G~&oOfwz@d)=AŁ:gGZS8ļĮd YQ.Wli2 E)P9wx OĪZU$?S'+~݄`bAVC&>4ɛrk e[X=s[η>\c[N a,myfpۣj*;}Ik3%å GaLɅ /5\,A˱\!'˦?͐ʼWMGUrw['.|JbȜŏ>ύr-dC`?}Q0UOI`ϙSUz^{l]Pkzߨj/XJcӇK 5RACSfoҘcP$l`7#<8?`(}e5Y^@Ú:YXt@UȀB.5*]P j,A^߃`xD\.`CTn C35S}HuN7p}hYLS4ɾ#9Ō$ By#'Xxc QLG>-eE68_\JkթL0{7cDn'rh *|{Ks6\؅\N(Ȼvjǐ?o$"T^0;'35EL'z"705?$0 !1@2APa?].ɰ=*a@4 "o'Oc+r 2)ѩ:tGJtkOQOp8 IUQ z8hiXcd(cr aP=1s=]BW򆞐SBV,ɓ&LLptrt.< .<0 [Vl#l(FaCOnaiN _' 01!A"@Q2aq?.bmc&.RȆ5eѧ-\ofF9Vʣ%?ؐ+迆5 <7qq9om&$͍\MMc4!1A"Qa 2q@0B#PCRb?UrGпr>-W)\u6ۜ,S>~NĿ$Ԫ=旿_}Ыm STO½Jئ-[V>7+J]uX>[QV%]#o_0S{: UG*ϡTox񸺌S@Si/!S*JjXIʣ:~l|u?7o>YkPtE<; ?1/iݗاR˿dQJ,;iOO'qƥa! [ú~g-dss!h8i?;dK?rw8kV|>U\NP>tzq@ѡ",$;rL>_UQO}ʨqݜ#W lz^#gnv,b k p*VVe1)*!dq]gZ*E$rxIx^Ï-k>U~OmUg`$}F+[Grt"N9f׃C%F=8nŏcԙ>mH8׊GN13pTBP_*8Zd]!ʩS1E*+b$߶kMԡS}4uHD L.|J:. 1±:G<>Wᶶ{SeU SNkѓ= R6psĤ|1?սh奲eZfFprIIYʪ_od])['s]YpB׋1+^VT}QNj[ȫ pFPndf#_ ⾐p<1j,O*Tմ?+h*OqSH۷s6V*pAɍ \yt(a %i~KE inPRGaz"s9q`0q%Xd3ó/ЩO-X͆1rO ~4kM=4+ث=yBçuS{ 0:cx0J8Cgss|DNfP=4C*Ia.URsTw$vL(pg"<v8;lpw",NfFn圥W{gX?޼xzYgzKЗjK)6E()_IJs#kuHzp;G~Wg(i.s(ӌoGuib?[Vq1q{]27Mdu;"+7wctG+9_)Fpw1}-b*3r䦟]8J7bDO\iM=2K>4J-]-d4>UgJ^j놷d Z} ~5RDZ㰸mZj9}{ʺ 6%EڃSC{зOzu8֨W"wd}qD.¥5]~Q*wWĥ-6ƔI\->BU+#{'Z% XӉk)}99jbvR e-$ЇLPڬi%/H!lB 0> Mv0IbH;iaVE{z|C->A4ijPSZ)DE*S]}t#9+m+[xV&ez_KఋSY 2YPb6Q*(z?CB wYfwӶkb^ I%(6-H~;t%s[ lG@P0j> 1{;u##8.i&;>UUДSX\Q-QeQ.2,eBh v0;N=[%+iO2 @'# 2+ҥJӌ:KD`1;D[bi_ Rb 9TrQnl*iB2rJ*TRJ*TRN(K^Yp%M^3ȸK`\bʎJ*TRJ*TRJ h,C!ЕTB,ԉ| kl/\DNDRJ*TRJ*TRJ^֥JۨR7^&RNpcm>\Ku Q5Jow4GMU ľMG`1`ʕ*TRJ*TRJ*TRJ*!+,8TڨIW^K- BJ"߬_昔F1eJ@h)xcL!KY2J*TRJ*TRJ*TR&fB; 3ȝseDh&{;fhgpw0sq.#%`Ƅk05+6N6]sATV^(_f 3w Pʕ*TRJ*TRJ*T|L;9QU"+!j 5&0똎0ߖjUe 1㛅]o.3N‚?37͊5r`e*TRJ*TRJ*T[+ʉݼ1/n1Q,Z>+cW]P23yPZ G\[eQnXk 6q;!>/lO1@K%J*TRJ*TRJJ%4SUp5ORzgL4t =)V=0rs./[f6̍I@*{?S ljQNkHΕM8tnw&J*TRJTRDL 5^^n8K/[Bu2;[jзʪ3,Qq/-/$1Ub_6비O ձ{M9%x._̲\rg؋ee>sd!:cRDcy"CzY^f@ *֍̸meu oU0de$aLV\-GĢ&3, R^ Z%0n`ΕYZa4W]as-0xnj3b4fEAuVWp!A/YeʠK9H~Ti0ٍ܈bJNf{6TŒ'14ϴZPb%i /UYMbh?e20Dt^' c\f:;eF^ טW'7Txošc5n,E7^ܫJY*4Xw]2tQ<8Ez au[ (wl-!̪g4yqkR =̜*\Bh¯G`!%&yBpD +-̩(1xa4BV@`wǙn`2&+;l2ϻ^ifvݧW+70qB솦)({%zȼ/`^c~aȲ핑>SށsDi$ه:] yF7s/1u(L!xZ,5Թw3ܱY"Ļt-3TH{=aNŠ˩\w-SPbL$|5W4?x&Zysٱ2Ko2a.3e]pbܫXNVc9FmcsWFؘNSAScV8Y%k8GMZ'ij%s:-D%h>ˮ'Sikq,f# -%2$B(R"A'3w!Hf>w/ad6GS()vN2*[k刈,2wh(F[fꡑԺ[bmDmwMyKT,ȣo e.@4K̡us3r>nYn!@=ڋ.#|'ЙA#^zDD r hP=%wUxĩ\]};aV#3)kL8/MEO s`Aзfu>+>j K;W Z5A˼12&U-.xŤ_ #C}KidM m3;@ˇewĤy0`B/@@myF *t4ޙ[(<|ccMF+q2VC0UaVQ >[菕LB_/jr2͏/ >bܬ.1.LJIHtW+usSi^0(b9c|3bw M^,n|LN̶֥[( ˑ-) 9M mN.;4\@n$(*#ӟc2L8]ƛhØ|J?idRVjxeg;gQue0Ju4R,kKNd퉓t ;,kwyX~onD;h@o4q,w)w >Bs_ghcwrMse 1Pj*WkXu%AX6TU+rDQ}%z;5xQԡv/ v2%!ġ9cEFW˹5 7ix:E2WGob\Bqg,(n%ک6 #ε dd >J#Jf gNc.əԭ3P;se^}+2fW[b~bհ;>!,'DerA&;!5 Y%-cS5 B#]ͥ(Ơ )>u,5uMQ̔hHQV䙔[^MrШ劷@]2 n4 n|b%Њ}[w; #+ibKb9Wr9;@Г빞ۧ1ͫ WK[*(dXw-Ubg`o=iȬ1X3f79@ 2X.3u-/DX MQLJp%\e:,xB^J9)~^!ܤU%UVFrxaDdjhfew6[PT& C` k ܂18\Coc\Dtm4ƿAix8nC pG֓><’ eP40-Z. mX2#^5,Yө|l ~#ITKݞ.%-֚w^#Jm; #2:7U3* ?OxX[䣹Z`{qmJٽp%$n&W'I:>YXpYQ 6i Hj;F-YG?R#,ϵK|/ \z'xd: DV\̆: ]ܮCZ\~{5MA#ymA= ބ<' MY S\ɝ5 I5hH>T'$5+}ΑŠ=cJ i( -ugc=^)yTQ' Ǫ@"T>5â2j=EIM1rхFgˑ Ot3eRu7] 3BZ-~؅$wQMwG|խvHv.hԧ 1y#uz^]!1 A0aQ?,pcyx NSHD[b=W .F2!A\hW>A 0م˔!T",SCM "7x#?\U/o*"aT:$vޢJEQ.>ϐ(|1? B1&#*W axRfzG|6*TRPqwܩRJ*T`a+]LB (`Lό*R.L'dФpɌ"Wis|:CGCS!3H,uχ'?YSfAoxؿtC#byLqGc^/rS .<ܙ}jY+;)+W*[¡ƍJHELfC$0~a= ?#}E*q9"+:i05 pfSN= DEŶytpɸ%zw0NL X?灴тHGgDM!ZՍza!?;ϋ7rU xnї-S mmCY"k+lI6mmKܡڿmm˄S'qSzmm'c{O6C#ܴ-ml]f^,ݗ g>GݶmmZRqmmܺ#oS/'ݙg -xI:s Hr޸/gu`R m .uzx^[$({Yt'#oa98k0^8M {9Ifnc쳹M>O̐wI.o%[)tާӨXGK\at_7_ݤ#sIz6 {kvåjw=G2|tvi&έDuX4`X ܛb>Cܚ _w%Y%2=Gewm@[]]YgLnmWgΦdf8y!eoI j3mчf]Yt2y\^a-{nzZvpO*/҇_.Yn9p1m?ztw\o#Ef9dM,&{̍|-8x'# lw=2A8^Cޯd}/: f}o GlBpp&M<;{o:8)!1AQaq@0 ?FuWL8O2P*82a W)7%*ntb^)N&:8.%SQhj(G yfS{ŰӸA "M\+.0|T" O5dip4R}-b;rJ @oYS}ORcP`Xcb EhɈ8Eu)qlV1|EgoO^bYן 1&5e FmB~ 0PqnF/gO:fRJ*T@Īav(hJ"ݮX͌PhW $g`/ BUh0Q+CzXawCX*X6cFc82xaS/j$% &R_9]Tc?% k+ w䦥P3`L`-4+2.Mw ĩRJ*TRAjl$R3Z͇QyW`*5wyֽ@TLp!T7m :֥+~#-K]Ru ib"݆>xsn,Yr_`&ۭh≧?=8s[^r|X&݄G:Mqc๵ܼF;x:q@f ZZ--28ߚ龸Ĺ`fd/@E]A W؏>yH iL uhc [}bx=l-NZ1Rܺ] S2cAP:ZWu5!]0kf<4֜I7W 5eRcva@y1CO>w`U ^G ښWqeSYӓ ZZs]Qc+o7Xa[/XBf si5r)))*(>4liۿV6<P .WT׊%ik|۸X]nת%Zz")2eߛED4ψ gXxJ{أUy8/.Ɛ8"+:%ı.SsKRZrRU f@uIJ_/?9 ne r[MLIsge^_p RRֹC[bO*Y_0!R(r.'g*6sQ12!{zJOqpr>K`U3OؘbٚՊ-='Q.s-rÔt>"0'kyN ]V>]Woᶇ%oű|:R!jzf AK%u*36Yn;Fn=aYH GSq.3[4+?uGgE5ij*iG *ٛ _e c_qi x҈ @lQ|tAEMklY@4Y%xZ/;؃]}KV]\z"ުbo#U }Ds]PW"s9q:N, @X[pKz1[ FYt,kJ;d2EiA g9OAbWK0>ahdngdijK5-| /9z9".>F x4u9AP:ib b|# xYU# Aiϣ̭i<|S46k&鉪67^8>W K:"* z"TUĄa"`+JS̻IK;ro 9iyy`9VT2ί46'rdrL^;D#R`Np.hiDͬh|%(й#f6!H+v&u+~q"߮㴴Z*EBmR(ZS[4YTZ#Se>Eczz(NmTSDl`` 2`qU|Kے_'1Ӆqc%j YrwԹќ5y}L%WgĤ3 aC"iKy' 7Et`$ Ԗ) OR.bfj,x6C%忢(Vo._068}wuF1dq18G؄@0bcE8'.[E^ڥǩ`UN棍ohڿRUyj=-usp4%+i2-gnyxn{CApd([%^, +kO{@vf;QQr~ Fi^AKBIroIxm4h!\#eS^{_VU6Ք/_ijNž8WǩtJo_5 `:0 V:cW5ۈ `06/ٳ]F9pIGz]xlhA_fXበ bTUZ ~*3u#tUAWAXfeN3 [Z KkqB]Իk0O߼;P {:7z-Z8qđJ/BFC ^:eؾD81~&%s/_X%jnXpE|%pKVP? Ѫ|L^ _Ը"#n`.X,W^e1 +Lp1īs^c8sEzB 0 `UDcC*]ih ܫ`" S `ajEVayNWq.M|3&"d250F\$fc/$hwRHlvEm9އگߘAt*hLun8?Uo} Gh7DNZ`+,Ky'yF?d"49f' *4[umqM;ykTm^k_cN5_g^Π6s0V\DVk)ͣ"<4nX +@\2ԧPҖj0]2P02-)F|x5yHrU8Xb;!YY0ōdFr ^DY9,n]YTdKXd 8? \' f&QbX8+Id*0tz[YvfVjY@8e tWN320L}zrU-?PbS^!`U{ :])p *n~fw)%}t1VSmkV~e Zئ5%/+FdQ5!.0-wUOpPFd]Dh(8"S3& *Dڪ#eqr:E)CXr nhڭ43 ĊDPaMˈǸuhsQ!-VN -~Ԡ{)!ue4QB@ω+ JőVw1EVj[e- |hMlqu\El+5 YjӽK$hՋys( PM{<2}׭EK oz8*ī T,1XUĠ[ڋt zK Z_ʈTZrVƤ2BV7_1k8<=P[(& )z!lG&"ؤ)Q,'qh*ۨ[/[̥i`-ݾv1u3 v 6>s5)U0u\mk"(ѩNV"Mֳ&eL+]2R2n]=ܪmaI9 "[s5uIwi )i}D9Yװ"mJߵ>*= PtLU{ӥ`|CH)'%d|D<S'"PxR!;"G rG"`C<=)TG } U͠0s]6bUQE0qkb#Q8kY2lٵhZ> 0;# CDxb׍&Vs5Η{T9c Ƀj=:f;빑ppU~( o:rhj7&K(B̓ߙB^T#ƹ y7RBY3O^Q̠ O <ۙ(Q+e*_ܯlZuB|E.PPw1M5I$Pp7 ` <_ T>m]p*ÀPcV\-_h( '4 :f[ lUǙv6\$£@n̪QT.pi&)[VkdŊC- );bl5 E~U.b]*]0ڵ)t0Kr;`n&} ՝r\HbZ2JZEpn,| q"͞+"j\ClV$-[fEF)6Rtt؆ހ9 JM>!0:y,+JOzjBst(O$qt\TAl Ns!iQ̣1"hWA.`%nf!w0\|˕Wv>@'oY=X #빸p7-~qP!ŋ.Qm`n؏:ܯj]AZ,H a2h`1b<[jXH nB~ `ED* 7IZJ_!6@`N2cg5M5›#gk3@pT,T/moQ n ?Wܸ,N}gॿ/\DXK,L6ciO$̫kEFYƽq ` ja-&7٦Ȍ`!cs]&mXp!IR5A5Am4 -G{|LٍX@R+H9c˷!|՜r_VXUt&AIG艰ڼ B`~a49,qB5窨ET(6(&gr|ʐ& 7WƯĩL_3?5VhԬ^xN^:'*Z0=&JԷu*%_In\1,bҽF`#wW] ƠXE9M"l*B\]aXpeuD;CPUn[ȫjВ%cQ_[|,ofQ޷]ʏnؠ!0y_ u7x YvS[y-$n)ZЇ{uw)}v)g˘n^.$zV FQᄁ亀=n)TsԈS ٢Xa9+&KLeD.,f _uAV g01y # S\0h5jKx! ,IU}cfp=S ޹aՎǪ;A9UY[fV*v65FpU>8AgXƲzxpĸ`ӜzK-8t]>N .qy^s)َi& !*#xϧ卦ѷ⪅ҟ2rCR!0{^) hs,~eAxR!TNYsH@lEa9% 6ˍL@ o4쬭?YVL,<X/Pr,:| V^U<Jv?3] 5 \'Fbv~ K'"muO< +QGXKn &آ3f>ܤ0 tq˟3%eu4f@A+B dp 8#L6e:TL:>+̨$ !G_\ &AImk%s1YIM2"Q7lAeC <g !6é: &僅8E!x3GT倶fF$wVhs iV,3ޠ$u@t?H] ~넶9`TTQ7eg%~)@eȵ>n#٥;V3b,rrRcϘrzQQٶRp$\ . =?Ĥ-0i^X)o/l\DU}*7xsZ*OXb Eǃԣh(jJ4Xi e!`?jqueryui-1.10.1/development-bundle/demos/droppable/images/high_tatras_min.jpg0000644000175000017500000000414312107500070026406 0ustar metalmetalJFIFHHC    $.' ",#(7),01444'9=82<.342C  2!!22222222222222222222222222222222222222222222222222H`!4!1Q"Aa2q$BR#!1A"#Qa2 ?R6ZW6r+.J(I2pr?4$HWvH=ϧV<^"څX|~RFg#GiyAK6na`It-\3ViUen;\Lqb~!Nj=-]|(>-hM]+I_dXՌ *Y:V\41^$?gxqEj{Vz5]p1bY\ |s2'TzFkEKY!qIKv8&ǪzT͒9xJ c).|wwNG9% Nڙ2w" 6qGWڧ彨hϖzE~#Nڗ"\\}f4d$x`9^2/՜叿zO*Wц(z)jڵG$Pmb P{"awҢSJESr<&cS.ҤI >AɍYlCnP'(Cy5)F+)W) &B֫3h:TGfu_ +[TdEeeyVebR7280zrx?cHcAǘM[m }Ͷd2&ĐǴ.x'shbݏUPdZKC`-ׁi 2I'$yXyfS'=W y%kyTvC)CR{T8=[8 \Qמj^Fa+JLd~ …AӞƞO یwi6N7ǔNcU H_T$6 kᯩ ϛb>,Gx ^iv$ *iRb۔1۩܄23ڵ-n;rs)6&#\|}$t#NiwL/g&I۴(N#V,$ [#A^ &Dx޸?qCе[}KG{[R0u=ǽ*QQhi-HaO"ssh|TznNsum8Ȝi ?Ļ-t,vǥi ~S ytaْ1jz~Sg t@؄d3`*y?kcrQÏ CuQ)n1jqo,kvX['Ң{,6 0#O|!kpv2g=+,uI.idu Ѓ5x7&5޻& U˒wna&F) 0-h.OE;✝-Zڅr/u4ErOH \n:v$/xp|?h֊ecʿ$g" 1&q.$SW- LaV8+ Ω$s%MRq;Be-]K2*쏛ΧjFab> Z!eV;Q֗vsj,"r؟ڣ 'fkk?Gi&8LdznIP ʧ5Km-l#jqueryui-1.10.1/development-bundle/demos/droppable/visual-feedback.html0000644000175000017500000000377012107500070025217 0ustar metalmetal jQuery UI Droppable - Visual feedback

Feedback on hover:

Drag me to my target

Drop here

Feedback on activating draggable:

Drag me to my target

Drop here

Change the droppable's appearance on hover, or when the droppable is active (an acceptable draggable is dropped on it). Use the hoverClass or activeClass options to specify respective classes.

jqueryui-1.10.1/development-bundle/demos/droppable/propagation.html0000644000175000017500000000442612107500070024514 0ustar metalmetal jQuery UI Droppable - Prevent propagation

Drag me to my target

Outer droppable

Inner droppable (not greedy)

Outer droppable

Inner droppable (greedy)

When working with nested droppables — for example, you may have an editable directory structure displayed as a tree, with folder and document nodes — the greedy option set to true prevents event propagation when a draggable is dropped on a child node (droppable).

jqueryui-1.10.1/development-bundle/demos/droppable/shopping-cart.html0000644000175000017500000000512612107500070024745 0ustar metalmetal jQuery UI Droppable - Shopping Cart Demo

Products

T-Shirts

  • Lolcat Shirt
  • Cheezeburger Shirt
  • Buckit Shirt

Bags

  • Zebra Striped
  • Black Leather
  • Alligator Leather

Gadgets

  • iPhone
  • iPod
  • iPad

Shopping Cart

  1. Add your items here

Demonstrate how to use an accordion to structure products into a catalog and make use of drag and drop for adding them to a shopping cart, where they are sortable.

jqueryui-1.10.1/development-bundle/demos/droppable/revert.html0000644000175000017500000000317112107500070023474 0ustar metalmetal jQuery UI Droppable - Revert draggable position

I revert when I'm dropped

I revert when I'm not dropped

Drop me here

Return the draggable (or it's helper) to its original location when dragging stops with the boolean revert option set on the draggable.

jqueryui-1.10.1/development-bundle/demos/droppable/default.html0000644000175000017500000000244712107500066023623 0ustar metalmetal jQuery UI Droppable - Default functionality

Drag me to my target

Drop here

Enable any DOM element to be droppable, a target for draggable elements.

jqueryui-1.10.1/development-bundle/demos/droppable/photo-manager.html0000644000175000017500000001522412107500070024730 0ustar metalmetal jQuery UI Droppable - Simple photo manager

Trash Trash

You can delete an image either by dragging it to the Trash or by clicking the trash icon.

You can "recycle" an image by dragging it back to the gallery or by clicking the recycle icon.

You can view larger image by clicking the zoom icon. jQuery UI dialog widget is used for the modal window.

jqueryui-1.10.1/development-bundle/demos/dialog/0000755000175000017500000000000012111026004020557 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/dialog/modal-form.html0000644000175000017500000001351212107500066023516 0ustar metalmetal jQuery UI Dialog - Modal form

All form fields are required.

Existing Users:

Name Email Password
John Doe john.doe@example.com johndoe1

Use a modal dialog to require that the user enter data during a multi-step process. Embed form markup in the content area, set the modal option to true, and specify primary and secondary user actions with the buttons option.

jqueryui-1.10.1/development-bundle/demos/dialog/modal.html0000644000175000017500000000261512107500066022557 0ustar metalmetal jQuery UI Dialog - Basic modal

Adding the modal overlay screen makes the dialog look more prominent because it dims out the page content.

Sed vel diam id libero rutrum convallis. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.

A modal dialog prevents the user from interacting with the rest of the page until it is closed.

jqueryui-1.10.1/development-bundle/demos/dialog/index.html0000644000175000017500000000074312107500066022572 0ustar metalmetal jQuery UI Dialog Demos jqueryui-1.10.1/development-bundle/demos/dialog/modal-confirmation.html0000644000175000017500000000334112107500066025242 0ustar metalmetal jQuery UI Dialog - Modal confirmation

These items will be permanently deleted and cannot be recovered. Are you sure?

Sed vel diam id libero rutrum convallis. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.

Confirm an action that may be destructive or important. Set the modal option to true, and specify primary and secondary user actions with the buttons option.

jqueryui-1.10.1/development-bundle/demos/dialog/animated.html0000644000175000017500000000316712107500066023250 0ustar metalmetal jQuery UI Dialog - Animation

This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.

Dialogs may be animated by specifying an effect for the show and/or hide properties. You must include the individual effects file for any effects you would like to use.

jqueryui-1.10.1/development-bundle/demos/dialog/default.html0000644000175000017500000000245612107500066023112 0ustar metalmetal jQuery UI Dialog - Default functionality

This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.

The basic dialog window is an overlay positioned within the viewport and is protected from page content (like select elements) shining through with an iframe. It has a title bar and a content area, and can be moved, resized and closed with the 'x' icon by default.

jqueryui-1.10.1/development-bundle/demos/dialog/modal-message.html0000644000175000017500000000337712107500066024207 0ustar metalmetal jQuery UI Dialog - Modal message

Your files have downloaded successfully into the My Downloads folder.

Currently using 36% of your storage space.

Sed vel diam id libero rutrum convallis. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.

Use a modal dialog to explicitly acknowledge information or an action before continuing their work. Set the modal option to true, and specify a primary action (Ok) with the buttons option.

jqueryui-1.10.1/development-bundle/demos/position/0000755000175000017500000000000012111026004021164 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/position/index.html0000644000175000017500000000040212107500070023162 0ustar metalmetal jQuery UI Position Demo jqueryui-1.10.1/development-bundle/demos/position/images/0000755000175000017500000000000012111026004022431 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/position/images/rocket.jpg0000644000175000017500000010033212107500070024426 0ustar metalmetalJFIFHHC C     a, ~sO <%6z%z=MR'Dm PCK[UW$[Y/Eaפ@(P$2,F ^9YO_"c,UD2^!!4S a9GaBSi0pQ(0in-#!ixl6( \x~RSDLl{|r ~{\*,uo2`y?3$D'~aǫGjOԿk5ϝ%,{r'^ T̼XԿYVjK9#8"f<<p{7MMTd=ZGog:r=x=4ͯJr],lr(Ryati/;M7F/nO"MnM2WkVg?Ku]ܲMwOtLˉtr^*bTMLm|3'jLZHtr e:\tǪeiRƴٶ9GTB68spfsk5Ssyޙm~Vv7{\54uems-~ꔺ ?%~`ˬ /^o ZGv1 rj+zMer\LvhtnK%Rjy^MS<sp.tͷ$-i_j{U"ƪe䤼Լ٫y.u,CsCqϧCa9oy;-<r+<-rӸ֑rz+)P){AV9|ՔhtySϧ~nZlĖ#?iط>^z?az̟Y9&eyάݩ3UfN?g?@NlK|oÿc{6,IXEH9KW8rg'N=.ZvV9R.rvk_}ǯSӱuLRׄNS?.*,,vvO͡禋!=7=T]aNj.:xcVѱߧSȂ*f e)H(^_.han<5tbko]ӯ6k9jL9bKI%Mݺ^8$|Ilaމn`./-k/<'3!W#dmz%(`k<0S*8oBɨyۮ+:1i2Buq*!ׄШ(dxW3ӛ(IX8H^<泒}2!rh4 UȆ{c^:7X1#w@x0_=^2xF,֯T͸ZvϝV9OÕ<#<`1H" 85-Sϵ.LUΖ2j^:;:$;#ҏ)ylG7779NS7ܦ#=D77Ђ{g;l}'XL. 6sh?s&m7zm~SsB.S Zl{zY9NP?a jm8=~'ylqbgnz-S}vf{D.bX*''}5ʲxXNhg67.ss7/ɴ4!SpCb3'gX{f#`z{ P>ݸ0 }q<ӄ,85#Ҭfh9@+DZ?̛e;p&?_uxV N_'\,C3Y:TV*Q3u#p?]Ka:o nr",ҙрDYn;eeSfg5DA'%+[=?Q9I Qlpj'AX" V9MckpFǕXDDQ-Hg7%`IeURGJh-gF;Z?L|ȷ̙υWM:Vk82b?RqfMqsq^DQF[h2C,[Pרb2r-eRx\),]un7aXiRm2%gZJk\["UF O$8WAϻ~FDy8$¿S')ٚ2ECIun\kϩ]&] D 0"5 Y*{6z*g7G?໅ Ӕ Z)_ؓ=.o^@=qSfvL"DXJ+RVȷw ۮ3jYnizz O.̭*Y[7<7klaw8w-fWV"Jqt"U{g(RMBPTVVx넭F#)]@pψRd;/58ԮQ+*J=qiu*e1(ʵ OԦ f]ˋUlэ2 My4J֤k_uU-1jbW&C5vqk>1jmS}Ɍ]Id䊧xJhdZYn7aWULZĦ%Zi LJPB{VbSZLGoxj7I˲ic3Ϙ6mIURretz]EP 5Ǵ(b8J&u.GNU4jGP 6{ XsF/3-fB{mʩԮsS$#ة8-c$D[-g4bщ>Iݹ ?0 V}W1N D픻UgoLM/SL:[Oef`;ΰ=OTN;Y1 ,+[k19;hWH(y㙙xIdd5ޟn FMt݆I{`N2z1 8 Xvuܺ^hs!#٨U83(,:jVjΥER'ks_ֺc0"V+sgZ,0bweq8H<ޔT:3.zFfuMmFTyەWj*r"lŧZg 1LV8l/V`4lfZiEjkdv5c%Sh,s )2%aCttaUG v6&Mxy+8߳S`jޘfYxBJ]s9mBy (%,ӔŮ׳&r#&Z`еWqLƧ+&\O{ H+_%x~zt y fb|kz.p=D~8S[P"fŽ =]`HU}C qj ,+UD -bUZ`6zg,6w Cٹl]pTˮQmhzv~Ōr *ʫ#k7hK/t9lWE%C1$WD>WdrDWj{)GGmLLL<&6_tQ/Ho*#k9ǐ/|6/llmވ!CG'5kXceڰ-ۢu142%EQXQ5#*dD7b6B(оMYą9gQcbDy_h%YO yضG6ts_WgE2=S)e2LS)grnOe2$e2L,C?' !0R1@A2q?G39gs?G39gs?G39gs?G$If}H9'rO/_G39_/hZ-EkQXHR)iE"_Dz,^V_et~,>_y/]lflF,lJ,suMzح2+֊Y!f!g8GAb\zrlWjꇍ鸼,ˢzy ;8Q(^kщe^eJ5x7"lCT<xԅ4,F9J.Y^hQ!̢BimeُzV=Zt,.ߝ+PYb-/얹-KF$4(UފǛ -cslFhسȉJEbYcl"[)^D(>")a$"u aa,X+'ȝBXDžҲĄ/6юB4KsefnEQF@m(H26Dr -Zt^T,֘,J-F͔m6K,Mi:$܄(#hmYeYeVGHZUE!!DP6) Ї 2*eL-+cff]ES,Xn,_{z>6>eVih fmebF7iFlDq3d%ii[e<3#Ilkcti g^ؿBLYe,Yg-$ŢG- ,,4?.҇]D!1AQ "2a3Bq#R04CSbr$@PTcs?!|<]<ʮ73>͇u9uN]Q\guK_1WJP}+wu8/| ϊ]I.W]C~*WQzB/u.75\CX(H]D/C~فDKww>j~u\VQˈ7j\\yUsV T~qQJؿbJujzՎUWSjXw*T+bؔ[Uj%jjUږʡexT*ڪٯ^5']WT2TkʋWBfWSR*TSjlHFVw 899*Cn/|Z2^#;/7BmJuD /{566ҞrP%WFcy_]5tʐ_E@ĩ1V`A.l:S&kf3h8atfpx-Qm,wIsSHrS^JRr6dԚ*|RԄ=Y*,up +eߴh ')bhEY{6*z"@jEl'rR)-8+fj_E@N]]7:Sci] GJveO!De.lwZŚ~ !u}(t6ԔϣoިM)\Z|*)2&S O )^[%!bj)+0ڈo*D ;EW ึ-0XpW"$Lܡŭ5o?B| J{}٩ۘU/*ڤn_u]\ibPlOz hj2vSSԢCk 0Ects7FY d:lr#zUA_U-&iZ[fXpz >(g~C빢0wtSf)؝JW*JW dg T7HnXq稢FQtA@⿆mngUr'KnS%OKUT@wG9`oz"S8¬S%eM@z-i5ٛE^J vb64]*&xjM%0-tA3%. w06CZaI +<—OU;}Dhu=f=7xl&J1a;x4{c;p.n Lp5=7p01v D|M%NgbQtcZ{{UR5H jt:Y3AC-ؖ7{yp)Q7ݮ!hq \@>b$Y?{c C5z6I3 `n0rSY ̨{‰@VD}a=:P-πZCsUbNSO$Z#\7-%W)ٿ ;K-f# % 犗DPIkKf^a([Ѻ#KXUZ%͵}IxPggDR?HWXb,3fΑ@Ҙ׺ԁU]{?5j&#MN_U%X`3"7g{\T4k|5jRyEIJUwbe]kljsg$;3:1QCvSt7ϑ_K^U/=A !D3TwXoE4o3]]ڹ䅓>Z&W)I]X h+3#@>ߨsp2)lop6(yض3D+!I.k|+ՓxTUi޸.3~Ee(!..i Dwv踫U u3L5\vBm\Y/tbTʹpcI7#m+.s9.8 U~.:ڃngp冬k_I @[,T_EXmV@J @wE3&mü:4C`pRtChꛮʣ!RS vprhQwb N*x7FqʠRxuڴGIh`& o(FxݖY ۇho!r?FS[?6nNi+M.BcX䷼ɲ|f/DyT J4bt^aBvkO2A!{&iAd9`n!5j,s9*rlN<.4C=M4ks{GLPcOvrG4vAcXڅi#Yp'GяUhqShnPw_ܭ>q*n`l ;rjL١$&VO׫4&Zk ?Ew=t703 IQEk4{8b9Ve>%JÈ0˚Wt\R{9W=.i鋓ao9IW|WKke3 -VMRnM % ĪU q*įWI\EDFq$t! l7^bw bSD18Lݪhn?$̮NkjFeŸ &3ƅJͦ$$鋦&WMT2Q䮽o g·j C"L)ݾ^;*VIlHAl&T컕Ns- 9 @/p_˒˚cil؅rmP|B,0VaD+bEȹllw)GQTX/|)^,H$zٕC7fṋx7E}ь;ԛwIn!~'Ip |0wVZDF~'g .]{[P2+%vY)> U`Mu%NC" Xk4tpIO=-:ø+-JAwсwYM+J`ʅoEcr.+L#.E"xwmڱDZ*rRPP;PZ+x>VwX7Z>IR SbSsFbhtSES> f'L6It^Jls`qE +4r[%G4qUZsVZ e5jfԸfHf.ّ&p7y._(QgJ'cɨMl}y}KҶSҷvѢ#23qRw.jw?ΧGZ+" ZN2g/R'_J??'!1AQaq ?!7?}!aG!C[i_J9O{?;?;?[S?OSԻS]K& jO`iL=N9#.Jvq~Fz  ?d?s' uw`z/d%eC̣&CKxu?2+O0}GyHKܣK $o3D̖Fڋ6cKw(=%jctxcM+>)v(P<\^|iW9̶ŗԿEK$[Ss$gz1,Eٕ}zԿx/ @W@P!_${Y \\=Sw@/GO-G|{]F/(rGZ:9Y38"/reANLFq@7M)VY0[Z5 %`Lg/S^"[>D^yt'rbJX7?J 0F՛z`T5SLh NrNF-`t+"fsYL$`t]Y~mrsFb-Xуz%Ep-{l}PW凚NmN@U& }O?Jc<"r썎iJ 8Iщ6׏Xxڿlka̵ަx]ݳ%'U-TK6MsaRuyK c`~b@")r.a6ٖc&GzCizC>c\ѱk0[K(_3XkBqMaS'ljtu|p˂9R%vUZX @~ߋ {nLA,+vAq{V6/s>aqGgmVJ_wp|rRhV"cw0ԩ0X1%eS] 2P=UBX- q-.c*pݕsKŬ'PAAʷY:]o=L+l7<0I**e \<2 YÉed?SWXnX^~;("+3 ^bR|qpŠ9T/שf#` (C &`t ]\K$WlX֢z?yv#LH f/WޭuT۽WXSz! Qk{7  gىCGR@0eeA-qT"*̂=i(l`;0}<)%+9XOMG|m-{Z.y6ģ̧J?eEY^K(j -ЉQSJpF14UʫU+\oY2UA9'Sc+BS=VJSN~D7zq@>L,\Sf?i2X<${G0YT nAeH \9.[j0[s.0&Vu@eD pᑔ]jvJ\<xRilBnC,u4X»ւ8 ǡ)%5%Wq4r{,zS~8A{|-tyKw, fHG|#R0NM]5_U%9~~s]7eG C =6ܻ+yHX%p^QVe/pv]6oUJCO=OwrIm,:= Ŝ U^^bJwb3ԬUꦒ3f,;HxTB|#p:Uv%ķկޔzsY/? !r6\Z-@/0?Aq1IQi l[.:nNW_RD aX }?0{Duy%ܺ19i/; (<EoY:Ub+N{^v;#*O5 ҥe2d _’ȰeFxfkXaX_lmܾbWAȏ™F7SF^zثuw3/h3TM:Lʆi`+.L7Q.DeÖ>VQE0]QX0OY7 YoCYZ_8QvsL -܊'~byl Ir5,_)z&5w9@a+<=3qҶ="-! 'J%c+4bas2g^s\Ah^*R%׉@eOvjyMoǭNGW{@љb D.cc1 ?@R B[*r9pUXvԘarj% L1s,,pL`% ab?i/YehD4j #*;+&<fW8eKc6~M}' 7#Mr.U2݌O-4kRpYj4Rr?%t#˘gDPx!/8qQ`0N+ =ra\AW{Xs }e3L{M76v T}!|779/6N\=~Hm|+ȯ..>aT붭+B(s [pޣC`!+ yz%/<˒>Y,*efP(;0^HOo#r's/OobRn(WNJ*] Zw{ŭo>n#j٢qgDErb}!\uf_yf&o\A\1YK P^2R0wEA Oo[+*_Ưx_q]7 [zCG8!bcH)hh74o6(8R0^UMq/s*l'*. ؚaQԿ jg,Ebޥw: =H3#X[8Ѻ^*z=fJMzqDW%9[*syK{DX$7y2ZzE5b))_CD]%"LnoW^qY߃"Ҩ2sFgϘ~& k%i&_/bi  :evzocSq`f]n&3\)bFSo;G W4 s\* -U)JC/nOmqRT*{4fJZk0v.?="AܭyB1lEWUʭ J%l+->a]xtb;t-q} х԰ƺOpebWߩApICoFL1J`/a3c5,h/WGG2۾cU-?3a jB0x +-^@$I$鸪+'^ v 'G] sxɑ`(\EjƢD]Zڋ6%`C(\~u,r}*ܵL^Uk^^=!|KTvW!6Բ-gh*yfd"IgIrM+ŸƳ J9DQrƞ!U0e%Hp/6L`C|12QW. 6Ew2 թX;WL~LX !`uoxˆ(73zWܩpܬ!?0 vC8L)+/n,%Hj 1EEXrQ9ꡀC%%3 xYy}9Au((P`G^~r\ 3`ܭ8. ])J,!^R8}t>1eeX4aUSbPS+nn+7 3(j|v͜GUfO@z]Tz'>HZ5-;EON}]{KhܸWDzדZτMz^+OYn!c9(̃깘ՙvkD(cSd]'NW,tiK{U4ܢߟyO~=BMMm j_qg Ѭl++莿rҵܹפ5k/sݽFN u0紣?7."15m%dН`7v& ]fxf+j& =H9288rTG; ]u1W{?7 02 _P^Hrd{9!w3tm{!?t9TDPx']/n .#%1/3g:]zfWL bW:}-eԹ ̴;PI^7 <(/7Uyl(Usw j??A})WmC9Na}7cmQs;մu1? -߽|]ȖKv,h ED#3(L%r5Uf2c}ۯ鴛)dv). dYArkvʃ=)wO=TM#Q6jBhA#l|eZ< d e[ZMv|_@cGoquϣ$}\?8F%BhfVHdS G5{tSK pLO،ck|ԒDSMДgD_H;% ߂bmр~UQR&kF,DT;7n-a Dી@;A贍Q$_L-zeHDƼcC&dkDԬ2 9 5z_(1o@OMf@LEv*o\$xEmxbF?~$7ЌIKڹ߿Aa)܃MdPM>Ђ&%ODtswUma:(ֲQ#0-Կo`D#.oLؗ f>EHb;R>i/$; -tg9.H7U Ҷ8T2J&!1a AQq0@P?:::::::Bz:N?t'O)I!:_Et6+_Ew3+2{'d$o#.d!" c{yn߉]3)?&!B!lOR$^ _)!cQ. 4 ܈R׿5|T7A'V`R;BBHhĎT#ѠRfl!2 ׂW$qؕQI3WY̕s>LDEgKd#pze44^pX Ђ—2==~IN PX)I,]!iV" 4X:s #6)1O-Ol} _9Y~ 7=,uXc&3O\͌afAD6DT6Sk-}xS>qV;i8ii=A\:lkfU5;,n&Xdl>3E)Q!ω5O LR7E>J+l+VC@Yi>`I 9Gble,j `*`5e2kXY2!W3 ,QX9rATZRf\VЁpZaRx%qUHz~1Fĸ8cEQ7QI cBk7GHG0|Z!(ZbTHkb ї(bB4#KАc׊A 8;9.I2dx2$y8 Bππ%$=b* Aa 1522X'0 LnqTJiz=M& B7fb򵡴RBZl| Hgx^ 8E̙9gƨR_ \1TKtd—Jf%"5`Ȏ^HhL[P0”(n *bzŏoE{1n= 6 x `e>#b)zeU~ap3}cQSPJ4kƜ@H%. d%r9E,LD >Kߧc3.J4lY44;гbzKG 9)bZ&))9 ̖%ʡ" ir-Fr5 < }{ТAL2Mބ7p(- ĨKE**[ąbGN *!욃U DsÑQ= 3x&iJ7FT(āĭ= 2|wA'a9/:e~w;֫u?l?T|?}>_G俛8?&!1a AQ0q@?흳v;gl흳v;gl흳v;gl흃?`Ov>X읳vNt}+_Bwt} _E_ *_E}U𾊾W/K焾8/OEG7į:K_:ѯ h!BpVVKȑ 4B@&9Wʫ×qJR)Jr~>e)|)0^ïj ӞI;tX=%C䌌dd~ OU1 ȷu,@\z>Dπ= \7)5בGCBth؈C/e1^F'(757aXb!W"Rj(6쵍˂F>A 0$BEٔ1nV|d6gbCږ-ԡCo !%3x9‘4$C|hM#оq;ACL[8*—eFfl/bB ”YXJS,TQ pmr!y/3PxKGiAAxBFMIӁlTCF%+}_-0B2!v&A CT4lm7KHN,A"20%C,*qpe'hXXKx$ |"FzĈ$aҐVPZv Q@<\7bepBP \ M&͂Ӏ"D ЗF8G:F5|c{E>)$.0bTy,x{ƂKP&qpC{bP|`% 1Fc# Zq FB Fqڨ~bQ %|i" ⍱[6-k|xO VdJ&-3erE>G,7 9 ~ 54ncp&)Ǹr*"`hbIX(YΖ`/X](G9 D•l'{(yޅJ12OC,5 o/-!W 17po \!$YVr4z5# 6VX04! bƘ=*1X0Ȗ(;BQBlh8^ W0&\1z6jiiQͧ{zXL&4UYk -%ɥ]$%s.< 22k8?3G, o&RsG"{bAB"A&12 FҥMj%LFEr.6l+McgȀK lNmzBmi2 <5M- ؏B@InPܬI9DKLx-ZB/0[hѯbiD ݊'LaLӡ;>ob%<}H?O~~_uO_%t>?IM?G?MNE|~ׯ~藯z'zO_5G^><&!1AQaq?.;HZNxis.!_:r3>#TkJe8̵,75$tT|l\ڟ j/5#A|FdcEK})mTصoU& E)60#3$UleCwBF|IAΐpe#lvʆO1Kx4[wU2U6G:TY*o AUvWJvw7cKNVc\kp _ 9Kb '\E!D(8q-j^8(:۝{^o QtW+/o5}1?nXhh}ф3ld2)Y(ugC穷>9\߹cXBYkAN.o»c 1nЯ`y)WPkH!-=p/|\|Fj5 ĭ&:4ݿ ;+֔UBŒ^ ؀kVE2̬6ˌ%s"X-D(QUX 4RC'>ͪ -)I[:+Aw9ET`Q_P&+\A*PՀ`H [X@CX LUdykg[ĸ4lv*:ͮbWߍ"[Zia+ 8a\=.1_c,- D2ZZ©Sr@n@4 zXbm< A0ÉjX11{Y ݽچ @/+ɓ* X{ Э%2-2 [Hz)B $ET+qVQ2 SJ?/":y(Y`r> M5q~^Mj̿46NXkw^`!bp1,Gؖ%'nb< Pet!5VqbJZ+;[=9)bǘZ!}jXtK.Mj3xֱQP> :NKth}\s \Z U0=렠} X^IWv\Nh-f@hS < /\3 pU JN n+¸떡 Y\!ugǿ๕j(ıvkл7\w3Wzpg!F+ [dVfTY,|\VkW<,@jV1[5SQ#dm.㈀nBMWr0mPѯp5 n >%%ٞc/:s5GBҬ `l}1: 5ګƠEF 8u E/sB]8-.)ĹyQ򝬞w22"<@ŽW/!RSĪC*mԡʛEK6ߩjmVϨ)6@J8U5AK+n} n#+R3] *h+5tӺ^: Wj#8u :Dt.vl-(kTlA*5 f>1 ]T:[ S.>#qN K5 T@,))2")9ĨK/ ˨Z^+=p7 Zy 8GpSn3OAmu)sc]~`[m",H TnPΆZ\.^sh2/ocxwJ3 rUR2|\%[ǢJdqs]M֪so ۠‚U>hS0lZIjs g,CBKFXyeV6W'}=*t}Zbx_ʁ`_Hrc!P\fX`8eo?mg1˨ج"6+lWbޑZq+qa8㭳C(bMKSP`vfi[^0'7hn~a-_P4#=! !ϐvjU)1. !5/ N\Uk@6\)fr!fz ϸvd1 Lhl_y-*7-Ĉ2U _)q)sxJT\^}s;;}\CQqV}+ޮ7 @[YBULam=Z;gQU[;0@EFp,'Vy m]qpS/ѯV-e\ bQѤڿOGюF V\pkչs#O+ (;sfnt* 0®xdQPrk15X>%9we(͔Qf)U`Leg Vfg_p1t+cE:w+YŇwmWHh_l/ [r\ʭ]*1f5Xs Y}c@#,D j`cd70t3( ";-Z)p/~֭`^}tveX^},Ix{V|[ܶ';kQm'_ R&5tO'y8r,j Á7d " }Jܯk Z|TJPr9վACHvz@{ -jD TltݧT){3d8o,iTs)r,5Vn8x`t4yJ]8v&'SiW{&oEwW{kwX# -]3eL2Yppv_CdV\xl"] kUV4zs1sUJ8,ѻRw="fnZPX!44\:U #()_`REJ0VcgXզ ; {~(s)BINl#w`9#,/N*Lh b^@[2,Dc5Pv5{"+ۄso$a^sce`B\PO@PօAs՝cEk0`S$RUVdyEZl>j?E(j*~" ^Na)`Tp.cMCCG0k>co˳_=L1"gԸܰ)LH#B,iu `%1e3f>3Z.hQEcu%*f̼u.QR2hҀ b^?M\g#q"V  )hq CR߸mlTmu0CkW.] B6T hS"Te՝MxΙ,TB,ݕ2겛\y%͌#ü` UfVEޢˀPr,('(vAei*CuA+x("ڏ *2ic. 6GUZ";&r9&(XAcpu2^3%Qz+N;`P9Y- x\~ۊ^<, ޓn8`:(A* E*on11s2+O96ۘd@mڎLԨrjYLWQB/rԳn(a] 48Qi]7ݰ50GהmTpġ W4y ҏܛ2RrXq`7Yf?2VT0 Po%/Q4-NmeS ֍J9uP/8;j\ *+[fv0EB(%X4Sb0&0s'm )(`LApOḵŘb]3vx Be)bAk Ku+XV[akC;Mc0ݴ^mE9<:RbU諺ZXkLBمIօ;VUb rBۆ΃J =+]ԧv6w"Vט{@T`!ij)iP\j=%%s [Kg9xAb2e|UMBg3PU*֚92mdJ²oҙADurq.WlLx= *(ύV mчnck/p^Xjl}^"w}qT8Z-Ere[?5¡yquxA`zs`Khr x06*غ~%QV6W4<ƸW*jnB+*?ܧ+7DʂHLA6%(ibT 3iԨn5 }$ZBqT mzrO H,D,NÕP ^eq,O0Gf\1Cv}ԩWz^;62R]}yh.k}')Fs-\_c%N^:}̳I[_;TÒW !v g%/P/7-eoMAh-d>װV58{QG@\4)y!LA:@o, 6(&3*T9\!AC'nk#3c`+ #[C$h[.+G-̤1qT¡S'ULܲZV1( [TRr")?.p7^g4VxQE(MHG/5eGr쥧Ԥkqn9)Wէ`|#v^,1 f()c?+ 1C&/$BS}hR' ԋ^oەb F=}cu.iks\:-՟*)v;K >_繼UhJ Ul!/Lr+&uFB$ `]xLTZV01ĵā :J}](a0`z6;# 9t*HkO\̎E=.d01!2MY@5Ķ*Ì?RRmjhhsϛܧ7ԡ6|^!_ZP(,Yh4Pb$%pR_1Q\Z/+` _@ O9<Gxn-6D"dc^_y)-ך1HjP xi눃ɷn3`|, /Occ|QA/[ZXJ8@dP|QA3Va_qGQb% r5qgW'4.ZRB!XjP-3B 82XwM H2T `gA oP6Q8 9 GLfU dil|9$/ho&{7#LV-eoE'_{8)4Qk\ cZQq$Fcݸ "a,Ĺu  `pb-]> nX*/17F*(e@+?><-fǡke<1zHZ}D3gەڳn'dU0kp7X*AnLSv;H-5}kׂh<V_3N]uQ80Wj({Vˈm @`ʀr\b;t@mSn5K=o%ޚ,_@-⬳uIv% J3mkiP*VPȥ c$MlGJ\?(2Zr!U#hfj0PZq&6aT0davy|J\}t8hۘk׸h%p@:(նe\%J @E1-`S%{!_ 4/u+U$2)]A+@[γ QګOsyWbLH< BYlnW╡b*n6,Mfʫ2R |6QsFKmPGtyTl:}LVOk"=-v1%&h }̣d5ͼLb6Vq4Q 2xfCNBQ;Ju-K}z`>y5kZ)`P +RUZQ,ViX^:&v6uztf{[oԡ0ysn&qQ e,*Wy~eυY3T:lsZg")im'1&\Q9uKS2t!#7QqlAf!z ]$wKh2UU Dr B ,-|qʶVs.u"!Q~dnn*$.= GAgU az%ug9X/ `g$hE7W6bX`. b?EDev4Aq miY  6TAH5ViD\0U`q qWweE!pbzh( :X<7DD/`;N@@d>%]Hxs7@paCyzeȷ8(e"f f9ujG R7). 9#d[x^tce UF+\ص,CRbI1VZI/I h3*`t榼~T>AY_QA+e p`'Bɮ#%[G-iQ@CgT_pɏi8@6E < 0eL2Y㨺_j l-y"!X׸"7: R$y \ko9#0 UwW ٢|sT}1(ɏTWV[>aѯJ9?$ &(/~RL.&0ha[\X̭@౫e8XxKqע Gx\+E.rH)rPw-M})u9ɢK/F3kx8s6A *..sb70gwWй/#ťU|4,R s/'.1/!B29 @zME et@e!qƨZߒHl@,&993"\PrRȂ? 5~M` UtjmTZS8{fO@KmK'#o Aٟ0r˿ib uO1P-"PiA k{HPY$AfR;,Pl1+cFʼnlq ̵ĢJFL/g 2/I erYqл7lBIEE*`j2El9^ \dnU药 VP7)WeSъ],$':/mE)nOLA#Y`vWZ x3gP*jj V`p bv ?qIly]iOp6j!ac5:߈Cf LyV?>CʃWn$]3sGCxT0K 1h.34 ݸU1O~Weu,\98a,䜝U6W8zO9}a8)Bm[əp_0j̾=ʀx%bqš3 4_uz"2bx:UKJUy\0&#ck3HJ}E*)"%Gl]W aC -.7 NK?4{g?ii8^;aj__h6s_k46?/?jqueryui-1.10.1/development-bundle/demos/position/images/earth.jpg0000644000175000017500000007223212107500070024251 0ustar metalmetalJFIFLEAD Technologies Inc. V1.01CC4   ( =ǖ5aBz\-La@q;N4]jݶ.ap-ʩgG$?MF+07sct~pbj]^}&gNmBT4c]_48259cʗYY/Sw*ec.&,כֿq|Dzս=x}T17[b\mLG;`ʹt'ҧlUXhy66isOZ%;r-usr䕺\wp:)_>glc::q)Oһ5_k{cKߥ׹Z;2t; 96 }m&cq^HvTs_Gƀx?{z)c}:t>WoZGlnDKԎΣ5͘kS,_^_595Ms 3NaaɬzYϳ_Wk5%|nm2Q{|9deLŪ R.W6yն4h젗IӃ]Ėe}piX=k; 4wQuR~;z.o,^{ߍ8*PPu@(H/ f|@|Z7Zw0uDz5]*Z43T߫TЌZ1WV_Ϛ&rl}4zY/+;jݟ^7F%Pu@}j6YnF9~NtgWyP>=:xjVm.۩biecr~2f⴯|?ݎlۓz uM|3:v>B= B3`U]jM=NjsɡIC/EzMt.iZr#ޛf͞kqxO҉tj»ޅɵr"~6:_G'i8]ŊlvHjf]kM6MXi&.Ύ.Y}ةK}n>ЭY6F[rJ~NdzqtVs9>k|˖uU zlY @?o$2UՑ٥s7mLͶYoKSy)仵;n5$mw>Ľ_7VPIzȯ5E@ 6,P_{;=R:/A%aᑢ+6 QEu4=~~_ubu{|_z]{'ۥxƾ{ϸ]._7n73{3̹=oo g(Web@kuJo]Z1h%}IfEyLd#hNl }#,WVyW.C̐G>4-֌Tca7 ~|X;5>_Z\uN.ɦd7Vcy,xm~--I{Yo8Ï] G_{mNs.K7>ڏVy+= >,V{׭M^aS43Is _~کG, z>tg6ƪH}˸/zL=t -޺cUnfW&A}>%YHyzy[m*YItH9%̚[|ϳ3;}$;p)YicMnփq$C6m-@ S7]侢R j2#σ(6dpћJ&kXme)y}-gs&q(F8 0J˙T y޷mcc3f+7ZwN̬Z 7+ƦS8keåt-0s jic sMU N>lcS&[ S2c570j*ScU+"|cB/ϋPl+/!1@"0AP#2$6`LgLNP[pNXS¸/33zgZV$YwC[.7:t_ƸJ{ 6YӺVI+)fӅ=0SױU Q5kvYABA_wÕlH.$uÒhWh}6\;1}3qm#4J"|vΨ˓bJY5LZlzÂ-.M!*J'pO"Γc yjU 8AZ -[5վ+ na=l10vYcZJ_A+ YʸvÌٟ8/nJY' q3_bȢ@|1nEާ+XjSe,5[&VVuljsngYΓ+;Mjr`@HG55lh-> *&{b#q\PMSk_w =@NZKQZ:)jj|;.n3K4մ_Ie,|W{fؕ|h+꤫!eY>ؒ *m+U.ag#ojFBʪLk*V3z:ܟQzzgN6:v )X~8X*?%4+Z,`Hzc"ecE{Pq%AZ^seWvWUf8Num5V'Ӂb!.\8P*R*UBΒ} qaʱذ6K5ֹ!)3Ue(k5B4mO4Q1} ϷïH4l+lx՚]/k+ +%nek3-Oj.=ZuVmeBiWٹ8'C063Z5yg"aپl%O44xYj`g]hTkykp/ 듾06[3g!86I9M^|ѝِFѨ2fK=)^u2dr͈XgVfwH̽9H6 !1a"@APq #02Q$?NlfG<`ȷ Z=P/?j?ZuDlx<,Q/ר.}Oź䖺Oį%|*im6Or?b|籧%ߟQd6GLͥ&j"䋴zBd?Ȗ =3AR\%pMƒ'R!(Q0k+絕ed# ׂ)J85yze(B\ĕ_^fa!G`zN0l؆iQ";hS:ئy/ 53T4ᕷI־CG"`sXCx"2v+lR 6%~G4?3ŨvGFKŗ (L4XRP.֨~$k?h,ԙ\ V+ڹ]{_< uyyݶmKמt{s-<*E>,t_FYN!C7[`%oē"ƐԽl?_y C*'5P,pZ󱫟R;ŶsȦ"X4Iԏb/,3dK{|&^ vиs܎#|I]ܞU˟r y4ufz5Y|j%4xs#矗}4EK1DP""HqՒ Tv HUZ8.}D:/n%mF2`G%%Y h]~kfN¹<:1e{%Pdܷ- # E9J0KR= 9,c!oIz<"5?dlESUєKv,HϹvrvYhRܹ]SKo 5Z|Or[A{LX#F~(FdM.R% Ĵj{ҫ9S?k}< uX TTKOW9}Y\ "25GSۃ8;68  [Q\suXd*hp`_bcu n9B 飤:HmM 0c[B !1a0A"Qq2@P #bBR?Æ[+{l [+oӴr3tti}ѦzOSi u{^+$皋[^371/wi^Zѿف &4줥iO6'SrP&@.b|XBħ65ry~E%)--E) 6BCG)mly&g$ࣨ"L `碩~RPQ4wU4u1b{-PJtʻA2Q{N?%,-,{5Xk)|*JmҢv!.9λx&OIF+#2y5JP6T\%]#G=V5ɦȕZ%5TW,e,_IMuëG,褉O 6UD#"QmAZZS TpIZVٹWytR\xJLz=TQKZ. .\9?ޞbћ*].}UE={5l|M=r暭t͓қ7T(ϙU|>7B|3CdSa0]&؟M)^&n5Hōuᒈ3bf*nQ'L$zTY[weF.Ȕҋe tU0mgcOyyWaMPJΪv bӟE˃?.#C\nxaꙪD* '9QcRdB=jݵdtɴ.^Xz*m'ܪ' Š5lM` *i6Ψ)B,T99gTqSi,A\Vr͕Dzw#])];tiFG!.-B=ԌY Tp9RҖg5;,uB5 ZW-P3b(7 '(tv[&mTEDeP9CgtTA YG /M*Y ZV|>GxgQp3?BZ3GAga꙱UrgEC oÜԑJTGr檣>^':'.T\'\W91Pվ&vY̩#ik'SY}Q9s\[TӼTn5Eu j3â2 sPb2Je1!AFsG mkTtrm=Q|N;v]0`Ϊ\SjN05SHl|B|Xk{,䛩 l{ q Cj֦ez`SQ98]0iLNKBc$iQIED.SqYU_s ?.'^݇Ӡ*8ٍP@vT}4%9渧 1JuSRv՞i5Q@\?,<~h[>ߒAϗUYg$ƣ3w٩ 4edF'-.jdMr&5#1]{[kB!Soퟺ66˪= ϙLPP+<mLƞYucX-2긧 3UNp/h2&sQv渄@sJ@ΝSAN™R:6D"?j%52IеBTTPSJRه?AsɲC`l4g8XM^ؤ.{liMJ`!TC~tN#gp9(n8lD{y-vWZS'5\(vOUٜQUkX% X'<^Üa֘1M/g TU=#jmloϽ  :ѝz*}NOSYq*wWv΋ns~k'B(G@ &0-$6M!9Lls%R4Ju#+g l΋^=z'ퟲc\9AɅ=)丏흝:+wl['g-de-6ZS|N9Bj N'=W `У]As@j8qGO?kn NgfhE)m(ˤ*ӞJ3D]re{wl . XkU#>F%1] "l]G\ >\*6 ꎐUsEM&jT8=&Ah]iΩK7?bnz)αT%gp}]CP9.LlAԃ>j@yb1ϺmϺdE%4U0:*V3~UF**ЛRI%unkrpRLjk\nz)x_x`Rq 碒El,gEs/|"3x9ppVxٗ ׯaB#$Z/燘~j\: P#\õJ,{*vpC~ȷ@ލHÖطEj4dp+̨o}ҕckΉ9)_,% E[1E": H*T ` aI/[t"عT XiՅ;[pmr+!N,;ϔ)J.xN'U5f*UO3($\|IRdFۛsY%O[Ӭsl\ޖb| }-\2.ߥk]J֕aO$h:WNm z$cPG@=z_*$RmE|qҸˊ+XtQDSl5V!P&2뾕o\KZٯkTY؂;?=Z0mhָL Zm{!:8,biѩߥAkj+V_qk^C)`_ J [czr>$-)0XDXx@H"*oA[(ΕdnJuK@ GcRG!brk4nWO2~.z?j{Rmor-:F MźY9r( -¿S}Aޕ'fLr:ADFֶ8LFA"LJ ֳ W'ݓ@~}ʯ-3ͭXL .2@-~36mA.l(U€|Te2@t~| 3JwTڱDe<k;erY|mdf KmA+k0&X *E 7&}lN|]4rtPu=k2|ԺjֵLLls(+[)E?ч*I &!(8=%2sDel3]U[Ҝ[UM' y+|lKZd!zTT( V[V^iO|dP>^*L=:i\ p?ᜟڸ|LJ7m*񾽇Z)7'ZoVj:NVˆ:o3G ֘DQޮy{_θ(?/TQ X|<ДNehZk]ѐ,JP^G=h{-Ty<80ʄal߭b q$j-z2>k2aaf\*a= 붔fy T+ݥ&R)*, 8{ЛRʼn+1fj5ڜP;VtZZ7[ZU\1(tc^< v5ĔX^Մ˧<( `k{۔MfjАFXr)/2mLW:uvu4E;.(; |< :Nvt|Rkҫ6Qvy8iDtP~gl*X.ĠُæuR@aLjMi%S ׹KyRdrU V[ 2l`"ֵ[/8ۭ<ٲfG\(O pկ6654xBW&͠] KX(8?2 ySq L}tAoh[n<7]oi$sZ j3֕V][o$"6Z ,k>&uG*ڰuCFnL4;:kV%|U#rαp>UlܦM :3xX?pM0pۮ: FUsKRjY%Ŭi1_ݼ.+c?B [g!H9Z B:[J-׹:Amt5Ée|(n|Қ)T#lt%;V\,9u&CR1lJHu#K0ulHneh؅u[Eg#' 5>Ă Af;EMoF׈x.,I=CXibu*1w߆/>H[9+ޟ#ӚvFm^P%$]a$2&9 "7>uxb * 0S1|JFQ0KZ:lkH*-L4Ҕ`Kmjx$ʍ yގb$ (`eXȉcSȒ8ђ;GA!<;z͇9&}N'G;Zaٵx\i`}+MJ0?R?a?'g7 Btab{ކfu$}Ě,lP0MmމN0.P]c0{KN*/P;ւᓀs&?LʗV9|CEA(2vU6՝W.?y)z8l"ui끅\

o֣BoZM' /2혏:BIJL LOݰGK;Ԏ(Q` LD\zF +|DiX-ljxe9w6VF+ *ӆM82ĜٹYIdS m_}FS^]zY!^ tҭzޤ+t=0x-ˈN1nTC~1yZu B BxƬ-:0n ~&bdkc?#s~8< "eh.7h?7SJIœ\z֣"'Nu/,R&Ojβi΢lG.#Y̓Z5VF|P/ڎ2LO|C?Pt|G6'u{$Wh"%_֦K+VF7%jL*Mo=kZm>Ve6h 9jfbԌRA"3g2槎xG{]vGR %ڱ"?4$6ܑND6X"+km4,o_KRJ;XL8,̤=7\LG\,%iP<8{Z6/M[ H9Najli"G uK~2ʯU6 Ν Ar!:z8H([f5j׿?[R;P˶S}5ֹ6*6#^VZj~(BI#yc+ >%.Feޱr3ܳS,dB,;\ j!dѕ)($%PkWG[(&؇ҽk }/֔qÜl6 ؛[ʯ Al;$Bmֽ. 50w#q R^VLKK>ltf+|"/@_od]lwF.9f6JkJr o +ujiVe R$w, I9/#ڷ8 2/נEHke$s*(R`E?*yMGJ V k\sE]kU9FfQ\[ւW k\kb ^[f:7+v5hh5Nd9j(!1A0QaPq @?![oǃ`o7?ӏ}?8~,z3rC 8絩vC4odnzYh4P&xT^_s䬻y\>0NgK8v#Fjn=f[ /UIoȉ/9Qd=\eo`H;:ϕJ̯]CrraS :R'\@bL*n{(ٹ[_umÓ.3z;whuG LR5bP.˨?!< g׮|RYܠr7uJC\1Wl؍p'-zKcs0s?lMrPR,EjyZ# fUB噤.ҽR(ٔ#H7h,Og~n>ȫwÿjvNˢ'튑o3Ål,Yb1 '\mpK'48p1݉*֍cpȨܑA7)psx:2S05&`^AߌT3WTƥ؎L[CBi~怒:򷄃&ic3}@9d pquں*rs3 X힓 >/Ahʼn{DhrAF.I/}N7`fJ}7tmg5nFW`0 ;%7۲dTzz|- ; qYzÁt3qy\.볤Yc"q,,L;ȳ51(@[v88G:hi`.2E2Pn2pK᯦SKq9'UJ$,ic ψZC}o]!rT ĕ =BJM0vC9ʀK =Owlrv! ~=.eXE}~3OD&psa SjaBHn+'N۹+K9`1)8QO7y3ڂ,,B>n0d4XkDkKuQ %;+NHz1[`)79IW/;<0bCwӝ.錁^Ü?t~&XѯG9eB{ZqePǺVs7LK|oof\\M9ڒyCAH|6Lki;W搖E%)4>mCVThܓ.,R#z&5|! 0zdnN ]!!o {U,!ExNӜQ(i쁜DY!3,v`ƭp T795@n?1?]q8q fY"8-sُ#~(ݙ!3vHk~[Bv9O}[p0KU|K]ל;^L?(;Xrt"m l$+ &l^>7#C|ZgCpÀ?{hd y<ؑPNY1ÖFAָٍFyRUzN9܊cdY1FQRT|aeba㽇 f>t9vpWw  V`95h$Ox]Lov#4!&m%> *- AZ![#.*'`}\7#1 CY)TYe\h^Kdð07F7Ὑ`{Ck\!P .aseN7V/K'ie/RA -e+.z` դWUTԻ[Q2V^eÀ{Dc୛TP=we~dEWv@L!,7 ȒmF) RhE㞗CaTS("9#˵'X'a0JQGHD7)>bil0g - BCxw*=W<=6'鱞cedsvn%NpѢOHxji%ay_q$6G"5/񝺢^(_;)%N>lB (SƶͺsG~'њJNS"r~>+ q-feͶ6|GjUYq55.ͷg g:lW6C: iS!zm __Kkߙ}㞷?m[_>X}Ǐ $s?6$=jc 8M[C ZPBL%0N V +Y")ړR+(@zԴqZZ=@ ήu` I8="D&hSBPGx,CY4>@ut;l#WZ^s. a,Q e,^CLZ>~~ ac;OU xqq  _=~etkqGb-xqLG=l|)e!V_4w*l~00~.jRü: !؏aN6z88Gð.Z۵#qqɣje>K,,2'N.+RrETqsa"ehh-#wvb5H|:*G5]*@9[ ?lbU|!-{-a: 6(XZheP|5҄J5U7Úx뱖_尕i6  [ ('㋪〮>#k{60* )l=*-+G ۛ9Ɲiב'2FpG&],4;AJv{~!Iӵ0`GŎ3g%jiMcHyz}z4v˷ׇ.ڂ,#喷vu0ZhզwQI?x&1k90ʢiBZW'iڏDll=20eXl/. Zldde-ñ9d`eǬ"4""4e[p7l%pbb okʸ(ޢ?]CRA>ElrPI^[&leh22l~нAļZ z=q ti`q|8AoQzP[#r񠦳BvA8%1xu#/yheCiu!=lEre7:e|+eܑXcK"GnADQrT,/#d9Ug*Y0pYsuŸ6Ѱ%effPI8?ݥ҈ɳ;%4lT @hɀSȤsѽ];Qm!$|h04i)tv>%H(rbH iDz`,_aZ7*1!pZFf}Di~dRB:;{M~!nvN8 uEGbAl}Io+DB,$6E/$vNY%#FA C͔6D6B ^,~P>MZVPCL4GKE0B29:7LlEU].Om R  \{C* M @:] -<4g Hfu,H1Dx,1+p[|BE2ah^ݗNMCVDq 3#IɌg i 4I6RKe 7( yC xMqƨFW~7-Ĉpma樋  1K Pe'S]$(>]#FV,c ͑K Ag Qֶ]IL-@Ãp(OʣQ2*7'o>|xGjp#<2"N l^PFPtYIaEJ]ph3@2|}AY6nQ2(Q3fA!qqCcT&X,3L]o*Ik-{IF@;{ KAo`4oHєW@Z=RCH`PH10IqulL@tMP Drm_eXh~ 'mmQE-"CFt1danf0̈́mࡻ 'ЀB!D3z21FmT!#9Cg^ ~Z1y&@3J`kZ9G XEf?M, Y Мvu_Mq2Q\DvWBGoj0죠\E=3r[ OwT Є%7 3eu+J_8ӥE-˝Ui]:yK455 -TPr$>(, :y8B'B d65AI "K>^>&pѼ#P\1"Lq6l1~YϽq jwNL; 6lvye͚($l Av 5((omqfnwe6aE@AD$ &F w]DQY5FS!  RT6ӷ|Xop|}~ k7C?DL#Ò 5,'PE,[ZouPjm b hb:g#A,p)WC3eEʣ5OyA@Cke >Q =]c~@0щѬ7Nxq%&1cD cQ䲁qC-ܐ:&[! (FNʣDMٔ(6Mۭ j.(CВ\O1y%Qi\*ٿFr q$݆fDLDE5@08rX "QOWB.$S`m2d"oO6/)lTdܢ%Mn<'O]vȵ<3&mDlʉ6@l0N=?g(%g7/MMߏ+!1 0AQaq@P?v]l[?]R(8>$)H C`r# QQ,AO20qsTFaS|Q|=&g K\Sub#h&@H`^ `A4FA@>ZO@iG4CXf 9@O4'S-'rL Q7<=P]lW# `S:+nɬ>{' <߄ : (KhB)`10CʔM&<#mHP FF 4 0K}s- @B;!%/"Wb3b *Z |""Z`s1=2 {CdXmf $ dxX%3Ic.?T"FPfS!g!`C.I:8 qQF&a!71( , (@/- )2#"@;Mi֌Sn@W2v؁Gh@<<-D!/ @$A#bl#TPM]  0f`FK>ij@-,$Ay(м>s.dYL3z(lRuB9Xk6lfYcRbe! (E80;A5ҜJR|z6 NEJ\kF@(hFd&NvGVPԈa iIt0D  ĠCj¤a3 @T;,692y"@ y;pRmD0apA xUc@,\'.s +8 S'< =Mq"J" ;(PAƋ'lH!kH`ԥ!uRt0J66O\0@@ɤW4"VQq,}tE5bS6 kT4TD Ky[̸*wXڼLԍIS 84 6L`!NADBu 6F DK6F-/a} :(6 6+^aG efQ%xޱ+!73ڱc׮cj >:h HQi$2ssx1 H Y` 8Ȅ?qM} Hi05#eA 8 'FdJ$ACSK]*LpLIU'%X7 Gl%_"N#l7 @hPf鋮 JXVmYKJ`H0tECP<ŏ'55( a$ cג $C*XLT>Ϯ~Nd1JBcbF(*AeML0i 8 ]U)4%@"bc+=ha)HVi!P?LCK]*Z%Qq) 2Yi(59F)@1c":'p E Dci"F(Q%/" 4{SL*iA"AETaMԘ)(@@=.C@t *5EA?l3C4 pB t qjIwF@|KFm.tl:pž+"$ɫxC B—c^E41@a.k(yDP08 (d2J2Sp1,]_z@@{O :.N !=Wlzae` >* ( K&&#80TkFm$p]H:&ڜ,mGP: \$!e1 e6@ ]aA^ah@ +!W!AAI=f5Py |Jn "~` -J8XG Lh`G9"Ib%F|H ZSth)֍fr.!x:rHd0>ÃyJ .0>ȹ'G ȩ( N/ PdFX¦,!!2-zBP2%]? */&RlRh27 M& e8/?q=t/]*Ϯ\~J!jqueryui-1.10.1/development-bundle/demos/position/images/flight.jpg0000644000175000017500000010154512107500070024423 0ustar metalmetalJFIFHHLEAD Technologies Inc. V1.01C   C    3 Z\(,pqKSx'br'8㎄8A7 q9u$TF HpGRWGpQiaŠ,(F(@N0ͰBq (M9&e(XhR Hq4E pŽ (8-ܧb4}V'㎤aq-=YuUL/))p*jic$K->pQÅ!ןa8|(QETѝ9e4`dcjRKÅBӇC&,q-J~n6 (u?hͣqF) CiTF?q,WSˆ!0p0ТS)dm>s3ÅQ1n>udrh`cF K XJZa!o7)ǮϞ<`,>6$QJjq_:k}y`!:Bׯ3w"z4،`1iܨzH)S+*ضAa<:8xSHʾԔ%8xf-u~PuF"M 4mb5(knZ FIqUzUPdKܥFK(|2JF^ce}\DDz9L0h8G%## 0 ELޞ1Z>^p5ƗťERe^]&SH\_X%+**y?y窩M$Im2*,2|8󪒽(hzO8~;;(~wC/je)me%P%v4޸/a=qii}ZZ2ZԹZA"%bqJ͵Y+=^q8ux\^w ÇHާvj}JN^C?}^[|>OL2B2D8,%6zcVܻf~;Taq\(?n_cN:HG:5O\Uzwf>DYx~ 6_ڟyq)CO+Ϣ6=1?Ro=pgNY-$4XzL~Xѽ_YVx0 #$`zնYWz2Gtތ՛z~}/>zy=G|3{rEViž6ME,Nh}E~oחZ}Jy]G̼ucye]J7'nWi9NzlnL1tHRROŸ+@QwK:7l|m+Mvg*7|&gMԇBJK~מST/ ^kApШhj>ݰArzC_Epќݙz49mI|ޙXf5Fgy%$ %YeiDouFis2 pWj@4Pȸ29.|4+ =mL˅?^NSf}>_s, *&%Fca:,5RQ]KbJA8 \EiAMkuRUƿ?ͼ7w1B`J.%`4COD}ybJzJx$C1Be!;΅#$8A:po l~az@{ѷ`G뉱=\=_dN%b\XD"dYF!V-*Ϋnxꬠ,) pC8 F(AmE=g5:]'iê7\%I?w>lyjKqڄrb1GyE9hi,06Fo!Ҿ‰QGSaÎF!1hFRq&ne0G=M4/'-둺}x;|j=|_ʓșN6"%*Ly.q|r : %()i yagQs;jK+_{a\AsU}/8C{h>w\+OSʷ68偫-%:8D/r-,e#2;rS?6LWDܴˢѻgڧٚ?ɦtu xtKw8(~-6JvqrSY8|mQÅ֠`@6D*ThE!!…p;>tZY7æ'9TTA)cpU8AD5Uh^`udD54K}1:Ɣ4AiW;^zs%%ľEVt(vA0eFFq1,YÇ/ p!ò>tt*~Ӂhz/#U H]. 4ŕ>h>:]oxtGœPG 4aԙd$#1G9TQ87Iڲu/yyuiL%yԢ@ޘ38Ohxþ\8i #Q`6p)q^]x.V>!apiYjM^y]Sgpb-ocWmAL]\pyoT Eh @/~F)DBYUZ1L>kGƧSGsM}ZcyKԤB6": !8RR1ppU?\pǣwf/1xX17Q\/n'A^̟ _+ !1"02#3@AP>Llra {ޠE1,[G.zs,d+57,ԧ0,9VqmL3!lEzm50{!4K}2[Mp%5\exfFIs)ObrnSyNJD5R \?/|qV*WQszuijZU㓕&Rz܊kYbZQҪ}w6=UKJo"/#~z/# (VTw;wH%Md`j蟙ۍ{̎+Hطyۜwg ;J1͐P?Zeb}O.VۃL^԰(YJwj✒:mB.UO崥I1/e/,oƳ>WvjoppZ;ieP=K|8#L{ɏfsssssq>5q,5.LA{3(-n Fh;jbU]*$df喵|J3Jwr<+!uBqu51A{Vj[fycT}:G??s+|M a1vbdUBW"&2M{+uU]UCrZ) 6xef7U׀F1;xij| "f9L"ҬIhgy쾟=eXMmfToQ>7SgFpK(Xl8= H6y23m-njtiI݇$0%j?gf6zZ1JXhd,ާ_APk>Cc5-m#L\0ܢ-d N pcx?Pe}s0WYYB^pը&uNx&n=V`" Kʰ.c` s+Wﲸk^|r,&1 ޥXHEwMC1uasL&^7Z}b,4OMKtCS^Rx:eG2U^2ol$07uǖ'c&Xibuvc8A^z4S{~o,Bՙ]SPF3ˇi RSwhXkis[d64<4iU, :P|5XݡAw(NfGxc[d)T{i0G2 9oLF巢O*Xq|jMXSd丶[³r֦{CY4<bB#|Eni?%y _Nve!Gܪ)zY`;o[to  O.ũ k7Co[򲲉aޡWK(=Ws/B3=ȇ}eVyV:If!ja]'_xukk* lF xz\b-#[J&uvS3S~NdlUf|1Bzv٩oWUO%tޣWdԪ J4XbZex#|1m  >SSI[ #e\$q ʘ,7˯9 =7.Lb5NInd'8{ kcdv:'2y-Odո~=gxaF?Iw,RQ_1 ndLoFW*Lfiح-4c{,`n(Æ)-OVjd%%y}~7u3|TjY(XoT٘g8ߗmU-PV+C?ʼnͯc;w nO JjO懂UEQrifhը"` m}5 A7OxTRrʿ,q\1ez U.(yu]nZX7>jx1Z Y_xs%Zf@Y255.²JCSjjkذYUeoxeHTܴh恙cLƺ}l~ )zڬ+,V,!s `TzOSƿS"jjt&xaҫML`r8 N?{:j,>u aFl3Zow˷eZbkK<\`5c0.ޔ[p °+T-+-* ^&:&@y0 ؞m(b2}e d&34LuN c{> u7k"ʒůȘb!y^0^] 3_mmVJjE%." l_~J0 hy-7x8Sԏ) [q3/([2T > *& 0-MMMMMJVuyEٍ#lXŏz ^j' !1@P0AQq2`a"?h:P?Hx@?**L(zx K*bʯ\6m[csa0~\$G8?|J02}[d*۠Z-ȜjᎂWZᤁVyuӡjq?SC&dkX +Uj4Sf%:^~&!'VjHkŚ)ҢM>j?<[#5^N piq ݿ*XlB FeL:Y^lMJjUqWgj\ví̟c*d*>zp稜|cs2b*gmCz'ufVULw;Qj\ݨRDm}#Ͻ+kf"ߩNr~j=8;'*?2odb1#%C0ac7B0  _A C#ZwLL76NVJj=Q(ČF#㧒Y,I&jH…J!|"DdjE12_5'j_G}=/pmn3',t J/bls"DYOէwu]#ߔV_9!1A@Q "02PaRqBb#CS?j3yt{4w #+c!Gn^A9>/q'§V pQᆝy*?4^co[N)pMc[hCYįhET ]tM|Qr)v(4""8 ]{DLRm¼ŭ8q[d(6;784I^Ak-28k<)ҪRtBO\#-g9E2nS!{@tgqEJWTtC,lDjB< 3bj5 _8-`f\0j>3cͧGG8BM-cse`nhd+i 8!D &z,~"p)-LMLu~RƜs[ Z[ wٟ$KS^#U${⋯⚚*Ϣq-'c˟P&<|,g+*pH|1 HکܪN$]j`n2<NV9+ !ENU(CyӊjL)pۮ k"S*۴3 ۈT{z? StrT:Ns)^!; ͏U@EG.×m 1A,M{"Uj{Dޣ#0o qGۼH!h-?mto::?tYf ^"p9*ƚ&:T*yE87-wM@ k;%Ž'-NdhB|ESugڛs^s.0sq~gs?BTlx$ANanX,+{_O;E/n)Thm~M?!׶:f:}HVU6?ߒ/W|[[[skCs9:}T>Bԅ@WBzn4#QN& lԁ/bi︟kCEֈeF9Fiζ*ubn1k5، a}WR(P2`A4bJs{*o$wW=vW l &dv8!uJ>Qo/e]Oy!W*58&0"p)n4ḆGZf(}3QBZne7]1bSi0$_Kv,T{V &:cʎT!'.Ue}kM k.t`̓HTg@ݺ49~81Л^%5сBL/*x!3>JU%W;}dVTn~Djt gU*U0SU^_xVc딞a1UJB3^_]CVB[ÂXPЧ>mTplS%g\Bf~cXl"I>(T<*wUl*nIאTq ֳm.B$8qVVOd׎@*AJ䰲8Z;Qn4(vefUs\>[|dɵ\hF<4O&\e8NVMmꁖg}5e IfrV)j y4 j&U.LJlC[~UZd ʋlᔭb66sOMڒ}2 b*sN;-iRB mD.o/0BHtLGBX 1uYOh/7LT *fUT0B-Fp x 77g8i B0cbIf:jѽhwVPʘ#&s[5u\Jh*YهT!̗ut׳Є#6g@$NVk+7P`ϐ'Jq&ElrVv"N t)<Z91^Ǵ9pLV}&#sCQE1Y9Hi g/F`a*' ćT&, b+0eM uV}aT/ YV&8DLSKj%8 q;c#Zhd tfrF=h/Ul]]+nUQB';,/₇?gW&k:Ϋln]{N[E CW#.r7\F3|2qUhLSP0C8~V;PhFPbJxjJtya/p2ˠX]h`W;1`5 \ Vʱp_ε+,U=P3qO'+Ip9VE9'n?E q)Q9n>or)!1AQaq 0@?!@B6]>x\d] tsU+DOKn}.xI]cvIDAAt_%_t4 'Ĥy\O"## Iu _-Wd/PXidqKm-J\0M֫O1(  Ɖ7^z>S C..R9퐧jFZtA.gM`U|whJUP݉]A@ 5>M.GݗKlD({r]Y> W!y0\IvȮTͯ - cU5y{ =l9.1ՠ$/3e  K$t 1UzhP$AhIALQz:vL[bokꑑsOR7k aKSLe*NZEo"% ,j1 l໶5p*^˶e\}@S A@^ۇCXFވxsv\Q/jΊ9s_bBn'L4RGm$;0eOwQ2d h0hc,jJ*2̭>ܘh'bm.q^LԟI&V "VlLB@k]y(גNGӉiq*;ONTq'.g%VbB_m6=[|k!)^* /ws Uk[i6{[bbbdvPl)*<zvU\?<2|f1hԈ-X: 1 8P%Ď֗II=<0DИ ʪ:Y=S)9%1;4 WqpHFذEm"LLO c],]V9￑y-~%9>Es^d&O{62ø&o!Nk)nтRDÌ]d9'Wejy@^F%PoMFwhhB?qUcw%}@т'3i蹉 ԃڅߦB\&ܗlȍYQ֗aH ͈(feSo2vLsZ/KB-+K4d0D`j6TjjT61f(dWJVtC~E.:p2x5Latc5t@kE"]]Gk/ȪRO;/<*u͓,'MC' l/$=5QGl6N9>NrGJo'ԦNǕ0ۏ'5Nb֛EuE3vt:AoVK@,$m[ 䥡9a: 2 BE`6%J)5G4iGJ~ʞG^M5-˟m}I"02 y?pEnpxM:el,-넓AKnB&1j•[-%򰰗O腳yWgjo5tj^ gW*y?,,:vn1KB81y{PqYjP+>߁hF S~H'@IIG"es~"J&*Z VxȾψI0RjO9Hen{2ByYq4CJ๹fU F&_ZԑB ,JY΢Ahcu똕vRINk)r5M9d̑ n?nϺ V""H*JK]04=eGA=}pxz^'3 QAԔHǕF=Vϳ=Hyf%[1bi+P%8v$a!k6 2R'Y %?LgDΩc)ZKh'bD*ZKoBr}O슉m·"Y@ķhT7!$j uE-Q#uX6h_V|eʿqA,$6'֢ĤMN2Zd1YT"=uyR'}mQD(k"i8ó,2H媁VhEZ#- ݸ|$|!!pWZ=93QY`56tg,еUR.;P06Ip;Qt7B)b (=вV_͌E˃!JNe.xn ?9ȪAEZ1^TrgUDeFg)!MUu,"BVKGO!K**ɰ!׵(e夡I$\DFՍ%xKBoSJ i^W4:i`'/zfM8z/ 45龫U,yVbp] ys3Fp}dғ,zط&6싸Jbr8,7y(Fy"j:eYT';xɤr|GГ|X2ag. 4?d<4KrQ@شDV_.{N3xpmʂyY ,HHoy hthz UMJxֻT5'TLlpLLS]F7Bt!W4SMf-Bd:tu4!C"8+ٔ\\NrL}]1LJviבG7ІrO)jPr2+am\XcN"c%OLCC|e5GB p,J13}l$jƹdK!tOD_ pݑ#Ъ|,V?h35?VM%ź"3 5I:bi[| tfBx1y-AVuBtYVhֳmYUR#N3NU<9_ ӆEa8$JYXYB‰a2ͫAs\&WpwUW\N $I_GX'|_D$`vm8&?#F IZG蝐#`͜C3;He?EXuD\ 0 L6"9g+= ҴƳ"屉II$/~0TA 4NX[BLdъ$ bnQ*h.j'~BnnO"F"_V8Q~|BWAU{g|{PT"D]PՐD4"S}e:/+r^06$W@o#r6<]q@ü%Ģ!$L̟E 3A~ |r S: "ZY97B̒ O,/s"6]{KoσTw?t &CE)_FJOVǨNUюl2Se_'VZ؞kS%`k< %ƢC+6$[ď1#i4Q6UtuN]Q^U(dj 5Ԍ:XC)]'"_K0Q}9;GI ]|^8m ZbD]ȍ7qDo#6ݑnwFWPJF& b3[&{q!)E}j-\ z.Q [7Yyi^83ҹD+MD./>PB" MבIlM$n쫓5!<2; Ej$&hhDκ=D‡l;N_e候Il)t/tn˗eQd+~}nqBDݝţxlZ||GQtA]wz V(ͱ'\F,,$ۯ($:qkۋ2ȑGR"n/jW$mcꔒuY.ؘsd ^hCz-[%ٷd;V7#e߆ ZU3v!D_<BKUq@ F5!-Յϒu414;:129gARDy㍊m_/OIT>FD407%e+k0O0Њҝe穀ILM@0 1j0IAOāRllA4 q =ז IH 2V(!1 AQ0@aPq?D,a?z]Th{StvN8U(L8{vU]$&4 _$sʄ7mI& ^7,r@Ar@ @DvDf{Fҷ D%mn3 m qW\6"."@8! h _QS#N 71`=8{UEP8 DPO0V0"ގA%E0'H20vo4,1eptb_ՋX:'`c9iPCk#a,,#(td`-@ULAp4Y Ѐ0?1E (KD;PsycA"\}Ԏ54L&x0[^m FϰА( 80䈬bo %ms %I.='& ,h⃞X֪ n( ov7T Qe`Yv ``lLc2 TChVzD4scH lBcHfgD7|rL >Ľ*V%E g""*UCQTv4'b@!DH.#b-(q#Ё!i!Lh:]&!PmQ7bC"w~ֱxspUhAC6.x4)"SGd=|AYȢgh(/x <@B0#@a (BG,y .ocqhKAvDSȨ #衼$ W@X #Md㇑ <>6@y* R:v(L7B-cBbs"g ̿P6 h qJ 8S~! Bh1 . ~ᅮ<*OO$3kpwcqރxd dB2! am g?=ț 섶~_#nqG3ɍ7?(S g2 ,bIRLjQ'Z&' WD=1k(4*!1A Qaq0ѡ@P?+)go}9k {[V5@ ĩX+Ipe(PJ½,e e|GC?P]ftsb].\=8jRQ+}*˗V}ܟ H2>JU57 rkM`?MUөgfb_Hk,n\U4;R맱 NIxxjW 9xYL3^z&͡f\vvp>J;{S`:٫seJ*TXFNQ}:эt 4%ʔ2S&-u(U(EyO~+|x}]T ¸(M0@ V._LkZFZ[VQ%5d[ϴ D ^bX\}6ZKѫ.Һi;& sUJa^߮,DDTҍ{Q*v. e4S 9YMק5gOF.\cRCY^!_3B^J}RfnɆ9kL+ByFMF i*V'XḾ;@!`h5"Es^N*de#= cM]O!w0IXJaD6MȚQں@THּ@'W6ko4J˳'q1"nEdٖWk<obJVo6D/][xZԕZF 8Qv鸂:x,i3g3Ӧ\ 4 [Γ[1h@uN]*d0}LLac#f 6CwpHiY~Z9=S wLܿX3;$͕5~ZsGû{,'"whj*/~s46y\h1phՓRʂ2p2S#x ^g,paRH*W˗/4ዬ@D0m_8?&|ze̤פ(n<Μ[̭7^R}S|e ~% 5u۔S:NgyI * oWS99Gs(hʙ4'gnL(d9=::0McSΧTj J?1ttv|m:**7^8n^rdu:{L͔Ir,-\F9A/Q P[~4MxPn+Uߛɼ@3 iD|LS>| ^\OZZOW8\H:.MtxhbP/4#PL.7 aF\6°rv dϺZs.%Ltb9z5Qx _PdmiATGhV?IԈ%%qe1GH],9PfS\#θ9ddG'51ۂ ꘽/?E(ҥEcSɼ@Ɠ5.IN#̀eoSΞCIۗGՍpB#mmW}o)i=oDI_Q=&ZsDQCHeʜgM\?lÜȝbl|}!ʘ\9M%i,Tr\ E3\Rju(8V&wFgCөkRsj}$%:$~ <=\lr">xjvTwrvQx+GT?qE ݔ9.^?6GN}}Fc"Z/Xwlw>@g|f`ϖ?k?-/bi:t765['= 埳+h콐ؔv+_nh?uS^y~d~:{o0//vb<):o_X{ĵCO1/KBgiI\HO-:ra~_(o5O^P&ʏ"-ׂ+a3Bv_kjC!?'iOv fn-e VIskG(_t|cA|뮧e+jŏ"jn7sy}{El`}098忴SεCɀӠ=y>r.yt]P?-o쟱%~ jeSkf&2ôl(GS6â d%#^R9?Lφ|B}lC02 |,@@rWTg4_LTgٹn,^l:X(#h(Q@ ä2*j3 CA;Wpuxf13Mb R_#C_3|T_F}= -m:}cDo=ZֺNgRl&OߟP Dp!]kXŃ:&k»Zp>b2%h=0kR\]n#9G(˖Я/.xw:O7}&8j/SHx0 $#%Akz_&[\lp`@(VwW(!1AQaq 0?!BT*B h_!htkT6Kk؀M.;4ť띳(80 0|C{Zz5Frw sHQ)]}K#|Ļ0|+#X"'*5t5t|4 1 *8q"z@=IP%zz-WӺ=a̦^w}Lr/աzM.4.uŃXt:65f"_eք9χ@eYgލyAlV|2 |Y)B ny{?h[C8;,q"J*JʏHB T@W Q]4;򼮫a*H,lZ5TS;-Ҍz;"䍁u"mt@UZqiޠ?S - !uxIKyZ1]:ЈieS;gŊyNW KpkSeHGcBX|M7/Kzoأ=}<y|;FOC!@TR^v0 `@`Cwv8Zi 0OEiAP{̅WL]n A4Zs@l͝xw*ainH6pșޠG u_b2{,qq XGق{71)/jbK߄Cx-2%JwESiH l]N{L`HTe1 MJñf cr(erd< m0eע֠0} FCKnL2@P j D)1RWUt-tsվLA. l:H^9iuvK5|}@C}.#dҾGQ0 -'gG bM:b~ՇW]X1 ȧ* CȚGcZz͠Q*2iK}c*& 8UXZfOmLi AL ,5C*Jot/ʆjՂЄon[#X_ ax(Yojȑ8W^n1jQ% աk򄔙_Mvc.1%6#?L.!{2%y%,@M@CDr'sb"z cב4 %DXJP5ZVvX8 Q:MZv"!2 3 2X3jJ>XM`.rG"U2#cbaЧGZD/oUwR +=S5d0]* j6 Љ.bo̿avKa|+}v[]ca)3zT81F E 5U;6 =-= >s[x?EM_S2a("F:]D.{1 s Y91p CC[ ί,%Kpz5 !ܻy ԊRm,:YhE"ׅ_0& ip@uL}Ə6 2B\]fGqP0ȏ){:qw_nf04a]\@,jM 4)?OҠ켮^:]+c\oڹ]UeIsKe_.SAYĴbi ^RՍ XK (q^շ|gwS1;lvӴg QFSKh/r$JS4<#r(O(%?#O" q 8m6- rRA![@Sl 2wҨ rZYɟ} b-u\<zTE͜l9ӧF.r2Wx\b@~w CE+-un j< # ePWCp#20`ãBޜ"HK@M@@pըJR.uܾ~ѡDticJ PƘQ7*Dj-ʽl'Y : ̎H`h0TLDoɃ/" Fyzt={zRQ,L..k]8K8a;t0rK;A(=;`kh,n4l̒0A|z0D@tBc5m p75<晖7H5IJV`~vYB+za[)ÀYyWX{B@tũl5af@`i ޙ_?570r/OB|>qF[;uͳkW'?rb*%},Nhpl4 uVNpF1ݎ /'G i|/%թ%]"ްiK:QZUL]:l+ sQO_#[_=f*((!  ij_>v(-uHxo!0ui#8d( jg3_3MHApnb[y$qc#%IxʅLhe+148S ڽP$<k.Jl9;ڕȯ,(b\{~2u";Cƒ\3wy|viaڎ ˦Ǝ2JHԈv< j%tà7-$tPN֛JiOBZ5} 6 wlE[z<'MT$D]i\ -jj-`|Jմi[iL@(?7T}#o=vy}M̓D &q0~ M 4ЦNpSz9X֎Q j2S=#lb` PFbC0{B b\k:0hvGbz[@_60Fᘬu@7vlb3P҆k[;o\ %XU[X@8.%.7{7+hBYB .!":. LjQеVa,9# 1˃~+BOYe5;MUu@WznXn!X3agjf6EUucںi_ 콹,!X:ٗ #;W}!H)rw̲GG1# [N ߳3Vb1Drҥ2 6Z@ zueuevw4Ext0kj^Ě*09>%w1SHA+t#z صN+IB v9 x59i3,GԨh#eyz^5DcHN Ť8I{B@5݌lq" $ZBYa* Kwg-P,«%.X`Pr6[hl{uBE-uK` jg`X#Q,Kѵ ;Qޥ(+R -0kr:7\P.ihŹ1K"eL5'}?̼׊V9.Z5aY3Sʱc5UWE,xGsQ<02U*"pi-:X-ܻJP(U*>6w%IUs]eg0 Zws*3F 1^gƨ'*ה|rwHD~Ӑډ3-Sw~T;h!grPG`>ƌP'.{BV).\!Ac.ufvA|B;3e0J7S\_w2D)H3w\:`[fv&+튏D ANzo xӴ1{4D ТJnM}n5mMM?+Izn:!`4/9mz2J:_f5mۻ(/E2?ce2YiV5 +X&kK_auf,L !j]i+G*IS 7>T{dNϗGriqcGUr} p\_1ǥ@Y1N(V+ R׃SN Y-Y{hxiRe7Kdt :Ʉ蟸Qp&jJ]Gy$lٴ}m*~@yy&0JפP7`xrҶy"-8N  {U FPzˌ8-[+I pp4STE{o6 "SA%mg'u0⣢LI,Vl]qS>Hab@M~3 {j\7jt%n27b˙ox-ȊUP5Z kBִ@b8`hqTQ/URU;ٟڛBX{ sD8cܦ;:9r~BH\/ #kZʀ=~q=@&8Du:w>+xǎcӰbU|d7>ңleBf\((C8zC=F3T=Bc+oqH'볣4rq|QqR\ dM 10mS""X0Ϯ݀`V"a"B u[vj:ٴzĭRp]qf*RpQ!RӉV#ef䠮K ./U!!Hpafqm thތZ; qڨ/(TT^JilTXq}akh8Oz ?}rvӌp6I0D.SDo1AtvI(1VBk:xw~-p(P%עb)::ÇŢ\J_zVaF.  B#L#K~>@. ujuK HKLJ] kofhaL2 .*QJ*k4͑LFdԠd;62tM eX4o7 VAo g F-Tksfd,__X7QCu UAw(fWI.8}a]Xq*{WN83Z_g;+8G#2StAfJzp* ) Uy7K}.ɧ6S< `;Myk)m!ˉ Z)Yڦ\q;$#AW ʚC*ѧs vҲs+,'G[JߘܯZmN dZ\&i` {_G4UҩZ1 \{u:W5 0G)2 UoR^ҩ SWeCɪS ɩ(D}; !(AFRtO*l/p!@P+QZ@MPoAпdJE5'kG(!͆u!֥f0돸=%^~KeGYVk0] hMl: W.;7rJA65[)oX09mh ?I&YwRV q+7_kRv4v1p*SQ^}} ?~O_~Rb @ctMS~"1L(h'X8MGnED5 JyEN7pfNF և`NYPuݞݓ(%dDzڦC"ߤFvmGv_)/ҷzOJɊ_@^-Skuv/b,EQ` FVlK,F mkNihj-[VՕb̂oNvy }DBsIۻs?>R6kpe5G2+7c~Z |=_p1JSGs0_3-h.Њ.M$е-qjfSd~L wۆYӑ8OLaN<5OEGCF4e=K),hf{DMBM&] W) "QĨj Y˂V6YΧAL1oF[%etrS۞%%T`y>?ߨ0j 0(GtxOYi{SHz/ {Anh܂ݹ~S}C|JCWiٕ-5'>>O/0{_5a:9AZj=229αUkQZyULĤ,>_Jru~]z(fkFo˪}Sئ&JQ VD/]Ľsu:jk4l lލf/cY#זm. 5}#`{9a%]A3H0`˯onu)9L!.^zDjD>pؗ'A>,̭U]ސ4`]3&R,GG1N~ ӈ:._ *^-:=v&%L~f }Gnj &i.EwQ|q=2H|^fGVZVvS}Ihlz=Z,xZ3]WW +r8YRV$mz-3)k8֯4xnxlV*Ğ2Rj'WT2|\CңZSܤ^}e~!xL/|XJ&Y]1 -1H̳O \и]}Ԅ&~ U""Yq+7PC~Uj&:qP80AY `ʺR8ίM"ñhgW]u"ŻTˌTrCE4^S)t:8p:@<@Ȃ]G=U6B4/ `D(rN;ތҐ-#},` ތ!:(|g mn*z@_6z Dw @{w\P@&}Bjqueryui-1.10.1/development-bundle/demos/position/cycler.html0000644000175000017500000000527512107500070023351 0ustar metalmetal jQuery UI Position - Image Cycler

A photoviewer prototype using Position to place images at the center, left and right and cycle them.
Use the links at the top to cycle, or click on the images on the left and right.
Note how the images are repositioned when resizing the window.

jqueryui-1.10.1/development-bundle/demos/position/default.html0000644000175000017500000000643012107500070023506 0ustar metalmetal jQuery UI Position - Default functionality

This is the position parent element.

to position

to position 2

position...
my:
at:
collision:

Use the form controls to configure the positioning, or drag the positioned element to modify its offset.
Drag around the parent element to see collision detection in action.

jqueryui-1.10.1/development-bundle/demos/tooltip/0000755000175000017500000000000012111026004021012 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/tooltip/custom-style.html0000644000175000017500000000511212107500070024354 0ustar metalmetal jQuery UI Tooltip - Custom Styling

Tooltips can be attached to any element. When you hover the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip.

But as it's not a native tooltip, it can be styled. Any themes built with ThemeRoller will also style tooltips accordingly.

Tooltips are also useful for form elements, to show some additional information in the context of each field.

Hover the field to see the tooltip.

Hover the links above or use the tab key to cycle the focus on each element.

jqueryui-1.10.1/development-bundle/demos/tooltip/index.html0000644000175000017500000000105712107500070023017 0ustar metalmetal jQuery UI Tooltip Demos jqueryui-1.10.1/development-bundle/demos/tooltip/images/0000755000175000017500000000000012111026004022257 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/tooltip/images/tower-bridge.jpg0000644000175000017500000003662412107500070025373 0ustar metalmetalExifII*Ducky<+http://ns.adobe.com/xap/1.0/ Adobed       , !1AQ"a2qBb#R3$r4ᢲCScs!1AQq2a"Bbr#3RS ?z^N2ɴُΩD_[~DЖ9n$ 9աWR-3iXMk3>5p.YC  \}gjI35PQy?3U&s-5P\?f,4P Gi2 ݅nj@2],0 εd ڬssTj+H瑆o%lR mA;2oXjt*+(fzݥ3Tcûko[t.$ٰ9+SN WebZ ٔQ* ̤z(ȚpEH+6V Ih tad#Zˮ=u0pZ[r=U",*0s+$.trl=ig3}ϕT.7߉)9$l$~MT.Oȅ;do/:b2d $w-PF"BȚMQdLB&Uh]QS"u4ÕĉY]+0ʮaRq*bX;cE`-΍XM[P. f{d6ͺZHӭB\C6Z^<ͩe$ғM'I ~ 6ҪCuKm/U!t$B5,QQ+&? eiu'¯иR6B}W+m@n1f§0 fm{)Ek+H拉m/!̊RmHR6LDɉr6 Tز6=>u7I01L",FNFLp %J+'u}@ `JifRЫo҉1vDc}QF&c9[dbP*n$؞r9XqpmzF"m!.#[zbPf{ؿ Ԯ92;n c;E$uީE̓ټ/B)ÔbtnT]@͈B7;ۭ:fȲnumHNxZЁҊ@i 386QuW)ˇ,dtRVePJ)(*$D-BABf<;ͺ[ZE`X7~4 < ʶ,"<ј<=5ӯRvi 2)$b 1܋gӲuc}9'/1 nh[C ~AUIM`΄0lYL2n:ՋЉp5^@3[z ;7SzWIrGZH|w ar7- 1q#3n6^J/{NMśp%VC:څԵaG &Yok5RedK-kZ߲06p@'T'H; EʗM(ڦ+PKllGTkQ PȔ$ U$U>tXTAW[4j`/ "eC*6rFWدcavn7*xL܇ɏ (IX-3ԴnKxƴc>HFK&dB}ujG6ڔd0a鶃[Q2*u[^(=cHc^9[ZUxHMo/8P$dV2Td%u~uo:YK1ʆHdi&rB[@:R̖$uOe|?o`M"etA J-ԸuqA"Tk=#׷u+W`]zנt `:x,79xzPC4;e{$w9`NǨ4E >tڀ ҲniOM60,.6anlW'q;xu`ҟ%@rN. H'5hĸF<)3Btzwݨ!EA܍ആYKQV!уk{+^AWKZkv9&luVEHh=]p=nE{wXi^O;|j& EfDRJY5 m%Sa@ꤲ - *4`{Ɲ>|)NjC0TLxGIXfnZ+踆?X_Λ\UFkoo`9k'4u>Ks&3uUa{Εn#^O+>=A`kaRR4Y䑷!WM Ux܍DAbĞi#,|!jWsHt,dbʲXu=|/Oq{pJg%qư#8cVYjt9yؙ<#]ʃw,=76"mǶT">òFKj{Z<[/"|kck#C>ĕc(`~ WoqVԞvo4@t5 Cjc/1C/@CsGiی87_ut5&|&ca ͚hDq+\Xm+YGo8:.nWIdr.[,="DSw4f%zVK'sqscEimXs-Zz=dy>kg~3\y$wg%v-Ye9,I׸"3aqxl$,R6zݎK3Q ˧+̈x|/V_yO!|1,>kzWlxݫ֓WyWcGIZ9_[#> H;U-$SVY\{o lIF,!BdVЅnA^4+c~!cj6- Zzε{!^P։0Z$I*3!TYs eoS9b3:2ciǑ*=QHȠƝE`5Z`mI mW"9%źޮJh?Ŕˉ" eck0⎞(iGXG..J vRO']I%;nA+Xլ xnS0ꭷzJ&d˖Ҝ#mRZdށc\W#\QA-2t);_)X晒0y>mZtol}O^yjz:u#B'&i;X6!]ckjZ5 47ij6>BbIR5&zNCW7:q:qrʊۼVUmmtccFcF>W[2~;~=Ҝv8}c$sۧR,|psnkt.n]7cBOuр(I6 h Jn1*Ln%"`ɝIs.k_,۫xkZF`n7.¥0dgr;?;yҴmzߥYXefہ߅U7jac>}(`l z"垳f{KĔerPoLIlJ"},'0Kܺ*x7SO~e.&CB55gt{FTD]4ǝjuq|z[\hɏr_~~T2$z .RjIi W9< BJENWcikL.c{'fSf8̹= ]nkgִي庛>*#BFϑU'⵬(#_&@ZGNkbYM|' RXb}dz{|}M|k%a-=}ow_ L72zT)zцcUȬvU`2aqHÐ7q"@t+yu_1_sܛ \ yp>+ҽD[p/ mn >AvoOA{|[5~ed9lV~Ds[Gp\?ſ}t)𤻑-n-ژɞtRj- 귇ǮŸJrirNvBMeO,xѐ< kYtsc]hrC ,lG7ySo^ۋv*r89Xs:ƸyQ..H[/z*y͋f apP:yWJ&8f}p GSù=A--0boBlX\w \+(?]sW/mJA5c7^'AH;KI$I,S|O{8#CcEZFkdP"GfAj[yza~3(HFH@l,m}Fč?c' ~W6)5c*@s!.Fq~Sk@_yT( 9^"6:Gst[@iOš&\53+YlddIdoZ|l@ /Oҫxk|@ى7csNhf8$I+ᚫZU"qU!$pZ}&qء8>`#&$e[1=-gr$㱛"Iv_*n6ubUY҆ ٓL,t5J 쭣eSi$4i$S5]'VvSkTtlȽ*䮔Vrƫ%Dxdju_A1|u2Q$5[`qO-ȼK}6=G]?:v_衺UOX%X _0㷷di~M?{s0!B$+i6/SR+t Z32I!TA(\Zv]:hh4=M*ȧIE {N˭O•Sa_M<8Z樴kzɕJ!<R/HBm T|y^;vለL)e? z65{OK؁y+fɒF'lbʭn >hOiE3Fxʷ^H $W, 62w%ъvszZnВ-⪃&>6W iqzKsXOkgn |ucɍq@ yz*aVv|euc`Xۗk#bOuthEh]C6SKi‰zb`Rs Ro{ipˏuiW >o=sŜ.[c;>NUuĺ =$rWXb+#:qԮ5LTJ]EpV|$8D)j5VX=v?1^nMU۰/%vy`!mi_: ;ێZ5,ȅXBsr4 ioƇ{xb5{5gH 2V1t<d!Wq?**Uԍ:Jӣev&[jBs^7OmMoNuEa-Hˏ%4}lB iRm9 kgj_UڼQ"Lq|lS*醧GVF~F8uǍʩ(H _ʕ{4#rdརvS[RMkwU]]}{gidvqV*kzƾ}yMV1v$e?\ ,Ʊ {0$w 屻d+F&j{VaLr6ȏڎF#[=VNbUmGKmY{?C'$E͞ ^#/)^ܱ^CkT~SodLMꄜvtRH$jobҰejӴ݋%m ~E+q}6ҖƨlgbMov1wl}|`y_|-zV]G!vAx8F+lY#Aa}Ŕ,Kt*Be Wt݇{MTj=rN$^+}Qi!3#wz`b_R!. u$2̅HЃvU[<#%$m-{Wa#UD[$wk59v_H=.iz[)(5d {՚'=7j<۷ @Fm%]ۯu֑W>#-N\"K,&$Zncp;K&#dv.uw֬7Êr-svufMC'‡,Up-MEyL5z|)WgHK.G؉l*=εV\E#,{QXrmVO _/KEԥj26n[N*߱uli(/XZV 0Ƶ'Y_`9#8#ii'_HJgEB\fin~b_jtM(wx3Jq\qN?y']ѦzpJYg2εwUIU\vt8@g #KyPm:6{Ji,ϙp۸ R[G^(K~1lj/X>:k\侵Ʒv1`NC w̻g]J 噞<+sE^RHrFr3 :FژkF d "6>1[5۠*XM/#ЬTޚ>x{y&Aŗ HNI):|"RiJYi,nSfUFW]\2&]QNˍ>cmc Rqf>5E,ϓj{7ڜw+|d$$(Xnd_SΗy]UlNgC>S*,hdJ XO OY_==>S s8?l“G${:)$^VBpK_xϸN o1n׿Mh\ jAW%۬Em**B)brro"Q}MKoi*:-u(9{ E!a}b|MKjź[*r,xGE:uWY.$ՎO>^C|G,jmF +&YxmU 1/ a K{˙ +e멡`W/'7)+&fcdc v^=ڽWĖۺCNO17YYµ/PMzv<3Y3q仒7mҟv#f=XCG܊~SqNMP1DZ㤱7.M]1Y &[>#eٸQ$EJKY6Sҵas]%eY33"y'~]/7Uֈ^,d}9LI=@OM"VD::H+U +*KY Ɩ9؉VĩsskEjd측$99%"(d"۽EGZϓk v#|kޜc41aLmiu29K"y%rSc",a/Ծ ^ Ϫϊ%4]W٘\_sSE.;d,ԮŻYMaĒ>?_HH{pȥ@[+_W^-E?F{+>8"8]i\we[U3b'~;&:k7U"{]jIU,Xɏ!2P]:뤵/ǎlsrī :Ӷzh*'fLY25uYr搘]iƻw&{m/uφ79!NKn/uk_1AL8S;;e"O$لɷ[Էv^*_/n)oJ֣[>߈u(8M{dJ15a)>ODk֧a~/B|a }At|~}<)Okcf(\5ċ!DpV&R}\$M||kw߷]b;#?wI*\_k$3\K|1Lx&baa{M0tKsD‚XƋ%;t28ذ(ܴ+ͪ2s:,XmU+HQº5ۗc!#v m#3E"3m]l]ڶ)(ebjJ>4+ qOf;F*Ův]:Q>2~ߊV*@Hq:xsLkPo@@P5? "k#]Pl n5ʱd-N^fH >9|Z m$bۭkMkif==*ʧ-w)[Oح{qxx_ƙrǤE2C)$7emw);o݉7o1LιxJ0u &j4eJ'dmUchh4# QE j)?أIϕŰPᤛ2 {~UKg5`֣/ ܱIl$xd p:X5]9V5/Tڵb[#V>%.֣,|OԶO}_m7~zgZx})/$YZʶA$q@=We {B.'ee`Ghv}V0ʛjS-6S)Y$)_) XJX~#Bp|&:McU/m񶔛v;92P- , mgEdJ"|nGݤ0 q71ҳgƫ-v^O(/8"HC7'OP ڟ_SmOH>ubd{MEVOME\Jwq7ȡmQҩ,U]dmuf/Km&w?(&jRUz֡2ƈB@ km0fɓ2 5(<~u3cQ7m .8OA^-8&&7q'hʲI ۼ>\-!>YriU"3NS(5$II7,na P6Dj&-\Vj#qe'K܏ƺ>R_ +!,?-X/#5h`sE.f_I{t]de2.LJC Xahdy558~C]%mņIګRr^z1- 3Õfuw^|brbaXmµ1u:0J6~U"*wk5JxiU tʍd-Wܓ([sf_ 6.37GNLU5]KIwNN< e'bRTK:]# >]*H0E[$24p$xZźƣ)\"KpUZ߁:2$g E!*|~ޯ맷Yr&&՛]f}Ek>|Mő2 0ڂ#dE/Mr/2maդI@(Cڽ)|N%ݯQō"o)lN"ΆpاRgNHmԏ#5ϋV.FeFYWjOҟ)XKM$c{[FtG1oR5mAPܙ츱ܣcEj4CbS-sAA[NJ4ɎI#sad[ڂGփRECC(]HSe0kTPLj4#_(O7sa4qLiH[ F% e?Un>k2M~E.'*4r#j?OdwM/uUL'#Vk] vi#;@bNtֳfӊ@y222 Adobed        !1AQ"2aq3B#Rbr$4C5ᢲSc%sD6!1AQa"q2𑡱B#3Rr ?k$9'd, 57y$jnH$jnJnJnJn 7y@IC9j@'|؇d^$oЮ?>. 7y$jnpAf?> *Kw$jn y@Àς$n'Œ87(LF`0`zx.cшκ*+p<.]?z^5c 5=)D0 +LT*pW ɧkanV~%+L2H8E08TE0R07yB&USm!Rm=Oo{qg"HH WقPaa OܭwʴEc6ǒMz Tzm4O{khLjfE0H  V ;i"=qPK2@ZqQ+VL3Zv5W_S1dE0 >_ qa>JVdF V}DSLT)1O}kuݯuǹ,!22qn=޵_@lB#AǻZz*.QE0Z`) EH2#.lpmCMZ"S UI/4X u|b{*H :A.upcϢhN]H^28ՙ:xS{`y DDSL#`) U%\d=jMḴz` FjzŤ5kj}Ai^c(U ABk=Z<1eǠq A`TAѶ헛VV'G`O`Ϸ'U:;CYA6'm#Wv珛m4=w|vHKq̔DŸF1׊bV_NLKG[`W^-ZFF^E~O_oSͣSu|ߌ냩0~=y2H T")d 45ҕ4C~LehfJlP{:*;5Ȓz~E2\|v=GI̲B 1ՋUs{=Nyh<Մ0SLE0`HλܶHm?M%3~/qE=/CgMtm\2\\+n%$X\iTljNwK&QJo .b<)oP;֬dƃOVZ5'"5WSM;)0c'ea>}R<&E0>#eNLE0.`)\5]Ytv~~~z믕L|ƿXxZd")EHaZa0Sk*c[p۶ F@"s9cqFnw.UA'UK|69;_ՙl&?Q:,*`ڷ!.E1G** Ԯ)ÆZ-.nkY>A$JN yt=~+?x4ǦpLE0aR0`ۤDs̻# 'KA<|ejfzz?vۉ"K'l4j8>awk#c%ڡ ^ӂu}\M%晎fABY5}>ep00 ``)+yPW/o7f:yC]@9pZ,Fgb.]} D<&1 | &}lW@) 򦂬_/j2L ?VHxDHǼ8תUϳ5c>#F"R(8WۅLn8q%J*VL=%0_[g"p9&v^ӥ:vszY,QĊ|j M{yڬW(r[G u1T+p;`nbNtkK3Bj+B cT@\Ӛe~rj4>> T؟V-ܒ9R ԙcߧe̿W oM dLʸꯙWkx#4{14%A$q)sFD֛OW+ģdsC/us㎺vj9j 03&#f#iuhk9<ٿ|cOb Er8\r-&ݻJ]2/H T3~(̛-ƊB@PBؑ~'uqZ*Uhi F ur)4vu!=N4ۘsLO +ǰCn.bOE*He<w&+P}L060v c`*rϼqju;WS뭻fڭ`Rm7WzNc)a !oTH@h ^#GjAxiqp;б9hZggGVEX5󴎡hcKmP/z.:2WXV^tutI;Z3Vp8Jzߣ}BoBVo܅%5xr)~.~ZrtRq[ȅyۙ$f  4 qۍ\kkv"@H;Gk -ڼ!FCh$.c6N$)A k";h+ `bVZ駶~%%N)? 6ܖk FA,1 UIgٞX{cΊ7vۭKzkWS Th-RVVY9ഥ<#CJᙈ819㿯ȥŜuF]%*MG4~s_ щvm5\̓1JiPoŝݔ2f TԖrk~LiE;m䊠 S#%}\WO`j|K㶝_Qy, IxbL>ah^WKXxEu:4YeHc٭/jMg!wwtSbcEyh^4[ṉ.G5:kbcm% YVՐW_oUy=7bmbMo[;9!1I! =2 cgklA=ԁ䶜<1">! ׷2cmu-Lo &V864[XvH&hpG ӏ U2+ۻY&15?fK#݌гvp%͔v5/-0CA卞sAufV^WȌ[RTk fEr, Oɓ&Gh E臱&8:Fkc$DiqK *Fu.9;ľBnM\]ܡ7 oɦZUiHm|JxZ3'>bBַOf0H Y>NUp[ֶwkݷ ki2K:U|ACHA(/>*0lbM7' $Ǥ u+Ox&T#\mwA;iE_AƂ)~mmC5E2EnI G"Mf8ʽ.0jґ []ᣂ[ɖ&=v9.}_=μ sZŗK`j +o-SRUeZm&"FOO-}dh>Bqg뤍1GMAfVp -oCBG*t'FȔpFyv7n(,<<&. ˋs8izgJ=j_Iie[jFՀӔvg2;R~<`-p٣'׶s1ZmH;x]bEM$D2J_j)Ruѷm4eBaQ _#ꠑFj+=P-ӷ0E!M- SnW7lEf}qЗl1 ݷҜ>ZWYWoև̚gZ JwoV`Aއڥ97Z)#?̃Qb 8+kfy-yE8:Uc/Y,vkehۢ{%{y6Gc ~ieޟum%MDֈ+}YGq]UUӕu(6˾\֑hW = &躢S B3%Ffu>ceI,w2&y\`RAsQ9OVXм[bHݕ",V9W~^}KUkolIykVYEk_V6"kbg5ђ'3PrV?dz#nuXx[FA[D^CjU"8tRO`ՙpϷ΂KkdgzRu@B++X#.`Va6Hja-Qv[,|QD^Ql( jS(L9 "T qjA!UPrFL\k91>GG8dlHJy:0HG KC[{u%Q-V3@&WaA" #`>6YZ^od*C Lkԅ7HRM)/[@8*=/b`\6}6emv{Yahh0f]!+5 ?c? zvw MJe2W0NenK ~lL7)V0]ƴ̍ dFxү /.>οiZ4jOcH؁bYw.uJ jN=c2ȗw]U(?ÓDms)5x9Cji}kpJ}k=h%9kx!m]7qkFr 7$HjR41jLm\vvI%-Z>Y Գ$q*cF8\ʓ+RN;b<-6Ĺw0E5l.OX]mc/ԫ&+AMt,)W W&u5ˬ5Z#bQaډhfܣwOn]mmA32X:^BmVo? !x;ru?>2}pښ9zK{9`yhZʿ2 kuZK+웍|Ӷrr]47senϓ ⳰3rH ACFV͎]]J"r =>!\ͽ@jT"O; h jLj*5IRr2]OҺweg0ZScUܥ'?-}DlRky6dDΪڳZd붲oطI.+-i-Ă+Ƅ0KBw?[],Y)1} K*3_)˿e(}$\ӲZ9ekpFնQN.w+rM1w~¾4cڥ;&mb=M Riw9\i\ RzW3W:t٧n4{)mX--Kq ;Q}N:)`;Q #S8eqK,nd3kz2en~5Iivp]}2.T?Tc*p뵸 DZY[N/绊in|g.4RT =6Њ,vv M-5h%n fY{q:ܒk%Nq0C,rKp%|M@X޼F*N6?xrcpFB2ɳ18P8̗09I"8^Bk6ӻC[Qᕾ݅4#=͋Oc+(rKZ:jAnq4ҽyو e\ zVK[6D#TlEhe|e޾3io߸6ṍ.rJN^=ceM7f7͛`lR.o7D-UpRq!=T7vRFN:)Ӣjuh/n"-<+jP ~0MM 8U)uF8 ZF0]^/x~mIyzB+Iĺڣ46oOOy €Tʒ98&KvdTKW "]A+ طTIw8nv{/H#Cx^F"eM@ dKBIo@%xOIvKiiV 9ZidJ$^Y[]Kkcƭ#-j L"Q'<(rzg}w2.OtFoNpan 1⹺Glxc::,d9j}~|a/ a~Rf]`MFȪgsT3Y%Sܣi֠,B@If 7FJT mMx!H'xLф$fJ31[%r~ [Z}Quohm#"fDZĔ+1[sbZ]rDJdhf*@ԫf;*ClNɼ=tv 1-]#ᜳ:Z} P;z莡ZOZl-R@BUVecӫUz9m˺m{o&mhZʏCo.&f12RG\Sء(\f?ɕRAÁWJ&%Y~;(YlbոI"չu0E1})"֊ R[(ĥ|bXЊT֤p+SŗATkK]Ԛ5s$F4Ϫ[ik;j#"#8x*-Zpn.)9@ɷùil]cx|-|$Ph+ao&cwMYJegc eR{U01]=v20o?K]ºi^0k0ѱ ;)ߋvq ,Z]LVX2 8# gPv{7\q{c1rh>5|kH~-zRgWp5rv`8ͽ߷[M$Y^[i2hOj3E#Ư̺jG1UTM4״cA2K^1g0eGH L& *?5eupʜo:_E[gO0V[VB *Jm a =3uXvDIי-Vvo_d.BV'⎃iqEQیi#^liuOE< ~{6}duRspRѶj-dyKuV".eGCg" 6ٝa=i~M^G])Jo-n O W&DSZSۋIԎ}{LZm2]X$Ǭ Į ʸjY:H&˸4Y9G*SM^c )5lvv{]ԌM4 MAǎ'V/{+uX!锒g] ƴԋn XB ci34|okH|h5$S߄vEB!% $@2q)wnYZ8٘E\u9Rq*W(*ro8M3h59TgL\Yn,=v{QXLIm23)iNn%6(?u,qm 3QQ*yذ'$}Iciw[{HjTjkk6rt[Ֆ *s-X')u n_VٱaBK֬8. 9 s`%B֮X"B1o MM,n#wxL\X N.4F6dO=<]rk|^[\-IǍ3EVb߾{y"MpĒ5crٳZSqj$fMs}]R(|59݈ {ohO-PP֖݅IzK{]0%KIQ}Ⱃo&ke-@TvaFzst*6ik c~\ duNlWw+>.fm f3 ;nJ;1C9U~6 }}a5"_?@Ew #p"݇7(_m:Has3!JF~g7#}w%leFohN^2:Uیa m\Z\7Sh 2]-U29ݭ-KЋ[;+@Vg{}F/MʭIo)iPVj W @jUЌ]|:g~ rT[ CGA:V.kݖ!LvlKZ& APO5D)exh$'4@#o]CIn7Fъ=cJ?Td>bKG--[y}I C"ZRvc~rO9O:O*p D{o.`6 HY]Y RRInF&ZA*"Ģ^[Lª}kmZAIdh W5̤tjh xAj6 "֤Yv%<XcJKaU|lcfW0250;(FhP3:tν*N麋4ܴ1 lK l؅^zek$E vp*R%ii^$qF?ntuTG`c?W~aJ,B8!So]d.-$LN 8Ӛ1k͞ XCAe KnבQց5i0x]A*4 ܰ\ \XZiE)@e^%?*a}N^a2IP>\r85vUV Sƕk]b hKQ wa{ˆ#c\Mk6vmq?ZnKr>}+ t4h@8Y'"P3Bju#Õ0Qo:ĒsSIYv)-Йv$_@=.:2ޘep|1T wc/eķ+-a?d4/ 4io@k⎙v=1&.Uƈ͝c{8? Ws^4iCQk#۟όR'KorzdG\Kl726m$M+FV SAXH9=EwF,X4 L F:r(h<~Sb;z TS '5[嗰H퐑N )#U^~ m:ztSp"s$С 3ҿhl$ ,!{hhVU^38'_bcAǩz襁+Oecaq:TUeѧ)}W" +־lZBb}GiGS.4Ba ILr2Kgq:tTmwicgTԦ?\_ɊhհXThܲG5\'Y/ +:.|8.@Fv04S[f[pĺ~,LdRҮyZgSGKܷ[ Y,&.*3st$x48c(88ܮT뤭Zf0YHy<!o'n#Bb5:|΢N Z̕T)2=X[*ˇr40$ {@?gEG ̊>`o6(*vCnDzPX9 ܗXڜm,n3pA}0,+u39ѠhAj./1]Ieoex4 t,ʠW8aw>mmz6I'i٠EB$",4`Q7ݼzo?ҕ{i_˅Σ8ͥg&*=co Mnc@G#v:Nc 4&Ji_KUz}ur P}lbgT6Y$%B͎b/,k"ءkYI9_ǷO-&#fbc'02jPFBAE({l n?\h,ڛd2(AZv'Q,ෟ\sF,J\) wx;`P3Z`ы+5\+⢼EF8U2V?bVw?-m#Y.ξd(ӭq2qUMuZPˀ f=wW4mdQ(Ea!>q}8 V%vɮI;+Z%3m+Fy$+wJVJ3aqM&ڢІJɞ*,trĭC}4IwC4i@2Ԛ`~>ur9}'k˯+^]rիgncT"mKI5=~+Q'=3IbUWЗҿL;UQ,ExPiOq:M(ֱJ-!#ۖ!$3uM#QVXhcb@yWE$I?#Vw5vL7k7Z`l wYO6!jP;\iTK=ZmcHl7I(%>ըխjt^]Nߥf1) FU38̠,H;M`}⹴07!͞]g5CgqV%xxpم]ùEIYXRe.WΘ˶V]z n^ eC֝?ye&Q#ptŹ{$up|$%PQnIo}kR@@4hZRSۆ+{h[ 0݊k+,w9 P; fV&PZF~Q\6!mQ(@~l13e7ڑ+9pZIC-> fy2?T$ EbB ``u{iX4]jTV.%ܷ-7KU]F!ij&Z@uGH~thnmB_HƖ$fb&UN,~$ƑnpHX9xgWt)7;Ny~-vSFu[/)cLpi=@Wvv͒ۦgY-#Y'$QԦ450u䶱UX\Fe֪e-q?X߈WO-o&PDqҡXZ# nAk mqTT[ ]-jM `]WOW%OxmoI*)#R3'/Ŧ(&J SR+aA{#⌫_F a-YzԑzafoO#]_ C1քfL%O1KA3\o& \ ~m цc.EЗAԂY,u,qV9"x/>DpxèY[&\K\UtԲҀ+)o eqX9o~- 5w ˧oT}(lFC# U@^rP(%RHz0So2۳Ov!6*rmkut!Z)XZqʤt `jEG^!^58K %,BV:f)"[2oʥcJER*;q-P]1׵Cb#Y(:Ö *©6#.i]H-J\!/8YiݶbCCSZf7%nr*((iVk%՜OkbJ4;xFEA=gu΂hzQI՗o,.0%AUэ2ᆶd{R\o,@.4 :ȁ]UoaxO:1Cb|ǀ3k a+sK8E<a퇞G)J+94:( P?STYtBY nimn;}rPi֢c M Y# ڀfhDcSRLMm;pOcM3?F) ZM3X=ؤC"$YxY!s&P5=n-Y@3U8ceYa-Qsf z6ڭphZ?LSl2mӠGHh ūۺHF(2)Ӊyoɧo21;?~8) ]1/'[- ӽ{~0_]| yG~w's0]oW-1*b,d䮾Nj$Lh ԟ5| oG통?ȏ珇8h{d:c|c"E&|S?ㆄۿyǟ;:Wl1/|,r/oӁ~v>N?0??8LIjqueryui-1.10.1/development-bundle/demos/tooltip/ajax/0000755000175000017500000000000012111026004021735 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/tooltip/ajax/content1.html0000644000175000017500000000007112107500070024361 0ustar metalmetal

This content was loaded via ajax.

jqueryui-1.10.1/development-bundle/demos/tooltip/ajax/content2.html0000644000175000017500000000007712107500070024370 0ustar metalmetal

This other content was loaded via ajax.

jqueryui-1.10.1/development-bundle/demos/tooltip/video-player.html0000644000175000017500000000553712107500070024317 0ustar metalmetal jQuery UI Tooltip - Video Player demo
Here Be Video (HTML5?)

A fake video player with like/share/stats button, each with a custom-styled tooltip.

jqueryui-1.10.1/development-bundle/demos/tooltip/forms.html0000644000175000017500000000323212107500070023033 0ustar metalmetal jQuery UI Tooltip - Forms

Use the button below to display the help texts, or just focus or mouseover the indivdual inputs.

A fixed width is defined in CSS to make the tooltips look consistent when displayed all at once.

jqueryui-1.10.1/development-bundle/demos/tooltip/default.html0000644000175000017500000000300212107500070023324 0ustar metalmetal jQuery UI Tooltip - Default functionality

Tooltips can be attached to any element. When you hover the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip.

But as it's not a native tooltip, it can be styled. Any themes built with ThemeRoller will also style tooltips accordingly.

Tooltips are also useful for form elements, to show some additional information in the context of each field.

Hover the field to see the tooltip.

Hover the links above or use the tab key to cycle the focus on each element.

jqueryui-1.10.1/development-bundle/demos/tooltip/tracking.html0000644000175000017500000000306212107500070023510 0ustar metalmetal jQuery UI Tooltip - Track the mouse

Tooltips can be attached to any element. When you hover the element with your mouse, the title attribute is displayed in a little box next to the element, just like a native tooltip.

But as it's not a native tooltip, it can be styled. Any themes built with ThemeRoller will also style tooltips accordingly.

Tooltips are also useful for form elements, to show some additional information in the context of each field.

Hover the field to see the tooltip.

Here the tooltips are positioned relative to the mouse, and follow the mouse while it moves above the element.

jqueryui-1.10.1/development-bundle/demos/tooltip/custom-content.html0000644000175000017500000000521012107500070024665 0ustar metalmetal jQuery UI Tooltip - Custom content

St. Stephen's Cathedral

Vienna, Austria

St. Stephen's Cathedral

Tower Bridge

London, England

Tower Bridge

All images are part of Wikimedia Commons and are licensed under CC BY-SA 3.0 by the copyright holder.

Shows how to combine different event delegated tooltips into a single instance, by customizing the items and content options.

We realize you may want to interact with the map tooltips. This is a planned feature for a future version.

jqueryui-1.10.1/development-bundle/demos/tooltip/custom-animation.html0000644000175000017500000000326612107500070025203 0ustar metalmetal jQuery UI Tooltip - Custom animation demo

There are various ways to customize the animation of a tooltip.

You can use the show and hide options.

You can also use the open event.

This demo shows how to customize animations using the show and hide options, as well as the open event.

jqueryui-1.10.1/development-bundle/demos/images/0000755000175000017500000000000012111026004020565 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/images/demo-config-on-tile.gif0000644000175000017500000000025412107500066025023 0ustar metalmetalGIF87ad.#'%84-<=!60:+)?2,d1 $dih$4E,E x @PШtJZ4;jqueryui-1.10.1/development-bundle/demos/images/demo-spindown-open.gif0000644000175000017500000000015112107500066025005 0ustar metalmetalGIF89a ξ}}}! ,9BR1$B!;jqueryui-1.10.1/development-bundle/demos/images/demo-spindown-closed.gif0000644000175000017500000000014712107500066025322 0ustar metalmetalGIF89a }}}! ,@ EU$؛F WqP;jqueryui-1.10.1/development-bundle/demos/images/demo-config-on.gif0000644000175000017500000000051712107500066024072 0ustar metalmetalGIF87a d)-02+6)48':%#<ߴ۰޴Z=N=!PA?8ߵs6;u., d@t@pH,Ȥ8ˤPZجvK(͇@.sz>(CSa>/PIH!m"F DB$ B#D G'YA;jqueryui-1.10.1/development-bundle/demos/images/pbar-ani.gif0000644000175000017500000001744212107500066022767 0ustar metalmetalGIF89a0JΔŔŌsskRkcJBJB֜! NETSCAPE2.0! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP ! XMP DataXMP !,0pIͻ"di"l)k1|+plJ cպfxL./f϶q} zy| ¶žȝʰ!,0ЉAǻc di(il0߱| n?!gD:KbyTFaSj" xL.^6|N|q} z{~ øƢɩ!,0I18 AHihZb뾰H8l$|@-Ga1C:bTFuTfxL.ޯ/|nj{N8~ {|w} ý Űȶˤ!,0I)8k !bh辰[8l$|@-G$aC:{eIJ_MjjxL.ޯ/|nj{N8~ {}w ľ Ʊɷ̦!,0ĸ8}ChAplͺrI`+x¤h!a*SXպPCaL.-'Fu{~3 }y ¾ ǻɹ̲!,09Ÿ8}`(a h,jp,Kﳑp&RiD|(Ij z]fK4z-&{p ~ ~~y #  ĴǷž ˳г!,0I8qx`("aHlf,7\ﴑpqI4"wJt80 }} { b z ®˽ɸ ϱԭ!,0I#{O($Il)t}ov_pH,y$d"=`s*|BԬ:fX\(xFCyng4Qx/: ~~| |c þȺƴ ̯!,0I#{O($Il)t}ov_pH,y$d"=`s*|BԬ:fX\(xFCyng4Qx/: ~~| |c { ɼǶ ͯ!,0Ik#{O($Il)t}ov_pH,y$d"=`s*|BԬ:fX\(xFCyng4Qx/: ~~| |c ʻȶ !,0Iubͻ#dYl뾫tm*ۆpH,2ul6K_IBMNi<.nft } }d ­˼ɷ ϰ!,00ISͻ!dil)kI`/H$HK:Kf|F#j5ixxpPnzng`Mo㾮x/> ~~|` ­˼ɷ ϰҿ!,0pઽ8W!DihZHp<4ʸ\六p#v>h<ږ`әJFSj5 ~~|a ­˼ɷ ϰҽ!,0p8k+`"AhAp,&kI}pH,{d&˦t{Si՚fX\(xFCyng4Qrax } }c ­˼ɷ ϰһ!,0p8k+`"AhAp,&kIRVoH,{plJs:FUL*R xL.&.u{~w~ {{}y y; Ǹų ˬ !,0p)8}`(bh,jp,ޭ1{ظG,>g@:eI%FfzŦ[@.h28Lkqbt80 }}{ {< ÿɺǵ ͮ!,0pI8}`(bh,jp,ޭ1{ظG,>g@:eI%FfzŦ[@.h28|5sa{ 0 }} { z îƶʼ ϱѶ!,0pI .{"dDlf,n]q<@G,ȡqyDLyFZ4xr{^l>xٝ~ wyx Űȸ̾ ѳӶ!,0pI+ .{O($ l)t}oe' n$PHP%ZSjyf+nj(,'>xo/ ~~ | {= þƶɹͿ Ҵ!,0pI .{O($ l)t}oe' n$PHP%ZSjyf+nj(,'>xo/ ~~ | {= þƶɹ ͵Ӵ;jqueryui-1.10.1/development-bundle/demos/images/calendar.gif0000644000175000017500000000041512107500066023037 0ustar metalmetalGIF89a9qZ1ise^c\mesl^Yzs[W}wSQ!,e5<Ҿn1q]UEQR=d[nI)*u/8p8kH ]H @w@b~Chff]nprxX^`Gi`G !;jqueryui-1.10.1/development-bundle/demos/images/icon-docs-info.gif0000644000175000017500000000031612107500066024075 0ustar metalmetalGIF87a , S`'vJX(r5[UtRB**ċRp T$\f+n ETFѸ5@`LC3#!;jqueryui-1.10.1/development-bundle/demos/selectable/0000755000175000017500000000000012111026004021423 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/selectable/serialize.html0000644000175000017500000000331712107500070024311 0ustar metalmetal jQuery UI Selectable - Serialize

You've selected: none.

  1. Item 1
  2. Item 2
  3. Item 3
  4. Item 4
  5. Item 5
  6. Item 6

Write a function that fires on the stop event to collect the index values of selected items. Present values as feedback, or pass as a data string.

jqueryui-1.10.1/development-bundle/demos/selectable/index.html0000644000175000017500000000047512107500070023433 0ustar metalmetal jQuery UI Selectable Demos jqueryui-1.10.1/development-bundle/demos/selectable/display-grid.html0000644000175000017500000000307012107500070024706 0ustar metalmetal jQuery UI Selectable - Display as grid
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12

To arrange selectable items as a grid, give them identical dimensions and float them using CSS.

jqueryui-1.10.1/development-bundle/demos/selectable/default.html0000644000175000017500000000271412107500070023746 0ustar metalmetal jQuery UI Selectable - Default functionality
  1. Item 1
  2. Item 2
  3. Item 3
  4. Item 4
  5. Item 5
  6. Item 6
  7. Item 7

Enable a DOM element (or group of elements) to be selectable. Draw a box with your cursor to select items. Hold down the Ctrl key to make multiple non-adjacent selections.

jqueryui-1.10.1/development-bundle/demos/datepicker/0000755000175000017500000000000012111026004021433 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/datepicker/localization.html0000644000175000017500000000317412107500066025030 0ustar metalmetal jQuery UI Datepicker - Localize calendar

Date:  

Localize the datepicker calendar language and format (English / Western formatting is the default). The datepicker includes built-in support for languages that read right-to-left, such as Arabic and Hebrew.

jqueryui-1.10.1/development-bundle/demos/datepicker/alt-field.html0000644000175000017500000000206212107500066024174 0ustar metalmetal jQuery UI Datepicker - Populate alternate field

Date:  

Populate an alternate field with its own date format whenever a date is selected using the altField and altFormat options. This feature could be used to present a human-friendly date for user selection, while passing a more computer-friendly date through for further processing.

jqueryui-1.10.1/development-bundle/demos/datepicker/other-months.html0000644000175000017500000000151712107500066024766 0ustar metalmetal jQuery UI Datepicker - Dates in other months

Date:

The datepicker can show dates that come from other than the main month being displayed. These other dates can also be made selectable.

jqueryui-1.10.1/development-bundle/demos/datepicker/jquery.ui.datepicker-fr.js0000644000175000017500000000176012107500066026461 0ustar metalmetal/* French initialisation for the jQuery UI date picker plugin. */ /* Written by Keith Wood (kbwood{at}iinet.com.au), Stéphane Nahmani (sholby@sholby.net), Stéphane Raimbault */ jQuery(function($){ $.datepicker.regional['fr'] = { closeText: 'Fermer', prevText: 'Précédent', nextText: 'Suivant', currentText: 'Aujourd\'hui', monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin', 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'], dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'], dayNamesMin: ['D','L','M','M','J','V','S'], weekHeader: 'Sem.', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fr']); }); jqueryui-1.10.1/development-bundle/demos/datepicker/inline.html0000644000175000017500000000136612107500066023617 0ustar metalmetal jQuery UI Datepicker - Display inline Date:

Display the datepicker embedded in the page instead of in an overlay. Simply call .datepicker() on a div instead of an input.

jqueryui-1.10.1/development-bundle/demos/datepicker/icon-trigger.html0000644000175000017500000000155612107500066024733 0ustar metalmetal jQuery UI Datepicker - Icon trigger

Date:

Click the icon next to the input field to show the datepicker. Set the datepicker to open on focus (default behavior), on icon click, or both.

jqueryui-1.10.1/development-bundle/demos/datepicker/min-max.html0000644000175000017500000000201712107500066023701 0ustar metalmetal jQuery UI Datepicker - Restrict date range

Date:

Restrict the range of selectable dates with the minDate and maxDate options. Set the beginning and end dates as actual dates (new Date(2009, 1 - 1, 26)), as a numeric offset from today (-20), or as a string of periods and units ('+1M +10D'). For the last, use 'D' for days, 'W' for weeks, 'M' for months, or 'Y' for years.

jqueryui-1.10.1/development-bundle/demos/datepicker/jquery.ui.datepicker-he.js0000644000175000017500000000177012107500066026447 0ustar metalmetal/* Hebrew initialisation for the UI Datepicker extension. */ /* Written by Amir Hardon (ahardon at gmail dot com). */ jQuery(function($){ $.datepicker.regional['he'] = { closeText: 'סגור', prevText: '<הקודם', nextText: 'הבא>', currentText: 'היום', monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], monthNamesShort: ['ינו','פבר','מרץ','אפר','מאי','יוני', 'יולי','אוג','ספט','אוק','נוב','דצמ'], dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['he']); }); jqueryui-1.10.1/development-bundle/demos/datepicker/index.html0000644000175000017500000000174312107500066023447 0ustar metalmetal jQuery UI Datepicker Demos jqueryui-1.10.1/development-bundle/demos/datepicker/images/0000755000175000017500000000000012111026004022700 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/datepicker/images/calendar.gif0000644000175000017500000000041512107500066025152 0ustar metalmetalGIF89a9qZ1ise^c\mesl^Yzs[W}wSQ!,e5<Ҿn1q]UEQR=d[nI)*u/8p8kH ]H @w@b~Chff]nprxX^`Gi`G !;jqueryui-1.10.1/development-bundle/demos/datepicker/date-formats.html0000644000175000017500000000253012107500066024721 0ustar metalmetal jQuery UI Datepicker - Format date

Date:

Format options:

Display date feedback in a variety of ways. Choose a date format from the dropdown, then click on the input and select a date to see it in that format.

jqueryui-1.10.1/development-bundle/demos/datepicker/jquery.ui.datepicker-ar.js0000644000175000017500000000242112107500066026447 0ustar metalmetal/* Arabic Translation for jQuery UI date picker plugin. */ /* Khaled Alhourani -- me@khaledalhourani.com */ /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ jQuery(function($){ $.datepicker.regional['ar'] = { closeText: 'إغلاق', prevText: '<السابق', nextText: 'التالي>', currentText: 'اليوم', monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], weekHeader: 'أسبوع', dateFormat: 'dd/mm/yy', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ar']); }); jqueryui-1.10.1/development-bundle/demos/datepicker/multiple-calendars.html0000644000175000017500000000147112107500066026123 0ustar metalmetal jQuery UI Datepicker - Display multiple months

Date:

Set the numberOfMonths option to an integer of 2 or more to show multiple months in a single datepicker.

jqueryui-1.10.1/development-bundle/demos/datepicker/default.html0000644000175000017500000000170012107500066023755 0ustar metalmetal jQuery UI Datepicker - Default functionality

Date:

The datepicker is tied to a standard form input field. Focus on the input (click, or use the tab key) to open an interactive calendar in a small overlay. Choose a date, click elsewhere on the page (blur the input), or hit the Esc key to close. If a date is chosen, feedback is shown as the input's value.

jqueryui-1.10.1/development-bundle/demos/datepicker/buttonbar.html0000644000175000017500000000170012107500066024331 0ustar metalmetal jQuery UI Datepicker - Display button bar

Date:

Display a button for selecting Today's date and a Done button for closing the calendar with the boolean showButtonPanel option. Each button is enabled by default when the bar is displayed, but can be turned off with additional options. Button text is customizable.

jqueryui-1.10.1/development-bundle/demos/datepicker/jquery.ui.datepicker-zh-TW.js0000644000175000017500000000172112107500066027020 0ustar metalmetal/* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Ressol (ressol@gmail.com). */ jQuery(function($){ $.datepicker.regional['zh-TW'] = { closeText: '關閉', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], weekHeader: '周', dateFormat: 'yy/mm/dd', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['zh-TW']); }); jqueryui-1.10.1/development-bundle/demos/datepicker/show-week.html0000644000175000017500000000173312107500066024250 0ustar metalmetal jQuery UI Datepicker - Show week of the year

Date:

The datepicker can show the week of the year. The default calculation follows the ISO 8601 definition: the week starts on Monday, the first week of the year contains the first Thursday of the year. This means that some days from one year may be placed into weeks 'belonging' to another year.

jqueryui-1.10.1/development-bundle/demos/datepicker/animation.html0000644000175000017500000000361712107500066024321 0ustar metalmetal jQuery UI Datepicker - Animations

Date:

Animations:

Use different animations when opening or closing the datepicker. Choose an animation from the dropdown, then click on the input to see its effect. You can use one of the three standard animations or any of the UI Effects.

jqueryui-1.10.1/development-bundle/demos/datepicker/date-range.html0000644000175000017500000000221212107500066024337 0ustar metalmetal jQuery UI Datepicker - Select a Date Range

Select the date range to search for.

jqueryui-1.10.1/development-bundle/demos/datepicker/dropdown-month-year.html0000644000175000017500000000161612107500066026254 0ustar metalmetal jQuery UI Datepicker - Display month & year menus

Date:

Show month and year dropdowns in place of the static month/year header to facilitate navigation through large timeframes. Add the boolean changeMonth and changeYear options.

jqueryui-1.10.1/development-bundle/demos/resizable/0000755000175000017500000000000012111026004021300 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/resizable/constrain-area.html0000644000175000017500000000242312107500070025102 0ustar metalmetal jQuery UI Resizable - Constrain resize area

Containment

Resizable

Define the boundaries of the resizable area. Use the containment option to specify a parent DOM element or a jQuery selector, like 'document.'

jqueryui-1.10.1/development-bundle/demos/resizable/synchronous-resize.html0000644000175000017500000000237012107500070026066 0ustar metalmetal jQuery UI Resizable - Synchronous resize

Resize

will also resize

Resize multiple elements simultaneously by clicking and dragging the sides of one. Pass a shared selector into the alsoResize option.

jqueryui-1.10.1/development-bundle/demos/resizable/index.html0000644000175000017500000000141112107500070023277 0ustar metalmetal jQuery UI Resizable Demos jqueryui-1.10.1/development-bundle/demos/resizable/delay-start.html0000644000175000017500000000253412107500070024430 0ustar metalmetal jQuery UI Resizable - Delay start

Time delay (ms):

Time

Distance delay (px):

Distance

Delay the start of resizng for a number of milliseconds with the delay option; prevent resizing until the cursor is held down and dragged a specifed number of pixels with the distance option.

jqueryui-1.10.1/development-bundle/demos/resizable/max-min.html0000644000175000017500000000220512107500070023540 0ustar metalmetal jQuery UI Resizable - Maximum / minimum size

Resize larger / smaller

Limit the resizable element to a maximum or minimum height or width using the maxHeight, maxWidth, minHeight, and minWidth options.

jqueryui-1.10.1/development-bundle/demos/resizable/visual-feedback.html0000644000175000017500000000207512107500070025224 0ustar metalmetal jQuery UI Resizable - Visual feedback

Ghost

Instead of showing the actual element during resize, set the ghost option to true to show a semi-transparent part of the element.

jqueryui-1.10.1/development-bundle/demos/resizable/aspect-ratio.html0000644000175000017500000000212512107500070024566 0ustar metalmetal jQuery UI Resizable - Preserve aspect ratio

Preserve aspect ratio

Maintain the existing aspect ratio or set a new one to constrain the proportions on resize. Set the aspectRatio option to true, and optionally pass in a new ratio (i.e., 4/3)

jqueryui-1.10.1/development-bundle/demos/resizable/default.html0000644000175000017500000000176412107500070023627 0ustar metalmetal jQuery UI Resizable - Default functionality

Resizable

Enable any DOM element to be resizable. With the cursor grab the right or bottom border and drag to the desired width or height.

jqueryui-1.10.1/development-bundle/demos/resizable/textarea.html0000644000175000017500000000157012107500070024013 0ustar metalmetal jQuery UI Resizable - Textarea

Display only an outline of the element while resizing by setting the helper option to a CSS class.

jqueryui-1.10.1/development-bundle/demos/resizable/animate.html0000644000175000017500000000216112107500070023611 0ustar metalmetal jQuery UI Resizable - Animate

Animate

Animate the resize action using the animate option (boolean). When this option is set to true, drag the outline to the desired location; the element animates to that size on drag stop.

jqueryui-1.10.1/development-bundle/demos/resizable/snap-to-grid.html0000644000175000017500000000177512107500070024511 0ustar metalmetal jQuery UI Resizable - Snap to grid

Grid

Snap the resizable element to a grid. Set the dimensions of grid cells (height and width in pixels) with the grid option.

jqueryui-1.10.1/development-bundle/demos/resizable/helper.html0000644000175000017500000000205112107500070023450 0ustar metalmetal jQuery UI Resizable - Helper

Helper

Display only an outline of the element while resizing by setting the helper option to a CSS class.

jqueryui-1.10.1/development-bundle/demos/tabs/0000755000175000017500000000000012111026004020251 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/tabs/collapsible.html0000644000175000017500000000603012107500070023434 0ustar metalmetal jQuery UI Tabs - Collapse content

Click this tab again to close the content pane.

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Click this tab again to close the content pane.

Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.

Click this tab again to close the content pane.

Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.

Click the selected tab to toggle its content closed/open. To enable this functionality, set the collapsible option to true.

collapsible: true
jqueryui-1.10.1/development-bundle/demos/tabs/index.html0000644000175000017500000000102612107500070022252 0ustar metalmetal jQuery UI Tabs Demos jqueryui-1.10.1/development-bundle/demos/tabs/manipulation.html0000644000175000017500000001022612107500070023645 0ustar metalmetal jQuery UI Tabs - Simple manipulation

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Simple tabs adding and removing.

jqueryui-1.10.1/development-bundle/demos/tabs/bottom.html0000644000175000017500000000764012107500070022457 0ustar metalmetal jQuery UI Tabs - Tabs at bottom

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.

Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.

Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.

With some additional CSS (for positioning) and JS (to put the right classes on elements) the tabs can be placed below their content.

jqueryui-1.10.1/development-bundle/demos/tabs/ajax/0000755000175000017500000000000012111026004021174 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/tabs/ajax/content3-slow.php0000644000175000017500000000422212107500070024431 0ustar metalmetal

This content was loaded via ajax, though it took a second.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec turpis justo, et facilisis ligula. In congue interdum odio, a scelerisque eros posuere ac. Aenean massa tellus, dictum sit amet laoreet ut, aliquam in orci. Duis eu aliquam ligula. Nullam vel placerat ligula. Fusce venenatis viverra dictum. Phasellus dui dolor, imperdiet in sodales at, mattis sed libero. Morbi ac ipsum ligula. Quisque suscipit dui vel diam pretium nec cursus lacus malesuada. Donec sollicitudin, eros eget dignissim mollis, risus leo feugiat tellus, vel posuere nisl ipsum eu erat. Quisque posuere lacinia imperdiet. Quisque nunc leo, elementum quis ultricies et, vehicula sit amet turpis. Nullam sed nunc nec nibh condimentum mattis. Quisque sed ligula sit amet nisi ultricies bibendum eget id nisi.

Proin ut erat vel nunc tincidunt commodo. Curabitur feugiat, nisi et vehicula viverra, nisl orci eleifend arcu, sed blandit lectus nisl quis nisi. In hac habitasse platea dictumst. In hac habitasse platea dictumst. Aenean rutrum gravida velit ac imperdiet. Integer vitae arcu risus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin tincidunt orci at leo egestas porta. Vivamus ac augue et enim bibendum hendrerit ut id urna. Donec sollicitudin pulvinar turpis vitae scelerisque. Etiam tempor porttitor est sed blandit. Phasellus varius consequat leo eget tincidunt. Aliquam ac dui lectus. In et consectetur orci. Duis posuere nulla ac turpis faucibus vestibulum. Sed ut velit et dolor rhoncus dapibus. Sed sit amet pellentesque est.

Nam in volutpat orci. Morbi sit amet orci in erat egestas dignissim. Etiam mi sapien, tempus sed iaculis a, adipiscing quis tellus. Suspendisse potenti. Nam malesuada tristique vestibulum. In tempor tellus dignissim neque consectetur eu vestibulum nisl pellentesque. Phasellus ultrices cursus velit, id aliquam nisl fringilla quis. Cras varius elit sed urna ultrices congue. Sed ornare odio sed velit pellentesque id varius nisl sodales. Sed auctor ligula egestas mi pharetra ut consectetur erat pharetra.

jqueryui-1.10.1/development-bundle/demos/tabs/ajax/content1.html0000644000175000017500000000425312107500070023626 0ustar metalmetal

This content was loaded via ajax.

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Mauris vitae ante. Curabitur augue. Nulla purus nibh, lobortis ut, feugiat at, aliquam id, purus. Sed venenatis, lorem venenatis volutpat commodo, purus quam lacinia justo, mattis interdum pede pede a odio. Fusce nibh. Morbi nisl mauris, dapibus in, tristique eget, accumsan et, pede. Donec mauris risus, pulvinar ut, faucibus eu, mollis in, nunc. In augue massa, commodo a, cursus vehicula, varius eu, dui. Suspendisse sodales suscipit lorem. Morbi malesuada, eros quis condimentum dignissim, lectus nibh tristique urna, non bibendum diam massa vel risus. Morbi suscipit. Proin egestas, eros at scelerisque scelerisque, dolor lacus fringilla lacus, ut ullamcorper mi magna at quam. Aliquam sed elit. Aliquam turpis purus, congue quis, iaculis id, ullamcorper sit amet, justo. Maecenas sed mauris. Proin magna justo, interdum in, tincidunt eu, viverra eu, turpis. Suspendisse mollis. In magna. Phasellus pellentesque, urna pellentesque convallis pellentesque, augue sem blandit pede, at rhoncus libero nisl a odio.

Sed vitae nibh non magna semper tempor. Duis dolor. Nam congue laoreet arcu. Fusce lobortis enim quis ligula. Maecenas commodo odio id mi. Maecenas scelerisque tellus eu odio. Etiam dolor purus, lacinia a, imperdiet in, aliquam et, eros. In pellentesque. Nullam ac massa. Integer et turpis. Ut quam augue, congue non, imperdiet id, eleifend ac, nisi. Etiam ac arcu. Cras iaculis accumsan erat. Nullam vulputate sapien nec nisi pretium rhoncus. Aliquam a nibh. Vivamus est ante, fermentum a, tincidunt ut, imperdiet nec, velit. Aenean non tortor. Sed nec mauris eget tellus condimentum rutrum.

jqueryui-1.10.1/development-bundle/demos/tabs/ajax/content2.html0000644000175000017500000000415412107500070023627 0ustar metalmetal

This other content was loaded via ajax.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean nec turpis justo, et facilisis ligula. In congue interdum odio, a scelerisque eros posuere ac. Aenean massa tellus, dictum sit amet laoreet ut, aliquam in orci. Duis eu aliquam ligula. Nullam vel placerat ligula. Fusce venenatis viverra dictum. Phasellus dui dolor, imperdiet in sodales at, mattis sed libero. Morbi ac ipsum ligula. Quisque suscipit dui vel diam pretium nec cursus lacus malesuada. Donec sollicitudin, eros eget dignissim mollis, risus leo feugiat tellus, vel posuere nisl ipsum eu erat. Quisque posuere lacinia imperdiet. Quisque nunc leo, elementum quis ultricies et, vehicula sit amet turpis. Nullam sed nunc nec nibh condimentum mattis. Quisque sed ligula sit amet nisi ultricies bibendum eget id nisi.

Proin ut erat vel nunc tincidunt commodo. Curabitur feugiat, nisi et vehicula viverra, nisl orci eleifend arcu, sed blandit lectus nisl quis nisi. In hac habitasse platea dictumst. In hac habitasse platea dictumst. Aenean rutrum gravida velit ac imperdiet. Integer vitae arcu risus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin tincidunt orci at leo egestas porta. Vivamus ac augue et enim bibendum hendrerit ut id urna. Donec sollicitudin pulvinar turpis vitae scelerisque. Etiam tempor porttitor est sed blandit. Phasellus varius consequat leo eget tincidunt. Aliquam ac dui lectus. In et consectetur orci. Duis posuere nulla ac turpis faucibus vestibulum. Sed ut velit et dolor rhoncus dapibus. Sed sit amet pellentesque est.

Nam in volutpat orci. Morbi sit amet orci in erat egestas dignissim. Etiam mi sapien, tempus sed iaculis a, adipiscing quis tellus. Suspendisse potenti. Nam malesuada tristique vestibulum. In tempor tellus dignissim neque consectetur eu vestibulum nisl pellentesque. Phasellus ultrices cursus velit, id aliquam nisl fringilla quis. Cras varius elit sed urna ultrices congue. Sed ornare odio sed velit pellentesque id varius nisl sodales. Sed auctor ligula egestas mi pharetra ut consectetur erat pharetra.

jqueryui-1.10.1/development-bundle/demos/tabs/ajax/content4-broken.php0000644000175000017500000000005312107500070024724 0ustar metalmetaljqueryui-1.10.1/development-bundle/demos/tabs/ajax.html0000644000175000017500000000410112107500070022063 0ustar metalmetal jQuery UI Tabs - Content via Ajax

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Fetch external content via Ajax for the tabs by setting an href value in the tab links. While the Ajax request is waiting for a response, the tab label changes to say "Loading...", then returns to the normal label once loaded.

Tabs 3 and 4 demonstrate slow-loading and broken AJAX tabs, and how to handle serverside errors in those cases. Note: These two require a webserver to interpret PHP. They won't work from the filesystem.

jqueryui-1.10.1/development-bundle/demos/tabs/default.html0000644000175000017500000000621512107500070022574 0ustar metalmetal jQuery UI Tabs - Default functionality

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.

Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.

Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.

Click tabs to swap between content that is broken into logical sections.

jqueryui-1.10.1/development-bundle/demos/tabs/sortable.html0000644000175000017500000000670012107500070022762 0ustar metalmetal jQuery UI Tabs - Sortable

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.

Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.

Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.

Drag the tabs above to re-order them.

Making tabs sortable is as simple as calling .sortable() on the .ui-tabs-nav element.

jqueryui-1.10.1/development-bundle/demos/tabs/vertical.html0000644000175000017500000000766312107500070022771 0ustar metalmetal jQuery UI Tabs - Vertical Tabs functionality

Content heading 1

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Content heading 2

Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.

Content heading 3

Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.

Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.

Click tabs to swap between content that is broken into logical sections.

jqueryui-1.10.1/development-bundle/demos/tabs/mouseover.html0000644000175000017500000000632012107500070023171 0ustar metalmetal jQuery UI Tabs - Open on mouseover

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.

Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.

Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.

Toggle sections open/closed on mouseover with the event option. The default value for event is "click."

jqueryui-1.10.1/development-bundle/demos/widget/0000755000175000017500000000000012111026004020603 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/widget/index.html0000644000175000017500000000031512107500070022604 0ustar metalmetal jQuery UI Widget Demo jqueryui-1.10.1/development-bundle/demos/widget/default.html0000644000175000017500000001124412107500070023124 0ustar metalmetal jQuery UI Widget - Default functionality
color me
color me
color me

This demo shows a simple custom widget built using the widget factory (jquery.ui.widget.js).

The three boxes are initialized in different ways. Clicking them changes their background color. View source to see how it works, its heavily commented

jqueryui-1.10.1/development-bundle/demos/button/0000755000175000017500000000000012111026004020633 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/button/checkbox.html0000644000175000017500000000231612107500066023323 0ustar metalmetal jQuery UI Button - Checkboxes

A checkbox is styled as a toggle button with the button widget. The label element associated with the checkbox is used for the button text.

This demo also demonstrates three checkboxes styled as a button set by calling .buttonset() on a common container.

jqueryui-1.10.1/development-bundle/demos/button/index.html0000644000175000017500000000066512107500066022651 0ustar metalmetal jQuery UI Button Demos jqueryui-1.10.1/development-bundle/demos/button/icons.html0000644000175000017500000000222412107500066022646 0ustar metalmetal jQuery UI Button - Icons

Some buttons with various combinations of text and icons.

jqueryui-1.10.1/development-bundle/demos/button/default.html0000644000175000017500000000160012107500066023154 0ustar metalmetal jQuery UI Button - Default functionality An anchor

Examples of the markup that can be used for buttons: A button element, an input of type submit and an anchor.

jqueryui-1.10.1/development-bundle/demos/button/toolbar.html0000644000175000017500000000515012107500066023176 0ustar metalmetal jQuery UI Button - Toolbar

A mediaplayer toolbar. Take a look at the underlying markup: A few button elements, an input of type checkbox for the Shuffle button, and three inputs of type radio for the Repeat options.

jqueryui-1.10.1/development-bundle/demos/button/radio.html0000644000175000017500000000167012107500066022635 0ustar metalmetal jQuery UI Button - Radios

A set of three radio buttons transformed into a button set.

jqueryui-1.10.1/development-bundle/demos/button/splitbutton.html0000644000175000017500000000317612107500066024131 0ustar metalmetal jQuery UI Button - Split button

An example of a split button built with two buttons: A plain button with just text, one with only a primary icon and no text. Both are grouped together in a set.

jqueryui-1.10.1/development-bundle/demos/spinner/0000755000175000017500000000000012111026004020776 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/spinner/time.html0000644000175000017500000000366612107500070022642 0ustar metalmetal jQuery UI Spinner - Time

A custom widget extending spinner. Use the Globalization plugin to parse and output a timestamp, with custom step and page options. Cursor up/down spins minutes, page up/down spins hours.

jqueryui-1.10.1/development-bundle/demos/spinner/index.html0000644000175000017500000000065212107500070023003 0ustar metalmetal jQuery UI Spinner Demos jqueryui-1.10.1/development-bundle/demos/spinner/latlong.html0000644000175000017500000000262712107500070023340 0ustar metalmetal jQuery UI Spinner - Map

Google Maps integration, using spinners to change latidude and longitude.

jqueryui-1.10.1/development-bundle/demos/spinner/overflow.html0000644000175000017500000000216712107500070023542 0ustar metalmetal jQuery UI Spinner - Overflow

Overflowing spinner restricted to a range of -10 to 10. For anything above 10, it'll overflow to -10, and the other way round.

jqueryui-1.10.1/development-bundle/demos/spinner/decimal.html0000644000175000017500000000326212107500070023272 0ustar metalmetal jQuery UI Spinner - Decimal

Example of a decimal spinner. Step is set to 0.01.
The code handling the culture change reads the current spinner value, then changes the culture, then sets the value again, resulting in an updated formatting, based on the new culture.

jqueryui-1.10.1/development-bundle/demos/spinner/default.html0000644000175000017500000000303212107500070023313 0ustar metalmetal jQuery UI Spinner - Default functionality

Default spinner.

jqueryui-1.10.1/development-bundle/demos/spinner/currency.html0000644000175000017500000000271012107500070023523 0ustar metalmetal jQuery UI Spinner - Currency

Example of a donation form, with currency selection and amount spinner.

jqueryui-1.10.1/development-bundle/demos/autocomplete/0000755000175000017500000000000012111026004022021 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/autocomplete/combobox.html0000644000175000017500000001424512107500066024537 0ustar metalmetal jQuery UI Autocomplete - Combobox

A custom widget built by composition of Autocomplete and Button. You can either type something into the field to get filtered suggestions based on your input, or use the button to get the full list of selections.

The input is read from an existing select-element for progressive enhancement, passed to Autocomplete with a customized source-option.

This is not a supported or even complete widget. Its purely for demoing what autocomplete can do with a bit of customization. For a detailed explanation of how the widget works, check out this Learning jQuery article.

jqueryui-1.10.1/development-bundle/demos/autocomplete/custom-data.html0000644000175000017500000000456412107500066025153 0ustar metalmetal jQuery UI Autocomplete - Custom data and display
Select a project (type "j" for a start):

You can use your own custom data formats and displays by simply overriding the default focus and select actions.

Try typing "j" to get a list of projects or just press the down arrow.

jqueryui-1.10.1/development-bundle/demos/autocomplete/multiple-remote.html0000644000175000017500000000442412107500066026051 0ustar metalmetal jQuery UI Autocomplete - Multiple, remote

Usage: Enter at least two characters to get bird name suggestions. Select a value to continue adding more names.

This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field.

jqueryui-1.10.1/development-bundle/demos/autocomplete/search.php0000644000175000017500000005610312107500066024016 0ustar metalmetal"Botaurus stellaris", "Little Grebe"=>"Tachybaptus ruficollis", "Black-necked Grebe"=>"Podiceps nigricollis", "Little Bittern"=>"Ixobrychus minutus", "Black-crowned Night Heron"=>"Nycticorax nycticorax", "Purple Heron"=>"Ardea purpurea", "White Stork"=>"Ciconia ciconia", "Spoonbill"=>"Platalea leucorodia", "Red-crested Pochard"=>"Netta rufina", "Common Eider"=>"Somateria mollissima", "Red Kite"=>"Milvus milvus", "Hen Harrier"=>"Circus cyaneus", "Montagu`s Harrier"=>"Circus pygargus", "Black Grouse"=>"Tetrao tetrix", "Grey Partridge"=>"Perdix perdix", "Spotted Crake"=>"Porzana porzana", "Corncrake"=>"Crex crex", "Common Crane"=>"Grus grus", "Avocet"=>"Recurvirostra avosetta", "Stone Curlew"=>"Burhinus oedicnemus", "Common Ringed Plover"=>"Charadrius hiaticula", "Kentish Plover"=>"Charadrius alexandrinus", "Ruff"=>"Philomachus pugnax", "Common Snipe"=>"Gallinago gallinago", "Black-tailed Godwit"=>"Limosa limosa", "Common Redshank"=>"Tringa totanus", "Sandwich Tern"=>"Sterna sandvicensis", "Common Tern"=>"Sterna hirundo", "Arctic Tern"=>"Sterna paradisaea", "Little Tern"=>"Sternula albifrons", "Black Tern"=>"Chlidonias niger", "Barn Owl"=>"Tyto alba", "Little Owl"=>"Athene noctua", "Short-eared Owl"=>"Asio flammeus", "European Nightjar"=>"Caprimulgus europaeus", "Common Kingfisher"=>"Alcedo atthis", "Eurasian Hoopoe"=>"Upupa epops", "Eurasian Wryneck"=>"Jynx torquilla", "European Green Woodpecker"=>"Picus viridis", "Crested Lark"=>"Galerida cristata", "White-headed Duck"=>"Oxyura leucocephala", "Pale-bellied Brent Goose"=>"Branta hrota", "Tawny Pipit"=>"Anthus campestris", "Whinchat"=>"Saxicola rubetra", "European Stonechat"=>"Saxicola rubicola", "Northern Wheatear"=>"Oenanthe oenanthe", "Savi`s Warbler"=>"Locustella luscinioides", "Sedge Warbler"=>"Acrocephalus schoenobaenus", "Great Reed Warbler"=>"Acrocephalus arundinaceus", "Bearded Reedling"=>"Panurus biarmicus", "Red-backed Shrike"=>"Lanius collurio", "Great Grey Shrike"=>"Lanius excubitor", "Woodchat Shrike"=>"Lanius senator", "Common Raven"=>"Corvus corax", "Yellowhammer"=>"Emberiza citrinella", "Ortolan Bunting"=>"Emberiza hortulana", "Corn Bunting"=>"Emberiza calandra", "Great Cormorant"=>"Phalacrocorax carbo", "Hawfinch"=>"Coccothraustes coccothraustes", "Common Shelduck"=>"Tadorna tadorna", "Bluethroat"=>"Luscinia svecica", "Grey Heron"=>"Ardea cinerea", "Barn Swallow"=>"Hirundo rustica", "Hooded Crow"=>"Corvus cornix", "Dunlin"=>"Calidris alpina", "Eurasian Pied Flycatcher"=>"Ficedula hypoleuca", "Eurasian Nuthatch"=>"Sitta europaea", "Short-toed Tree Creeper"=>"Certhia brachydactyla", "Wood Lark"=>"Lullula arborea", "Tree Pipit"=>"Anthus trivialis", "Eurasian Hobby"=>"Falco subbuteo", "Marsh Warbler"=>"Acrocephalus palustris", "Wood Sandpiper"=>"Tringa glareola", "Tawny Owl"=>"Strix aluco", "Lesser Whitethroat"=>"Sylvia curruca", "Barnacle Goose"=>"Branta leucopsis", "Common Goldeneye"=>"Bucephala clangula", "Western Marsh Harrier"=>"Circus aeruginosus", "Common Buzzard"=>"Buteo buteo", "Sanderling"=>"Calidris alba", "Little Gull"=>"Larus minutus", "Eurasian Magpie"=>"Pica pica", "Willow Warbler"=>"Phylloscopus trochilus", "Wood Warbler"=>"Phylloscopus sibilatrix", "Great Crested Grebe"=>"Podiceps cristatus", "Eurasian Jay"=>"Garrulus glandarius", "Common Redstart"=>"Phoenicurus phoenicurus", "Blue-headed Wagtail"=>"Motacilla flava", "Common Swift"=>"Apus apus", "Marsh Tit"=>"Poecile palustris", "Goldcrest"=>"Regulus regulus", "European Golden Plover"=>"Pluvialis apricaria", "Eurasian Bullfinch"=>"Pyrrhula pyrrhula", "Common Whitethroat"=>"Sylvia communis", "Meadow Pipit"=>"Anthus pratensis", "Greylag Goose"=>"Anser anser", "Spotted Flycatcher"=>"Muscicapa striata", "European Greenfinch"=>"Carduelis chloris", "Common Greenshank"=>"Tringa nebularia", "Great Spotted Woodpecker"=>"Dendrocopos major", "Greater Canada Goose"=>"Branta canadensis", "Mistle Thrush"=>"Turdus viscivorus", "Great Black-backed Gull"=>"Larus marinus", "Goosander"=>"Mergus merganser", "Great Egret"=>"Casmerodius albus", "Northern Goshawk"=>"Accipiter gentilis", "Dunnock"=>"Prunella modularis", "Stock Dove"=>"Columba oenas", "Common Wood Pigeon"=>"Columba palumbus", "Eurasian Woodcock"=>"Scolopax rusticola", "House Sparrow"=>"Passer domesticus", "Common House Martin"=>"Delichon urbicum", "Red Knot"=>"Calidris canutus", "Western Jackdaw"=>"Corvus monedula", "Brambling"=>"Fringilla montifringilla", "Northern Lapwing"=>"Vanellus vanellus", "European Reed Warbler"=>"Acrocephalus scirpaceus", "Lesser Black-backed Gull"=>"Larus fuscus", "Little Egret"=>"Egretta garzetta", "Little Stint"=>"Calidris minuta", "Common Linnet"=>"Carduelis cannabina", "Mute Swan"=>"Cygnus olor", "Common Cuckoo"=>"Cuculus canorus", "Black-headed Gull"=>"Larus ridibundus", "Greater White-fronted Goose"=>"Anser albifrons", "Great Tit"=>"Parus major", "Redwing"=>"Turdus iliacus", "Gadwall"=>"Anas strepera", "Fieldfare"=>"Turdus pilaris", "Tufted Duck"=>"Aythya fuligula", "Crested Tit"=>"Lophophanes cristatus", "Willow Tit"=>"Poecile montanus", "Eurasian Coot"=>"Fulica atra", "Common Blackbird"=>"Turdus merula", "Smew"=>"Mergus albellus", "Common Sandpiper"=>"Actitis hypoleucos", "Sand Martin"=>"Riparia riparia", "Purple Sandpiper"=>"Calidris maritima", "Northern Pintail"=>"Anas acuta", "Blue Tit"=>"Cyanistes caeruleus", "European Goldfinch"=>"Carduelis carduelis", "Eurasian Whimbrel"=>"Numenius phaeopus", "Common Reed Bunting"=>"Emberiza schoeniclus", "Eurasian Tree Sparrow"=>"Passer montanus", "Rook"=>"Corvus frugilegus", "European Robin"=>"Erithacus rubecula", "Bar-tailed Godwit"=>"Limosa lapponica", "Dark-bellied Brent Goose"=>"Branta bernicla", "Eurasian Oystercatcher"=>"Haematopus ostralegus", "Eurasian Siskin"=>"Carduelis spinus", "Northern Shoveler"=>"Anas clypeata", "Eurasian Wigeon"=>"Anas penelope", "Eurasian Sparrow Hawk"=>"Accipiter nisus", "Icterine Warbler"=>"Hippolais icterina", "Common Starling"=>"Sturnus vulgaris", "Long-tailed Tit"=>"Aegithalos caudatus", "Ruddy Turnstone"=>"Arenaria interpres", "Mew Gull"=>"Larus canus", "Common Pochard"=>"Aythya ferina", "Common Chiffchaff"=>"Phylloscopus collybita", "Greater Scaup"=>"Aythya marila", "Common Kestrel"=>"Falco tinnunculus", "Garden Warbler"=>"Sylvia borin", "Eurasian Collared Dove"=>"Streptopelia decaocto", "Eurasian Skylark"=>"Alauda arvensis", "Common Chaffinch"=>"Fringilla coelebs", "Common Moorhen"=>"Gallinula chloropus", "Water Pipit"=>"Anthus spinoletta", "Mallard"=>"Anas platyrhynchos", "Winter Wren"=>"Troglodytes troglodytes", "Common Teal"=>"Anas crecca", "Green Sandpiper"=>"Tringa ochropus", "White Wagtail"=>"Motacilla alba", "Eurasian Curlew"=>"Numenius arquata", "Song Thrush"=>"Turdus philomelos", "European Herring Gull"=>"Larus argentatus", "Grey Plover"=>"Pluvialis squatarola", "Carrion Crow"=>"Corvus corone", "Coal Tit"=>"Periparus ater", "Spotted Redshank"=>"Tringa erythropus", "Blackcap"=>"Sylvia atricapilla", "Egyptian Vulture"=>"Neophron percnopterus", "Razorbill"=>"Alca torda", "Alpine Swift"=>"Apus melba", "Long-legged Buzzard"=>"Buteo rufinus", "Audouin`s Gull"=>"Larus audouinii", "Balearic Shearwater"=>"Puffinus mauretanicus", "Upland Sandpiper"=>"Bartramia longicauda", "Greater Spotted Eagle"=>"Aquila clanga", "Ring Ouzel"=>"Turdus torquatus", "Yellow-browed Warbler"=>"Phylloscopus inornatus", "Blue Rock Thrush"=>"Monticola solitarius", "Buff-breasted Sandpiper"=>"Tryngites subruficollis", "Jack Snipe"=>"Lymnocryptes minimus", "White-rumped Sandpiper"=>"Calidris fuscicollis", "Ruddy Shelduck"=>"Tadorna ferruginea", "Cetti's Warbler"=>"Cettia cetti", "Citrine Wagtail"=>"Motacilla citreola", "Roseate Tern"=>"Sterna dougallii", "Black-legged Kittiwake"=>"Rissa tridactyla", "Pygmy Cormorant"=>"Phalacrocorax pygmeus", "Booted Eagle"=>"Aquila pennata", "Lesser White-fronted Goose"=>"Anser erythropus", "Little Bunting"=>"Emberiza pusilla", "Eleonora's Falcon"=>"Falco eleonorae", "European Serin"=>"Serinus serinus", "Twite"=>"Carduelis flavirostris", "Yellow-legged Gull"=>"Larus michahellis", "Gyr Falcon"=>"Falco rusticolus", "Greenish Warbler"=>"Phylloscopus trochiloides", "Red-necked Phalarope"=>"Phalaropus lobatus", "Mealy Redpoll"=>"Carduelis flammea", "Glaucous Gull"=>"Larus hyperboreus", "Great Skua"=>"Stercorarius skua", "Great Bustard"=>"Otis tarda", "Velvet Scoter"=>"Melanitta fusca", "Pine Grosbeak"=>"Pinicola enucleator", "House Crow"=>"Corvus splendens", "Hume`s Leaf Warbler"=>"Phylloscopus humei", "Great Northern Loon"=>"Gavia immer", "Long-tailed Duck"=>"Clangula hyemalis", "Lapland Longspur"=>"Calcarius lapponicus", "Northern Gannet"=>"Morus bassanus", "Eastern Imperial Eagle"=>"Aquila heliaca", "Little Auk"=>"Alle alle", "Lesser Spotted Woodpecker"=>"Dendrocopos minor", "Iceland Gull"=>"Larus glaucoides", "Parasitic Jaeger"=>"Stercorarius parasiticus", "Bewick`s Swan"=>"Cygnus bewickii", "Little Bustard"=>"Tetrax tetrax", "Little Crake"=>"Porzana parva", "Baillon`s Crake"=>"Porzana pusilla", "Long-tailed Jaeger"=>"Stercorarius longicaudus", "King Eider"=>"Somateria spectabilis", "Greater Short-toed Lark"=>"Calandrella brachydactyla", "Houbara Bustard"=>"Chlamydotis undulata", "Curlew Sandpiper"=>"Calidris ferruginea", "Common Crossbill"=>"Loxia curvirostra", "European Shag"=>"Phalacrocorax aristotelis", "Horned Grebe"=>"Podiceps auritus", "Common Quail"=>"Coturnix coturnix", "Bearded Vulture"=>"Gypaetus barbatus", "Lanner Falcon"=>"Falco biarmicus", "Middle Spotted Woodpecker"=>"Dendrocopos medius", "Pomarine Jaeger"=>"Stercorarius pomarinus", "Red-breasted Merganser"=>"Mergus serrator", "Eurasian Black Vulture"=>"Aegypius monachus", "Eurasian Dotterel"=>"Charadrius morinellus", "Common Nightingale"=>"Luscinia megarhynchos", "Northern willow warbler"=>"Phylloscopus trochilus acredula", "Manx Shearwater"=>"Puffinus puffinus", "Northern Fulmar"=>"Fulmarus glacialis", "Eurasian Eagle Owl"=>"Bubo bubo", "Orphean Warbler"=>"Sylvia hortensis", "Melodious Warbler"=>"Hippolais polyglotta", "Pallas's Leaf Warbler"=>"Phylloscopus proregulus", "Atlantic Puffin"=>"Fratercula arctica", "Black-throated Loon"=>"Gavia arctica", "Bohemian Waxwing"=>"Bombycilla garrulus", "Marsh Sandpiper"=>"Tringa stagnatilis", "Great Snipe"=>"Gallinago media", "Squacco Heron"=>"Ardeola ralloides", "Long-eared Owl"=>"Asio otus", "Caspian Tern"=>"Hydroprogne caspia", "Red-breasted Goose"=>"Branta ruficollis", "Red-throated Loon"=>"Gavia stellata", "Common Rosefinch"=>"Carpodacus erythrinus", "Red-footed Falcon"=>"Falco vespertinus", "Ross's Goose"=>"Anser rossii", "Red Phalarope"=>"Phalaropus fulicarius", "Pied Wagtail"=>"Motacilla yarrellii", "Rose-coloured Starling"=>"Sturnus roseus", "Rough-legged Buzzard"=>"Buteo lagopus", "Saker Falcon"=>"Falco cherrug", "European Roller"=>"Coracias garrulus", "Short-toed Eagle"=>"Circaetus gallicus", "Peregrine Falcon"=>"Falco peregrinus", "Merlin"=>"Falco columbarius", "Snow Goose"=>"Anser caerulescens", "Snowy Owl"=>"Bubo scandiacus", "Snow Bunting"=>"Plectrophenax nivalis", "Common Grasshopper Warbler"=>"Locustella naevia", "Golden Eagle"=>"Aquila chrysaetos", "Black-winged Stilt"=>"Himantopus himantopus", "Steppe Eagle"=>"Aquila nipalensis", "Pallid Harrier"=>"Circus macrourus", "European Storm-petrel"=>"Hydrobates pelagicus", "Horned Lark"=>"Eremophila alpestris", "Eurasian Treecreeper"=>"Certhia familiaris", "Taiga Bean Goose"=>"Anser fabalis", "Temminck`s Stint"=>"Calidris temminckii", "Terek Sandpiper"=>"Xenus cinereus", "Tundra Bean Goose"=>"Anser serrirostris", "European Turtle Dove"=>"Streptopelia turtur", "Leach`s Storm-petrel"=>"Oceanodroma leucorhoa", "Eurasian Griffon Vulture"=>"Gyps fulvus", "Paddyfield Warbler"=>"Acrocephalus agricola", "Osprey"=>"Pandion haliaetus", "Firecrest"=>"Regulus ignicapilla", "Water Rail"=>"Rallus aquaticus", "European Honey Buzzard"=>"Pernis apivorus", "Eurasian Golden Oriole"=>"Oriolus oriolus", "Whooper Swan"=>"Cygnus cygnus", "Two-barred Crossbill"=>"Loxia leucoptera", "White-tailed Eagle"=>"Haliaeetus albicilla", "Atlantic Murre"=>"Uria aalge", "Garganey"=>"Anas querquedula", "Black Redstart"=>"Phoenicurus ochruros", "Common Scoter"=>"Melanitta nigra", "Rock Pipit"=>"Anthus petrosus", "Lesser Spotted Eagle"=>"Aquila pomarina", "Cattle Egret"=>"Bubulcus ibis", "White-winged Black Tern"=>"Chlidonias leucopterus", "Black Stork"=>"Ciconia nigra", "Mediterranean Gull"=>"Larus melanocephalus", "Black Kite"=>"Milvus migrans", "Yellow Wagtail"=>"Motacilla flavissima", "Red-necked Grebe"=>"Podiceps grisegena", "Gull-billed Tern"=>"Gelochelidon nilotica", "Pectoral Sandpiper"=>"Calidris melanotos", "Barred Warbler"=>"Sylvia nisoria", "Red-throated Pipit"=>"Anthus cervinus", "Grey Wagtail"=>"Motacilla cinerea", "Richard`s Pipit"=>"Anthus richardi", "Black Woodpecker"=>"Dryocopus martius", "Little Ringed Plover"=>"Charadrius dubius", "Whiskered Tern"=>"Chlidonias hybrida", "Lesser Redpoll"=>"Carduelis cabaret", "Pallas' Bunting"=>"Emberiza pallasi", "Ferruginous Duck"=>"Aythya nyroca", "Whistling Swan"=>"Cygnus columbianus", "Black Brant"=>"Branta nigricans", "Marbled Teal"=>"Marmaronetta angustirostris", "Canvasback"=>"Aythya valisineria", "Redhead"=>"Aythya americana", "Lesser Scaup"=>"Aythya affinis", "Steller`s Eider"=>"Polysticta stelleri", "Spectacled Eider"=>"Somateria fischeri", "Harlequin Duck"=>"Histronicus histrionicus", "Black Scoter"=>"Melanitta americana", "Surf Scoter"=>"Melanitta perspicillata", "Barrow`s Goldeneye"=>"Bucephala islandica", "Falcated Duck"=>"Anas falcata", "American Wigeon"=>"Anas americana", "Blue-winged Teal"=>"Anas discors", "American Black Duck"=>"Anas rubripes", "Baikal Teal"=>"Anas formosa", "Green-Winged Teal"=>"Anas carolinensis", "Hazel Grouse"=>"Bonasa bonasia", "Rock Partridge"=>"Alectoris graeca", "Red-legged Partridge"=>"Alectoris rufa", "Yellow-billed Loon"=>"Gavia adamsii", "Cory`s Shearwater"=>"Calonectris borealis", "Madeiran Storm-Petrel"=>"Oceanodroma castro", "Great White Pelican"=>"Pelecanus onocrotalus", "Dalmatian Pelican"=>"Pelecanus crispus", "American Bittern"=>"Botaurus lentiginosus", "Glossy Ibis"=>"Plegadis falcinellus", "Spanish Imperial Eagle"=>"Aquila adalberti", "Lesser Kestrel"=>"Falco naumanni", "Houbara Bustard"=>"Chlamydotis undulata", "Crab-Plover"=>"Dromas ardeola", "Cream-coloured Courser"=>"Cursorius cursor", "Collared Pratincole"=>"Glareola pratincola", "Black-winged Pratincole"=>"Glareola nordmanni", "Killdeer"=>"Charadrius vociferus", "Lesser Sand Plover"=>"Charadrius mongolus", "Greater Sand Plover"=>"Charadrius leschenaultii", "Caspian Plover"=>"Charadrius asiaticus", "American Golden Plover"=>"Pluvialis dominica", "Pacific Golden Plover"=>"Pluvialis fulva", "Sharp-tailed Sandpiper"=>"Calidris acuminata", "Broad-billed Sandpiper"=>"Limicola falcinellus", "Spoon-Billed Sandpiper"=>"Eurynorhynchus pygmaeus", "Short-Billed Dowitcher"=>"Limnodromus griseus", "Long-billed Dowitcher"=>"Limnodromus scolopaceus", "Hudsonian Godwit"=>"Limosa haemastica", "Little Curlew"=>"Numenius minutus", "Lesser Yellowlegs"=>"Tringa flavipes", "Wilson`s Phalarope"=>"Phalaropus tricolor", "Pallas`s Gull"=>"Larus ichthyaetus", "Laughing Gull"=>"Larus atricilla", "Franklin`s Gull"=>"Larus pipixcan", "Bonaparte`s Gull"=>"Larus philadelphia", "Ring-billed Gull"=>"Larus delawarensis", "American Herring Gull"=>"Larus smithsonianus", "Caspian Gull"=>"Larus cachinnans", "Ivory Gull"=>"Pagophila eburnea", "Royal Tern"=>"Sterna maxima", "Brünnich`s Murre"=>"Uria lomvia", "Crested Auklet"=>"Aethia cristatella", "Parakeet Auklet"=>"Cyclorrhynchus psittacula", "Tufted Puffin"=>"Lunda cirrhata", "Laughing Dove"=>"Streptopelia senegalensis", "Great Spotted Cuckoo"=>"Clamator glandarius", "Great Grey Owl"=>"Strix nebulosa", "Tengmalm`s Owl"=>"Aegolius funereus", "Red-Necked Nightjar"=>"Caprimulgus ruficollis", "Chimney Swift"=>"Chaetura pelagica", "Green Bea-Eater"=>"Merops orientalis", "Grey-headed Woodpecker"=>"Picus canus", "Lesser Short-Toed Lark"=>"Calandrella rufescens", "Eurasian Crag Martin"=>"Hirundo rupestris", "Red-rumped Swallow"=>"Cecropis daurica", "Blyth`s Pipit"=>"Anthus godlewskii", "Pechora Pipit"=>"Anthus gustavi", "Grey-headed Wagtail"=>"Motacilla thunbergi", "Yellow-Headed Wagtail"=>"Motacilla lutea", "White-throated Dipper"=>"Cinclus cinclus", "Rufous-Tailed Scrub Robin"=>"Cercotrichas galactotes", "Thrush Nightingale"=>"Luscinia luscinia", "White-throated Robin"=>"Irania gutturalis", "Caspian Stonechat"=>"Saxicola maura variegata", "Western Black-eared Wheatear"=>"Oenanthe hispanica", "Rufous-tailed Rock Thrush"=>"Monticola saxatilis", "Red-throated Thrush/Black-throated"=>"Turdus ruficollis", "American Robin"=>"Turdus migratorius", "Zitting Cisticola"=>"Cisticola juncidis", "Lanceolated Warbler"=>"Locustella lanceolata", "River Warbler"=>"Locustella fluviatilis", "Blyth`s Reed Warbler"=>"Acrocephalus dumetorum", "Caspian Reed Warbler"=>"Acrocephalus fuscus", "Aquatic Warbler"=>"Acrocephalus paludicola", "Booted Warbler"=>"Acrocephalus caligatus", "Marmora's Warbler"=>"Sylvia sarda", "Dartford Warbler"=>"Sylvia undata", "Subalpine Warbler"=>"Sylvia cantillans", "Ménétries's Warbler"=>"Sylvia mystacea", "Rüppel's Warbler"=>"Sylvia rueppelli", "Asian Desert Warbler"=>"Sylvia nana", "Western Orphean Warbler"=>"Sylvia hortensis hortensis", "Arctic Warbler"=>"Phylloscopus borealis", "Radde`s Warbler"=>"Phylloscopus schwarzi", "Western Bonelli`s Warbler"=>"Phylloscopus bonelli", "Red-breasted Flycatcher"=>"Ficedula parva", "Eurasian Penduline Tit"=>"Remiz pendulinus", "Daurian Shrike"=>"Lanius isabellinus", "Long-Tailed Shrike"=>"Lanius schach", "Lesser Grey Shrike"=>"Lanius minor", "Southern Grey Shrike"=>"Lanius meridionalis", "Masked Shrike"=>"Lanius nubicus", "Spotted Nutcracker"=>"Nucifraga caryocatactes", "Daurian Jackdaw"=>"Corvus dauuricus", "Purple-Backed Starling"=>"Sturnus sturninus", "Red-Fronted Serin"=>"Serinus pusillus", "Arctic Redpoll"=>"Carduelis hornemanni", "Scottish Crossbill"=>"Loxia scotica", "Parrot Crossbill"=>"Loxia pytyopsittacus", "Black-faced Bunting"=>"Emberiza spodocephala", "Pink-footed Goose"=>"Anser brachyrhynchus", "Black-winged Kite"=>"Elanus caeruleus", "European Bee-eater"=>"Merops apiaster", "Sabine`s Gull"=>"Larus sabini", "Sooty Shearwater"=>"Puffinus griseus", "Lesser Canada Goose"=>"Branta hutchinsii", "Ring-necked Duck"=>"Aythya collaris", "Greater Flamingo"=>"Phoenicopterus roseus", "Iberian Chiffchaff"=>"Phylloscopus ibericus", "Ashy-headed Wagtail"=>"Motacilla cinereocapilla", "Stilt Sandpiper"=>"Calidris himantopus", "Siberian Stonechat"=>"Saxicola maurus", "Greater Yellowlegs"=>"Tringa melanoleuca", "Forster`s Tern"=>"Sterna forsteri", "Dusky Warbler"=>"Phylloscopus fuscatus", "Cirl Bunting"=>"Emberiza cirlus", "Olive-backed Pipit"=>"Anthus hodgsoni", "Sociable Lapwing"=>"Vanellus gregarius", "Spotted Sandpiper"=>"Actitis macularius", "Baird`s Sandpiper"=>"Calidris bairdii", "Rustic Bunting"=>"Emberiza rustica", "Yellow-browed Bunting"=>"Emberiza chrysophrys", "Great Shearwater"=>"Puffinus gravis", "Bonelli`s Eagle"=>"Aquila fasciata", "Calandra Lark"=>"Melanocorypha calandra", "Sardinian Warbler"=>"Sylvia melanocephala", "Ross's Gull"=>"Larus roseus", "Yellow-Breasted Bunting"=>"Emberiza aureola", "Pine Bunting"=>"Emberiza leucocephalos", "Black Guillemot"=>"Cepphus grylle", "Pied-billed Grebe"=>"Podilymbus podiceps", "Soft-plumaged Petrel"=>"Pterodroma mollis", "Bulwer's Petrel"=>"Bulweria bulwerii", "White-Faced Storm-Petrel"=>"Pelagodroma marina", "Pallas’s Fish Eagle"=>"Haliaeetus leucoryphus", "Sandhill Crane"=>"Grus canadensis", "Macqueen’s Bustard"=>"Chlamydotis macqueenii", "White-tailed Lapwing"=>"Vanellus leucurus", "Great Knot"=>"Calidris tenuirostris", "Semipalmated Sandpiper"=>"Calidris pusilla", "Red-necked Stint"=>"Calidris ruficollis", "Slender-billed Curlew"=>"Numenius tenuirostris", "Bridled Tern"=>"Onychoprion anaethetus", "Pallas’s Sandgrouse"=>"Syrrhaptes paradoxus", "European Scops Owl"=>"Otus scops", "Northern Hawk Owl"=>"Surnia ulula", "White-Throated Needletail"=>"Hirundapus caudacutus", "Belted Kingfisher"=>"Ceryle alcyon", "Blue-cheeked Bee-eater"=>"Merops persicus", "Black-headed Wagtail"=>"Motacilla feldegg", "Northern Mockingbird"=>"Mimus polyglottos", "Alpine Accentor"=>"Prunella collaris", "Red-flanked Bluetail"=>"Tarsiger cyanurus", "Isabelline Wheatear"=>"Oenanthe isabellina", "Pied Wheatear"=>"Oenanthe pleschanka", "Eastern Black-eared Wheatear"=>"Oenanthe melanoleuca", "Desert Wheatear"=>"Oenanthe deserti", "White`s Thrush"=>"Zoothera aurea", "Siberian Thrush"=>"Zoothera sibirica", "Eyebrowed Thrush"=>"Turdus obscurus", "Dusky Thrush"=>"Turdus eunomus", "Black-throated Thrush"=>"Turdus atrogularis", "Pallas`s Grasshopper Warbler"=>"Locustella certhiola", "Spectacled Warbler"=>"Sylvia conspicillata", "Two-barred Warbler"=>"Phylloscopus plumbeitarsus", "Eastern Bonelli’s Warbler"=>"Phylloscopus orientalis", "Collared Flycatcher"=>"Ficedula albicollis", "Wallcreeper"=>"Tichodroma muraria", "Turkestan Shrike"=>"Lanius phoenicuroides", "Steppe Grey Shrike"=>"Lanius pallidirostris", "Spanish Sparrow"=>"Passer hispaniolensis", "Red-eyed Vireo"=>"Vireo olivaceus", "Myrtle Warbler"=>"Dendroica coronata", "White-crowned Sparrow"=>"Zonotrichia leucophrys", "White-throated Sparrow"=>"Zonotrichia albicollis", "Cretzschmar`s Bunting"=>"Emberiza caesia", "Chestnut Bunting"=>"Emberiza rutila", "Red-headed Bunting"=>"Emberiza bruniceps", "Black-headed Bunting"=>"Emberiza melanocephala", "Indigo Bunting"=>"Passerina cyanea", "Balearic Woodchat Shrike"=>"Lanius senator badius", "Demoiselle Crane"=>"Grus virgo", "Chough"=>"Pyrrhocorax pyrrhocorax", "Red-Billed Chough"=>"Pyrrhocorax graculus", "Elegant Tern"=>"Sterna elegans", "Chukar"=>"Alectoris chukar", "Yellow-Billed Cuckoo"=>"Coccyzus americanus", "American Sandwich Tern"=>"Sterna sandvicensis acuflavida", "Olive-Tree Warbler"=>"Hippolais olivetorum", "Eastern Olivaceous Warbler"=>"Acrocephalus pallidus", "Indian Cormorant"=>"Phalacrocorax fuscicollis", "Spur-Winged Lapwing"=>"Vanellus spinosus", "Yelkouan Shearwater"=>"Puffinus yelkouan", "Trumpeter Finch"=>"Bucanetes githagineus", "Red Grouse"=>"Lagopus scoticus", "Rock Ptarmigan"=>"Lagopus mutus", "Long-Tailed Cormorant"=>"Phalacrocorax africanus", "Double-crested Cormorant"=>"Phalacrocorax auritus", "Magnificent Frigatebird"=>"Fregata magnificens", "Naumann's Thrush"=>"Turdus naumanni", "Oriental Pratincole"=>"Glareola maldivarum", "Bufflehead"=>"Bucephala albeola", "Snowfinch"=>"Montifrigilla nivalis", "Ural owl"=>"Strix uralensis", "Spanish Wagtail"=>"Motacilla iberiae", "Song Sparrow"=>"Melospiza melodia", "Rock Bunting"=>"Emberiza cia", "Siberian Rubythroat"=>"Luscinia calliope", "Pallid Swift"=>"Apus pallidus", "Eurasian Pygmy Owl"=>"Glaucidium passerinum", "Madeira Little Shearwater"=>"Puffinus baroli", "House Finch"=>"Carpodacus mexicanus", "Green Heron"=>"Butorides virescens", "Solitary Sandpiper"=>"Tringa solitaria", "Heuglin's Gull"=>"Larus heuglini" ); $result = array(); foreach ($items as $key=>$value) { if (strpos(strtolower($key), $q) !== false) { array_push($result, array("id"=>$value, "label"=>$key, "value" => strip_tags($key))); } if (count($result) > 11) break; } // json_encode is available in PHP 5.2 and above, or you can install a PECL module in earlier versions echo json_encode($result); ?>jqueryui-1.10.1/development-bundle/demos/autocomplete/multiple.html0000644000175000017500000000465212107500066024563 0ustar metalmetal jQuery UI Autocomplete - Multiple values

Usage: Type something, eg. "j" to see suggestions for tagging with programming languages. Select a value, then continue typing to add more.

This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field.

jqueryui-1.10.1/development-bundle/demos/autocomplete/remote-jsonp.html0000644000175000017500000000526412107500066025352 0ustar metalmetal jQuery UI Autocomplete - Remote JSONP datasource
Powered by geonames.org
Result:

The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are cities, displayed when at least two characters are entered into the field.

In this case, the datasource is the geonames.org webservice. While only the city name itself ends up in the input after selecting an element, more info is displayed in the suggestions to help find the right entry. That data is also available in callbacks, as illustrated by the Result area below the input.

jqueryui-1.10.1/development-bundle/demos/autocomplete/remote.html0000644000175000017500000000355512107500066024224 0ustar metalmetal jQuery UI Autocomplete - Remote datasource
Result:

The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are bird names, displayed when at least two characters are entered into the field.

The datasource is a server-side script which returns JSON data, specified via a simple URL for the source-option. In addition, the minLength-option is set to 2 to avoid queries that would return too many results and the select-event is used to display some feedback.

jqueryui-1.10.1/development-bundle/demos/autocomplete/maxheight.html0000644000175000017500000000320612107500066024700 0ustar metalmetal jQuery UI Autocomplete - Scrollable results

When displaying a long list of options, you can simply set the max-height for the autocomplete menu to prevent the menu from growing too large. Try typing "a" or "s" above to get a long list of results that you can scroll through.

jqueryui-1.10.1/development-bundle/demos/autocomplete/index.html0000644000175000017500000000151212107500066024027 0ustar metalmetal jQuery UI Autocomplete Demos jqueryui-1.10.1/development-bundle/demos/autocomplete/images/0000755000175000017500000000000012111026004023266 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png0000644000175000017500000000174712107500066026535 0ustar metalmetalPNG  IHDR IDATx}Leǿ6q f֌$Q/Ya򎂼EXȵfm&Q [^XsUX*4EP#DlwMm^gϞ9~_Jk| ye fr>(Z:oCnQ/*IOTTlATP{>Gw|P#ty~P(rEX/S%^vR,L *יV1<$^v{-7 np79vǺ:vYgl(6@S>EN1kIkM4jPd]vM[X#RNV NӖ=dyޞoz\1kDsT"S/ٽ~b_ov y ~t$ʍ~:jCB4`ؼbA({6P i1d_o%vޙmw0 @w{=7i^ϥ0DNөoobVG0F'BTK*0BӶY?˺lQ˛lgӋ"jx  GK]9m[22PӎHX4>i;w/[{ؕԛ5¨i_a|56qbyJҠHkFPkr w=-+ȴB}ry}ˆM#4NAzMRyiA()lSr<"rltSE5\mVi+/V9 ڨR&Qr>wE 5gkS s=99oOcSoYdmH郌%`M}Z@½IENDB`jqueryui-1.10.1/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif0000644000175000017500000000266312107500066027343 0ustar metalmetalGIF89a333wwwUUUfffDDD"""! NETSCAPE2.0!,@pɷ(:uJz"L,sCJ "SP4 G -$Rd ד)LXwVrP5 g*"a :1 o!Y3 !,] N&DI8CS4DPp/`EI`0[#0XG@@7I0OH,( Uc%sL sj#!,ZX"ZB&9-TE%HŠ= ! R..0| V}  (ŀ 9S"!,])Ҭu>Z 2@2H 2,La &xn @ !h]jÁ²Dve0M['~!,FɉXY !(EIUVlXWF0 /fddQ1|/ &!,lح21d)׌ـ @( ^`4 OXLCA # FLp`(L (@^)B!(U;B@HgPQ $m~!,_ƠXBA&Ò|#JI2 fq ``g` #J  !j DWd@4 DA"OptG∭c!,Zɱ5-Aq 0  RhƘsh05MPKJl4 QP0 E6p A2Qg aksHF!,`֢X5WqG.ʐm0HJbXb ș`ZPMQ @XIIUɏXi$ ~:t;QB8L@,C%4H"+UsAD%0`4h1b?'Lf'66m =TC)Pl&43e:u,=!:v(C&Kf!?V@+;).\|*Qn('52E T'Mi)Ok"0"AXC0_.>(NjB3f 9t'Kf2D#1a!-6J&5"BZ:u(Oi;y*&1`3G4j-Zy2e'Mg-Xw*; -D+(Pk6l*Rn,Wv ,+Ur;R#E^>}$F_)PmC*Ro 8q-Yx1BA9s.@1b$1EC6lB*9'0`5j2d,Vt0`!-A"..]~#C\2c#1$@9r+Tq0C=z(8L1CC7p ?V3F->/A7o&51`#D\@-Xx'$7p@8o =S U*#07o/@0A/@"0  &ю IDATx^Sc,1MZ۶mٶm۶m۶mOtlͫEmջR\#eMB4tLN\|#nUo3zy6¥z)Q+!A΀ke @ma[=OɀVQqŘ;Iav\s89EH$%cNT&'#b&`<ܵ(F (L\XG?^tTMPv/9B'C4E?b $2!)C}C{ ˍ+tڡU `h: dLEy\WYtW2}gF?7kF/EϲX..YF֪4+BW&E \ƮWĆnn^[+=+w^]3tp"Eɴ@C8D}g%j&;~"@ue6Y#zWD-hi';AEJ$ X.3y^b.{+%Tݟ5eC’BQ7|+H97nL;w| 4Qo`mF=y2lJN!&/`|?y|F _˾Y7\4Br¿[?OLcEIENDB`jqueryui-1.10.1/development-bundle/demos/autocomplete/remote-with-cache.html0000644000175000017500000000315512107500066026232 0ustar metalmetal jQuery UI Autocomplete - Remote with caching

The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are bird names, displayed when at least two characters are entered into the field.

Similar to the remote datasource demo, though this adds some local caching to improve performance. The cache here saves just one query, and could be extended to cache multiple values, one for each term.

jqueryui-1.10.1/development-bundle/demos/autocomplete/xml.html0000644000175000017500000000413712107500066023526 0ustar metalmetal jQuery UI Autocomplete - XML data parsed once
Result:

This demo shows how to retrieve some XML data, parse it using jQuery's methods, then provide it to the autocomplete as the datasource.

This should also serve as a reference on how to parse a remote XML datasource - the parsing would just happen for each request within the source-callback.

jqueryui-1.10.1/development-bundle/demos/autocomplete/folding.html0000644000175000017500000000345012107500066024345 0ustar metalmetal jQuery UI Autocomplete - Accent folding

The autocomplete field uses a custom source option which will match results that have accented characters even when the text field doesn't contain accented characters. However if the you type in accented characters in the text field it is smart enough not to show results that aren't accented.

Try typing "Jo" to see "John" and "Jörn", then type "Jö" to see only "Jörn".

jqueryui-1.10.1/development-bundle/demos/autocomplete/london.xml0000644000175000017500000000457512107500066024061 0ustar metalmetal 6987 London 51.5084152563931 -0.125532746315002 2643743 GB United Kingdom P PPLC London 42.983389283 -81.233042387 6058560 CA Canada P PPL East London -33.0152850934643 27.9116249084473 1006984 ZA South Africa P PPL City 51.5133363996235 -0.0890064239501953 2643744 GB United Kingdom A ADM2 London 37.1289771 -84.0832646 4298960 US United States P PPL The Tower of London 51.5082349601834 -0.0763034820556641 6286786 GB United Kingdom S CSTL London Reefs 8.85 112.5333333 1879967 U RFSU Greater London 51.5 -0.1666667 2648110 GB United Kingdom A ADM2 London 46.1666667 6.0166667 2661811 CH Switzerland H STM London Borough of Islington 51.5333333 -0.1333333 3333156 GB United Kingdom A ADM2 jqueryui-1.10.1/development-bundle/demos/autocomplete/categories.html0000644000175000017500000000350212107500066025046 0ustar metalmetal jQuery UI Autocomplete - Categories

A categorized search result. Try typing "a" or "n".

jqueryui-1.10.1/development-bundle/demos/autocomplete/default.html0000644000175000017500000000260512107500066024350 0ustar metalmetal jQuery UI Autocomplete - Default functionality

The Autocomplete widgets provides suggestions while you type into the field. Here the suggestions are tags for programming languages, give "ja" (for Java or JavaScript) a try.

The datasource is a simple JavaScript array, provided to the widget using the source-option.

jqueryui-1.10.1/development-bundle/demos/draggable/0000755000175000017500000000000012111026004021230 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/draggable/constrain-movement.html0000644000175000017500000000402412107500066025760 0ustar metalmetal jQuery UI Draggable - Constrain movement

Constrain movement along an axis:

I can be dragged only vertically

I can be dragged only horizontally

Or to within another DOM element:

I'm contained within the box

I'm contained within my parent

Constrain the movement of each draggable by defining the boundaries of the draggable area. Set the axis option to limit the draggable's path to the x- or y-axis, or use the containment option to specify a parent DOM element or a jQuery selector, like 'document.'

jqueryui-1.10.1/development-bundle/demos/draggable/events.html0000644000175000017500000000475612107500066023450 0ustar metalmetal jQuery UI Draggable - Events

Drag me to trigger the chain of events.

  • "start" invoked 0x
  • "drag" invoked 0x
  • "stop" invoked 0x

Layer functionality onto the draggable using the start, drag, and stop events. Start is fired at the start of the drag; drag during the drag; and stop when dragging stops.

jqueryui-1.10.1/development-bundle/demos/draggable/handle.html0000644000175000017500000000316212107500066023365 0ustar metalmetal jQuery UI Draggable - Handles

I can be dragged only by this handle

You can drag me around…

…but you can't drag me by this handle.

Allow dragging only when the cursor is over a specific part of the draggable. Use the handle option to specify the jQuery selector of an element (or group of elements) used to drag the object.

Or prevent dragging when the cursor is over a specific element (or group of elements) within the draggable. Use the cancel option to specify a jQuery selector over which to "cancel" draggable functionality.

jqueryui-1.10.1/development-bundle/demos/draggable/index.html0000644000175000017500000000136412107500066023243 0ustar metalmetal jQuery UI Draggable Demos jqueryui-1.10.1/development-bundle/demos/draggable/cursor-style.html0000644000175000017500000000333112107500066024603 0ustar metalmetal jQuery UI Draggable - Cursor style

I will always stick to the center (relative to the mouse)

My cursor is at left -5 and top -5

My cursor position is only controlled for the 'bottom' value

Position the cursor while dragging the object. By default the cursor appears in the center of the dragged object; use the cursorAt option to specify another location relative to the draggable (specify a pixel value from the top, right, bottom, and/or left). Customize the cursor's appearance by supplying the cursor option with a valid CSS cursor value: default, move, pointer, crosshair, etc.

jqueryui-1.10.1/development-bundle/demos/draggable/delay-start.html0000644000175000017500000000253412107500066024365 0ustar metalmetal jQuery UI Draggable - Delay start

Only if you drag me by 20 pixels, the dragging will start

Regardless of the distance, you have to drag and wait for 1000ms before dragging starts

Delay the start of dragging for a number of milliseconds with the delay option; prevent dragging until the cursor is held down and dragged a specifed number of pixels with the distance option.

jqueryui-1.10.1/development-bundle/demos/draggable/visual-feedback.html0000644000175000017500000000511312107500066025155 0ustar metalmetal jQuery UI Draggable - Visual feedback

With helpers:

Original

Semi-transparent clone

Custom helper (in combination with cursorAt)

Stacked:

We are draggables..

..whose z-indexes are controlled automatically..

..with the stack option.

Provide feedback to users as they drag an object in the form of a helper. The helper option accepts the values 'original' (the draggable object moves with the cursor), 'clone' (a duplicate of the draggable moves with the cursor), or a function that returns a DOM element (that element is shown near the cursor during drag). Control the helper's transparency with the opacity option.

To clarify which draggable is in play, bring the draggable in motion to front. Use the zIndex option to set a higher z-index for the helper, if in play, or use the stack option to ensure that the last item dragged will appear on top of others in the same group on drag stop.

jqueryui-1.10.1/development-bundle/demos/draggable/snap-to.html0000644000175000017500000000423512107500066023515 0ustar metalmetal jQuery UI Draggable - Snap to element or grid

I'm a snap target


Default (snap: true), snaps to all other draggable elements

I only snap to the big box

I only snap to the outer edges of the big box

I snap to a 20 x 20 grid

I snap to a 80 x 80 grid

Snap the draggable to the inner or outer boundaries of a DOM element. Use the snap, snapMode (inner, outer, both), and snapTolerance (distance in pixels the draggable must be from the element when snapping is invoked) options.

Or snap the draggable to a grid. Set the dimensions of grid cells (height and width in pixels) with the grid option.

jqueryui-1.10.1/development-bundle/demos/draggable/revert.html0000644000175000017500000000217712107500066023446 0ustar metalmetal jQuery UI Draggable - Revert position

Revert the original

Revert the helper

Return the draggable (or it's helper) to its original location when dragging stops with the boolean revert option.

jqueryui-1.10.1/development-bundle/demos/draggable/default.html0000644000175000017500000000170612107500066023560 0ustar metalmetal jQuery UI Draggable - Default functionality

Drag me around

Enable draggable functionality on any DOM element. Move the draggable object by clicking on it with the mouse and dragging it anywhere within the viewport.

jqueryui-1.10.1/development-bundle/demos/draggable/scroll.html0000644000175000017500000000302512107500066023426 0ustar metalmetal jQuery UI Draggable - Auto-scroll

Scroll set to true, default settings

scrollSensitivity set to 100

scrollSpeed set to 100

Automatically scroll the document when the draggable is moved beyond the viewport. Set the scroll option to true to enable auto-scrolling, and fine-tune when scrolling is triggered and its speed with the scrollSensitivity and scrollSpeed options.

jqueryui-1.10.1/development-bundle/demos/draggable/sortable.html0000644000175000017500000000261712107500066023751 0ustar metalmetal jQuery UI Draggable + Sortable
  • Drag me down
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

Draggables are built to interact seamlessly with sortables.

jqueryui-1.10.1/development-bundle/demos/menu/0000755000175000017500000000000012111026004020264 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/menu/index.html0000644000175000017500000000036512107500070022272 0ustar metalmetal jQuery UI Menu Demos jqueryui-1.10.1/development-bundle/demos/menu/icons.html0000644000175000017500000000267112107500070022300 0ustar metalmetal jQuery UI Menu - Icons

A menu with the default configuration, showing how to use a menu with icons.

jqueryui-1.10.1/development-bundle/demos/menu/default.html0000644000175000017500000000340712107500070022607 0ustar metalmetal jQuery UI Menu - Default functionality

A menu with the default configuration, disabled items and nested menus. A list is transformed, adding theming, mouse and keyboard navigation support. Try to tab to the menu then use the cursor keys to navigate.

jqueryui-1.10.1/development-bundle/demos/slider/0000755000175000017500000000000012111026004020602 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/slider/rangemin.html0000644000175000017500000000222612107500070023277 0ustar metalmetal jQuery UI Slider - Range with fixed minimum

Fix the minimum value of the range slider so that the user can only select a maximum. Set the range option to "min."

jqueryui-1.10.1/development-bundle/demos/slider/multiple-vertical.html0000644000175000017500000000337712107500070025151 0ustar metalmetal jQuery UI Slider - Multiple sliders

Master volume

Graphic EQ

88 77 55 33 40 45 70

Combine horizontal and vertical sliders, each with their own options, to create the UI for a music player.

jqueryui-1.10.1/development-bundle/demos/slider/index.html0000644000175000017500000000144012107500070022603 0ustar metalmetal jQuery UI Slider Demos jqueryui-1.10.1/development-bundle/demos/slider/colorpicker.html0000644000175000017500000000446612107500070024023 0ustar metalmetal jQuery UI Slider - Colorpicker

Simple Colorpicker

Combine three sliders to create a simple RGB colorpicker.

jqueryui-1.10.1/development-bundle/demos/slider/side-scroll.html0000644000175000017500000001224412107500070023720 0ustar metalmetal jQuery UI Slider - Slider scrollbar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Use a slider to manipulate the positioning of content on the page. In this case, it acts as a scrollbar with the potential to capture values if needed.

jqueryui-1.10.1/development-bundle/demos/slider/rangemax.html0000644000175000017500000000222412107500070023277 0ustar metalmetal jQuery UI Slider - Range with fixed maximum

Fix the maximum value of the range slider so that the user can only select a minimum. Set the range option to "max."

jqueryui-1.10.1/development-bundle/demos/slider/range-vertical.html0000644000175000017500000000253512107500070024405 0ustar metalmetal jQuery UI Slider - Vertical range slider

Change the orientation of the range slider to vertical. Assign a height value via .height() or by setting the height through CSS, and set the orientation option to "vertical."

jqueryui-1.10.1/development-bundle/demos/slider/steps.html0000644000175000017500000000223312107500070022633 0ustar metalmetal jQuery UI Slider - Snap to increments

Increment slider values with the step option set to an integer, commonly a dividend of the slider's maximum value. The default increment is 1.

jqueryui-1.10.1/development-bundle/demos/slider/hotelrooms.html0000644000175000017500000000260012107500070023666 0ustar metalmetal jQuery UI Slider - Slider bound to select

How to bind a slider to an existing select element. The select stays visible to display the change. When the select is changed, the slider is updated, too.

jqueryui-1.10.1/development-bundle/demos/slider/default.html0000644000175000017500000000141612107500070023123 0ustar metalmetal jQuery UI Slider - Default functionality

The basic slider is horizontal and has a single handle that can be moved with the mouse or by using the arrow keys.

jqueryui-1.10.1/development-bundle/demos/slider/range.html0000644000175000017500000000245712107500070022601 0ustar metalmetal jQuery UI Slider - Range slider

Set the range option to true to capture a range of values with two drag handles. The space between the handles is filled with a different background color to indicate those values are selected.

jqueryui-1.10.1/development-bundle/demos/slider/slider-vertical.html0000644000175000017500000000235312107500070024571 0ustar metalmetal jQuery UI Slider - Vertical slider

Change the orientation of the slider to vertical. Assign a height value via .height() or by setting the height through CSS, and set the orientation option to "vertical."

jqueryui-1.10.1/development-bundle/demos/sortable/0000755000175000017500000000000012111026004021133 5ustar metalmetaljqueryui-1.10.1/development-bundle/demos/sortable/connect-lists-through-tabs.html0000644000175000017500000000436512107500070027230 0ustar metalmetal jQuery UI Sortable - Connect lists with Tabs
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

Sort items from one list into another and vice versa, by dropping the list item on the appropriate tab above.

jqueryui-1.10.1/development-bundle/demos/sortable/index.html0000644000175000017500000000125312107500070023136 0ustar metalmetal jQuery UI Sortable Demos jqueryui-1.10.1/development-bundle/demos/sortable/portlets.html0000644000175000017500000000522412107500070023705 0ustar metalmetal jQuery UI Sortable - Portlets
Feeds
Lorem ipsum dolor sit amet, consectetuer adipiscing elit
News
Lorem ipsum dolor sit amet, consectetuer adipiscing elit
Shopping
Lorem ipsum dolor sit amet, consectetuer adipiscing elit
Links
Lorem ipsum dolor sit amet, consectetuer adipiscing elit
Images
Lorem ipsum dolor sit amet, consectetuer adipiscing elit

Enable portlets (styled divs) as sortables and use the connectWith option to allow sorting between columns.

jqueryui-1.10.1/development-bundle/demos/sortable/connect-lists.html0000644000175000017500000000337112107500070024617 0ustar metalmetal jQuery UI Sortable - Connect lists
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5

Sort items from one list into another and vice versa, by passing a selector into the connectWith option. The simplest way to do this is to group all related lists with a CSS class, and then pass that class into the sortable function (i.e., connectWith: '.myclass').

jqueryui-1.10.1/development-bundle/demos/sortable/delay-start.html0000644000175000017500000000333412107500070024262 0ustar metalmetal jQuery UI Sortable - Delay start

Time delay of 300ms:

  • Item 1
  • Item 2
  • Item 3
  • Item 4

Distance delay of 15px:

  • Item 1
  • Item 2
  • Item 3
  • Item 4

Prevent accidental sorting either by delay (time) or distance. Set a number of milliseconds the element needs to be dragged before sorting starts with the delay option. Set a distance in pixels the element needs to be dragged before sorting starts with the distance option.

jqueryui-1.10.1/development-bundle/demos/sortable/items.html0000644000175000017500000000400412107500070023145 0ustar metalmetal jQuery UI Sortable - Include / exclude items

Specify which items are sortable:

  • Item 1
  • (I'm not sortable or a drop target)
  • (I'm not sortable or a drop target)
  • Item 4

Cancel sorting (but keep as drop targets):

  • Item 1
  • (I'm not sortable)
  • (I'm not sortable)
  • Item 4

Specify which items are eligible to sort by passing a jQuery selector into the items option. Items excluded from this option are not sortable, nor are they valid targets for sortable items.

To only prevent sorting on certain items, pass a jQuery selector into the cancel option. Cancelled items remain valid sort targets for others.

jqueryui-1.10.1/development-bundle/demos/sortable/display-grid.html0000644000175000017500000000270612107500070024423 0ustar metalmetal jQuery UI Sortable - Display as grid
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

To arrange sortable items as a grid, give them identical dimensions and float them using CSS.

jqueryui-1.10.1/development-bundle/demos/sortable/default.html0000644000175000017500000000351712107500070023460 0ustar metalmetal jQuery UI Sortable - Default functionality
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7

Enable a group of DOM elements to be sortable. Click on and drag an element to a new spot within the list, and the other items will adjust to fit. By default, sortable items share draggable properties.

jqueryui-1.10.1/development-bundle/demos/sortable/empty-lists.html0000644000175000017500000000364412107500070024327 0ustar metalmetal jQuery UI Sortable - Handle empty lists
  • Can be dropped..
  • ..on an empty list
  • Item 3
  • Item 4
  • Item 5
  • Cannot be dropped..
  • ..on an empty list
  • Item 3
  • Item 4
  • Item 5

Prevent all items in a list from being dropped into a separate, empty list using the dropOnEmpty option set to false. By default, sortable items can be dropped on empty lists.

jqueryui-1.10.1/development-bundle/demos/sortable/placeholder.html0000644000175000017500000000322012107500070024305 0ustar metalmetal jQuery UI Sortable - Drop placeholder
  • Item 1
  • Item 2
  • Item 3
  • Item 4
  • Item 5
  • Item 6
  • Item 7

When dragging a sortable item to a new location, other items will make room for the that item by shifting to allow white space between them. Pass a class into the placeholder option to style that space to be visible. Use the boolean forcePlaceholderSize option to set dimensions on the placeholder.

jqueryui-1.10.1/development-bundle/docs/0000755000175000017500000000000012111026004017141 5ustar metalmetaljqueryui-1.10.1/development-bundle/docs/jQuery.widget.html0000644000175000017500000011262512107500070022604 0ustar metalmetal jQuery UI jQuery documentation

Contents:

jQuery.widget( name [, base ], prototype )

Description: Create stateful jQuery plugins using the same abstraction as all jQuery UI widgets.

  • jQuery.widget( name [, base ], prototype )

    • name
      Type: String
      The name of the widget to create, including the namespace.
    • base
      Type: Function()
      The base widget to inherit from. This must be a constructor that can be instantiated with the `new` keyword. Defaults to jQuery.Widget.
    • prototype
      The object to use as a prototype for the widget.

You can create new widgets from scratch, using just the $.Widget object as a base to inherit from, or you can explicitly inherit from existing jQuery UI or third-party widgets. Defining a widget with the same name as you inherit from even allows you to extend widgets in place.

jQuery UI contains many widgets that maintain state and therefore have a slightly different usage pattern than typical jQuery plugins. All of jQuery UI's widgets use the same patterns, which is defined by the widget factory. So if you learn how to use one widget, then you'll know how to use all of them.

Note: This documentation shows examples using the progressbar widget but the syntax is the same for every widget.

Initialization

In order to track the state of the widget, we must introduce a full life cycle for the widget. The life cycle starts when the widget is initalized. To initialize a widget, we simply call the plugin on one or more elements.

$( "#elem" ).progressbar();

This will initialize each element in the jQuery object, in this case the element with an id of "elem". Because we called the progressbar() method with no parameters, the widget is initialized with its default options. We can pass a set of options during initialization in order to override the default options.

$( "#elem" ).progressbar({ value: 20 });

We can pass as many or as few options as we want during initialization. Any options that we don't pass will just use their default values.

The options are part of the widget's state, so we can set options after initialization as well. We'll see this later with the option method.

Methods

Now that the widget is initialized, we can query its state or perform actions on the widget. All actions after initialization take the form of a method call. To call a method on a widget, we pass the name of the method to the jQuery plugin. For example, to call the value() method on our progressbar widget, we would use:

$( "#elem" ).progressbar( "value" );

If the method accepts parameters, we can pass them after the method name. For example, to pass the parameter 40 to the value() method, we can use:

$( "#elem" ).progressbar( "value", 40 );

Just like other methods in jQuery, most widget methods return the jQuery object for chaining.

$( "#elem" )
    .progressbar( "value", 90 )
    .addClass( "almost-done" );

Each widget will have its own set of methods based on the functionality that the widget provides. However, there are a few methods that exist on all widgets, which are documented below.

Events

All widgets have events associated with their various behaviors to notify you when the state is changing. For most widgets, when the events are triggered, the names are prefixed with the widget name. For example, we can bind to progressbar's change event which is triggered whenever the value changes.

$( "#elem" ).bind( "progressbarchange", function() {
    alert( "The value has changed!" );
});

Each event has a corresponding callback, which is exposed as an option. We can hook into progressbar's change callback instead of binding to the progressbarchange event, if we want to.

$( "#elem" ).progressbar({
    change: function() {
        alert( "The value has changed!" );
    }
});

All widgets have a create event which is triggered upon instantiation.

Base Widget

Description: The base widget used by the widget factory.

QuickNav

Options

Events

Options

disabledType: Boolean

Default: false
Disables the jQuery.Widget if set to true.
Code examples:

Initialize the jQuery.Widget with the disabled option specified:

$( ".selector" ).jQuery.Widget({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).jQuery.Widget( "option", "disabled" );
 
// setter
$( ".selector" ).jQuery.Widget( "option", "disabled", true );

hideType: Boolean or Number or String or Object

Default: null
If and how to animate the hiding of the element.
Multiple types supported:
  • Boolean: When set to false, no animation will be used and the element will be hidden immediately. When set to true, the element will fade out with the default duration and the default easing.
  • Number: The element will fade out with the specified duration and the default easing.
  • String: The element will be hidden using the specified effect. The value can either be the name of a built-in jQuery animateion method, such as "slideUp", or the name of a jQuery UI effect, such as "fold". In either case the effect will be used with the default duration and the default easing.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. If the effect property contains the name of a jQuery method, then that method will be used; otherwise it is assumed to be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used. If effect is omitted, then "fadeOut" will be used.
Code examples:

Initialize the jQuery.Widget with the hide option specified:

$( ".selector" ).jQuery.Widget({ hide: { effect: "explode", duration: 1000 } });

Get or set the hide option, after initialization:

// getter
var hide = $( ".selector" ).jQuery.Widget( "option", "hide" );
 
// setter
$( ".selector" ).jQuery.Widget( "option", "hide", { effect: "explode", duration: 1000 } );

showType: Boolean or Number or String or Object

Default: null
If and how to animate the showing of the element.
Multiple types supported:
  • Boolean: When set to false, no animation will be used and the element will be shown immediately. When set to true, the element will fade in with the default duration and the default easing.
  • Number: The element will fade in with the specified duration and the default easing.
  • String: The element will be shown using the specified effect. The value can either be the name of a built-in jQuery animateion method, such as "slideDown", or the name of a jQuery UI effect, such as "fold". In either case the effect will be used with the default duration and the default easing.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. If the effect property contains the name of a jQuery method, then that method will be used; otherwise it is assumed to be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used. If effect is omitted, then "fadeIn" will be used.
Code examples:

Initialize the jQuery.Widget with the show option specified:

$( ".selector" ).jQuery.Widget({ show: { effect: "blind", duration: 800 } });

Get or set the show option, after initialization:

// getter
var show = $( ".selector" ).jQuery.Widget( "option", "show" );
 
// setter
$( ".selector" ).jQuery.Widget( "option", "show", { effect: "blind", duration: 800 } );

Methods

_create()

The _create() method is the widget's constructor. There are no parameters, but this.element and this.options are already set.
  • This method does not accept any arguments.

_delay( fn [, delay ] )Returns: Number

Invokes the provided function after a specified delay. Keeps this context correct. Essentially setTimeout().

Returns the timeout ID for use with clearTimeout().

  • fn
    Type: Function() or String
    The function to invoke. Can also be the name of a method on the widget.
  • delay
    Type: Number
    The number of milliseconds to wait before invoking the function. Deafults to 0.

_destroy()

The public destroy() method cleans up all common data, events, etc. and then delegates out to _destroy() for custom, widget-specific, cleanup.
  • This method does not accept any arguments.

_focusable( element )

Sets up element to apply the ui-state-focus class on focus.

The event handlers are automatically cleaned up on destroy.

  • element
    Type: jQuery
    The element(s) to apply the focusable behavior to.

_getCreateEventData()Returns: Object

All widgets trigger the create event. By default, no data is provided in the event, but this method can return an object which will be passed as the create event's data.
  • This method does not accept any arguments.

_getCreateOptions()Returns: Object

This method allows the widget to define a custom method for defining options during instantiation. This user-provided options override the options returned by this method which override the default options.
  • This method does not accept any arguments.

_hide( element, option [, callback ] )

Hides an element immediately, using built-in animation methods, or using custom effects. See the hide option for possible option values.
  • element
    Type: jQuery
    The element(s) to hide.
  • option
    Type: Object
    The settings defining how to hide the element.
  • callback
    Type: Function()
    Callback to invoke after the element has been fully hidden.

_hoverable( element )

Sets up element to apply the ui-state-hover class on hover.

The event handlers are automatically cleaned up on destroy.

  • element
    Type: jQuery
    The element(s) to apply the hoverable behavior to.

_init()

Widgets have the concept of initialization that is distinct from creation. Any time the plugin is called with no arguments or with only an option hash, the widget is initialized; this includes when the widget is created.

Note: Initialization should only be handled if there is a logical action to perform on successive calls to the widget with no arguments.

  • This method does not accept any arguments.

_off( element, eventName )

Unbinds event handlers from the specified element(s).
  • element
    Type: jQuery
    The element(s) to unbind the event handlers from. Unlike the _on() method, the elements are required for _off().
  • eventName
    Type: String
    One or more space-separated event types.

_on( [element ], handlers )

Binds event handlers to the specified element(s). Delegation is supported via selectors inside the event names, e.g., "click .foo". The _on() method provides several benefits of direct event binding:
  • Maintains proper this context inside the handlers.
  • Automatically handles disabled widgets: If the widget is disabled or the event occurs on an element with the ui-state-disabled class, the event handler is not invoked.
  • Event handlers are automatically namespaced and cleaned up on destroy.
  • element
    Type: jQuery
    Which element(s) to bind the event handlers to. If no element is provided, this.element is used.
  • handlers
    Type: Object
    A map in which the string keys represent the event type and optional selector for delegation, and the values represent a handler function to be called for the event.

_setOption( key, value )

Called from the _setOptions() method for each individual option. Widget state should be updated based on changes.
  • key
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.

_setOptions( options )

Called whenever the option() method is called, regardless of the form in which the option() method was called.

Overriding this is useful if you can defer processor-intensive changes for multiple option changes.

  • options
    Type: Object
    A map of option-value pairs to set.

_show( element, option [, callback ] )

Shows an element immediately, using built-in animation methods, or using custom effects. See the show option for possible option values.
  • element
    Type: jQuery
    The element(s) to show.
  • option
    Type: Object
    The settings defining how to show the element.
  • callback
    Type: Function()
    Callback to invoke after the element has been fully shown.

_super()

Invokes the method of the same name from the parent widget, with any specified arguments. Essentially .call().
  • This method does not accept any arguments.

_superApply( arguments )

Invokes the method of the same name from the parent widget, with the array of arguments. Essentially .apply().
  • arguments
    Type: Array
    Array of arguments to pass to the parent method.

_trigger( type [, event ] [, data ] )

Triggers an event and its associated callback.

The option with the name equal to type is invoked as the callback.

The event name is the widget name + type.

Note: When providing data, you must provide all three parameters. If there is no event to pass along, just pass null.

  • type
    Type: String
    The type should match the name of a callback option. The full event type will be generated automatically.
  • event
    Type: Event
    The original event that caused this event to occur; useful for providing context to the listener.
  • data
    Type: Object
    A hash of data associated with the event.

destroy()

Removes the jQuery.Widget functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.

disable()

Disables the jQuery.Widget.
  • This method does not accept any arguments.

enable()

Enables the jQuery.Widget.
  • This method does not accept any arguments.

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).jQuery.Widget( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current jQuery.Widget options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).jQuery.Widget( "option" );

option( optionName, value )

Sets the value of the jQuery.Widget option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).jQuery.Widget( "option", "disabled", true );

option( options )

Sets one or more options for the jQuery.Widget.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).jQuery.Widget( "option", { disabled: true } );

widget()Returns: jQuery

Returns a jQuery object containing the original element or other relevant generated element.
  • This method does not accept any arguments.

Events

create( event, ui )Type: jQuery.Widgetcreate

Triggered when the jQuery.Widget is created.
Code examples:

Initialize the jQuery.Widget with the create callback specified:

$( ".selector" ).jQuery.Widget({
    create: function( event, ui ) {}
});

Bind an event listener to the jQuery.Widgetcreate event:

$( ".selector" ).on( "jQuery.Widgetcreate", function( event, ui ) {} );
jqueryui-1.10.1/development-bundle/docs/droppable.html0000644000175000017500000014351412107500070022014 0ustar metalmetal jQuery UI droppable documentation

Droppable Widgetversion added: 1.0

Description: Create targets for draggable elements.

QuickNavExamples

The jQuery UI Droppable plugin makes selected elements droppable (meaning they accept being dropped on by draggables). You can specify which draggables each will accept.

Options

acceptType: Selector or Function()

Default: "*"
Controls which draggable elements are accepted by the droppable.
Multiple types supported:
  • Selector: A selector indicating which draggable elements are accepted.
  • Function: A function that will be called for each draggable on the page (passed as the first argument to the function). The function must return true if the draggable should be accepted.
Code examples:

Initialize the droppable with the accept option specified:

$( ".selector" ).droppable({ accept: ".special" });

Get or set the accept option, after initialization:

// getter
var accept = $( ".selector" ).droppable( "option", "accept" );
 
// setter
$( ".selector" ).droppable( "option", "accept", ".special" );

activeClassType: String

Default: false
If specified, the class will be added to the droppable while an acceptable draggable is being dragged.
Code examples:

Initialize the droppable with the activeClass option specified:

$( ".selector" ).droppable({ activeClass: "ui-state-highlight" });

Get or set the activeClass option, after initialization:

// getter
var activeClass = $( ".selector" ).droppable( "option", "activeClass" );
 
// setter
$( ".selector" ).droppable( "option", "activeClass", "ui-state-highlight" );

addClassesType: Boolean

Default: true
If set to false, will prevent the ui-droppable class from being added. This may be desired as a performance optimization when calling .droppable() init on hundreds of elements.
Code examples:

Initialize the droppable with the addClasses option specified:

$( ".selector" ).droppable({ addClasses: false });

Get or set the addClasses option, after initialization:

// getter
var addClasses = $( ".selector" ).droppable( "option", "addClasses" );
 
// setter
$( ".selector" ).droppable( "option", "addClasses", false );

disabledType: Boolean

Default: false
Disables the droppable if set to true.
Code examples:

Initialize the droppable with the disabled option specified:

$( ".selector" ).droppable({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).droppable( "option", "disabled" );
 
// setter
$( ".selector" ).droppable( "option", "disabled", true );

greedyType: Boolean

Default: false
By default, when an element is dropped on nested droppables, each droppable will receive the element. However, by setting this option to true, any parent droppables will not receive the element.
Code examples:

Initialize the droppable with the greedy option specified:

$( ".selector" ).droppable({ greedy: true });

Get or set the greedy option, after initialization:

// getter
var greedy = $( ".selector" ).droppable( "option", "greedy" );
 
// setter
$( ".selector" ).droppable( "option", "greedy", true );

hoverClassType: String

Default: false
If specified, the class will be added to the droppable while an acceptable draggable is being hovered over the droppable.
Code examples:

Initialize the droppable with the hoverClass option specified:

$( ".selector" ).droppable({ hoverClass: "drop-hover" });

Get or set the hoverClass option, after initialization:

// getter
var hoverClass = $( ".selector" ).droppable( "option", "hoverClass" );
 
// setter
$( ".selector" ).droppable( "option", "hoverClass", "drop-hover" );

scopeType: String

Default: "default"
Used to group sets of draggable and droppable items, in addition to the accept option. A draggable with the same scope value as a droppable will be accepted.
Code examples:

Initialize the droppable with the scope option specified:

$( ".selector" ).droppable({ scope: "tasks" });

Get or set the scope option, after initialization:

// getter
var scope = $( ".selector" ).droppable( "option", "scope" );
 
// setter
$( ".selector" ).droppable( "option", "scope", "tasks" );

toleranceType: String

Default: "intersect"
Specifies which mode to use for testing whether a draggable is hovering over a droppable. Possible values:
  • "fit": Draggable overlaps the droppable entirely.
  • "intersect": Draggable overlaps the droppable at least 50% in both directions.
  • "pointer": Mouse pointer overlaps the droppable.
  • "touch": Draggable overlaps the droppable any amount.
Code examples:

Initialize the droppable with the tolerance option specified:

$( ".selector" ).droppable({ tolerance: "fit" });

Get or set the tolerance option, after initialization:

// getter
var tolerance = $( ".selector" ).droppable( "option", "tolerance" );
 
// setter
$( ".selector" ).droppable( "option", "tolerance", "fit" );

Methods

destroy()

Removes the droppable functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).droppable( "destroy" );

disable()

Disables the droppable.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).droppable( "disable" );

enable()

Enables the droppable.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).droppable( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).droppable( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current droppable options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).droppable( "option" );

option( optionName, value )

Sets the value of the droppable option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).droppable( "option", "disabled", true );

option( options )

Sets one or more options for the droppable.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).droppable( "option", { disabled: true } );

widget()Returns: jQuery

Returns a jQuery object containing the droppable element.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).droppable( "widget" );

Events

activate( event, ui )Type: dropactivate

Triggered when an accepted draggable starts dragging. This can be useful if you want to make the droppable "light up" when it can be dropped on.
  • event
    Type: Event
  • ui
    Type: Object
    • draggable
      Type: jQuery
      A jQuery object representing the draggable element.
    • helper
      Type: jQuery
      A jQuery object representing the helper that is being dragged.
    • position
      Type: Object
      Current CSS position of the draggable helper as { top, left } object.
    • offset
      Type: Object
      Current offset position of the draggable helper as { top, left } object.
Code examples:

Initialize the droppable with the activate callback specified:

$( ".selector" ).droppable({
    activate: function( event, ui ) {}
});

Bind an event listener to the dropactivate event:

$( ".selector" ).on( "dropactivate", function( event, ui ) {} );

create( event, ui )Type: dropcreate

Triggered when the droppable is created.
Code examples:

Initialize the droppable with the create callback specified:

$( ".selector" ).droppable({
    create: function( event, ui ) {}
});

Bind an event listener to the dropcreate event:

$( ".selector" ).on( "dropcreate", function( event, ui ) {} );

deactivate( event, ui )Type: dropdeactivate

Triggered when an accepted draggable stops dragging.
  • event
    Type: Event
  • ui
    Type: Object
    • draggable
      Type: jQuery
      A jQuery object representing the draggable element.
    • helper
      Type: jQuery
      A jQuery object representing the helper that is being dragged.
    • position
      Type: Object
      Current CSS position of the draggable helper as { top, left } object.
    • offset
      Type: Object
      Current offset position of the draggable helper as { top, left } object.
Code examples:

Initialize the droppable with the deactivate callback specified:

$( ".selector" ).droppable({
    deactivate: function( event, ui ) {}
});

Bind an event listener to the dropdeactivate event:

$( ".selector" ).on( "dropdeactivate", function( event, ui ) {} );

drop( event, ui )Type: drop

Triggered when an accepted draggable is dropped on the droppable (based on thetolerance option).
  • event
    Type: Event
  • ui
    Type: Object
    • draggable
      Type: jQuery
      A jQuery object representing the draggable element.
    • helper
      Type: jQuery
      A jQuery object representing the helper that is being dragged.
    • position
      Type: Object
      Current CSS position of the draggable helper as { top, left } object.
    • offset
      Type: Object
      Current offset position of the draggable helper as { top, left } object.
Code examples:

Initialize the droppable with the drop callback specified:

$( ".selector" ).droppable({
    drop: function( event, ui ) {}
});

Bind an event listener to the drop event:

$( ".selector" ).on( "drop", function( event, ui ) {} );

out( event, ui )Type: dropout

Triggered when an accepted draggable is dragged out of the droppable (based on thetolerance option).
Code examples:

Initialize the droppable with the out callback specified:

$( ".selector" ).droppable({
    out: function( event, ui ) {}
});

Bind an event listener to the dropout event:

$( ".selector" ).on( "dropout", function( event, ui ) {} );

over( event, ui )Type: dropover

Triggered when an accepted draggable is dragged over the droppable (based on thetolerance option).
  • event
    Type: Event
  • ui
    Type: Object
    • draggable
      Type: jQuery
      A jQuery object representing the draggable element.
    • helper
      Type: jQuery
      A jQuery object representing the helper that is being dragged.
    • position
      Type: Object
      Current CSS position of the draggable helper as { top, left } object.
    • offset
      Type: Object
      Current offset position of the draggable helper as { top, left } object.
Code examples:

Initialize the droppable with the over callback specified:

$( ".selector" ).droppable({
    over: function( event, ui ) {}
});

Bind an event listener to the dropover event:

$( ".selector" ).on( "dropover", function( event, ui ) {} );

Example:

A pair of draggable and droppable elements.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>droppable demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #draggable {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    #droppable {
        position: absolute;
        left: 250px;
        top: 0;
        width: 125px;
        height: 125px;
        background: #999;
        color: #fff;
        padding: 10px;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="droppable">Drop here</div>
<div id="draggable">Drag me</div>
 
<script>
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
    drop: function() {
        alert( "dropped" );
    }
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/bounce-effect.html0000644000175000017500000002135112107500070022543 0ustar metalmetal jQuery UI bounce-effect documentation

Bounce Effect

Description: The bounce effect bounces an element. When used with hide or show, the last or first bounce will also fade in/out.

  • bounce

    • distance (default: 20)
      Type: Number
      The distance of the largest "bounce" in pixels.
    • times (default: 5)
      Type: Integer
      The number of times the element will bounce. When used with hide or show, there is an extra "half" bounce for the fade in/out.

Example:

Toggle a div using the bounce effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>bounce demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "bounce", { times: 3 }, "slow" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/mouse.html0000644000175000017500000004412512107500070021172 0ustar metalmetal jQuery UI mouse documentation

Mouse Interaction

Description: The base interaction layer.

QuickNav

Events

Similar to jQuery.Widget, the mouse interaction is not intended to be used directly. It is purely a base layer for other widgets to inherit from. This page only documents what is added to jQuery.Widget, but it does include internal methods that are not intended to be overwritten. The intended public API is _mouseStart(), _mouseDrag(), _mouseStop(), and _mouseCapture().

Options

cancelType: Selector

Default: "input,textarea,button,select,option"
Prevents interactions from starting on specified elements.
Code examples:

Initialize the jQuery.ui.mouse with the cancel option specified:

$( ".selector" ).jQuery.ui.mouse({ cancel: ".title" });

Get or set the cancel option, after initialization:

// getter
var cancel = $( ".selector" ).jQuery.ui.mouse( "option", "cancel" );
 
// setter
$( ".selector" ).jQuery.ui.mouse( "option", "cancel", ".title" );

delayType: Number

Default: 0
Time in milliseconds after mousedown until the interaction should start. This option can be used to prevent unwanted interactions when clicking on an element.
Code examples:

Initialize the jQuery.ui.mouse with the delay option specified:

$( ".selector" ).jQuery.ui.mouse({ delay: 300 });

Get or set the delay option, after initialization:

// getter
var delay = $( ".selector" ).jQuery.ui.mouse( "option", "delay" );
 
// setter
$( ".selector" ).jQuery.ui.mouse( "option", "delay", 300 );

distanceType: Number

Default: 1
Distance in pixels after mousedown the mouse must move before the interaction should start. This option can be used to prevent unwanted interactions when clicking on an element.
Code examples:

Initialize the jQuery.ui.mouse with the distance option specified:

$( ".selector" ).jQuery.ui.mouse({ distance: 10 });

Get or set the distance option, after initialization:

// getter
var distance = $( ".selector" ).jQuery.ui.mouse( "option", "distance" );
 
// setter
$( ".selector" ).jQuery.ui.mouse( "option", "distance", 10 );

Methods

_mouseCapture()Returns: Boolean

Determines whether an interaction should start based on event target of the interaction. The default implementation always returns true.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseCapture method:

$( ".selector" ).jQuery.ui.mouse( "_mouseCapture" );

_mouseDelayMet()Returns: Boolean

Determines whether the delay option has been met for the current interaction.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseDelayMet method:

$( ".selector" ).jQuery.ui.mouse( "_mouseDelayMet" );

_mouseDestroy()

Destroys the interaction event handlers. This must be called from the extending widget's _destroy() method.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseDestroy method:

$( ".selector" ).jQuery.ui.mouse( "_mouseDestroy" );

_mouseDistanceMet()Returns: Boolean

Determines whether the distance option has been met for the current interaction.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseDistanceMet method:

$( ".selector" ).jQuery.ui.mouse( "_mouseDistanceMet" );

_mouseDown()

Handles the beginning of an interaction. Verifies that the event is associated with the primary mouse button and ensures that the delay and distance options are met prior to starting the interaction. When the interaction is ready to start, invokes the _mouseStart() method for the extending widget to handle.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseDown method:

$( ".selector" ).jQuery.ui.mouse( "_mouseDown" );

_mouseDrag()

The extending widget should implement a _mouseDrag() method to handle each movement of an interaction. This method will receive the mouse event associated with the movement.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseDrag method:

$( ".selector" ).jQuery.ui.mouse( "_mouseDrag" );

_mouseInit()

Initializes the interaction event handlers. This must be called from the extending widget's _create() method.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseInit method:

$( ".selector" ).jQuery.ui.mouse( "_mouseInit" );

_mouseMove()

Handles each movement of the interaction. Invokes the mouseDrag() method for the extending widget to handle.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseMove method:

$( ".selector" ).jQuery.ui.mouse( "_mouseMove" );

_mouseStart()

The extending widget should implement a _mouseStart() method to handle the beginning of an interaction. This method will receive the mouse event associated with the start of the interaction.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseStart method:

$( ".selector" ).jQuery.ui.mouse( "_mouseStart" );

_mouseStop()

The extending widget should implement a _mouseStop() method to handle the end of an interaction. This method will receive the mouse event associated with the end of the interaction.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseStop method:

$( ".selector" ).jQuery.ui.mouse( "_mouseStop" );

_mouseUp()

Handles the end of the interaction. Invokes the mouseStop() method for the extending widget to handle.
  • This method does not accept any arguments.
Code examples:

Invoke the _mouseUp method:

$( ".selector" ).jQuery.ui.mouse( "_mouseUp" );
jqueryui-1.10.1/development-bundle/docs/drop-effect.html0000644000175000017500000002104212107500070022231 0ustar metalmetal jQuery UI drop-effect documentation

Drop Effect

Description: The drop effect hides or shows an element fading in/out and sliding in a direction.

  • drop

    • direction (default: "left")
      Type: String

      The direction the element will fall to hide the element, or the direction from which the element will be revealed.

      Possible Values: up, down, left, right.

Example:

Toggle a div using the drop effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>drop demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "drop" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/draggable.html0000644000175000017500000024676212107500070021765 0ustar metalmetal jQuery UI draggable documentation

Draggable Widgetversion added: 1.0

Description: Allow elements to be moved using the mouse.

QuickNavExamples

Make the selected elements draggable by mouse. If you want not just drag, but drag & drop, see the jQuery UI Droppable plugin, which provides a drop target for draggables.

Options

addClassesType: Boolean

Default: true
If set to false, will prevent the ui-draggable class from being added. This may be desired as a performance optimization when calling .draggable() on hundreds of elements.
Code examples:

Initialize the draggable with the addClasses option specified:

$( ".selector" ).draggable({ addClasses: false });

Get or set the addClasses option, after initialization:

// getter
var addClasses = $( ".selector" ).draggable( "option", "addClasses" );
 
// setter
$( ".selector" ).draggable( "option", "addClasses", false );

appendToType: jQuery or Element or Selector or String

Default: "parent"
Which element the draggable helper should be appended to while dragging.
Multiple types supported:
  • jQuery: A jQuery object containing the element to append the helper to.
  • Element: The element to append the helper to.
  • Selector: A selector specifying which element to append the helper to.
  • String: The string "parent" will cause the helper to be a sibling of the draggable.
Code examples:

Initialize the draggable with the appendTo option specified:

$( ".selector" ).draggable({ appendTo: "body" });

Get or set the appendTo option, after initialization:

// getter
var appendTo = $( ".selector" ).draggable( "option", "appendTo" );
 
// setter
$( ".selector" ).draggable( "option", "appendTo", "body" );

axisType: String

Default: false
Constrains dragging to either the horizontal (x) or vertical (y) axis. Possible values: "x", "y".
Code examples:

Initialize the draggable with the axis option specified:

$( ".selector" ).draggable({ axis: "x" });

Get or set the axis option, after initialization:

// getter
var axis = $( ".selector" ).draggable( "option", "axis" );
 
// setter
$( ".selector" ).draggable( "option", "axis", "x" );

cancelType: Selector

Default: "input,textarea,button,select,option"
Prevents dragging from starting on specified elements.
Code examples:

Initialize the draggable with the cancel option specified:

$( ".selector" ).draggable({ cancel: ".title" });

Get or set the cancel option, after initialization:

// getter
var cancel = $( ".selector" ).draggable( "option", "cancel" );
 
// setter
$( ".selector" ).draggable( "option", "cancel", ".title" );

connectToSortableType: Selector

Default: false
Allows the draggable to be dropped onto the specified sortables. If this option is used, a draggable can be dropped onto a sortable list and then becomes part of it. Note: The helper option must be set to "clone" in order to work flawlessly. Requires the jQuery UI Sortable plugin to be included.
Code examples:

Initialize the draggable with the connectToSortable option specified:

$( ".selector" ).draggable({ connectToSortable: "#my-sortable" });

Get or set the connectToSortable option, after initialization:

// getter
var connectToSortable = $( ".selector" ).draggable( "option", "connectToSortable" );
 
// setter
$( ".selector" ).draggable( "option", "connectToSortable", "#my-sortable" );

containmentType: Selector or Element or String or Array

Default: false
Constrains dragging to within the bounds of the specified element or region.
Multiple types supported:
  • Selector: The draggable element will be contained to the bounding box of the first element found by the selector. If no element is found, no containment will be set.
  • Element: The draggable element will be contained to the bounding box of this element.
  • String: Possible values: "parent", "document", "window".
  • Array: An array defining a bounding box in the form [ x1, y1, x2, y2 ].
Code examples:

Initialize the draggable with the containment option specified:

$( ".selector" ).draggable({ containment: "parent" });

Get or set the containment option, after initialization:

// getter
var containment = $( ".selector" ).draggable( "option", "containment" );
 
// setter
$( ".selector" ).draggable( "option", "containment", "parent" );

cursorType: String

Default: "auto"
The CSS cursor during the drag operation.
Code examples:

Initialize the draggable with the cursor option specified:

$( ".selector" ).draggable({ cursor: "crosshair" });

Get or set the cursor option, after initialization:

// getter
var cursor = $( ".selector" ).draggable( "option", "cursor" );
 
// setter
$( ".selector" ).draggable( "option", "cursor", "crosshair" );

cursorAtType: Object

Default: false
Sets the offset of the dragging helper relative to the mouse cursor. Coordinates can be given as a hash using a combination of one or two keys: { top, left, right, bottom }.
Code examples:

Initialize the draggable with the cursorAt option specified:

$( ".selector" ).draggable({ cursorAt: { left: 5 } });

Get or set the cursorAt option, after initialization:

// getter
var cursorAt = $( ".selector" ).draggable( "option", "cursorAt" );
 
// setter
$( ".selector" ).draggable( "option", "cursorAt", { left: 5 } );

delayType: Number

Default: 0
Time in milliseconds after mousedown until dragging should start. This option can be used to prevent unwanted drags when clicking on an element.
Code examples:

Initialize the draggable with the delay option specified:

$( ".selector" ).draggable({ delay: 300 });

Get or set the delay option, after initialization:

// getter
var delay = $( ".selector" ).draggable( "option", "delay" );
 
// setter
$( ".selector" ).draggable( "option", "delay", 300 );

disabledType: Boolean

Default: false
Disables the draggable if set to true.
Code examples:

Initialize the draggable with the disabled option specified:

$( ".selector" ).draggable({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).draggable( "option", "disabled" );
 
// setter
$( ".selector" ).draggable( "option", "disabled", true );

distanceType: Number

Default: 1
Distance in pixels after mousedown the mouse must move before dragging should start. This option can be used to prevent unwanted drags when clicking on an element.
Code examples:

Initialize the draggable with the distance option specified:

$( ".selector" ).draggable({ distance: 10 });

Get or set the distance option, after initialization:

// getter
var distance = $( ".selector" ).draggable( "option", "distance" );
 
// setter
$( ".selector" ).draggable( "option", "distance", 10 );

gridType: Array

Default: false
Snaps the dragging helper to a grid, every x and y pixels. The array must be of the form [ x, y ].
Code examples:

Initialize the draggable with the grid option specified:

$( ".selector" ).draggable({ grid: [ 50, 20 ] });

Get or set the grid option, after initialization:

// getter
var grid = $( ".selector" ).draggable( "option", "grid" );
 
// setter
$( ".selector" ).draggable( "option", "grid", [ 50, 20 ] );

handleType: Selector or Element

Default: false
If specified, restricts dragging from starting unless the mousedown occurs on the specified element(s).
Code examples:

Initialize the draggable with the handle option specified:

$( ".selector" ).draggable({ handle: "h2" });

Get or set the handle option, after initialization:

// getter
var handle = $( ".selector" ).draggable( "option", "handle" );
 
// setter
$( ".selector" ).draggable( "option", "handle", "h2" );

helperType: String or Function()

Default: "original"
Allows for a helper element to be used for dragging display.
Multiple types supported:
  • String: If set to "clone", then the element will be cloned and the clone will be dragged.
  • Function: A function that will return a DOMElement to use while dragging.
Code examples:

Initialize the draggable with the helper option specified:

$( ".selector" ).draggable({ helper: "clone" });

Get or set the helper option, after initialization:

// getter
var helper = $( ".selector" ).draggable( "option", "helper" );
 
// setter
$( ".selector" ).draggable( "option", "helper", "clone" );

iframeFixType: Boolean or Selector

Default: false
Prevent iframes from capturing the mousemove events during a drag. Useful in combination with the cursorAt option, or in any case where the mouse cursor may not be over the helper.
Multiple types supported:
  • Boolean: When set to true, transparent overlays will be placed over all iframes on the page.
  • Selector: Any iframes matching the selector will be covered by transparent overlays.
Code examples:

Initialize the draggable with the iframeFix option specified:

$( ".selector" ).draggable({ iframeFix: true });

Get or set the iframeFix option, after initialization:

// getter
var iframeFix = $( ".selector" ).draggable( "option", "iframeFix" );
 
// setter
$( ".selector" ).draggable( "option", "iframeFix", true );

opacityType: Number

Default: false
Opacity for the helper while being dragged.
Code examples:

Initialize the draggable with the opacity option specified:

$( ".selector" ).draggable({ opacity: 0.35 });

Get or set the opacity option, after initialization:

// getter
var opacity = $( ".selector" ).draggable( "option", "opacity" );
 
// setter
$( ".selector" ).draggable( "option", "opacity", 0.35 );

refreshPositionsType: Boolean

Default: false
If set to true, all droppable positions are calculated on every mousemove. Caution: This solves issues on highly dynamic pages, but dramatically decreases performance.
Code examples:

Initialize the draggable with the refreshPositions option specified:

$( ".selector" ).draggable({ refreshPositions: true });

Get or set the refreshPositions option, after initialization:

// getter
var refreshPositions = $( ".selector" ).draggable( "option", "refreshPositions" );
 
// setter
$( ".selector" ).draggable( "option", "refreshPositions", true );

revertType: Boolean or String

Default: false
Whether the element should revert to its start position when dragging stops.
Multiple types supported:
  • Boolean: If set to true the element will always revert.
  • String: If set to "invalid", revert will only occur if the draggable has not been dropped on a droppable. For "valid", it's the other way around.
Code examples:

Initialize the draggable with the revert option specified:

$( ".selector" ).draggable({ revert: true });

Get or set the revert option, after initialization:

// getter
var revert = $( ".selector" ).draggable( "option", "revert" );
 
// setter
$( ".selector" ).draggable( "option", "revert", true );

revertDurationType: Number

Default: 500
The duration of the revert animation, in milliseconds. Ignored if the revert option is false.
Code examples:

Initialize the draggable with the revertDuration option specified:

$( ".selector" ).draggable({ revertDuration: 200 });

Get or set the revertDuration option, after initialization:

// getter
var revertDuration = $( ".selector" ).draggable( "option", "revertDuration" );
 
// setter
$( ".selector" ).draggable( "option", "revertDuration", 200 );

scopeType: String

Default: "default"
Used to group sets of draggable and droppable items, in addition to droppable's accept option. A draggable with the same scope value as a droppable will be accepted by the droppable.
Code examples:

Initialize the draggable with the scope option specified:

$( ".selector" ).draggable({ scope: "tasks" });

Get or set the scope option, after initialization:

// getter
var scope = $( ".selector" ).draggable( "option", "scope" );
 
// setter
$( ".selector" ).draggable( "option", "scope", "tasks" );

scrollType: Boolean

Default: true
If set to true, container auto-scrolls while dragging.
Code examples:

Initialize the draggable with the scroll option specified:

$( ".selector" ).draggable({ scroll: false });

Get or set the scroll option, after initialization:

// getter
var scroll = $( ".selector" ).draggable( "option", "scroll" );
 
// setter
$( ".selector" ).draggable( "option", "scroll", false );

scrollSensitivityType: Number

Default: 20
Distance in pixels from the edge of the viewport after which the viewport should scroll. Distance is relative to pointer, not the draggable. Ignored if the scroll option is false.
Code examples:

Initialize the draggable with the scrollSensitivity option specified:

$( ".selector" ).draggable({ scrollSensitivity: 100 });

Get or set the scrollSensitivity option, after initialization:

// getter
var scrollSensitivity = $( ".selector" ).draggable( "option", "scrollSensitivity" );
 
// setter
$( ".selector" ).draggable( "option", "scrollSensitivity", 100 );

scrollSpeedType: Number

Default: 20
The speed at which the window should scroll once the mouse pointer gets within the scrollSensitivity distance. Ignored if the scroll option is false.
Code examples:

Initialize the draggable with the scrollSpeed option specified:

$( ".selector" ).draggable({ scrollSpeed: 100 });

Get or set the scrollSpeed option, after initialization:

// getter
var scrollSpeed = $( ".selector" ).draggable( "option", "scrollSpeed" );
 
// setter
$( ".selector" ).draggable( "option", "scrollSpeed", 100 );

snapType: Boolean or Selector

Default: false
Whether the element should snap to other elements.
Multiple types supported:
  • Boolean: When set to true, the element will snap to all other draggable elements.
  • Selector: A selector specifying which elements to snap to.
Code examples:

Initialize the draggable with the snap option specified:

$( ".selector" ).draggable({ snap: true });

Get or set the snap option, after initialization:

// getter
var snap = $( ".selector" ).draggable( "option", "snap" );
 
// setter
$( ".selector" ).draggable( "option", "snap", true );

snapModeType: String

Default: "both"
Determines which edges of snap elements the draggable will snap to. Ignored if the snap option is false. Possible values: "inner", "outer", "both".
Code examples:

Initialize the draggable with the snapMode option specified:

$( ".selector" ).draggable({ snapMode: "inner" });

Get or set the snapMode option, after initialization:

// getter
var snapMode = $( ".selector" ).draggable( "option", "snapMode" );
 
// setter
$( ".selector" ).draggable( "option", "snapMode", "inner" );

snapToleranceType: Number

Default: 20
The distance in pixels from the snap element edges at which snapping should occur. Ignored if the snap option is false.
Code examples:

Initialize the draggable with the snapTolerance option specified:

$( ".selector" ).draggable({ snapTolerance: 30 });

Get or set the snapTolerance option, after initialization:

// getter
var snapTolerance = $( ".selector" ).draggable( "option", "snapTolerance" );
 
// setter
$( ".selector" ).draggable( "option", "snapTolerance", 30 );

stackType: Selector

Default: false
Controls the z-index of the set of elements that match the selector, always brings the currently dragged item to the front. Very useful in things like window managers.
Code examples:

Initialize the draggable with the stack option specified:

$( ".selector" ).draggable({ stack: ".products" });

Get or set the stack option, after initialization:

// getter
var stack = $( ".selector" ).draggable( "option", "stack" );
 
// setter
$( ".selector" ).draggable( "option", "stack", ".products" );

zIndexType: Number

Default: false
Z-index for the helper while being dragged.
Code examples:

Initialize the draggable with the zIndex option specified:

$( ".selector" ).draggable({ zIndex: 100 });

Get or set the zIndex option, after initialization:

// getter
var zIndex = $( ".selector" ).draggable( "option", "zIndex" );
 
// setter
$( ".selector" ).draggable( "option", "zIndex", 100 );

Methods

destroy()

Removes the draggable functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).draggable( "destroy" );

disable()

Disables the draggable.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).draggable( "disable" );

enable()

Enables the draggable.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).draggable( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).draggable( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current draggable options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).draggable( "option" );

option( optionName, value )

Sets the value of the draggable option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).draggable( "option", "disabled", true );

option( options )

Sets one or more options for the draggable.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).draggable( "option", { disabled: true } );

widget()Returns: jQuery

Returns a jQuery object containing the draggable element.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).draggable( "widget" );

Events

create( event, ui )Type: dragcreate

Triggered when the draggable is created.
Code examples:

Initialize the draggable with the create callback specified:

$( ".selector" ).draggable({
    create: function( event, ui ) {}
});

Bind an event listener to the dragcreate event:

$( ".selector" ).on( "dragcreate", function( event, ui ) {} );

drag( event, ui )Type: drag

Triggered while the mouse is moved during the dragging.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper that's being dragged.
    • position
      Type: Object
      Current CSS position of the helper as { top, left } object.
    • offset
      Type: Object
      Current offset position of the helper as { top, left } object.
Code examples:

Initialize the draggable with the drag callback specified:

$( ".selector" ).draggable({
    drag: function( event, ui ) {}
});

Bind an event listener to the drag event:

$( ".selector" ).on( "drag", function( event, ui ) {} );

start( event, ui )Type: dragstart

Triggered when dragging starts.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper that's being dragged.
    • position
      Type: Object
      Current CSS position of the helper as { top, left } object.
    • offset
      Type: Object
      Current offset position of the helper as { top, left } object.
Code examples:

Initialize the draggable with the start callback specified:

$( ".selector" ).draggable({
    start: function( event, ui ) {}
});

Bind an event listener to the dragstart event:

$( ".selector" ).on( "dragstart", function( event, ui ) {} );

stop( event, ui )Type: dragstop

Triggered when dragging stops.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper that's being dragged.
    • position
      Type: Object
      Current CSS position of the helper as { top, left } object.
    • offset
      Type: Object
      Current offset position of the helper as { top, left } object.
Code examples:

Initialize the draggable with the stop callback specified:

$( ".selector" ).draggable({
    stop: function( event, ui ) {}
});

Bind an event listener to the dragstop event:

$( ".selector" ).on( "dragstop", function( event, ui ) {} );

Example:

A simple jQuery UI Draggable

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>draggable demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #draggable {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="draggable">Drag me</div>
 
<script>
$( "#draggable" ).draggable();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/datepicker.html0000644000175000017500000040272312107500070022157 0ustar metalmetal jQuery UI datepicker documentation

Datepicker Widgetversion added: 1.0

Description: Select a date from a popup or inline calendar

QuickNavExamples

Events

The jQuery UI Datepicker is a highly configurable plugin that adds datepicker functionality to your pages. You can customize the date format and language, restrict the selectable date ranges and add in buttons and other navigation options easily.

By default, the datepicker calendar opens in a small overlay when the associated text field gains focus. For an inline calendar, simply attach the datepicker to a div or span.

Keyboard interaction

While the datepicker is open, the following key commands are available:

  • PAGE UP: Move to the previous month.
  • PAGE DOWN: Move to the next month.
  • CTRL+PAGE UP: Move to the previous year.
  • CTRL+PAGE DOWN: Move to the next year.
  • CTRL+HOME: Move to the current month. Open the datepicker if closed.
  • CTRL+LEFT: Move to the previous day.
  • CTRL+RIGHT: Move to the next day.
  • CTRL+UP: Move to the previous week.
  • CTRL+DOWN: Move the next week.
  • ENTER: Select the focused date.
  • CTRL+END: Close the datepicker and erase the date.
  • ESCAPE: Close the datepicker without selection.

Utility functions

  • $.datepicker.setDefaults( settings ) - Set settings for all datepicker instances.
  • $.datepicker.formatDate( format, date, settings ) - Format a date into a string value with a specified format.
  • $.datepicker.parseDate( format, value, settings ) - Extract a date from a string value with a specified format.
  • $.datepicker.iso8601Week( date ) - Determine the week of the year for a given date: 1 to 53.
  • $.datepicker.noWeekends - Set as beforeShowDay function to prevent selection of weekends.

Localization

Datepicker provides support for localizing its content to cater for different languages and date formats. Each localization is contained within its own file with the language code appended to the name, e.g., jquery.ui.datepicker-fr.js for French. The desired localization file should be included after the main datepicker code. Each localization file adds its settings to the set of available localizations and automatically applies them as defaults for all instances.

The $.datepicker.regional attribute holds an array of localizations, indexed by language code, with "" referring to the default (English). Each entry is an object with the following attributes: closeText, prevText, nextText, currentText, monthNames, monthNamesShort, dayNames, dayNamesShort, dayNamesMin, weekHeader, dateFormat, firstDay, isRTL, showMonthAfterYear, and yearSuffix.

You can restore the default localizations with:

$.datepicker.setDefaults( $.datepicker.regional[ "" ] );

And can then override an individual datepicker for a specific locale:

$( selector ).datepicker( $.datepicker.regional[ "fr" ] );

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

altFieldType: Selector or jQuery or Element

Default: ""
An input element that is to be updated with the selected date from the datepicker. Use the altFormat option to change the format of the date within this field. Leave as blank for no alternate field.
Code examples:

Initialize the datepicker with the altField option specified:

$( ".selector" ).datepicker({ altField: "#actualDate" });

Get or set the altField option, after initialization:

// getter
var altField = $( ".selector" ).datepicker( "option", "altField" );
 
// setter
$( ".selector" ).datepicker( "option", "altField", "#actualDate" );

altFormatType: String

Default: ""
The dateFormat to be used for the altField option. This allows one date format to be shown to the user for selection purposes, while a different format is actually sent behind the scenes. For a full list of the possible formats see the [[UI/Datepicker/formatDate|formatDate]] function
Code examples:

Initialize the datepicker with the altFormat option specified:

$( ".selector" ).datepicker({ altFormat: "yy-mm-dd" });

Get or set the altFormat option, after initialization:

// getter
var altFormat = $( ".selector" ).datepicker( "option", "altFormat" );
 
// setter
$( ".selector" ).datepicker( "option", "altFormat", "yy-mm-dd" );

appendTextType: String

Default: ""
The text to display after each date field, e.g., to show the required format.
Code examples:

Initialize the datepicker with the appendText option specified:

$( ".selector" ).datepicker({ appendText: "(yyyy-mm-dd)" });

Get or set the appendText option, after initialization:

// getter
var appendText = $( ".selector" ).datepicker( "option", "appendText" );
 
// setter
$( ".selector" ).datepicker( "option", "appendText", "(yyyy-mm-dd)" );

autoSizeType: Boolean

Default: false
Set to true to automatically resize the input field to accommodate dates in the current dateFormat.
Code examples:

Initialize the datepicker with the autoSize option specified:

$( ".selector" ).datepicker({ autoSize: true });

Get or set the autoSize option, after initialization:

// getter
var autoSize = $( ".selector" ).datepicker( "option", "autoSize" );
 
// setter
$( ".selector" ).datepicker( "option", "autoSize", true );

beforeShowType: Function( Element input, Object inst )

Default: null
A function that takes an input field and current datepicker instance and returns an options object to update the datepicker with. It is called just before the datepicker is displayed.

beforeShowDayType: Function( Date date )

Default: null
A function takes a date as a parameter and must return an array with [0] equal to true/false indicating whether or not this date is selectable, [1] equal to a CSS class name or "" for the default presentation, and [2] an optional popup tooltip for this date. It is called for each day in the datepicker before it is displayed.

buttonImageType: String

Default: ""
The URL for the popup button image. If set, the buttonText option becomes the alt value and is not directly displayed.
Code examples:

Initialize the datepicker with the buttonImage option specified:

$( ".selector" ).datepicker({ buttonImage: "/images/datepicker.gif" });

Get or set the buttonImage option, after initialization:

// getter
var buttonImage = $( ".selector" ).datepicker( "option", "buttonImage" );
 
// setter
$( ".selector" ).datepicker( "option", "buttonImage", "/images/datepicker.gif" );

buttonImageOnlyType: Boolean

Default: false
Whether the button image should be rendered by itself instead of inside a button element.
Code examples:

Initialize the datepicker with the buttonImageOnly option specified:

$( ".selector" ).datepicker({ buttonImageOnly: true });

Get or set the buttonImageOnly option, after initialization:

// getter
var buttonImageOnly = $( ".selector" ).datepicker( "option", "buttonImageOnly" );
 
// setter
$( ".selector" ).datepicker( "option", "buttonImageOnly", true );

buttonTextType: String

Default: "..."
The text to display on the trigger button. Use in conjunction with the showOn option set to "button" or "both".
Code examples:

Initialize the datepicker with the buttonText option specified:

$( ".selector" ).datepicker({ buttonText: "Choose" });

Get or set the buttonText option, after initialization:

// getter
var buttonText = $( ".selector" ).datepicker( "option", "buttonText" );
 
// setter
$( ".selector" ).datepicker( "option", "buttonText", "Choose" );

calculateWeekType: Function()

Default: jQuery.datepicker.iso8601Week
A function to calculate the week of the year for a given date. The default implementation uses the ISO 8601 definition: weeks start on a Monday; the first week of the year contains the first Thursday of the year.
Code examples:

Initialize the datepicker with the calculateWeek option specified:

$( ".selector" ).datepicker({ calculateWeek: myWeekCalc });

Get or set the calculateWeek option, after initialization:

// getter
var calculateWeek = $( ".selector" ).datepicker( "option", "calculateWeek" );
 
// setter
$( ".selector" ).datepicker( "option", "calculateWeek", myWeekCalc );

changeMonthType: Boolean

Default: false
Whether the month should be rendered as a dropdown instead of text.
Code examples:

Initialize the datepicker with the changeMonth option specified:

$( ".selector" ).datepicker({ changeMonth: true });

Get or set the changeMonth option, after initialization:

// getter
var changeMonth = $( ".selector" ).datepicker( "option", "changeMonth" );
 
// setter
$( ".selector" ).datepicker( "option", "changeMonth", true );

changeYearType: Boolean

Default: false
Whether the year should be rendered as a dropdown instead of text. Use the yearRange option to control which years are made available for selection.
Code examples:

Initialize the datepicker with the changeYear option specified:

$( ".selector" ).datepicker({ changeYear: true });

Get or set the changeYear option, after initialization:

// getter
var changeYear = $( ".selector" ).datepicker( "option", "changeYear" );
 
// setter
$( ".selector" ).datepicker( "option", "changeYear", true );

closeTextType: String

Default: "Done"
The text to display for the close link. Use the showButtonPanel option to display this button.
Code examples:

Initialize the datepicker with the closeText option specified:

$( ".selector" ).datepicker({ closeText: "Close" });

Get or set the closeText option, after initialization:

// getter
var closeText = $( ".selector" ).datepicker( "option", "closeText" );
 
// setter
$( ".selector" ).datepicker( "option", "closeText", "Close" );

constrainInputType: Boolean

Default: true
When true, entry in the input field is constrained to those characters allowed by the current dateFormat option.
Code examples:

Initialize the datepicker with the constrainInput option specified:

$( ".selector" ).datepicker({ constrainInput: false });

Get or set the constrainInput option, after initialization:

// getter
var constrainInput = $( ".selector" ).datepicker( "option", "constrainInput" );
 
// setter
$( ".selector" ).datepicker( "option", "constrainInput", false );

currentTextType: String

Default: "Today"
The text to display for the current day link. Use the showButtonPanel option to display this button.
Code examples:

Initialize the datepicker with the currentText option specified:

$( ".selector" ).datepicker({ currentText: "Now" });

Get or set the currentText option, after initialization:

// getter
var currentText = $( ".selector" ).datepicker( "option", "currentText" );
 
// setter
$( ".selector" ).datepicker( "option", "currentText", "Now" );

dateFormatType: String

Default: "mm/dd/yy"
The format for parsed and displayed dates. For a full list of the possible formats see the [[UI/Datepicker/formatDate|formatDate]] function.
Code examples:

Initialize the datepicker with the dateFormat option specified:

$( ".selector" ).datepicker({ dateFormat: "yy-mm-dd" });

Get or set the dateFormat option, after initialization:

// getter
var dateFormat = $( ".selector" ).datepicker( "option", "dateFormat" );
 
// setter
$( ".selector" ).datepicker( "option", "dateFormat", "yy-mm-dd" );

dayNamesType: Array

Default: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]
The list of long day names, starting from Sunday, for use as requested via the dateFormat option.
Code examples:

Initialize the datepicker with the dayNames option specified:

$( ".selector" ).datepicker({ dayNames: [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ] });

Get or set the dayNames option, after initialization:

// getter
var dayNames = $( ".selector" ).datepicker( "option", "dayNames" );
 
// setter
$( ".selector" ).datepicker( "option", "dayNames", [ "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" ] );

dayNamesMinType: Array

Default: [ "Su", "Mo", "Tu", "We", "Th", "Fr", "Sa" ]
The list of minimised day names, starting from Sunday, for use as column headers within the datepicker.
Code examples:

Initialize the datepicker with the dayNamesMin option specified:

$( ".selector" ).datepicker({ dayNamesMin: [ "Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa" ] });

Get or set the dayNamesMin option, after initialization:

// getter
var dayNamesMin = $( ".selector" ).datepicker( "option", "dayNamesMin" );
 
// setter
$( ".selector" ).datepicker( "option", "dayNamesMin", [ "Di", "Lu", "Ma", "Me", "Je", "Ve", "Sa" ] );

dayNamesShortType: Array

Default: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ]
The list of abbreviated day names, starting from Sunday, for use as requested via the dateFormat option.
Code examples:

Initialize the datepicker with the dayNamesShort option specified:

$( ".selector" ).datepicker({ dayNamesShort: [ "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam" ] });

Get or set the dayNamesShort option, after initialization:

// getter
var dayNamesShort = $( ".selector" ).datepicker( "option", "dayNamesShort" );
 
// setter
$( ".selector" ).datepicker( "option", "dayNamesShort", [ "Dim", "Lun", "Mar", "Mer", "Jeu", "Ven", "Sam" ] );

defaultDateType: Date or Number or String

Default: null
Set the date to highlight on first opening if the field is blank. Specify either an actual date via a Date object or as a string in the current [[UI/Datepicker#option-dateFormat|dateFormat]], or a number of days from today (e.g. +7) or a string of values and periods ('y' for years, 'm' for months, 'w' for weeks, 'd' for days, e.g. '+1m +7d'), or null for today.
Multiple types supported:
  • Date: A date object containing the default date.
  • Number: A number of days from today. For example 2 represents two days from today and -1 represents yesterday.
  • String: A string in the format defined by the dateFormat option, or a relative date. Relative dates must contain value and period pairs; valid periods are "y" for years, "m" for months, "w" for weeks, and "d" for days. For example, "+1m +7d" represents one month and seven days from today.
Code examples:

Initialize the datepicker with the defaultDate option specified:

$( ".selector" ).datepicker({ defaultDate: +7 });

Get or set the defaultDate option, after initialization:

// getter
var defaultDate = $( ".selector" ).datepicker( "option", "defaultDate" );
 
// setter
$( ".selector" ).datepicker( "option", "defaultDate", +7 );

durationType: or String

Default: "normal"
Control the speed at which the datepicker appears, it may be a time in milliseconds or a string representing one of the three predefined speeds ("slow", "normal", "fast").
Code examples:

Initialize the datepicker with the duration option specified:

$( ".selector" ).datepicker({ duration: "slow" });

Get or set the duration option, after initialization:

// getter
var duration = $( ".selector" ).datepicker( "option", "duration" );
 
// setter
$( ".selector" ).datepicker( "option", "duration", "slow" );

firstDayType: Integer

Default: 0
Set the first day of the week: Sunday is 0, Monday is 1, etc.
Code examples:

Initialize the datepicker with the firstDay option specified:

$( ".selector" ).datepicker({ firstDay: 1 });

Get or set the firstDay option, after initialization:

// getter
var firstDay = $( ".selector" ).datepicker( "option", "firstDay" );
 
// setter
$( ".selector" ).datepicker( "option", "firstDay", 1 );

gotoCurrentType: Boolean

Default: false
When true, the current day link moves to the currently selected date instead of today.
Code examples:

Initialize the datepicker with the gotoCurrent option specified:

$( ".selector" ).datepicker({ gotoCurrent: true });

Get or set the gotoCurrent option, after initialization:

// getter
var gotoCurrent = $( ".selector" ).datepicker( "option", "gotoCurrent" );
 
// setter
$( ".selector" ).datepicker( "option", "gotoCurrent", true );

hideIfNoPrevNextType: Boolean

Default: false
Normally the previous and next links are disabled when not applicable (see the minDate and maxDate options). You can hide them altogether by setting this attribute to true.
Code examples:

Initialize the datepicker with the hideIfNoPrevNext option specified:

$( ".selector" ).datepicker({ hideIfNoPrevNext: true });

Get or set the hideIfNoPrevNext option, after initialization:

// getter
var hideIfNoPrevNext = $( ".selector" ).datepicker( "option", "hideIfNoPrevNext" );
 
// setter
$( ".selector" ).datepicker( "option", "hideIfNoPrevNext", true );

isRTLType: Boolean

Default: false
Whether the current language is drawn from right to left.
Code examples:

Initialize the datepicker with the isRTL option specified:

$( ".selector" ).datepicker({ isRTL: true });

Get or set the isRTL option, after initialization:

// getter
var isRTL = $( ".selector" ).datepicker( "option", "isRTL" );
 
// setter
$( ".selector" ).datepicker( "option", "isRTL", true );

maxDateType: Date or Number or String

Default: null
The maximum selectable date. When set to null, there is no maximum.
Multiple types supported:
  • Date: A date object containing the maximum date.
  • Number: A number of days from today. For example 2 represents two days from today and -1 represents yesterday.
  • String: A string in the format defined by the dateFormat option, or a relative date. Relative dates must contain value and period pairs; valid periods are "y" for years, "m" for months, "w" for weeks, and "d" for days. For example, "+1m +7d" represents one month and seven days from today.
Code examples:

Initialize the datepicker with the maxDate option specified:

$( ".selector" ).datepicker({ maxDate: "+1m +1w" });

Get or set the maxDate option, after initialization:

// getter
var maxDate = $( ".selector" ).datepicker( "option", "maxDate" );
 
// setter
$( ".selector" ).datepicker( "option", "maxDate", "+1m +1w" );

minDateType: Date or Number or String

Default: null
The minimum selectable date. When set to null, there is no minimum.
Multiple types supported:
  • Date: A date object containing the minimum date.
  • Number: A number of days from today. For example 2 represents two days from today and -1 represents yesterday.
  • String: A string in the format defined by the dateFormat option, or a relative date. Relative dates must contain value and period pairs; valid periods are "y" for years, "m" for months, "w" for weeks, and "d" for days. For example, "+1m +7d" represents one month and seven days from today.
Code examples:

Initialize the datepicker with the minDate option specified:

$( ".selector" ).datepicker({ minDate: new Date(2007, 1 - 1, 1) });

Get or set the minDate option, after initialization:

// getter
var minDate = $( ".selector" ).datepicker( "option", "minDate" );
 
// setter
$( ".selector" ).datepicker( "option", "minDate", new Date(2007, 1 - 1, 1) );

monthNamesType: Array

Default: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]
The list of full month names, for use as requested via the dateFormat option.
Code examples:

Initialize the datepicker with the monthNames option specified:

$( ".selector" ).datepicker({ monthNames: [ "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" ] });

Get or set the monthNames option, after initialization:

// getter
var monthNames = $( ".selector" ).datepicker( "option", "monthNames" );
 
// setter
$( ".selector" ).datepicker( "option", "monthNames", [ "Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November", "December" ] );

monthNamesShortType: Array

Default: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]
The list of abbreviated month names, as used in the month header on each datepicker and as requested via the dateFormat option.
Code examples:

Initialize the datepicker with the monthNamesShort option specified:

$( ".selector" ).datepicker({ monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" ] });

Get or set the monthNamesShort option, after initialization:

// getter
var monthNamesShort = $( ".selector" ).datepicker( "option", "monthNamesShort" );
 
// setter
$( ".selector" ).datepicker( "option", "monthNamesShort", [ "Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec" ] );

navigationAsDateFormatType: Boolean

Default: false
Whether the prevText and nextText options should be parsed as dates by the [[UI/Datepicker/formatDate|formatDate]] function, allowing them to display the target month names for example.
Code examples:

Initialize the datepicker with the navigationAsDateFormat option specified:

$( ".selector" ).datepicker({ navigationAsDateFormat: true });

Get or set the navigationAsDateFormat option, after initialization:

// getter
var navigationAsDateFormat = $( ".selector" ).datepicker( "option", "navigationAsDateFormat" );
 
// setter
$( ".selector" ).datepicker( "option", "navigationAsDateFormat", true );

nextTextType: String

Default: "Next"
The text to display for the next month link. With the standard ThemeRoller styling, this value is replaced by an icon.
Code examples:

Initialize the datepicker with the nextText option specified:

$( ".selector" ).datepicker({ nextText: "Later" });

Get or set the nextText option, after initialization:

// getter
var nextText = $( ".selector" ).datepicker( "option", "nextText" );
 
// setter
$( ".selector" ).datepicker( "option", "nextText", "Later" );

numberOfMonthsType: Number or Array

Default: 1
The number of months to show at once.
Multiple types supported:
  • Number: The number of months to display in a single row.
  • Array: An array defining the number of rows and columns to display.
Code examples:

Initialize the datepicker with the numberOfMonths option specified:

$( ".selector" ).datepicker({ numberOfMonths: [ 2, 3 ] });

Get or set the numberOfMonths option, after initialization:

// getter
var numberOfMonths = $( ".selector" ).datepicker( "option", "numberOfMonths" );
 
// setter
$( ".selector" ).datepicker( "option", "numberOfMonths", [ 2, 3 ] );

onChangeMonthYearType: Function( Integer year, Integer month, Object inst )

Default: null
Called when the datepicker moves to a new month and/or year. The function receives the selected year, month (1-12), and the datepicker instance as parameters. this refers to the associated input field.

onCloseType: Function( String dateText, Object inst )

Default: null
Called when the datepicker is closed, whether or not a date is selected. The function receives the selected date as text ("" if none) and the datepicker instance as parameters. this refers to the associated input field.

onSelectType: Function( String dateText, Object inst )

Default: null
Called when the datepicker is selected. The function receives the selected date as text and the datepicker instance as parameters. this refers to the associated input field.

prevTextType: String

Default: "Prev"
The text to display for the previous month link. With the standard ThemeRoller styling, this value is replaced by an icon.
Code examples:

Initialize the datepicker with the prevText option specified:

$( ".selector" ).datepicker({ prevText: "Earlier" });

Get or set the prevText option, after initialization:

// getter
var prevText = $( ".selector" ).datepicker( "option", "prevText" );
 
// setter
$( ".selector" ).datepicker( "option", "prevText", "Earlier" );

selectOtherMonthsType: Boolean

Default: false
Whether days in other months shown before or after the current month are selectable. This only applies if the showOtherMonths option is set to true.
Code examples:

Initialize the datepicker with the selectOtherMonths option specified:

$( ".selector" ).datepicker({ selectOtherMonths: true });

Get or set the selectOtherMonths option, after initialization:

// getter
var selectOtherMonths = $( ".selector" ).datepicker( "option", "selectOtherMonths" );
 
// setter
$( ".selector" ).datepicker( "option", "selectOtherMonths", true );

shortYearCutoffType: Number or String

Default: "+10"
The cutoff year for determining the century for a date (used in conjunction with [[UI/Datepicker#option-dateFormat|dateFormat]] 'y'). Any dates entered with a year value less than or equal to the cutoff year are considered to be in the current century, while those greater than it are deemed to be in the previous century.
Multiple types supported:
  • Number: A value between 0 and 99 indicating the cutoff year.
  • String: A relative number of years from the current year, e.g., "+3" or "-5".
Code examples:

Initialize the datepicker with the shortYearCutoff option specified:

$( ".selector" ).datepicker({ shortYearCutoff: 50 });

Get or set the shortYearCutoff option, after initialization:

// getter
var shortYearCutoff = $( ".selector" ).datepicker( "option", "shortYearCutoff" );
 
// setter
$( ".selector" ).datepicker( "option", "shortYearCutoff", 50 );

showAnimType: String

Default: "show"
The name of the animation used to show and hide the datepicker. Use "show" (the default), "slideDown", "fadeIn", any of the jQuery UI effects. Set to an empty string to disable animation.
Code examples:

Initialize the datepicker with the showAnim option specified:

$( ".selector" ).datepicker({ showAnim: "fold" });

Get or set the showAnim option, after initialization:

// getter
var showAnim = $( ".selector" ).datepicker( "option", "showAnim" );
 
// setter
$( ".selector" ).datepicker( "option", "showAnim", "fold" );

showButtonPanelType: Boolean

Default: false
Whether to show the button panel.
Code examples:

Initialize the datepicker with the showButtonPanel option specified:

$( ".selector" ).datepicker({ showButtonPanel: true });

Get or set the showButtonPanel option, after initialization:

// getter
var showButtonPanel = $( ".selector" ).datepicker( "option", "showButtonPanel" );
 
// setter
$( ".selector" ).datepicker( "option", "showButtonPanel", true );

showCurrentAtPosType: Number

Default: 0
When displaying multiple months via the numberOfMonths option, the showCurrentAtPos option defines which position to display the current month in.
Code examples:

Initialize the datepicker with the showCurrentAtPos option specified:

$( ".selector" ).datepicker({ showCurrentAtPos: 3 });

Get or set the showCurrentAtPos option, after initialization:

// getter
var showCurrentAtPos = $( ".selector" ).datepicker( "option", "showCurrentAtPos" );
 
// setter
$( ".selector" ).datepicker( "option", "showCurrentAtPos", 3 );

showMonthAfterYearType: Boolean

Default: false
Whether to show the month after the year in the header.
Code examples:

Initialize the datepicker with the showMonthAfterYear option specified:

$( ".selector" ).datepicker({ showMonthAfterYear: true });

Get or set the showMonthAfterYear option, after initialization:

// getter
var showMonthAfterYear = $( ".selector" ).datepicker( "option", "showMonthAfterYear" );
 
// setter
$( ".selector" ).datepicker( "option", "showMonthAfterYear", true );

showOnType: String

Default: "focus"
When the datepicker should appear. The datepicker can appear when the field receives focus ("focus"), when a button is clicked ("button"), or when either event occurs ("both").
Code examples:

Initialize the datepicker with the showOn option specified:

$( ".selector" ).datepicker({ showOn: "both" });

Get or set the showOn option, after initialization:

// getter
var showOn = $( ".selector" ).datepicker( "option", "showOn" );
 
// setter
$( ".selector" ).datepicker( "option", "showOn", "both" );

showOptionsType: Object

Default: {}
If using one of the jQuery UI effects for the showAnim option, you can provide additional settings for that animation via this option.
Code examples:

Initialize the datepicker with the showOptions option specified:

$( ".selector" ).datepicker({ showOptions: { direction: "up" } });

Get or set the showOptions option, after initialization:

// getter
var showOptions = $( ".selector" ).datepicker( "option", "showOptions" );
 
// setter
$( ".selector" ).datepicker( "option", "showOptions", { direction: "up" } );

showOtherMonthsType: Boolean

Default: false
Whether to display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use the selectOtherMonths option.
Code examples:

Initialize the datepicker with the showOtherMonths option specified:

$( ".selector" ).datepicker({ showOtherMonths: true });

Get or set the showOtherMonths option, after initialization:

// getter
var showOtherMonths = $( ".selector" ).datepicker( "option", "showOtherMonths" );
 
// setter
$( ".selector" ).datepicker( "option", "showOtherMonths", true );

showWeekType: Boolean

Default: false
When true, a column is added to show the week of the year. The calculateWeek option determines how the week of the year is calculated. You may also want to change the firstDay option.
Code examples:

Initialize the datepicker with the showWeek option specified:

$( ".selector" ).datepicker({ showWeek: true });

Get or set the showWeek option, after initialization:

// getter
var showWeek = $( ".selector" ).datepicker( "option", "showWeek" );
 
// setter
$( ".selector" ).datepicker( "option", "showWeek", true );

stepMonthsType: Number

Default: 1
Set how many months to move when clicking the previous/next links.
Code examples:

Initialize the datepicker with the stepMonths option specified:

$( ".selector" ).datepicker({ stepMonths: 3 });

Get or set the stepMonths option, after initialization:

// getter
var stepMonths = $( ".selector" ).datepicker( "option", "stepMonths" );
 
// setter
$( ".selector" ).datepicker( "option", "stepMonths", 3 );

weekHeaderType: String

Default: "Wk"
The text to display for the week of the year column heading. Use the showWeek option to display this column.
Code examples:

Initialize the datepicker with the weekHeader option specified:

$( ".selector" ).datepicker({ weekHeader: "W" });

Get or set the weekHeader option, after initialization:

// getter
var weekHeader = $( ".selector" ).datepicker( "option", "weekHeader" );
 
// setter
$( ".selector" ).datepicker( "option", "weekHeader", "W" );

yearRangeType: String

Default: "c-10:c+10"
The range of years displayed in the year drop-down: either relative to today's year ("-nn:+nn"), relative to the currently selected year ("c-nn:c+nn"), absolute ("nnnn:nnnn"), or combinations of these formats ("nnnn:-nn"). Note that this option only affects what appears in the drop-down, to restrict which dates may be selected use the minDate and/or maxDate options.
Code examples:

Initialize the datepicker with the yearRange option specified:

$( ".selector" ).datepicker({ yearRange: "2002:2012" });

Get or set the yearRange option, after initialization:

// getter
var yearRange = $( ".selector" ).datepicker( "option", "yearRange" );
 
// setter
$( ".selector" ).datepicker( "option", "yearRange", "2002:2012" );

yearSuffixType: String

Default: ""
Additional text to display after the year in the month headers.
Code examples:

Initialize the datepicker with the yearSuffix option specified:

$( ".selector" ).datepicker({ yearSuffix: "CE" });

Get or set the yearSuffix option, after initialization:

// getter
var yearSuffix = $( ".selector" ).datepicker( "option", "yearSuffix" );
 
// setter
$( ".selector" ).datepicker( "option", "yearSuffix", "CE" );

Methods

destroy()

Removes the datepicker functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).datepicker( "destroy" );

dialog( date [, onSelect ] [, settings ] [, pos ] )

Opens the datepicker in a dialog box.
  • date
    Type: String or Date
    The initial date.
  • onSelect
    Type: Function()
    A callback function when a date is selected. The function receives the date text and date picker instance as parameters.
  • settings
    Type: Options
    The new settings for the date picker.
  • pos
    The position of the top/left of the dialog as [x, y] or a MouseEvent that contains the coordinates. If not specified the dialog is centered on the screen.
Code examples:

Invoke the dialog method:

$( ".selector" ).datepicker( "dialog", "10/12/2012" );

getDate()Returns: Date

Returns the current date for the datepicker or null if no date has been selected.
  • This method does not accept any arguments.
Code examples:

Invoke the getDate method:

var currentDate = $( ".selector" ).datepicker( "getDate" );

hide()

Close a previously opened date picker.
  • This method does not accept any arguments.
Code examples:

Invoke the hide method:

$( ".selector" ).datepicker( "hide" );

isDisabled()Returns: Boolean

Determine whether a date picker has been disabled.
  • This method does not accept any arguments.
Code examples:

Invoke the isDisabled method:

var isDisabled = $( ".selector" ).datepicker( "isDisabled" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).datepicker( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current datepicker options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).datepicker( "option" );

option( optionName, value )

Sets the value of the datepicker option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).datepicker( "option", "disabled", true );

option( options )

Sets one or more options for the datepicker.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).datepicker( "option", { disabled: true } );

refresh()

Redraw the date picker, after having made some external modifications.
  • This method does not accept any arguments.
Code examples:

Invoke the refresh method:

$( ".selector" ).datepicker( "refresh" );

setDate( date )

Sets the date for the datepicker. The new date may be a Date object or a string in the current date format (e.g., "01/26/2009"), a number of days from today (e.g., +7) or a string of values and periods ("y" for years, "m" for months, "w" for weeks, "d" for days, e.g., "+1m +7d"), or null to clear the selected date.
Code examples:

Invoke the setDate method:

$( ".selector" ).datepicker( "setDate", "10/12/2012" );

show()

Open the date picker. If the datepicker is attached to an input, the input must be visible for the datepicker to be shown.
  • This method does not accept any arguments.
Code examples:

Invoke the show method:

$( ".selector" ).datepicker( "show" );

widget()Returns: jQuery

Returns a jQuery object containing the datepicker.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).datepicker( "widget" );

Example:

A simple jQuery UI Datepicker.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>datepicker demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="datepicker"></div>
 
<script>
$( "#datepicker" ).datepicker();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/blind-effect.html0000644000175000017500000002145312107500070022363 0ustar metalmetal jQuery UI blind-effect documentation

Blind Effect

Description: The blind effect hides or shows an element by wrapping the element in a container, and "pulling the blinds"

  • blind

    • direction (default: "up")
      Type: String

      The direction the blind will be pulled to hide the element, or the direction from which the element will be revealed.

      Possible Values: up, down, left, right, vertical, horizontal.

The container has overflow: hidden applied, so height changes affect what's visible.

Example:

Toggle a div using the blind effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>blind demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "blind" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/puff-effect.html0000644000175000017500000002004612107500070022230 0ustar metalmetal

Puff Effect

Description: Creates a puff effect by scaling the element up and hiding it at the same time.

  • puff

    • percent (default: 150)
      Type: Number
      The percentage to scale to.

Example:

Toggle a div using the puff effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>puff demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "puff" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/tooltip.html0000644000175000017500000012724212107500070021536 0ustar metalmetal jQuery UI tooltip documentation

Tooltip Widgetversion added: 1.9

Description: Customizable, themeable tooltips, replacing native tooltips.

QuickNavExamples

Events

Tooltip replaces native tooltips, making them themable as well as allowing various customizations:

  • Display other content than just the title, like inline footnotes or extra content retrieved via Ajax.
  • Customize the positioning, e.g., to center the tooltip above elements.
  • Add extra styling to customize the appearance, for warning or error fields.

A fade animation is used by default to show and hide the tooltip, making the appearance a bit more organic, compared to just toggling the visiblity. This can be customized with the show and hide options.

The items and content options need to stay in-sync. If you change one of them, you need to change the other.

In general, disabled elements do not trigger any DOM events. Therefore, it is not possible to properly control tooltips for disabled elements, since we need to listen to events to determine when to show and hide the tooltip. As a result, jQuery UI does not guarantee any level of support for tooltips attached to disabled elements. Unfortunately, this means that if you require tooltips on disabled elements, you may end up with a mixture of native tooltips and jQuery UI tooltips.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

contentType: Function() or String

Default: function returning the title attribute

The content of the tooltip.

When changing this option, you likely need to also change the items option.

Multiple types supported:
  • Function: A callback which can either return the content directly, or call the first argument, passing in the content, e.g., for Ajax content.
  • String: A string of HTML to use for the tooltip content.
Code examples:

Initialize the tooltip with the content option specified:

$( ".selector" ).tooltip({ content: "Awesome title!" });

Get or set the content option, after initialization:

// getter
var content = $( ".selector" ).tooltip( "option", "content" );
 
// setter
$( ".selector" ).tooltip( "option", "content", "Awesome title!" );

disabledType: Boolean

Default: false
Disables the tooltip if set to true.
Code examples:

Initialize the tooltip with the disabled option specified:

$( ".selector" ).tooltip({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).tooltip( "option", "disabled" );
 
// setter
$( ".selector" ).tooltip( "option", "disabled", true );

hideType: Boolean or Number or String or Object

Default: null
If and how to animate the hiding of the tooltip.
Multiple types supported:
  • Boolean: When set to false, no animation will be used and the tooltip will be hidden immediately. When set to true, the tooltip will fade out with the default duration and the default easing.
  • Number: The tooltip will fade out with the specified duration and the default easing.
  • String: The tooltip will be hidden using the specified effect. The value can either be the name of a built-in jQuery animateion method, such as "slideUp", or the name of a jQuery UI effect, such as "fold". In either case the effect will be used with the default duration and the default easing.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. If the effect property contains the name of a jQuery method, then that method will be used; otherwise it is assumed to be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used. If effect is omitted, then "fadeOut" will be used.
Code examples:

Initialize the tooltip with the hide option specified:

$( ".selector" ).tooltip({ hide: { effect: "explode", duration: 1000 } });

Get or set the hide option, after initialization:

// getter
var hide = $( ".selector" ).tooltip( "option", "hide" );
 
// setter
$( ".selector" ).tooltip( "option", "hide", { effect: "explode", duration: 1000 } );

itemsType: Selector

Default: [title]

A selector indicating which items should show tooltips. Customize if you're using something other then the title attribute for the tooltip content, or if you need a different selector for event delegation.

When changing this option, you likely need to also change the content option.

Code examples:

Initialize the tooltip with the items option specified:

$( ".selector" ).tooltip({ items: "img[alt]" });

Get or set the items option, after initialization:

// getter
var items = $( ".selector" ).tooltip( "option", "items" );
 
// setter
$( ".selector" ).tooltip( "option", "items", "img[alt]" );

positionType: Object

Default: { my: "left top+15", at: "left bottom", collision: "flipfit" }

Configuration for the Position utility. The of property defaults to the target element, but can also be overriden.

Note: In 1.9.0, the default value was { my: "left+15 center", at: "right center", collision: "flipfit" }, but this was changed to more closely match native tooltip positioning.

Code examples:

Initialize the tooltip with the position option specified:

$( ".selector" ).tooltip({ position: { my: "left+15 center", at: "right center" } });

Get or set the position option, after initialization:

// getter
var position = $( ".selector" ).tooltip( "option", "position" );
 
// setter
$( ".selector" ).tooltip( "option", "position", { my: "left+15 center", at: "right center" } );

showType: Boolean or Number or String or Object

Default: null
If and how to animate the showing of the tooltip.
Multiple types supported:
  • Boolean: When set to false, no animation will be used and the tooltip will be shown immediately. When set to true, the tooltip will fade in with the default duration and the default easing.
  • Number: The tooltip will fade in with the specified duration and the default easing.
  • String: The tooltip will be shown using the specified effect. The value can either be the name of a built-in jQuery animateion method, such as "slideDown", or the name of a jQuery UI effect, such as "fold". In either case the effect will be used with the default duration and the default easing.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. If the effect property contains the name of a jQuery method, then that method will be used; otherwise it is assumed to be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used. If effect is omitted, then "fadeIn" will be used.
Code examples:

Initialize the tooltip with the show option specified:

$( ".selector" ).tooltip({ show: { effect: "blind", duration: 800 } });

Get or set the show option, after initialization:

// getter
var show = $( ".selector" ).tooltip( "option", "show" );
 
// setter
$( ".selector" ).tooltip( "option", "show", { effect: "blind", duration: 800 } );

tooltipClassType: String

Default: null
A class to add to the widget, can be used to display various tooltip types, like warnings or errors.

This may get replaced by the classes option.

Code examples:

Initialize the tooltip with the tooltipClass option specified:

$( ".selector" ).tooltip({ tooltipClass: "custom-tooltip-styling" });

Get or set the tooltipClass option, after initialization:

// getter
var tooltipClass = $( ".selector" ).tooltip( "option", "tooltipClass" );
 
// setter
$( ".selector" ).tooltip( "option", "tooltipClass", "custom-tooltip-styling" );

trackType: Boolean

Default: false
Whether the tooltip should track (follow) the mouse.
Code examples:

Initialize the tooltip with the track option specified:

$( ".selector" ).tooltip({ track: true });

Get or set the track option, after initialization:

// getter
var track = $( ".selector" ).tooltip( "option", "track" );
 
// setter
$( ".selector" ).tooltip( "option", "track", true );

Methods

close()

Closes a tooltip. This is only intended to be called for non-delegated tooltips.
  • This method does not accept any arguments.
Code examples:

Invoke the close method:

$( ".selector" ).tooltip( "close" );

destroy()

Removes the tooltip functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).tooltip( "destroy" );

disable()

Disables the tooltip.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).tooltip( "disable" );

enable()

Enables the tooltip.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).tooltip( "enable" );

open()

Programmatically open a tooltip. This is only intended to be called for non-delegated tooltips.
  • This method does not accept any arguments.
Code examples:

Invoke the open method:

$( ".selector" ).tooltip( "open" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).tooltip( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current tooltip options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).tooltip( "option" );

option( optionName, value )

Sets the value of the tooltip option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).tooltip( "option", "disabled", true );

option( options )

Sets one or more options for the tooltip.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).tooltip( "option", { disabled: true } );

widget()Returns: jQuery

Returns a jQuery object containing the original element.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).tooltip( "widget" );

Events

close( event, ui )Type: tooltipclose

Triggered when a tooltip is closed, triggered on focusout or mouseleave.
  • event
    Type: Event
  • ui
    Type: Object
    • tooltip
      Type: jQuery
      The generated tooltip element.
Code examples:

Initialize the tooltip with the close callback specified:

$( ".selector" ).tooltip({
    close: function( event, ui ) {}
});

Bind an event listener to the tooltipclose event:

$( ".selector" ).on( "tooltipclose", function( event, ui ) {} );

create( event, ui )Type: tooltipcreate

Triggered when the tooltip is created.
Code examples:

Initialize the tooltip with the create callback specified:

$( ".selector" ).tooltip({
    create: function( event, ui ) {}
});

Bind an event listener to the tooltipcreate event:

$( ".selector" ).on( "tooltipcreate", function( event, ui ) {} );

open( event, ui )Type: tooltipopen

Triggered when a tooltip is shown, triggered on focusin or mouseover.
  • event
    Type: Event
  • ui
    Type: Object
    • tooltip
      Type: jQuery
      The generated tooltip element.
Code examples:

Initialize the tooltip with the open callback specified:

$( ".selector" ).tooltip({
    open: function( event, ui ) {}
});

Bind an event listener to the tooltipopen event:

$( ".selector" ).on( "tooltipopen", function( event, ui ) {} );

Example:

Create a tooltip on the document, using event delegation for all elements with a title attribute.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>tooltip demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>
    <a href="#" title="Anchor description">Anchor text</a>
    <input title="Input help">
</p>
<script>
    $( document ).tooltip();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/highlight-effect.html0000644000175000017500000002062712107500070023244 0ustar metalmetal jQuery UI highlight-effect documentation

Highlight Effect

Description: The highlight effect hides or shows an element by animating its background color first.

  • highlight

    • color (default: "#ffff99")
      Type: String
      The background color used during the animation.

Example:

Toggle a div using the highlight effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>highlight demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "highlight" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/shake-effect.html0000644000175000017500000002132412107500070022363 0ustar metalmetal jQuery UI shake-effect documentation

Shake Effect

Description: Shakes the element multiple times, vertically or horizontally.

  • shake

    • direction (default: "both")
      Type: String
      The direction of the effect. Possible values: "left", "right", "up", "down".
    • distance (default: 20)
      Type: Number
      Distance to shake.
    • times (default: 3)
      Type: Integer
      Times to shake.

Example:

Shake a div.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>shake demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to shake the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).effect( "shake" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/transfer-effect.html0000644000175000017500000002746112107500070023124 0ustar metalmetal jQuery UI transfer-effect documentation

Transfer Effect

Description: Transfers the outline of an element to another element

  • transfer

    • className
      Type: String
      argumental class name the transfer element will receive.
    • to
      Type: String
      jQuery selector, the element to transfer to.

Very useful when trying to visualize interaction between two elements.

The transfer element iself has the class ui-effects-transfer, and needs to be styled by you, for example by adding a background or border.

Example:

Clicking on the green element transfers to the other.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>transfer demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    div.green {
        width: 100px;
        height: 80px;
        background: green;
        border: 1px solid black;
        position: relative;
    }
    div.red {
        margin-top: 10px;
        width: 50px;
        height: 30px;
        background: red;
        border: 1px solid black;
        position: relative;
    }
    .ui-effects-transfer {
        border: 1px dotted black;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div class="green"></div>
<div class="red"></div>
 
<script>
$( "div" ).click(function() {
    var i = 1 - $( "div" ).index( this );
    $( this ).effect( "transfer", { to: $( "div" ).eq( i ) }, 1000 );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/autocomplete.html0000644000175000017500000017147312107500070022552 0ustar metalmetal jQuery UI autocomplete documentation

Autocomplete Widgetversion added: 1.8

Description: Autocomplete enables users to quickly find and select from a pre-populated list of values as they type, leveraging searching and filtering.

QuickNavExamples

By giving an Autocomplete field focus or entering something into it, the plugin starts searching for entries that match and displays a list of values to choose from. By entering more characters, the user can filter down the list to better matches.

This can be used to choose previously selected values, such as entering tags for articles or entering email addresses from an address book. Autocomplete can also be used to populate associated information, such as entering a city name and getting the zip code.

You can pull data in from a local or remote source: Local is good for small data sets, e.g., an address book with 50 entries; remote is necessary for big data sets, such as a database with hundreds or millions of entries to select from. To find out more about customizing the data soure, see the documentation for the source option.

Keyboard interaction

When the menu is open, the following key commands are available:

  • UP - Move focus to the previous item. If on first item, move focus to the input. If on the input, move focus to last item.
  • DOWN - Move focus to the next item. If on last item, move focus to the input. If on the input, move focus to the first item.
  • ESCAPE - Close the menu.
  • ENTER - Select the currently focused item and close the menu.
  • TAB - Select the currently focused item, close the menu, and move focus to the next focusable element.
  • PAGE UP/DOWN - Scroll through a page of items (based on height of menu). It's generally a bad idea to display so many items that users need to page..

When the menu is closed, the following key commands are available:

  • UP/DOWN - Open the menu, if the minLength has been met.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

appendToType: Selector

Default: null
Which element the menu should be appended to. When the value is null, the parents of the input field will be checked for a class of ui-front. If an element with the ui-front class is found, the menu will be appended to that element. Regardless of the value, if no element is found, the menu will be appended to the body.
Code examples:

Initialize the autocomplete with the appendTo option specified:

$( ".selector" ).autocomplete({ appendTo: "#someElem" });

Get or set the appendTo option, after initialization:

// getter
var appendTo = $( ".selector" ).autocomplete( "option", "appendTo" );
 
// setter
$( ".selector" ).autocomplete( "option", "appendTo", "#someElem" );

autoFocusType: Boolean

Default: false
If set to true the first item will automatically be focused when the menu is shown.
Code examples:

Initialize the autocomplete with the autoFocus option specified:

$( ".selector" ).autocomplete({ autoFocus: true });

Get or set the autoFocus option, after initialization:

// getter
var autoFocus = $( ".selector" ).autocomplete( "option", "autoFocus" );
 
// setter
$( ".selector" ).autocomplete( "option", "autoFocus", true );

delayType: Integer

Default: 300
The delay in milliseconds between when a keystroke occurs and when a search is performed. A zero-delay makes sense for local data (more responsive), but can produce a lot of load for remote data, while being less responsive.
Code examples:

Initialize the autocomplete with the delay option specified:

$( ".selector" ).autocomplete({ delay: 500 });

Get or set the delay option, after initialization:

// getter
var delay = $( ".selector" ).autocomplete( "option", "delay" );
 
// setter
$( ".selector" ).autocomplete( "option", "delay", 500 );

disabledType: Boolean

Default: false
Disables the autocomplete if set to true.
Code examples:

Initialize the autocomplete with the disabled option specified:

$( ".selector" ).autocomplete({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).autocomplete( "option", "disabled" );
 
// setter
$( ".selector" ).autocomplete( "option", "disabled", true );

minLengthType: Integer

Default: 1
The minimum number of characters a user must type before a search is performed. Zero is useful for local data with just a few items, but a higher value should be used when a single character search could match a few thousand items.
Code examples:

Initialize the autocomplete with the minLength option specified:

$( ".selector" ).autocomplete({ minLength: 0 });

Get or set the minLength option, after initialization:

// getter
var minLength = $( ".selector" ).autocomplete( "option", "minLength" );
 
// setter
$( ".selector" ).autocomplete( "option", "minLength", 0 );

positionType: Object

Default: { my: "left top", at: "left bottom", collision: "none" }
Identifies the position of the suggestions menu in relation to the associated input element. The of option defaults to the input element, but you can specify another element to position against. You can refer to the jQuery UI Position utility for more details about the various options.
Code examples:

Initialize the autocomplete with the position option specified:

$( ".selector" ).autocomplete({ position: { my : "right top", at: "right bottom" } });

Get or set the position option, after initialization:

// getter
var position = $( ".selector" ).autocomplete( "option", "position" );
 
// setter
$( ".selector" ).autocomplete( "option", "position", { my : "right top", at: "right bottom" } );

sourceType: Array or String or Function( Object request, Function response( Object data ) )

Default: none; must be specified
Defines the data to use, must be specified.

Independent of the variant you use, the label is always treated as text. If you want the label to be treated as html you can use Scott González' html extension. The demos all focus on different variations of the source option - look for one that matches your use case, and check out the code.

Multiple types supported:
  • Array: An array can be used for local data. There are two supported formats:
    • An array of strings: [ "Choice1", "Choice2" ]
    • An array of objects with label and value properties: [ { label: "Choice1", value: "value1" }, ... ]
    The label property is displayed in the suggestion menu. The value will be inserted into the input element when a user selects an item. If just one property is specified, it will be used for both, e.g., if you provide only value properties, the value will also be used as the label.
  • String: When a string is used, the Autocomplete plugin expects that string to point to a URL resource that will return JSON data. It can be on the same host or on a different one (must provide JSONP). The Autocomplete plugin does not filter the results, instead a query string is added with a term field, which the server-side script should use for filtering the results. For example, if the source option is set to "http://example.com" and the user types foo, a GET request would be made to http://example.com?term=foo. The data itself can be in the same format as the local data described above.
  • Function: The third variation, a callback, provides the most flexibility and can be used to connect any data source to Autocomplete. The callback gets two arguments:
    • A request object, with a single term property, which refers to the value currently in the text input. For example, if the user enters "new yo" in a city field, the Autocomplete term will equal "new yo".
    • A response callback, which expects a single argument: the data to suggest to the user. This data should be filtered based on the provided term, and can be in any of the formats described above for simple local data. It's important when providing a custom source callback to handle errors during the request. You must always call the response callback even if you encounter an error. This ensures that the widget always has the correct state.

    When filtering data locally, you can make use of the built-in $.ui.autocomplete.escapeRegex function. It'll take a single string argument and escape all regex characters, making the result safe to pass to new RegExp().

Code examples:

Initialize the autocomplete with the source option specified:

$( ".selector" ).autocomplete({ source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ] });

Get or set the source option, after initialization:

// getter
var source = $( ".selector" ).autocomplete( "option", "source" );
 
// setter
$( ".selector" ).autocomplete( "option", "source", [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ] );

Methods

close()

Closes the Autocomplete menu. Useful in combination with the search method, to close the open menu.
  • This method does not accept any arguments.
Code examples:

Invoke the close method:

$( ".selector" ).autocomplete( "close" );

destroy()

Removes the autocomplete functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).autocomplete( "destroy" );

disable()

Disables the autocomplete.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).autocomplete( "disable" );

enable()

Enables the autocomplete.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).autocomplete( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).autocomplete( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current autocomplete options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).autocomplete( "option" );

option( optionName, value )

Sets the value of the autocomplete option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).autocomplete( "option", "disabled", true );

option( options )

Sets one or more options for the autocomplete.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).autocomplete( "option", { disabled: true } );

widget()

Returns a jQuery object containing the menu element. Although the menu items are constantly created and destroyed, the menu element itself is created during initialization and is constantly reused.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

$( ".selector" ).autocomplete( "widget" );

Events

change( event, ui )Type: autocompletechange

Triggered when the field is blurred, if the value has changed.
  • event
    Type: Event
  • ui
    Type: Object
    • item
      Type: jQuery
      The item selected from the menu, if any. Otherwise the property is null.
Code examples:

Initialize the autocomplete with the change callback specified:

$( ".selector" ).autocomplete({
    change: function( event, ui ) {}
});

Bind an event listener to the autocompletechange event:

$( ".selector" ).on( "autocompletechange", function( event, ui ) {} );

close( event, ui )Type: autocompleteclose

Triggered when the menu is hidden. Not every close event will be accompanied by a change event.
Code examples:

Initialize the autocomplete with the close callback specified:

$( ".selector" ).autocomplete({
    close: function( event, ui ) {}
});

Bind an event listener to the autocompleteclose event:

$( ".selector" ).on( "autocompleteclose", function( event, ui ) {} );

create( event, ui )Type: autocompletecreate

Triggered when the autocomplete is created.
Code examples:

Initialize the autocomplete with the create callback specified:

$( ".selector" ).autocomplete({
    create: function( event, ui ) {}
});

Bind an event listener to the autocompletecreate event:

$( ".selector" ).on( "autocompletecreate", function( event, ui ) {} );

focus( event, ui )Type: autocompletefocus

Triggered when focus is moved to an item (not selecting). The default action is to replace the text field's value with the value of the focused item, though only if the event was triggered by a keyboard interaction.

Canceling this event prevents the value from being updated, but does not prevent the menu item from being focused.

Code examples:

Initialize the autocomplete with the focus callback specified:

$( ".selector" ).autocomplete({
    focus: function( event, ui ) {}
});

Bind an event listener to the autocompletefocus event:

$( ".selector" ).on( "autocompletefocus", function( event, ui ) {} );

open( event, ui )Type: autocompleteopen

Triggered when the suggestion menu is opened or updated.
Code examples:

Initialize the autocomplete with the open callback specified:

$( ".selector" ).autocomplete({
    open: function( event, ui ) {}
});

Bind an event listener to the autocompleteopen event:

$( ".selector" ).on( "autocompleteopen", function( event, ui ) {} );

response( event, ui )Type: autocompleteresponse

Triggered after a search completes, before the menu is shown. Useful for local manipulation of suggestion data, where a custom source option callback is not required. This event is always triggered when a search completes, even if the menu will not be shown because there are no results or the Autocomplete is disabled.
  • event
    Type: Event
  • ui
    Type: Object
    • content
      Type: Array
      Contains the response data and can be modified to change the results that will be shown. This data is already normalized, so if you modify the data, make sure to include both value and label properties for each item.
Code examples:

Initialize the autocomplete with the response callback specified:

$( ".selector" ).autocomplete({
    response: function( event, ui ) {}
});

Bind an event listener to the autocompleteresponse event:

$( ".selector" ).on( "autocompleteresponse", function( event, ui ) {} );

select( event, ui )Type: autocompleteselect

Triggered when an item is selected from the menu. The default action is to replace the text field's value with the value of the selected item.

Canceling this event prevents the value from being updated, but does not prevent the menu from closing.

Code examples:

Initialize the autocomplete with the select callback specified:

$( ".selector" ).autocomplete({
    select: function( event, ui ) {}
});

Bind an event listener to the autocompleteselect event:

$( ".selector" ).on( "autocompleteselect", function( event, ui ) {} );

Examples:

Example: A simple jQuery UI Autocomplete

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>autocomplete demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<label for="autocomplete">Select a programming language: </label>
<input id="autocomplete">
 
<script>
$( "#autocomplete" ).autocomplete({
    source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
});
</script>
 
</body>
</html>

Demo:

Example: Using a custom source callback to match only the beginning of terms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>autocomplete demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<label for="autocomplete">Select a programming language: </label>
<input id="autocomplete">
 
<script>
var tags = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ];
$( "#autocomplete" ).autocomplete({
    source: function( request, response ) {
            var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i" );
            response( $.grep( tags, function( item ){
                return matcher.test( item );
            }) );
        }
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/size-effect.html0000644000175000017500000002165212107500070022246 0ustar metalmetal

Size Effect

Description: Resize an element to a specified width and height.

  • size

    • to
      Type: Object
      Height and width to resize to.
    • origin (default: [ "top", "left" ])
      Type: Array
      The vanishing point.
    • scale (default: "both")
      Type: String
      Which areas of the element will be resized: "both", "box", "content". Box resizes the border and padding of the element; content resizes any content inside of the element.

Example:

Resize the element using the size effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>size demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to resize the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).effect( "size", {
        to: { width: 200, height: 60 }
    }, 1000 );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/fold-effect.html0000644000175000017500000002113612107500070022215 0ustar metalmetal jQuery UI fold-effect documentation

Fold Effect

Description: The fold effect hides or shows an element by folding it.

  • fold

    • size (default: 15)
      Type: Number or String
      The size of the "folded" element.
    • horizFirst (default: false)
      Type: Boolean
      Whether the horizontal direction happens first when hiding. Remember, showing inverts hiding.

Example:

Toggle a div using the fold effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>fold demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "fold" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/slider.html0000644000175000017500000014115712107500070021327 0ustar metalmetal jQuery UI slider documentation

Slider Widgetversion added: 1.5

Description: Drag a handle to select a numeric value.

QuickNavExamples

The jQuery UI Slider plugin makes selected elements into sliders. There are various options such as multiple handles and ranges. The handle can be moved with the mouse or the arrow keys.

The slider widget will create handle elements with the class ui-slider-handle on initialization. You can specify custom handle elements by creating and appending the elements and adding the ui-slider-handle class before initialization. It will only create the number of handles needed to match the length of value/values. For example, if you specify values: [ 1, 5, 18 ] and create one custom handle, the plugin will create the other two.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

animateType: Boolean or String or Number

Default: false
Whether to slide the handle smoothly when the user clicks on the slider track. Also accepts any valid animation duration.
Multiple types supported:
  • Boolean: When set to true, the handle will animate with the default duration.
  • String: The name of a speed, such as "fast" or "slow".
  • Number: The duration of the animation, in milliseconds.
Code examples:

Initialize the slider with the animate option specified:

$( ".selector" ).slider({ animate: "fast" });

Get or set the animate option, after initialization:

// getter
var animate = $( ".selector" ).slider( "option", "animate" );
 
// setter
$( ".selector" ).slider( "option", "animate", "fast" );

disabledType: Boolean

Default: false
Disables the slider if set to true.
Code examples:

Initialize the slider with the disabled option specified:

$( ".selector" ).slider({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).slider( "option", "disabled" );
 
// setter
$( ".selector" ).slider( "option", "disabled", true );

maxType: Number

Default: 100
The maximum value of the slider.
Code examples:

Initialize the slider with the max option specified:

$( ".selector" ).slider({ max: 50 });

Get or set the max option, after initialization:

// getter
var max = $( ".selector" ).slider( "option", "max" );
 
// setter
$( ".selector" ).slider( "option", "max", 50 );

minType: Number

Default: 0
The minimum value of the slider.
Code examples:

Initialize the slider with the min option specified:

$( ".selector" ).slider({ min: 10 });

Get or set the min option, after initialization:

// getter
var min = $( ".selector" ).slider( "option", "min" );
 
// setter
$( ".selector" ).slider( "option", "min", 10 );

orientationType: String

Default: "horizontal"
Determines whether the slider handles move horizontally (min on left, max on right) or vertically (min on bottom, max on top). Possible values: "horizontal", "vertical".
Code examples:

Initialize the slider with the orientation option specified:

$( ".selector" ).slider({ orientation: "vertical" });

Get or set the orientation option, after initialization:

// getter
var orientation = $( ".selector" ).slider( "option", "orientation" );
 
// setter
$( ".selector" ).slider( "option", "orientation", "vertical" );

rangeType: Boolean or String

Default: false
Whether the slider represents a range.
Multiple types supported:
  • Boolean: If set to true, the slider will detect if you have two handles and create a stylable range element between these two.
  • String: Either "min" or "max". A min range goes from the slider min to one handle. A max range goes from one handle to the slider max.
Code examples:

Initialize the slider with the range option specified:

$( ".selector" ).slider({ range: true });

Get or set the range option, after initialization:

// getter
var range = $( ".selector" ).slider( "option", "range" );
 
// setter
$( ".selector" ).slider( "option", "range", true );

stepType: Number

Default: 1
Determines the size or amount of each interval or step the slider takes between the min and max. The full specified value range of the slider (max - min) should be evenly divisible by the step.
Code examples:

Initialize the slider with the step option specified:

$( ".selector" ).slider({ step: 5 });

Get or set the step option, after initialization:

// getter
var step = $( ".selector" ).slider( "option", "step" );
 
// setter
$( ".selector" ).slider( "option", "step", 5 );

valueType: Number

Default: 0
Determines the value of the slider, if there's only one handle. If there is more than one handle, determines the value of the first handle.
Code examples:

Initialize the slider with the value option specified:

$( ".selector" ).slider({ value: 10 });

Get or set the value option, after initialization:

// getter
var value = $( ".selector" ).slider( "option", "value" );
 
// setter
$( ".selector" ).slider( "option", "value", 10 );

valuesType: Array

Default: null
This option can be used to specify multiple handles. If the range option is set to true, the length of values should be 2.
Code examples:

Initialize the slider with the values option specified:

$( ".selector" ).slider({ values: [ 10, 25 ] });

Get or set the values option, after initialization:

// getter
var values = $( ".selector" ).slider( "option", "values" );
 
// setter
$( ".selector" ).slider( "option", "values", [ 10, 25 ] );

Methods

destroy()

Removes the slider functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).slider( "destroy" );

disable()

Disables the slider.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).slider( "disable" );

enable()

Enables the slider.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).slider( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).slider( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current slider options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).slider( "option" );

option( optionName, value )

Sets the value of the slider option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).slider( "option", "disabled", true );

option( options )

Sets one or more options for the slider.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).slider( "option", { disabled: true } );

value()Returns: Number

Get the value of the slider.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var selection = $( ".selector" ).slider( "value" );

value( value )

Set the value of the slider.
  • value
    Type: Number
    The value to set.
Code examples:

Invoke the method:

$( ".selector" ).slider( "value", 55 );

values()Returns: Array

Get the value for all handles.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var values = $( ".selector" ).slider( "values" );

values( index )Returns: Number

Get the value for the specified handle.
  • index
    Type: Integer
    The zero-based index of the handle.
Code examples:

Invoke the method:

var value = $( ".selector" ).slider( "values", 0 );

values( index, value )

Set the value for the specified handle.
  • index
    Type: Integer
    The zero-based index of the handle.
  • value
    Type: Number
    The value to set.
Code examples:

Invoke the method:

$( ".selector" ).slider( "values", 0, 55 );

values( values )

Set the value for all handles.
  • values
    Type: Array
    The values to set.
Code examples:

Invoke the method:

$( ".selector" ).slider( "values", [ 55, 105 ] );

widget()Returns: jQuery

Returns a jQuery object containing the slider.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).slider( "widget" );

Events

change( event, ui )Type: slidechange

Triggered after the user slides a handle, if the value has changed; or if the value is changed programmatically via the value method.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: jQuery
      The jQuery object representing the handle that was changed.
    • value
      Type: Number
      The current value of the slider.
Code examples:

Initialize the slider with the change callback specified:

$( ".selector" ).slider({
    change: function( event, ui ) {}
});

Bind an event listener to the slidechange event:

$( ".selector" ).on( "slidechange", function( event, ui ) {} );

create( event, ui )Type: slidecreate

Triggered when the slider is created.
Code examples:

Initialize the slider with the create callback specified:

$( ".selector" ).slider({
    create: function( event, ui ) {}
});

Bind an event listener to the slidecreate event:

$( ".selector" ).on( "slidecreate", function( event, ui ) {} );

slide( event, ui )Type: slide

Triggered on every mouse move during slide. The value provided in the event as ui.value represents the value that the handle will have as a result of the current movement. Canceling the event will prevent the handle from moving and the handle will continue to have its previous value.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: jQuery
      The jQuery object representing the handle being moved.
    • value
      Type: Number
      The value that the handle will move to if the event is not canceled.
    • values
      Type: Array
      An array of the current values of a multi-handled slider.
Code examples:

Initialize the slider with the slide callback specified:

$( ".selector" ).slider({
    slide: function( event, ui ) {}
});

Bind an event listener to the slide event:

$( ".selector" ).on( "slide", function( event, ui ) {} );

start( event, ui )Type: slidestart

Triggered when the user starts sliding.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: jQuery
      The jQuery object representing the handle being moved.
    • value
      Type: Number
      The current value of the slider.
Code examples:

Initialize the slider with the start callback specified:

$( ".selector" ).slider({
    start: function( event, ui ) {}
});

Bind an event listener to the slidestart event:

$( ".selector" ).on( "slidestart", function( event, ui ) {} );

stop( event, ui )Type: slidestop

Triggered after the user slides a handle.
  • event
    Type: Event
  • ui
    Type: Object
    • handle
      Type: jQuery
      The jQuery object representing the handle that was moved.
    • value
      Type: Number
      The current value of the slider.
Code examples:

Initialize the slider with the stop callback specified:

$( ".selector" ).slider({
    stop: function( event, ui ) {}
});

Bind an event listener to the slidestop event:

$( ".selector" ).on( "slidestop", function( event, ui ) {} );

Example:

A simple jQuery UI Slider.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>slider demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>#slider { margin: 10px; }  </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="slider"></div>
 
<script>
$( "#slider" ).slider();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/progressbar.html0000644000175000017500000010221712107500070022370 0ustar metalmetal jQuery UI progressbar documentation

Progressbar Widgetversion added: 1.6

Description: Display status of a determinate or indeterminate process.

QuickNavExamples

Options

The progress bar is designed to display the current percent complete for a process. The bar is coded to be flexibly sized through CSS and will scale to fit inside its parent container by default.

A determinate progress bar should only be used in situations where the system can accurately update the current status. A determinate progress bar should never fill from left to right, then loop back to empty for a single process — if the actual status cannot be calculated, an indeterminate progress bar should be used to provide user feedback.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

disabledType: Boolean

Default: false
Disables the progressbar if set to true.
Code examples:

Initialize the progressbar with the disabled option specified:

$( ".selector" ).progressbar({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).progressbar( "option", "disabled" );
 
// setter
$( ".selector" ).progressbar( "option", "disabled", true );

maxType: Number

Default: 100
The maximum value of the progressbar.
Code examples:

Initialize the progressbar with the max option specified:

$( ".selector" ).progressbar({ max: 1024 });

Get or set the max option, after initialization:

// getter
var max = $( ".selector" ).progressbar( "option", "max" );
 
// setter
$( ".selector" ).progressbar( "option", "max", 1024 );

valueType: Number or Boolean

Default: 0
The value of the progressbar.
Multiple types supported:
  • Number: A value between 0 and the max.
  • Boolean: Value can be set to false to create an indeterminate progressbar.
Code examples:

Initialize the progressbar with the value option specified:

$( ".selector" ).progressbar({ value: 25 });

Get or set the value option, after initialization:

// getter
var value = $( ".selector" ).progressbar( "option", "value" );
 
// setter
$( ".selector" ).progressbar( "option", "value", 25 );

Methods

destroy()

Removes the progressbar functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).progressbar( "destroy" );

disable()

Disables the progressbar.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).progressbar( "disable" );

enable()

Enables the progressbar.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).progressbar( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).progressbar( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current progressbar options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).progressbar( "option" );

option( optionName, value )

Sets the value of the progressbar option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).progressbar( "option", "disabled", true );

option( options )

Sets one or more options for the progressbar.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).progressbar( "option", { disabled: true } );

value()Returns: Number or Boolean

Gets the current value of the progressbar.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var progressSoFar = $( ".selector" ).progressbar( "value" );

value( value )

Sets the current value of the progressbar.
  • value
    Type: Number or Boolean
    The value to set. See the value option for details on valid values.
Code examples:

Invoke the method:

$( ".selector" ).progressbar( "value", 50 );

widget()Returns: jQuery

Returns a jQuery object containing the progressbar.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).progressbar( "widget" );

Events

change( event, ui )Type: progressbarchange

Triggered when the value of the progressbar changes.
Code examples:

Initialize the progressbar with the change callback specified:

$( ".selector" ).progressbar({
    change: function( event, ui ) {}
});

Bind an event listener to the progressbarchange event:

$( ".selector" ).on( "progressbarchange", function( event, ui ) {} );

complete( event, ui )Type: progressbarcomplete

Triggered when the value of the progressbar reaches the maximum value.
Code examples:

Initialize the progressbar with the complete callback specified:

$( ".selector" ).progressbar({
    complete: function( event, ui ) {}
});

Bind an event listener to the progressbarcomplete event:

$( ".selector" ).on( "progressbarcomplete", function( event, ui ) {} );

create( event, ui )Type: progressbarcreate

Triggered when the progressbar is created.
Code examples:

Initialize the progressbar with the create callback specified:

$( ".selector" ).progressbar({
    create: function( event, ui ) {}
});

Bind an event listener to the progressbarcreate event:

$( ".selector" ).on( "progressbarcreate", function( event, ui ) {} );

Examples:

Example: A simple jQuery UI Progressbar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>progressbar demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="progressbar"></div>
 
<script>
$( "#progressbar" ).progressbar({
    value: 37
});
</script>
 
</body>
</html>

Demo:

Example: A simple jQuery UI Indeterminate Progressbar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>progressbar demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="progressbar"></div>
 
<script>
$( "#progressbar" ).progressbar({
    value: false
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/scale-effect.html0000644000175000017500000004052112107500070022357 0ustar metalmetal jQuery UI scale-effect documentation

Scale Effect

Description: Shrink or grow an element by a percentage factor.

  • scale

    • direction (default: "both")
      Type: String
      The direction of the effect. Possible values: "both", "vertical" or "horizontal".
    • origin (default: [ "middle", "center" ])
      Type: Array
      The vanishing point.
    • percent
      Type: Number
      The percentage to scale to.
    • scale (default: "both")
      Type: String
      Which areas of the element will be resized: "both", "box", "content". Box resizes the border and padding of the element; content resizes any content inside of the element.

Examples:

Example: Toggle a div using the scale effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>scale demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "scale" );
});
</script>
 
</body>
</html>

Demo:

Example: Toggle a div using the scale effect in just one direction.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>scale demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle({ effect: "scale", direction: "horizontal" });
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/accordion.html0000644000175000017500000014467512107500070022016 0ustar metalmetal jQuery UI accordion documentation

Accordion Widgetversion added: 1.0

Description: Convert a pair of headers and content panels into an accordion.

QuickNavExamples

The markup of your accordion container needs pairs of headers and content panels:

1
2
3
4
5
6
<div id="accordion">
    <h3>First header</h3>
    <div>First content panel</div>
    <h3>Second header</h3>
    <div>Second content panel</div>
</div>

Accordions support arbitrary markup, but each content panel must always be the next sibling after its associated header. See the header option for information on how to use custom markup structures.

The panels can be activated programmatically by setting the active option.

Keyboard interaction

When focus is on a header, the following key commands are available:

  • UP/LEFT - Move focus to the previous header. If on first header, moves focus to last header.
  • DOWN/RIGHT - Move focus to the next header. If on last header, moves focus to first header.
  • HOME - Move focus to the first header.
  • END - Move focus to the last header.
  • SPACE/ENTER - Activate panel associated with focused header.

When focus is in a panel:

  • CTRL+UP: Move focus to associated header.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

activeType: Boolean or Integer

Default: 0
Which panel is currently open.
Multiple types supported:
  • Boolean: Setting active to false will collapse all panels. This requires the collapsible option to be true.
  • Integer: The zero-based index of the panel that is active (open). A negative value selects panels going backward from the last panel.
Code examples:

Initialize the accordion with the active option specified:

$( ".selector" ).accordion({ active: 2 });

Get or set the active option, after initialization:

// getter
var active = $( ".selector" ).accordion( "option", "active" );
 
// setter
$( ".selector" ).accordion( "option", "active", 2 );

animateType: Boolean or Number or String or Object

Default: {}
If and how to animate changing panels.
Multiple types supported:
  • Boolean: A value of false will disable animations.
  • Number: Duration in milliseconds with default easing.
  • String: Name of easing to use with default duration.
  • Object: Animation settings with easing and duration properties.
    • Can also contain a down property with any of the above options.
    • "Down" animations occur when the panel being activated has a lower index than the currently active panel.
Code examples:

Initialize the accordion with the animate option specified:

$( ".selector" ).accordion({ animate: "bounceslide" });

Get or set the animate option, after initialization:

// getter
var animate = $( ".selector" ).accordion( "option", "animate" );
 
// setter
$( ".selector" ).accordion( "option", "animate", "bounceslide" );

collapsibleType: Boolean

Default: false
Whether all the sections can be closed at once. Allows collapsing the active section.
Code examples:

Initialize the accordion with the collapsible option specified:

$( ".selector" ).accordion({ collapsible: true });

Get or set the collapsible option, after initialization:

// getter
var collapsible = $( ".selector" ).accordion( "option", "collapsible" );
 
// setter
$( ".selector" ).accordion( "option", "collapsible", true );

disabledType: Boolean

Default: false
Disables the accordion if set to true.
Code examples:

Initialize the accordion with the disabled option specified:

$( ".selector" ).accordion({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).accordion( "option", "disabled" );
 
// setter
$( ".selector" ).accordion( "option", "disabled", true );

eventType: String

Default: "click"
The event that accordion headers will react to in order to activate the associated panel. Multiple events can be specificed, separated by a space.
Code examples:

Initialize the accordion with the event option specified:

$( ".selector" ).accordion({ event: "mouseover" });

Get or set the event option, after initialization:

// getter
var event = $( ".selector" ).accordion( "option", "event" );
 
// setter
$( ".selector" ).accordion( "option", "event", "mouseover" );

headerType: Selector

Default: "> li > :first-child,> :not(li):even"

Selector for the header element, applied via .find() on the main accordion element. Content panels must be the sibling immedately after their associated headers.

Code examples:

Initialize the accordion with the header option specified:

$( ".selector" ).accordion({ header: "h3" });

Get or set the header option, after initialization:

// getter
var header = $( ".selector" ).accordion( "option", "header" );
 
// setter
$( ".selector" ).accordion( "option", "header", "h3" );

heightStyleType: String

Default: "auto"

Controls the height of the accordion and each panel. Possible values:

  • "auto": All panels will be set to the height of the tallest panel.
  • "fill": Expand to the available height based on the accordion's parent height.
  • "content": Each panel will be only as tall as its content.
Code examples:

Initialize the accordion with the heightStyle option specified:

$( ".selector" ).accordion({ heightStyle: "fill" });

Get or set the heightStyle option, after initialization:

// getter
var heightStyle = $( ".selector" ).accordion( "option", "heightStyle" );
 
// setter
$( ".selector" ).accordion( "option", "heightStyle", "fill" );

iconsType: Object

Default: { "header": "ui-icon-triangle-1-e", "activeHeader": "ui-icon-triangle-1-s" }

Icons to use for headers, matching an icon defined by the jQuery UI CSS Framework. Set to false to have no icons displayed.

  • header (string, default: "ui-icon-triangle-1-e")
  • activeHeader (string, default: "ui-icon-triangle-1-s")
Code examples:

Initialize the accordion with the icons option specified:

$( ".selector" ).accordion({ icons: { "header": "ui-icon-plus", "headerSelected": "ui-icon-minus" } });

Get or set the icons option, after initialization:

// getter
var icons = $( ".selector" ).accordion( "option", "icons" );
 
// setter
$( ".selector" ).accordion( "option", "icons", { "header": "ui-icon-plus", "headerSelected": "ui-icon-minus" } );

Methods

destroy()

Removes the accordion functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).accordion( "destroy" );

disable()

Disables the accordion.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).accordion( "disable" );

enable()

Enables the accordion.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).accordion( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).accordion( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current accordion options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).accordion( "option" );

option( optionName, value )

Sets the value of the accordion option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).accordion( "option", "disabled", true );

option( options )

Sets one or more options for the accordion.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).accordion( "option", { disabled: true } );

refresh()

Recompute the height of the accordion panels. Results depend on the content and the heightStyle option.
  • This method does not accept any arguments.
Code examples:

Invoke the refresh method:

$( ".selector" ).accordion( "refresh" );

widget()Returns: jQuery

Returns a jQuery object containing the accordion.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).accordion( "widget" );

Events

activate( event, ui )Type: accordionactivate

Triggered after a panel has been activated (after animation completes). If the accordion was previously collapsed, ui.oldHeader and ui.oldPanel will be empty jQuery objects. If the accordion is collapsing, ui.newHeader and ui.newPanel will be empty jQuery objects.
  • event
    Type: Event
  • ui
    Type: Object
    • newHeader
      Type: jQuery
      The header that was just activated.
    • oldHeader
      Type: jQuery
      The header that was just deactivated.
    • newPanel
      Type: jQuery
      The panel that was just activated.
    • oldPanel
      Type: jQuery
      The panel that was just deactivated.
Code examples:

Initialize the accordion with the activate callback specified:

$( ".selector" ).accordion({
    activate: function( event, ui ) {}
});

Bind an event listener to the accordionactivate event:

$( ".selector" ).on( "accordionactivate", function( event, ui ) {} );

beforeActivate( event, ui )Type: accordionbeforeactivate

Triggered directly before a panel is activated. Can be canceled to prevent the panel from activating. If the accordion is currently collapsed, ui.oldHeader and ui.oldPanel will be empty jQuery objects. If the accordion is collapsing, ui.newHeader and ui.newPanel will be empty jQuery objects.
  • event
    Type: Event
  • ui
    Type: Object
    • newHeader
      Type: jQuery
      The header that is about to be activated.
    • oldHeader
      Type: jQuery
      The header that is about to be deactivated.
    • newPanel
      Type: jQuery
      The panel that is about to be activated.
    • oldPanel
      Type: jQuery
      The panel that is about to be deactivated.
Code examples:

Initialize the accordion with the beforeActivate callback specified:

$( ".selector" ).accordion({
    beforeActivate: function( event, ui ) {}
});

Bind an event listener to the accordionbeforeactivate event:

$( ".selector" ).on( "accordionbeforeactivate", function( event, ui ) {} );

create( event, ui )Type: accordioncreate

Triggered when the accordion is created. If the accordion is collapsed, ui.header and ui.panel will be empty jQuery objects.
Code examples:

Initialize the accordion with the create callback specified:

$( ".selector" ).accordion({
    create: function( event, ui ) {}
});

Bind an event listener to the accordioncreate event:

$( ".selector" ).on( "accordioncreate", function( event, ui ) {} );

Example:

A simple jQuery UI Accordion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>accordion demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="accordion">
    <h3>Section 1</h3>
    <div>
        <p>Mauris mauris ante, blandit et, ultrices a, suscipit eget.
        Integer ut neque. Vivamus nisi metus, molestie vel, gravida in,
        condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros.
        Nam mi. Proin viverra leo ut odio.</p>
    </div>
    <h3>Section 2</h3>
    <div>
        <p>Sed non urna. Phasellus eu ligula. Vestibulum sit amet purus.
        Vivamus hendrerit, dolor aliquet laoreet, mauris turpis velit,
        faucibus interdum tellus libero ac justo.</p>
    </div>
    <h3>Section 3</h3>
    <div>
        <p>Nam enim risus, molestie et, porta ac, aliquam ac, risus.
        Quisque lobortis.Phasellus pellentesque purus in massa.</p>
        <ul>
            <li>List item one</li>
            <li>List item two</li>
            <li>List item three</li>
        </ul>
    </div>
</div>
 
<script>
$( "#accordion" ).accordion();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/resizable.html0000644000175000017500000020363312107500070022023 0ustar metalmetal jQuery UI resizable documentation

Resizable Widgetversion added: 1.0

Description: Change the size of an element using the mouse.

QuickNavExamples

The jQuery UI Resizable plugin makes selected elements resizable (meaning they have draggable resize handles). You can specify one or more handles as well as min and max width and height.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

alsoResizeType: Selector or jQuery or Element

Default: false
One or more elements to resize synchronously with the resizable element.
Code examples:

Initialize the resizable with the alsoResize option specified:

$( ".selector" ).resizable({ alsoResize: "#mirror" });

Get or set the alsoResize option, after initialization:

// getter
var alsoResize = $( ".selector" ).resizable( "option", "alsoResize" );
 
// setter
$( ".selector" ).resizable( "option", "alsoResize", "#mirror" );

animateType: Boolean

Default: false
Animates to the final size after resizing.
Code examples:

Initialize the resizable with the animate option specified:

$( ".selector" ).resizable({ animate: true });

Get or set the animate option, after initialization:

// getter
var animate = $( ".selector" ).resizable( "option", "animate" );
 
// setter
$( ".selector" ).resizable( "option", "animate", true );

animateDurationType: Number or String

Default: "slow"
How long to animate when using the animate option.
Multiple types supported:
  • Number: Duration in milliseconds.
  • String: A named duration, such as "slow" or "fast".
Code examples:

Initialize the resizable with the animateDuration option specified:

$( ".selector" ).resizable({ animateDuration: "fast" });

Get or set the animateDuration option, after initialization:

// getter
var animateDuration = $( ".selector" ).resizable( "option", "animateDuration" );
 
// setter
$( ".selector" ).resizable( "option", "animateDuration", "fast" );

animateEasingType: String

Default: "swing"
Which easing to apply when using the animate option.
Code examples:

Initialize the resizable with the animateEasing option specified:

$( ".selector" ).resizable({ animateEasing: "easeOutBounce" });

Get or set the animateEasing option, after initialization:

// getter
var animateEasing = $( ".selector" ).resizable( "option", "animateEasing" );
 
// setter
$( ".selector" ).resizable( "option", "animateEasing", "easeOutBounce" );

aspectRatioType: Boolean or Number

Default: false
Whether the element should be constrained to a specific aspect ratio.
Multiple types supported:
  • Boolean: When set to true, the element will maintain its original aspect ratio.
  • Number: Force the element to maintain a specific aspect ratio during resizing.
Code examples:

Initialize the resizable with the aspectRatio option specified:

$( ".selector" ).resizable({ aspectRatio: true });

Get or set the aspectRatio option, after initialization:

// getter
var aspectRatio = $( ".selector" ).resizable( "option", "aspectRatio" );
 
// setter
$( ".selector" ).resizable( "option", "aspectRatio", true );

autoHideType: Boolean

Default: false
Whether the handles should hide when the user is not hovering over the element.
Code examples:

Initialize the resizable with the autoHide option specified:

$( ".selector" ).resizable({ autoHide: true });

Get or set the autoHide option, after initialization:

// getter
var autoHide = $( ".selector" ).resizable( "option", "autoHide" );
 
// setter
$( ".selector" ).resizable( "option", "autoHide", true );

cancelType: Selector

Default: "input,textarea,button,select,option"
Prevents resizing from starting on specified elements.
Code examples:

Initialize the resizable with the cancel option specified:

$( ".selector" ).resizable({ cancel: ".cancel" });

Get or set the cancel option, after initialization:

// getter
var cancel = $( ".selector" ).resizable( "option", "cancel" );
 
// setter
$( ".selector" ).resizable( "option", "cancel", ".cancel" );

containmentType: Selector or Element or String

Default: false
Constrains resizing to within the bounds of the specified element or region.
Multiple types supported:
  • Selector: The resizable element will be contained to the bounding box of the first element found by the selector. If no element is found, no containment will be set.
  • Element: The resizable element will be contained to the bounding box of this element.
  • String: Possible values: "parent" and "document".
Code examples:

Initialize the resizable with the containment option specified:

$( ".selector" ).resizable({ containment: "parent" });

Get or set the containment option, after initialization:

// getter
var containment = $( ".selector" ).resizable( "option", "containment" );
 
// setter
$( ".selector" ).resizable( "option", "containment", "parent" );

delayType: Number

Default: 0
Tolerance, in milliseconds, for when resizing should start. If specified, resizing will not start until after mouse is moved beyond duration. This can help prevent unintended resizing when clicking on an element.
Code examples:

Initialize the resizable with the delay option specified:

$( ".selector" ).resizable({ delay: 150 });

Get or set the delay option, after initialization:

// getter
var delay = $( ".selector" ).resizable( "option", "delay" );
 
// setter
$( ".selector" ).resizable( "option", "delay", 150 );

disabledType: Boolean

Default: false
Disables the resizable if set to true.
Code examples:

Initialize the resizable with the disabled option specified:

$( ".selector" ).resizable({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).resizable( "option", "disabled" );
 
// setter
$( ".selector" ).resizable( "option", "disabled", true );

distanceType: Number

Default: 1
Tolerance, in pixels, for when resizing should start. If specified, resizing will not start until after mouse is moved beyond distance. This can help prevent unintended resizing when clicking on an element.
Code examples:

Initialize the resizable with the distance option specified:

$( ".selector" ).resizable({ distance: 30 });

Get or set the distance option, after initialization:

// getter
var distance = $( ".selector" ).resizable( "option", "distance" );
 
// setter
$( ".selector" ).resizable( "option", "distance", 30 );

ghostType: Boolean

Default: false
If set to true, a semi-transparent helper element is shown for resizing.
Code examples:

Initialize the resizable with the ghost option specified:

$( ".selector" ).resizable({ ghost: true });

Get or set the ghost option, after initialization:

// getter
var ghost = $( ".selector" ).resizable( "option", "ghost" );
 
// setter
$( ".selector" ).resizable( "option", "ghost", true );

gridType: Array

Default: false
Snaps the resizing element to a grid, every x and y pixels. Array values: [ x, y ].
Code examples:

Initialize the resizable with the grid option specified:

$( ".selector" ).resizable({ grid: [ 20, 10 ] });

Get or set the grid option, after initialization:

// getter
var grid = $( ".selector" ).resizable( "option", "grid" );
 
// setter
$( ".selector" ).resizable( "option", "grid", [ 20, 10 ] );

handlesType: String or Object

Default: "e, s, se"
Which handles can be used for resizing.
Multiple types supported:
  • String: A comma delimited list of any of the following: n, e, s, w, ne, se, sw, nw, all. The necessary handles will be auto-generated by the plugin.
  • Object: The following keys are supported: { n, e, s, w, ne, se, sw, nw }. The value of any specified should be a jQuery selector matching the child element of the resizable to use as that handle. If the handle is not a child of the resizable, you can pass in the DOMElement or a valid jQuery object directly.
Code examples:

Initialize the resizable with the handles option specified:

$( ".selector" ).resizable({ handles: "n, e, s, w" });

Get or set the handles option, after initialization:

// getter
var handles = $( ".selector" ).resizable( "option", "handles" );
 
// setter
$( ".selector" ).resizable( "option", "handles", "n, e, s, w" );

helperType: String

Default: false
A class name that will be added to a proxy element to outline the resize during the drag of the resize handle. Once the resize is complete, the original element is sized.
Code examples:

Initialize the resizable with the helper option specified:

$( ".selector" ).resizable({ helper: "resizable-helper" });

Get or set the helper option, after initialization:

// getter
var helper = $( ".selector" ).resizable( "option", "helper" );
 
// setter
$( ".selector" ).resizable( "option", "helper", "resizable-helper" );

maxHeightType: Number

Default: null
The maximum height the resizable should be allowed to resize to.
Code examples:

Initialize the resizable with the maxHeight option specified:

$( ".selector" ).resizable({ maxHeight: 300 });

Get or set the maxHeight option, after initialization:

// getter
var maxHeight = $( ".selector" ).resizable( "option", "maxHeight" );
 
// setter
$( ".selector" ).resizable( "option", "maxHeight", 300 );

maxWidthType: Number

Default: null
The maximum width the resizable should be allowed to resize to.
Code examples:

Initialize the resizable with the maxWidth option specified:

$( ".selector" ).resizable({ maxWidth: 300 });

Get or set the maxWidth option, after initialization:

// getter
var maxWidth = $( ".selector" ).resizable( "option", "maxWidth" );
 
// setter
$( ".selector" ).resizable( "option", "maxWidth", 300 );

minHeightType: Number

Default: 10
The minimum height the resizable should be allowed to resize to.
Code examples:

Initialize the resizable with the minHeight option specified:

$( ".selector" ).resizable({ minHeight: 150 });

Get or set the minHeight option, after initialization:

// getter
var minHeight = $( ".selector" ).resizable( "option", "minHeight" );
 
// setter
$( ".selector" ).resizable( "option", "minHeight", 150 );

minWidthType: Number

Default: 10
The minimum width the resizable should be allowed to resize to.
Code examples:

Initialize the resizable with the minWidth option specified:

$( ".selector" ).resizable({ minWidth: 150 });

Get or set the minWidth option, after initialization:

// getter
var minWidth = $( ".selector" ).resizable( "option", "minWidth" );
 
// setter
$( ".selector" ).resizable( "option", "minWidth", 150 );

Methods

destroy()

Removes the resizable functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).resizable( "destroy" );

disable()

Disables the resizable.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).resizable( "disable" );

enable()

Enables the resizable.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).resizable( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).resizable( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current resizable options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).resizable( "option" );

option( optionName, value )

Sets the value of the resizable option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).resizable( "option", "disabled", true );

option( options )

Sets one or more options for the resizable.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).resizable( "option", { disabled: true } );

widget()Returns: jQuery

Returns a jQuery object containing the resizable element.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).resizable( "widget" );

Events

create( event, ui )Type: resizecreate

Triggered when the resizable is created.
Code examples:

Initialize the resizable with the create callback specified:

$( ".selector" ).resizable({
    create: function( event, ui ) {}
});

Bind an event listener to the resizecreate event:

$( ".selector" ).on( "resizecreate", function( event, ui ) {} );

resize( event, ui )Type: resize

This event is triggered during the resize, on the drag of the resize handler.
  • event
    Type: Event
  • ui
    Type: Object
    • element
      Type: jQuery
      The jQuery object representing the element to be resized
    • helper
      Type: jQuery
      The jQuery object representing the helper that's being resized
    • originalElement
      Type: jQuery
      The jQuery object representing the original element before it is wrapped
    • originalPosition
      Type: Object
      The position represented as { left, top } before the resizable is resized
    • originalSize
      Type: Object
      The size represented as { width, height } before the resizable is resized
    • position
      Type: Object
      The current position represented as { left, top }
    • size
      Type: Object
      The current size represented as { width, height }
Code examples:

Initialize the resizable with the resize callback specified:

$( ".selector" ).resizable({
    resize: function( event, ui ) {}
});

Bind an event listener to the resize event:

$( ".selector" ).on( "resize", function( event, ui ) {} );

start( event, ui )Type: resizestart

This event is triggered at the start of a resize operation.
  • event
    Type: Event
  • ui
    Type: Object
    • element
      Type: jQuery
      The jQuery object representing the element to be resized
    • helper
      Type: jQuery
      The jQuery object representing the helper that's being resized
    • originalElement
      Type: jQuery
      The jQuery object representing the original element before it is wrapped
    • originalPosition
      Type: Object
      The position represented as { left, top } before the resizable is resized
    • originalSize
      Type: Object
      The size represented as { width, height } before the resizable is resized
    • position
      Type: Object
      The current position represented as { left, top }
    • size
      Type: Object
      The current size represented as { width, height }
Code examples:

Initialize the resizable with the start callback specified:

$( ".selector" ).resizable({
    start: function( event, ui ) {}
});

Bind an event listener to the resizestart event:

$( ".selector" ).on( "resizestart", function( event, ui ) {} );

stop( event, ui )Type: resizestop

This event is triggered at the end of a resize operation.
  • event
    Type: Event
  • ui
    Type: Object
    • element
      Type: jQuery
      The jQuery object representing the element to be resized
    • helper
      Type: jQuery
      The jQuery object representing the helper that's being resized
    • originalElement
      Type: jQuery
      The jQuery object representing the original element before it is wrapped
    • originalPosition
      Type: Object
      The position represented as { left, top } before the resizable is resized
    • originalSize
      Type: Object
      The size represented as { width, height } before the resizable is resized
    • position
      Type: Object
      The current position represented as { left, top }
    • size
      Type: Object
      The current size represented as { width, height }
Code examples:

Initialize the resizable with the stop callback specified:

$( ".selector" ).resizable({
    stop: function( event, ui ) {}
});

Bind an event listener to the resizestop event:

$( ".selector" ).on( "resizestop", function( event, ui ) {} );

Example:

A simple jQuery UI Resizable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>resizable demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #resizable {
        width: 100px;
        height: 100px;
        background: #ccc;
}   </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="resizable"></div>
 
<script>
$( "#resizable" ).resizable();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/button.html0000644000175000017500000010402612107500070021352 0ustar metalmetal jQuery UI button documentation

Button Widgetversion added: 1.8

Description: Themable buttons and button sets.

QuickNavExamples

Events

Button enhances standard form elements like buttons, inputs and anchors to themable buttons with appropiate hover and active styles.

In addition to basic push buttons, radio buttons and checkboxes (inputs of type radio and checkbox) can be converted to buttons. Their associated label is styled to appear as the button, while the underlying input is updated on click. For the association to work properly, give the input an id attribute, and refer to that in the label's for attribute. Don't nest the input inside the label, as that causes accessbility problems.

In order to group radio buttons, Button also provides an additional widget, called Buttonset. Buttonset is used by selecting a container element (which contains the radio buttons) and calling .buttonset(). Buttonset will also provide visual grouping, and therefore should be used whenever you have a group of buttons. It works by selecting all descendants and applying .button() to them. You can enable and disable a button set, which will enable and disable all contained buttons. Destroying a button set also calls each button's destroy method.

When using an input of type button, submit or reset, support is limited to plain text labels with no icons.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

disabledType: Boolean

Default: false
Disables the button if set to true.
Code examples:

Initialize the button with the disabled option specified:

$( ".selector" ).button({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).button( "option", "disabled" );
 
// setter
$( ".selector" ).button( "option", "disabled", true );

iconsType: Object

Default: { primary: null, secondary: null }
Icons to display, with or without text (see text option). By default, the primary icon is displayed on the left of the label text and the secondary is displayed on the right. The positioning can be controlled via CSS. The value for the primary and secondary properties must be a class name, e.g., "ui-icon-gear". For using only one icon: icons: { primary: "ui-icon-locked" }. For using two icons: icons: { primary: "ui-icon-gear", secondary: "ui-icon-triangle-1-s" }.
Code examples:

Initialize the button with the icons option specified:

$( ".selector" ).button({ icons: { primary: "ui-icon-gear", secondary: "ui-icon-triangle-1-s" } });

Get or set the icons option, after initialization:

// getter
var icons = $( ".selector" ).button( "option", "icons" );
 
// setter
$( ".selector" ).button( "option", "icons", { primary: "ui-icon-gear", secondary: "ui-icon-triangle-1-s" } );

labelType: String

Default: null
Text to show in the button. When not specified (null), the element's HTML content is used, or its value attribute if the element is an input element of type submit or reset, or the HTML content of the associated label element if the element is an input of type radio or checkbox.
Code examples:

Initialize the button with the label option specified:

$( ".selector" ).button({ label: "custom label" });

Get or set the label option, after initialization:

// getter
var label = $( ".selector" ).button( "option", "label" );
 
// setter
$( ".selector" ).button( "option", "label", "custom label" );

textType: Boolean

Default: true
Whether to show the label. When set to false no text will be displayed, but the icons option must be enabled, otherwise the text option will be ignored.
Code examples:

Initialize the button with the text option specified:

$( ".selector" ).button({ text: false });

Get or set the text option, after initialization:

// getter
var text = $( ".selector" ).button( "option", "text" );
 
// setter
$( ".selector" ).button( "option", "text", false );

Methods

destroy()

Removes the button functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).button( "destroy" );

disable()

Disables the button.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).button( "disable" );

enable()

Enables the button.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).button( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).button( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current button options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).button( "option" );

option( optionName, value )

Sets the value of the button option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).button( "option", "disabled", true );

option( options )

Sets one or more options for the button.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).button( "option", { disabled: true } );

refresh()

Refreshes the visual state of the button. Useful for updating button state after the native element's checked or disabled state is changed programmatically.
  • This method does not accept any arguments.
Code examples:

Invoke the refresh method:

$( ".selector" ).button( "refresh" );

widget()Returns: jQuery

Returns a jQuery object containing the element visually representing the button.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).button( "widget" );

Events

create( event, ui )Type: buttoncreate

Triggered when the button is created.
Code examples:

Initialize the button with the create callback specified:

$( ".selector" ).button({
    create: function( event, ui ) {}
});

Bind an event listener to the buttoncreate event:

$( ".selector" ).on( "buttoncreate", function( event, ui ) {} );

Examples:

Example: A simple jQuery UI Button

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>button demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<button>Button label</button>
 
<script>
$( "button" ).button();
</script>
 
</body>
</html>

Demo:

Example: A simple jQuery UI Buttonset

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>button demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="radio">
    <input type="radio" id="radio1" name="radio"><label for="radio1">Choice 1</label>
    <input type="radio" id="radio2" name="radio" checked="checked"><label for="radio2">Choice 2</label>
    <input type="radio" id="radio3" name="radio"><label for="radio3">Choice 3</label>
</div>
 
<script>
$( "#radio" ).buttonset();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/slide-effect.html0000644000175000017500000002133112107500070022366 0ustar metalmetal jQuery UI slide-effect documentation

Slide Effect

Description: Slides the element out of the viewport.

  • slide

    • direction (default: "both")
      Type: String
      The direction of the effect. Possible values: "left", "right", "up", "down".
    • distance (default: element's outerWidth)
      Type: Number
      The distance of the effect. Defaults to either the height or width of the elemenet depending on the direction argument. Can be set to any integer less than the width/height of the element.

Example:

Toggle a div using the slide effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>slide demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "slide" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/pulsate-effect.html0000644000175000017500000002060712107500070022750 0ustar metalmetal jQuery UI pulsate-effect documentation

Pulsate Effect

Description: The pulsate effect hides or shows an element by pulsing it in or out.

  • pulsate

    • times (default: 5)
      Type: Integer
      The number of times the element should pulse. An extra half pulse is added for hide/show.

Example:

Toggle a div using the pulsate effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>pulsate demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "pulsate" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/menu.html0000644000175000017500000015346012107500070021011 0ustar metalmetal jQuery UI menu documentation

Menu Widgetversion added: 1.9

Description: Themeable menu with mouse and keyboard interactions for navigation.

QuickNavExamples

A menu can be created from any valid markup as long as the elements have a strict parent/child relationship and each menu item has an anchor. The most commonly used element is the unordered list (<ul>):

<ul id="menu">
	<li><a href="#">Item 1</a></li>
	<li><a href="#">Item 2</a></li>
	<li><a href="#">Item 3</a>
		<ul>
			<li><a href="#">Item 3-1</a></li>
			<li><a href="#">Item 3-2</a></li>
			<li><a href="#">Item 3-3</a></li>
			<li><a href="#">Item 3-4</a></li>
			<li><a href="#">Item 3-5</a></li>
		</ul>
	</li>
	<li><a href="#">Item 4</a></li>
	<li><a href="#">Item 5</a></li>
</ul>

If you use a structure other than <ul>/<li>, including using the same element for the menu and the menu items, use the menus option to specify a way to differentiate the two elements, e.g., menus: "div.menuElement".

Any menu item can be disabled by adding the ui-state-disabled class to that element.

To add icons to the menu, include them in the markup:

<ul id="menu">
	<li><a href="#"><span class="ui-icon ui-icon-disk"></span>Save</a></li>
</ul>

Menu automatically adds the necessary padding to items without icons.

Keyboard interaction

  • ENTER/SPACE: Invoke the focused menu item's action, which may be opening a submenu.
  • UP: Move focus to the previous menu item.
  • DOWN: Move focus to the next menu item.
  • RIGHT: Open the submenu, if available.
  • LEFT: Close the current submenu and move focus to the parent menu item. If not in a submenu, do nothing.
  • ESCAPE: Close the current submenu and move focus to the parent menu item. If not in a submenu, do nothing.

Typing a letter moves focus to the first item whose title starts with that character. Repeating the same character cycles through matching items. Typing more characters within the one second timer matches those characters.

Disabled items can receive keyboard focus, but do not allow any other interaction.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

disabledType: Boolean

Default: false
Disables the menu if set to true.
Code examples:

Initialize the menu with the disabled option specified:

$( ".selector" ).menu({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).menu( "option", "disabled" );
 
// setter
$( ".selector" ).menu( "option", "disabled", true );

iconsType: Object

Default: { submenu: "ui-icon-carat-1-e" }
Icons to use for submenus, matching an icon defined by the jQuery UI CSS Framework.
  • submenu (string, default: "ui-icon-carat-1-e")
Code examples:

Initialize the menu with the icons option specified:

$( ".selector" ).menu({ icons: { submenu: "ui-icon-circle-triangle-e" } });

Get or set the icons option, after initialization:

// getter
var icons = $( ".selector" ).menu( "option", "icons" );
 
// setter
$( ".selector" ).menu( "option", "icons", { submenu: "ui-icon-circle-triangle-e" } );

menusType: String

Default: "ul"
Selector for the elements that serve as the menu container, including sub-menus.
Code examples:

Initialize the menu with the menus option specified:

$( ".selector" ).menu({ menus: "div" });

Get or set the menus option, after initialization:

// getter
var menus = $( ".selector" ).menu( "option", "menus" );
 
// setter
$( ".selector" ).menu( "option", "menus", "div" );

positionType: Object

Default: { my: "left top", at: "right top" }
Identifies the position of submenus in relation to the associated parent menu item. The of option defaults to the parent menu item, but you can specify another element to position against. You can refer to the jQuery UI Position utility for more details about the various options.
Code examples:

Initialize the menu with the position option specified:

$( ".selector" ).menu({ position: { my: "left top", at: "right-5 top+5" } });

Get or set the position option, after initialization:

// getter
var position = $( ".selector" ).menu( "option", "position" );
 
// setter
$( ".selector" ).menu( "option", "position", { my: "left top", at: "right-5 top+5" } );

roleType: String

Default: "menu"
Customize the ARIA roles used for the menu and menu items. The default uses "menuitem" for items. Setting the role option to "listbox" will use "option" for items. If set to null, no roles will be set, which is useful if the menu is being controlled by another element that is maintaining focus.
Code examples:

Initialize the menu with the role option specified:

$( ".selector" ).menu({ role: null });

Get or set the role option, after initialization:

// getter
var role = $( ".selector" ).menu( "option", "role" );
 
// setter
$( ".selector" ).menu( "option", "role", null );

Methods

blur( [event ] )

Removes focus from a menu, resets any active element styles and triggers the menu's blur event.
  • event
    Type: Event
    What triggered the menu to blur.
Code examples:

Invoke the blur method:

$( ".selector" ).menu( "blur" );

collapse( [event ] )

Closes the currently active sub-menu.
  • event
    Type: Event
    What triggered the menu to collapse.
Code examples:

Invoke the collapse method:

$( ".selector" ).menu( "collapse" );

collapseAll( [event ] [, all ] )

Closes all open sub-menus.
  • event
    Type: Event
    What triggered the menu to collapse.
  • all
    Type: Boolean
    Indicates whether all sub-menus should be closed or only sub-menus below and including the menu that is or contains the target of the triggering event.
Code examples:

Invoke the collapseAll method:

$( ".selector" ).menu( "collapseAll", null, true );

destroy()

Removes the menu functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).menu( "destroy" );

disable()

Disables the menu.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).menu( "disable" );

enable()

Enables the menu.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).menu( "enable" );

expand( [event ] )

Opens the sub-menu below the currently active item, if one exists.
  • event
    Type: Event
    What triggered the menu to expand.
Code examples:

Invoke the expand method:

$( ".selector" ).menu( "expand" );

focus( [event ], item )

Activates a particular menu item, begins opening any sub-menu if present and triggers the menu's focus event.
  • event
    Type: Event
    What triggered the menu item to gain focus.
  • item
    Type: jQuery
    The menu item to focus/activate.
Code examples:

Invoke the focus method:

$( ".selector" ).menu( "focus", null, menu.find( ".ui-menu-item:last" ) );

isFirstItem()

Returns a boolean value stating whether or not the currently active item is the first item in the menu.
  • This method does not accept any arguments.
Code examples:

Invoke the isFirstItem method:

var firstItem = $( ".selector" ).menu( "isFirstItem" );

isLastItem()

Returns a boolean value stating whether or not the currently active item is the last item in the menu.
  • This method does not accept any arguments.
Code examples:

Invoke the isLastItem method:

var lastItem = $( ".selector" ).menu( "isLastItem" );

next( [event ] )

Moves active state to next menu item.
  • event
    Type: Event
    What triggered the focus to move.
Code examples:

Invoke the next method:

$( ".selector" ).menu( "next" );

nextPage( [event ] )

Moves active state to first menu item below the bottom of a scrollable menu or the last item if not scrollable.
  • event
    Type: Event
    What triggered the focus to move.
Code examples:

Invoke the nextPage method:

$( ".selector" ).menu( "nextPage" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).menu( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current menu options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).menu( "option" );

option( optionName, value )

Sets the value of the menu option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).menu( "option", "disabled", true );

option( options )

Sets one or more options for the menu.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).menu( "option", { disabled: true } );

previous( [event ] )

Moves active state to previous menu item.
  • event
    Type: Event
    What triggered the focus to move.
Code examples:

Invoke the previous method:

$( ".selector" ).menu( "previous" );

previousPage( [event ] )

Moves active state to first menu item above the top of a scrollable menu or the first item if not scrollable.
  • event
    Type: Event
    What triggered the focus to move.
Code examples:

Invoke the previousPage method:

$( ".selector" ).menu( "previousPage" );

refresh()

Initializes sub-menus and menu items that have not already been initialized. New menu items, including sub-menus can be added to the menu or all of the contents of the menu can be replaced and then initialized with the refresh() method.
  • This method does not accept any arguments.
Code examples:

Invoke the refresh method:

$( ".selector" ).menu( "refresh" );

select( [event ] )

Selects the currently active menu item, collapses all sub-menus and triggers the menu's select event.
  • event
    Type: Event
    What triggered the selection.
Code examples:

Invoke the select method:

$( ".selector" ).menu( "select" );

widget()Returns: jQuery

Returns a jQuery object containing the menu.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).menu( "widget" );

Events

blur( event, ui )Type: menublur

Triggered when the menu loses focus.
  • event
    Type: Event
  • ui
    Type: Object
    • item
      Type: jQuery
      The currently active menu item.
Code examples:

Initialize the menu with the blur callback specified:

$( ".selector" ).menu({
    blur: function( event, ui ) {}
});

Bind an event listener to the menublur event:

$( ".selector" ).on( "menublur", function( event, ui ) {} );

create( event, ui )Type: menucreate

Triggered when the menu is created.
Code examples:

Initialize the menu with the create callback specified:

$( ".selector" ).menu({
    create: function( event, ui ) {}
});

Bind an event listener to the menucreate event:

$( ".selector" ).on( "menucreate", function( event, ui ) {} );

focus( event, ui )Type: menufocus

Triggered when a menu gains focus or when any menu item is activated.
  • event
    Type: Event
  • ui
    Type: Object
    • item
      Type: jQuery
      The currently active menu item.
Code examples:

Initialize the menu with the focus callback specified:

$( ".selector" ).menu({
    focus: function( event, ui ) {}
});

Bind an event listener to the menufocus event:

$( ".selector" ).on( "menufocus", function( event, ui ) {} );

select( event, ui )Type: menuselect

Triggered when a menu item is selected.
  • event
    Type: Event
  • ui
    Type: Object
    • item
      Type: jQuery
      The currently active menu item.
Code examples:

Initialize the menu with the select callback specified:

$( ".selector" ).menu({
    select: function( event, ui ) {}
});

Bind an event listener to the menuselect event:

$( ".selector" ).on( "menuselect", function( event, ui ) {} );

Example:

A simple jQuery UI Menu

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>menu demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    .ui-menu {
        width: 200px;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<ul id="menu">
    <li><a href="#">Item 1</a></li>
    <li><a href="#">Item 2</a></li>
    <li><a href="#">Item 3</a>
        <ul>
            <li><a href="#">Item 3-1</a></li>
            <li><a href="#">Item 3-2</a></li>
            <li><a href="#">Item 3-3</a></li>
            <li><a href="#">Item 3-4</a></li>
            <li><a href="#">Item 3-5</a></li>
        </ul>
    </li>
    <li><a href="#">Item 4</a></li>
    <li><a href="#">Item 5</a></li>
</ul>
 
<script>
$( "#menu" ).menu();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/tabs.html0000644000175000017500000016032112107500070020770 0ustar metalmetal jQuery UI tabs documentation

Tabs Widgetversion added: 1.0

Description: A single content area with multiple panels, each associated with a header in a list.

QuickNavExamples

Tabs are generally used to break content into multiple sections that can be swapped to save space, much like an accordion.

The content for each tab panel can be defined in-page or can be loaded via Ajax; both are handled automatically based on the href of the anchor associated with the tab. By default tabs are activated on click, but the events can be changed to hover via the event option.

Keyboard interaction

When focus is on a tab, the following key commands are available:

  • UP/LEFT: Move focus to the previous tab. If on first tab, moves focus to last tab. Activate focused tab after a short delay.
  • DOWN/RIGHT: Move focus to the next tab. If on last tab, moves focus to first tab. Activate focused tab after a short delay.
  • HOME: Move focus to the first tab. Activate focused tab after a short delay.
  • END: Move focus to the last tab. Activate focused tab after a short delay.
  • SPACE: Activate panel associated with focused tab.
  • ENTER: Activate or toggle panel associated with focused tab.
  • ALT+PAGE UP: Move focus to the previous tab and immediately activate.
  • ALT+PAGE DOWN: Move focus to the next tab and immediately activate.

When focus is in a panel, the following key commands are available:

  • CTRL+UP: Move focus to associated tab.
  • ALT+PAGE UP: Move focus to the previous tab and immediately activate.
  • ALT+PAGE DOWN: Move focus to the next tab and immediately activate.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

activeType: Boolean or Integer

Default: 0
Which panel is currently open.
Multiple types supported:
  • Boolean: Setting active to false will collapse all panels. This requires the collapsible option to be true.
  • Integer: The zero-based index of the panel that is active (open). A negative value selects panels going backward from the last panel.
Code examples:

Initialize the tabs with the active option specified:

$( ".selector" ).tabs({ active: 1 });

Get or set the active option, after initialization:

// getter
var active = $( ".selector" ).tabs( "option", "active" );
 
// setter
$( ".selector" ).tabs( "option", "active", 1 );

collapsibleType: Boolean

Default: false
When set to true, the active panel can be closed.
Code examples:

Initialize the tabs with the collapsible option specified:

$( ".selector" ).tabs({ collapsible: true });

Get or set the collapsible option, after initialization:

// getter
var collapsible = $( ".selector" ).tabs( "option", "collapsible" );
 
// setter
$( ".selector" ).tabs( "option", "collapsible", true );

disabledType: Boolean or Array

Default: false
Which tabs are disabled.
Multiple types supported:
  • Boolean: Enable or disable all tabs.
  • Array: An array containing the zero-based indexes of the tabs that should be disabled, e.g., [ 0, 2 ] would disable the first and third tab.
Code examples:

Initialize the tabs with the disabled option specified:

$( ".selector" ).tabs({ disabled: [ 0, 2 ] });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).tabs( "option", "disabled" );
 
// setter
$( ".selector" ).tabs( "option", "disabled", [ 0, 2 ] );

eventType: String

Default: "click"
The type of event that the tabs should react to in order to activate the tab. To activate on hover, use "mouseover".
Code examples:

Initialize the tabs with the event option specified:

$( ".selector" ).tabs({ event: "mouseover" });

Get or set the event option, after initialization:

// getter
var event = $( ".selector" ).tabs( "option", "event" );
 
// setter
$( ".selector" ).tabs( "option", "event", "mouseover" );

heightStyleType: String

Default: "content"
Controls the height of the tabs widget and each panel. Possible values:
  • "auto": All panels will be set to the height of the tallest panel.
  • "fill": Expand to the available height based on the tabs' parent height.
  • "content": Each panel will be only as tall as its content.
Code examples:

Initialize the tabs with the heightStyle option specified:

$( ".selector" ).tabs({ heightStyle: "fill" });

Get or set the heightStyle option, after initialization:

// getter
var heightStyle = $( ".selector" ).tabs( "option", "heightStyle" );
 
// setter
$( ".selector" ).tabs( "option", "heightStyle", "fill" );

hideType: Boolean or Number or String or Object

Default: null
If and how to animate the hiding of the panel.
Multiple types supported:
  • Boolean: When set to false, no animation will be used and the panel will be hidden immediately. When set to true, the panel will fade out with the default duration and the default easing.
  • Number: The panel will fade out with the specified duration and the default easing.
  • String: The panel will be hidden using the specified effect. The value can either be the name of a built-in jQuery animateion method, such as "slideUp", or the name of a jQuery UI effect, such as "fold". In either case the effect will be used with the default duration and the default easing.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. If the effect property contains the name of a jQuery method, then that method will be used; otherwise it is assumed to be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used. If effect is omitted, then "fadeOut" will be used.
Code examples:

Initialize the tabs with the hide option specified:

$( ".selector" ).tabs({ hide: { effect: "explode", duration: 1000 } });

Get or set the hide option, after initialization:

// getter
var hide = $( ".selector" ).tabs( "option", "hide" );
 
// setter
$( ".selector" ).tabs( "option", "hide", { effect: "explode", duration: 1000 } );

showType: Boolean or Number or String or Object

Default: null
If and how to animate the showing of the panel.
Multiple types supported:
  • Boolean: When set to false, no animation will be used and the panel will be shown immediately. When set to true, the panel will fade in with the default duration and the default easing.
  • Number: The panel will fade in with the specified duration and the default easing.
  • String: The panel will be shown using the specified effect. The value can either be the name of a built-in jQuery animateion method, such as "slideDown", or the name of a jQuery UI effect, such as "fold". In either case the effect will be used with the default duration and the default easing.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. If the effect property contains the name of a jQuery method, then that method will be used; otherwise it is assumed to be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used. If effect is omitted, then "fadeIn" will be used.
Code examples:

Initialize the tabs with the show option specified:

$( ".selector" ).tabs({ show: { effect: "blind", duration: 800 } });

Get or set the show option, after initialization:

// getter
var show = $( ".selector" ).tabs( "option", "show" );
 
// setter
$( ".selector" ).tabs( "option", "show", { effect: "blind", duration: 800 } );

Methods

destroy()

Removes the tabs functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).tabs( "destroy" );

disable()

Disables all tabs.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

$( ".selector" ).tabs( "disable" );

disable( index )

Disables a tab. The selected tab cannot be disabled. To disable more than one tab at once, set the disabled option: $( "#tabs" ).tabs( "option", "disabled", [ 1, 2, 3 ] ).
Code examples:

Invoke the method:

$( ".selector" ).tabs( "disable", 1 );

enable()

Enables all tabs.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

$( ".selector" ).tabs( "enable" );

enable( index )

Enables a tab. To enable more than one tab at once reset the disabled property like: $( "#example" ).tabs( "option", "disabled", [] );.
Code examples:

Invoke the method:

$( ".selector" ).tabs( "enable", 1 );

load( index )

Loads the panel content of a remote tab.
Code examples:

Invoke the load method:

$( ".selector" ).tabs( "load", 1 );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).tabs( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current tabs options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).tabs( "option" );

option( optionName, value )

Sets the value of the tabs option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).tabs( "option", "disabled", true );

option( options )

Sets one or more options for the tabs.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).tabs( "option", { disabled: true } );

refresh()

Process any tabs that were added or removed directly in the DOM and recompute the height of the tab panels. Results depend on the content and the heightStyle option.
  • This method does not accept any arguments.
Code examples:

Invoke the refresh method:

$( ".selector" ).tabs( "refresh" );

widget()Returns: jQuery

Returns a jQuery object containing the tabs container.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).tabs( "widget" );

Events

activate( event, ui )Type: tabsactivate

Triggered after a tab has been activated (after animation completes). If the tabs were previously collapsed, ui.oldTab and ui.oldPanel will be empty jQuery objects. If the tabs are collapsing, ui.newTab and ui.newPanel will be empty jQuery objects.
  • event
    Type: Event
  • ui
    Type: Object
    • newTab
      Type: jQuery
      The tab that was just activated.
    • oldTab
      Type: jQuery
      The tab that was just deactivated.
    • newPanel
      Type: jQuery
      The panel that was just activated.
    • oldPanel
      Type: jQuery
      The panel that was just deactivated.
Code examples:

Initialize the tabs with the activate callback specified:

$( ".selector" ).tabs({
    activate: function( event, ui ) {}
});

Bind an event listener to the tabsactivate event:

$( ".selector" ).on( "tabsactivate", function( event, ui ) {} );

beforeActivate( event, ui )Type: tabsbeforeactivate

Triggered directly after a tab is activated. Can be canceled to prevent the tab from activating. If the tabs are currently collapsed, ui.oldTab and ui.oldPanel will be empty jQuery objects. If the tabs are collapsing, ui.newTab and ui.newPanel will be empty jQuery objects.
  • event
    Type: Event
  • ui
    Type: Object
    • newTab
      Type: jQuery
      The tab that is about to be activated.
    • oldTab
      Type: jQuery
      The tab that is about to be deactivated.
    • newPanel
      Type: jQuery
      The panel that is about to be activated.
    • oldPanel
      Type: jQuery
      The panel that is about to be deactivated.
Code examples:

Initialize the tabs with the beforeActivate callback specified:

$( ".selector" ).tabs({
    beforeActivate: function( event, ui ) {}
});

Bind an event listener to the tabsbeforeactivate event:

$( ".selector" ).on( "tabsbeforeactivate", function( event, ui ) {} );

beforeLoad( event, ui )Type: tabsbeforeload

Triggered when a remote tab is about to be loaded, after the beforeActivate event. Can be canceled to prevent the tab panel from loading content; though the panel will still be activated. This event is triggered just before the Ajax request is made, so modifications can be made to ui.jqXHR and ui.ajaxSettings.
  • event
    Type: Event
  • ui
    Type: Object
    • tab
      Type: jQuery
      The tab that is being loaded.
    • panel
      Type: jQuery
      The panel which will be populated by the Ajax response.
    • jqXHR
      Type: jqXHR
      The jqXHR object that is requesting the content.
    • ajaxSettings
      Type: Object
      The settings that will be used by jQuery.ajax to request the content.
Code examples:

Initialize the tabs with the beforeLoad callback specified:

$( ".selector" ).tabs({
    beforeLoad: function( event, ui ) {}
});

Bind an event listener to the tabsbeforeload event:

$( ".selector" ).on( "tabsbeforeload", function( event, ui ) {} );

create( event, ui )Type: tabscreate

Triggered when the tabs are created. If the tabs are collapsed, ui.tab and ui.panel will be empty jQuery objects.
Code examples:

Initialize the tabs with the create callback specified:

$( ".selector" ).tabs({
    create: function( event, ui ) {}
});

Bind an event listener to the tabscreate event:

$( ".selector" ).on( "tabscreate", function( event, ui ) {} );

load( event, ui )Type: tabsload

Triggered after a remote tab has been loaded.
  • event
    Type: Event
  • ui
    Type: Object
    • tab
      Type: jQuery
      The tab that was just loaded.
    • panel
      Type: jQuery
      The panel which was just populated by the Ajax response.
Code examples:

Initialize the tabs with the load callback specified:

$( ".selector" ).tabs({
    load: function( event, ui ) {}
});

Bind an event listener to the tabsload event:

$( ".selector" ).on( "tabsload", function( event, ui ) {} );

Example:

A simple jQuery UI Tabs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>tabs demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="tabs">
    <ul>
        <li><a href="#fragment-1"><span>One</span></a></li>
        <li><a href="#fragment-2"><span>Two</span></a></li>
        <li><a href="#fragment-3"><span>Three</span></a></li>
    </ul>
    <div id="fragment-1">
        <p>First tab is active by default:</p>
        <pre><code>$( "#tabs" ).tabs(); </code></pre>
    </div>
    <div id="fragment-2">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
    <div id="fragment-3">
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
    </div>
</div>
 
<script>
$( "#tabs" ).tabs();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/fade-effect.html0000644000175000017500000002011712107500070022166 0ustar metalmetal jQuery UI fade-effect documentation

Fade Effect

Description: The fade effect hides or shows an element by fading it.

  • fade

Example:

Toggle a div using the fade effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>fade demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "fade" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/spinner.html0000644000175000017500000014475412107500070021531 0ustar metalmetal jQuery UI spinner documentation

Spinner Widgetversion added: 1.9

Description: Enhance a text input for entering numeric values, with up/down buttons and arrow key handling.

QuickNavExamples

Spinner, or number stepper, widget is perfect for handling all kinds of numeric input. It allow users to type a value directly or modify an existing value by spinning with the keyboard, mouse or scrollwheel. When combined with Globalize, you can even spin currencies and dates in a variety of locales.

Spinner wraps a text input, adds two buttons to increment and decrement the current value, along with handling key events for the same purpose. It delegates to Globalize for number formatting and parsing.

Keyboard interaction

  • UP: Increment the value by one step.
  • DOWN: Decrement the value by one step.
  • PAGE UP: Increment the value by one page.
  • PAGE DOWN: Decrement the value by one page.

Focus stays in the text field, even after using the mouse to click one of the spin buttons.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

cultureType: String

Default: null
Sets the culture to use for parsing and formatting the value. If null, the currently set culture in Globalize is used, see Globalize docs for available cultures. Only relevant if the numberFormat option is set. Requires Globalize to be included.
Code examples:

Initialize the spinner with the culture option specified:

$( ".selector" ).spinner({ culture: "fr" });

Get or set the culture option, after initialization:

// getter
var culture = $( ".selector" ).spinner( "option", "culture" );
 
// setter
$( ".selector" ).spinner( "option", "culture", "fr" );

disabledType: Boolean

Default: false
Disables the spinner if set to true.
Code examples:

Initialize the spinner with the disabled option specified:

$( ".selector" ).spinner({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).spinner( "option", "disabled" );
 
// setter
$( ".selector" ).spinner( "option", "disabled", true );

iconsType: Object

Default: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" }
Icons to use for buttons, matching an icon defined by the jQuery UI CSS Framework.
  • up (string, default: "ui-icon-triangle-1-n")
  • down (string, default: "ui-icon-triangle-1-s")
Code examples:

Initialize the spinner with the icons option specified:

$( ".selector" ).spinner({ icons: { down: "custom-down-icon", up: "custom-up-icon" } });

Get or set the icons option, after initialization:

// getter
var icons = $( ".selector" ).spinner( "option", "icons" );
 
// setter
$( ".selector" ).spinner( "option", "icons", { down: "custom-down-icon", up: "custom-up-icon" } );

incrementalType: Boolean or Function()

Default: true
Controls the number of steps taken when holding down a spin button.
Multiple types supported:
  • Boolean: When set to true, the stepping delta will increase when spun incessantly. When set to false, all steps are equal (as defined by the step option).
  • Function: Receives one parameter: the number of spins that have occurred. Must return the number of steps that should occur for the current spin.
Code examples:

Initialize the spinner with the incremental option specified:

$( ".selector" ).spinner({ incremental: false });

Get or set the incremental option, after initialization:

// getter
var incremental = $( ".selector" ).spinner( "option", "incremental" );
 
// setter
$( ".selector" ).spinner( "option", "incremental", false );

maxType: Number or String

Default: null
The maximum allowed value. The element's max attribute is used if it exists and the option is not explicitly set. If null, there is no maximum enforced.
Multiple types supported:
  • Number: The maximum value.
  • String: If Globalize is included, the max option can be passed as a string which will be parsed based on the numberFormat and culture options; otherwise it will fall back to the native parseFloat() method.
Code examples:

Initialize the spinner with the max option specified:

$( ".selector" ).spinner({ max: 50 });

Get or set the max option, after initialization:

// getter
var max = $( ".selector" ).spinner( "option", "max" );
 
// setter
$( ".selector" ).spinner( "option", "max", 50 );

minType: Number or String

Default: null
The minimum allowed value. The element's min attribute is used if it exists and the option is not explicitly set. If null, there is no minimum enforced.
Multiple types supported:
  • Number: The minimum value.
  • String: If Globalize is included, the min option can be passed as a string which will be parsed based on the numberFormat and culture options; otherwise it will fall back to the native parseFloat() method.
Code examples:

Initialize the spinner with the min option specified:

$( ".selector" ).spinner({ min: 0 });

Get or set the min option, after initialization:

// getter
var min = $( ".selector" ).spinner( "option", "min" );
 
// setter
$( ".selector" ).spinner( "option", "min", 0 );

numberFormatType: String

Default: null
Format of numbers passed to Globalize, if available. Most common are "n" for a decimal number and "C" for a currency value. Also see the culture option.
Code examples:

Initialize the spinner with the numberFormat option specified:

$( ".selector" ).spinner({ numberFormat: "n" });

Get or set the numberFormat option, after initialization:

// getter
var numberFormat = $( ".selector" ).spinner( "option", "numberFormat" );
 
// setter
$( ".selector" ).spinner( "option", "numberFormat", "n" );

pageType: Number

Default: 10
The number of steps to take when paging via the pageUp/pageDown methods.
Code examples:

Initialize the spinner with the page option specified:

$( ".selector" ).spinner({ page: 5 });

Get or set the page option, after initialization:

// getter
var page = $( ".selector" ).spinner( "option", "page" );
 
// setter
$( ".selector" ).spinner( "option", "page", 5 );

stepType: Number or String

Default: 1
The size of the step to take when spinning via buttons or via the stepUp()/stepDown() methods. The element's step attribute is used if it exists and the option is not explicitly set.
Multiple types supported:
  • Number: The size of the step.
  • String: If Globalize is included, the step option can be passed as a string which will be parsed based on the numberFormat and culture options, otherwise it will fall back to the native parseFloat.
Code examples:

Initialize the spinner with the step option specified:

$( ".selector" ).spinner({ step: 2 });

Get or set the step option, after initialization:

// getter
var step = $( ".selector" ).spinner( "option", "step" );
 
// setter
$( ".selector" ).spinner( "option", "step", 2 );

Methods

destroy()

Removes the spinner functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).spinner( "destroy" );

disable()

Disables the spinner.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).spinner( "disable" );

enable()

Enables the spinner.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).spinner( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).spinner( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current spinner options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).spinner( "option" );

option( optionName, value )

Sets the value of the spinner option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).spinner( "option", "disabled", true );

option( options )

Sets one or more options for the spinner.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).spinner( "option", { disabled: true } );

pageDown( [pages ] )

Decrements the value by the specified number of pages, as defined by the page option. Without the parameter, a single page is decremented.
  • pages
    Type: Number
    Number of pages to decrement, defaults to 1.
Code examples:

Invoke the pageDown method:

$( ".selector" ).spinner( "pageDown" );

pageUp( [pages ] )

Increments the value by the specified number of pages, as defined by the page option. Without the parameter, a single page is incremented.
  • pages
    Type: Number
    Number of pages to increment, defaults to 1.
Code examples:

Invoke the pageUp method:

$( ".selector" ).spinner( "pageUp", 10 );

stepDown( [steps ] )

Decrements the value by the specified number of steps. Without the parameter, a single step is decremented.

If the resulting value is above the max, below the min, or reuslts in a step mismatch, the value will be adjusted to the closest valid value.

  • steps
    Type: Number
    Number of steps to decrement, defaults to 1.
Code examples:

Invoke the stepDown method:

$( ".selector" ).spinner( "stepDown" );

stepUp( [steps ] )

Increments the value by the specified number of steps. Without the parameter, a single step is incremented.

If the resulting value is above the max, below the min, or reuslts in a step mismatch, the value will be adjusted to the closest valid value.

  • steps
    Type: Number
    Number of steps to increment, defaults to 1.
Code examples:

Invoke the stepUp method:

$( ".selector" ).spinner( "stepUp", 5 );

value()Returns: Number

Gets the current value as a number. The value is parsed based on the numberFormat and culture options.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var value = $( ".selector" ).spinner( "value" );

value( value )

Code examples:

Invoke the method:

$( ".selector" ).spinner( "value", 50 );

widget()Returns: jQuery

Returns a jQuery object containing the generated wrapper.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).spinner( "widget" );

Events

change( event, ui )Type: spinchange

Triggered when the value of the spinner has changed and the input is no longer focused.
Code examples:

Initialize the spinner with the change callback specified:

$( ".selector" ).spinner({
    change: function( event, ui ) {}
});

Bind an event listener to the spinchange event:

$( ".selector" ).on( "spinchange", function( event, ui ) {} );

create( event, ui )Type: spincreate

Triggered when the spinner is created.
Code examples:

Initialize the spinner with the create callback specified:

$( ".selector" ).spinner({
    create: function( event, ui ) {}
});

Bind an event listener to the spincreate event:

$( ".selector" ).on( "spincreate", function( event, ui ) {} );

spin( event, ui )Type: spin

Triggered during increment/decrement (to determine direction of spin compare current value with ui.value).

Can be canceled, preventing the value from being updated.

  • event
    Type: Event
  • ui
    Type: Object
    • value
      Type: Number
      The new value to be set, unless the event is cancelled.
Code examples:

Initialize the spinner with the spin callback specified:

$( ".selector" ).spinner({
    spin: function( event, ui ) {}
});

Bind an event listener to the spin event:

$( ".selector" ).on( "spin", function( event, ui ) {} );

start( event, ui )Type: spinstart

Triggered before a spin. Can be canceled, preventing the spin from occurring.
Code examples:

Initialize the spinner with the start callback specified:

$( ".selector" ).spinner({
    start: function( event, ui ) {}
});

Bind an event listener to the spinstart event:

$( ".selector" ).on( "spinstart", function( event, ui ) {} );

stop( event, ui )Type: spinstop

Triggered after a spin.
Code examples:

Initialize the spinner with the stop callback specified:

$( ".selector" ).spinner({
    stop: function( event, ui ) {}
});

Bind an event listener to the spinstop event:

$( ".selector" ).on( "spinstop", function( event, ui ) {} );

Example:

Plain number spinner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>spinner demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<input id="spinner">
 
<script>
$( "#spinner" ).spinner();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/dialog.html0000644000175000017500000024175212107500070021306 0ustar metalmetal jQuery UI dialog documentation

Dialog Widgetversion added: 1.0

Description: Open content in an interactive overlay.

QuickNavExamples

A dialog is a floating window that contains a title bar and a content area. The dialog window can be moved, resized and closed with the 'x' icon by default.

If the content length exceeds the maximum height, a scrollbar will automatically appear.

A bottom button bar and semi-transparent modal overlay layer are common options that can be added.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

appendToType: Selector

Default: "body"
Which element the dialog should be appended to. Regardless of the value set, the overlay for modal dialogs will always be appended to the body and cover the entire window. (version added: 1.10)
Code examples:

Initialize the dialog with the appendTo option specified:

$( ".selector" ).dialog({ appendTo: "#someElem" });

Get or set the appendTo option, after initialization:

// getter
var appendTo = $( ".selector" ).dialog( "option", "appendTo" );
 
// setter
$( ".selector" ).dialog( "option", "appendTo", "#someElem" );

autoOpenType: Boolean

Default: true
If set to true, the dialog will automatically open upon initialization. If false, the dialog will stay hidden until the open() method is called.
Code examples:

Initialize the dialog with the autoOpen option specified:

$( ".selector" ).dialog({ autoOpen: false });

Get or set the autoOpen option, after initialization:

// getter
var autoOpen = $( ".selector" ).dialog( "option", "autoOpen" );
 
// setter
$( ".selector" ).dialog( "option", "autoOpen", false );

buttonsType: Object or Array

Default: {}
Specifies which buttons should be displayed on the dialog. The context of the callback is the dialog element; if you need access to the button, it is available as the target of the event object.
Multiple types supported:
  • Object: The keys are the button labels and the values are the callbacks for when the associated button is clicked.
  • Array: Each element of the array must be an object defining the attributes, properties, and event handlers to set on the button.
Code examples:

Initialize the dialog with the buttons option specified:

$( ".selector" ).dialog({ buttons: [ { text: "Ok", click: function() { $( this ).dialog( "close" ); } ] });

Get or set the buttons option, after initialization:

// getter
var buttons = $( ".selector" ).dialog( "option", "buttons" );
 
// setter
$( ".selector" ).dialog( "option", "buttons", [ { text: "Ok", click: function() { $( this ).dialog( "close" ); } ] );

closeOnEscapeType: Boolean

Default: true
Specifies whether the dialog should close when it has focus and the user presses the esacpe (ESC) key.
Code examples:

Initialize the dialog with the closeOnEscape option specified:

$( ".selector" ).dialog({ closeOnEscape: false });

Get or set the closeOnEscape option, after initialization:

// getter
var closeOnEscape = $( ".selector" ).dialog( "option", "closeOnEscape" );
 
// setter
$( ".selector" ).dialog( "option", "closeOnEscape", false );

closeTextType: String

Default: "close"
Specifies the text for the close button. Note that the close text is visibly hidden when using a standard theme.
Code examples:

Initialize the dialog with the closeText option specified:

$( ".selector" ).dialog({ closeText: "hide" });

Get or set the closeText option, after initialization:

// getter
var closeText = $( ".selector" ).dialog( "option", "closeText" );
 
// setter
$( ".selector" ).dialog( "option", "closeText", "hide" );

dialogClassType: String

Default: ""
The specified class name(s) will be added to the dialog, for additional theming.
Code examples:

Initialize the dialog with the dialogClass option specified:

$( ".selector" ).dialog({ dialogClass: "alert" });

Get or set the dialogClass option, after initialization:

// getter
var dialogClass = $( ".selector" ).dialog( "option", "dialogClass" );
 
// setter
$( ".selector" ).dialog( "option", "dialogClass", "alert" );

draggableType: Boolean

Default: true
If set to true, the dialog will be draggable by the title bar. Requires the jQuery UI Draggable wiget to be included.
Code examples:

Initialize the dialog with the draggable option specified:

$( ".selector" ).dialog({ draggable: false });

Get or set the draggable option, after initialization:

// getter
var draggable = $( ".selector" ).dialog( "option", "draggable" );
 
// setter
$( ".selector" ).dialog( "option", "draggable", false );

heightType: Number or String

Default: "auto"
The height of the dialog.
Multiple types supported:
  • Number: The height in pixels.
  • String: The only supported string value is "auto" which will allow the dialog height to adjust based on its content.
Code examples:

Initialize the dialog with the height option specified:

$( ".selector" ).dialog({ height: 400 });

Get or set the height option, after initialization:

// getter
var height = $( ".selector" ).dialog( "option", "height" );
 
// setter
$( ".selector" ).dialog( "option", "height", 400 );

hideType: Number or String or Object

Default: null
If and how to animate the hiding of the dialog.
Multiple types supported:
  • Number: The dialog will fade out while animating the height and width for the specified duration.
  • String: The dialog will be hidden using the specified jQuery UI effect. See the list of effects for possible values.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. The effect property must be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used.
Code examples:

Initialize the dialog with the hide option specified:

$( ".selector" ).dialog({ hide: "explode" });

Get or set the hide option, after initialization:

// getter
var hide = $( ".selector" ).dialog( "option", "hide" );
 
// setter
$( ".selector" ).dialog( "option", "hide", "explode" );

maxHeightType: Number

Default: false
The maximum height to which the dialog can be resized, in pixels.
Code examples:

Initialize the dialog with the maxHeight option specified:

$( ".selector" ).dialog({ maxHeight: 600 });

Get or set the maxHeight option, after initialization:

// getter
var maxHeight = $( ".selector" ).dialog( "option", "maxHeight" );
 
// setter
$( ".selector" ).dialog( "option", "maxHeight", 600 );

maxWidthType: Number

Default: false
The maximum width to which the dialog can be resized, in pixels.
Code examples:

Initialize the dialog with the maxWidth option specified:

$( ".selector" ).dialog({ maxWidth: 600 });

Get or set the maxWidth option, after initialization:

// getter
var maxWidth = $( ".selector" ).dialog( "option", "maxWidth" );
 
// setter
$( ".selector" ).dialog( "option", "maxWidth", 600 );

minHeightType: Number

Default: 150
The minimum height to which the dialog can be resized, in pixels.
Code examples:

Initialize the dialog with the minHeight option specified:

$( ".selector" ).dialog({ minHeight: 200 });

Get or set the minHeight option, after initialization:

// getter
var minHeight = $( ".selector" ).dialog( "option", "minHeight" );
 
// setter
$( ".selector" ).dialog( "option", "minHeight", 200 );

minWidthType: Number

Default: 150
The minimum width to which the dialog can be resized, in pixels.
Code examples:

Initialize the dialog with the minWidth option specified:

$( ".selector" ).dialog({ minWidth: 200 });

Get or set the minWidth option, after initialization:

// getter
var minWidth = $( ".selector" ).dialog( "option", "minWidth" );
 
// setter
$( ".selector" ).dialog( "option", "minWidth", 200 );

modalType: Boolean

Default: false
If set to true, the dialog will have modal behavior; other items on the page will be disabled, i.e., cannot be interacted with. Modal dialogs create an overlay below the dialog but above other page elements.
Code examples:

Initialize the dialog with the modal option specified:

$( ".selector" ).dialog({ modal: true });

Get or set the modal option, after initialization:

// getter
var modal = $( ".selector" ).dialog( "option", "modal" );
 
// setter
$( ".selector" ).dialog( "option", "modal", true );

positionType: Object or String or Array

Default: { my: "center", at: "center", of: window }

Specifies where the dialog should be displayed. The dialog will handle collisions such that as much of the dialog is visible as possible.

Note: The String and Array forms are deprecated.

Multiple types supported:
  • Object: Identifies the position of the dialog when opened. The of option defaults to the window, but you can specify another element to position against. You can refer to the jQuery UI Position utility for more details about the various options.
  • String: A string representing the position within the viewport. Possible values: "center", "left", "right", "top", "bottom".
  • Array: An array containing an x, y coordinate pair in pixel offset from the top left corner of the viewport or the name of a possible string value.
Code examples:

Initialize the dialog with the position option specified:

$( ".selector" ).dialog({ position: { my: "left top", at: "left bottom", of: button } });

Get or set the position option, after initialization:

// getter
var position = $( ".selector" ).dialog( "option", "position" );
 
// setter
$( ".selector" ).dialog( "option", "position", { my: "left top", at: "left bottom", of: button } );

resizableType: Boolean

Default: true
If set to true, the dialog will be resizable. Requires the jQuery UI Resizable widget to be included.
Code examples:

Initialize the dialog with the resizable option specified:

$( ".selector" ).dialog({ resizable: false });

Get or set the resizable option, after initialization:

// getter
var resizable = $( ".selector" ).dialog( "option", "resizable" );
 
// setter
$( ".selector" ).dialog( "option", "resizable", false );

showType: Number or String or Object

Default: null
If and how to animate the showing of the dialog.
Multiple types supported:
  • Number: The dialog will fade in while animating the height and width for the specified duration.
  • String: The dialog will be shown using the specified jQuery UI effect. See the list of effects for possible values.
  • Object: If the value is an object, then effect, duration, and easing properties may be provided. The effect property must be the name of a jQuery UI effect. When using a jQuery UI effect that supports additional settings, you may include those settings in the object and they will be passed to the effect. If duration or easing is omitted, then the default values will be used.
Code examples:

Initialize the dialog with the show option specified:

$( ".selector" ).dialog({ show: "slow" });

Get or set the show option, after initialization:

// getter
var show = $( ".selector" ).dialog( "option", "show" );
 
// setter
$( ".selector" ).dialog( "option", "show", "slow" );

titleType: String

Default: null
Specifies the title of the dialog. Any valid HTML may be set as the title. The title can also be specified by the title attribute on the dialog source element.
Code examples:

Initialize the dialog with the title option specified:

$( ".selector" ).dialog({ title: "Dialog Title" });

Get or set the title option, after initialization:

// getter
var title = $( ".selector" ).dialog( "option", "title" );
 
// setter
$( ".selector" ).dialog( "option", "title", "Dialog Title" );

widthType: Number

Default: 300
The width of the dialog, in pixels.
Code examples:

Initialize the dialog with the width option specified:

$( ".selector" ).dialog({ width: 500 });

Get or set the width option, after initialization:

// getter
var width = $( ".selector" ).dialog( "option", "width" );
 
// setter
$( ".selector" ).dialog( "option", "width", 500 );

Methods

close()

Closes the dialog.
  • This method does not accept any arguments.
Code examples:

Invoke the close method:

$( ".selector" ).dialog( "close" );

destroy()

Removes the dialog functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).dialog( "destroy" );

isOpen()Returns: Boolean

Whether the dialog is currently open.
  • This method does not accept any arguments.
Code examples:

Invoke the isOpen method:

var isOpen = $( ".selector" ).dialog( "isOpen" );

moveToTop()

Moves the dialog to the top of the dialog stack.
  • This method does not accept any arguments.
Code examples:

Invoke the moveToTop method:

$( ".selector" ).dialog( "moveToTop" );

open()

Opens the dialog.
  • This method does not accept any arguments.
Code examples:

Invoke the open method:

$( ".selector" ).dialog( "open" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).dialog( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current dialog options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).dialog( "option" );

option( optionName, value )

Sets the value of the dialog option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).dialog( "option", "disabled", true );

option( options )

Sets one or more options for the dialog.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).dialog( "option", { disabled: true } );

widget()Returns: jQuery

Returns a jQuery object containing the generated wrapper.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).dialog( "widget" );

Events

beforeClose( event, ui )Type: dialogbeforeclose

Triggered when a dialog is about to close. If canceled, the dialog will not close.
Code examples:

Initialize the dialog with the beforeClose callback specified:

$( ".selector" ).dialog({
    beforeClose: function( event, ui ) {}
});

Bind an event listener to the dialogbeforeclose event:

$( ".selector" ).on( "dialogbeforeclose", function( event, ui ) {} );

close( event, ui )Type: dialogclose

Triggered when the dialog is closed.
Code examples:

Initialize the dialog with the close callback specified:

$( ".selector" ).dialog({
    close: function( event, ui ) {}
});

Bind an event listener to the dialogclose event:

$( ".selector" ).on( "dialogclose", function( event, ui ) {} );

create( event, ui )Type: dialogcreate

Triggered when the dialog is created.
Code examples:

Initialize the dialog with the create callback specified:

$( ".selector" ).dialog({
    create: function( event, ui ) {}
});

Bind an event listener to the dialogcreate event:

$( ".selector" ).on( "dialogcreate", function( event, ui ) {} );

drag( event, ui )Type: dialogdrag

Triggered while the dialog is being dragged.
  • event
    Type: Event
  • ui
    Type: Object
    • position
      Type: Object
      The current CSS position of the dialog.
    • offset
      Type: Object
      The current offset position of the dialog.
Code examples:

Initialize the dialog with the drag callback specified:

$( ".selector" ).dialog({
    drag: function( event, ui ) {}
});

Bind an event listener to the dialogdrag event:

$( ".selector" ).on( "dialogdrag", function( event, ui ) {} );

dragStart( event, ui )Type: dialogdragstart

Triggered when the user starts dragging the dialog.
  • event
    Type: Event
  • ui
    Type: Object
    • position
      Type: Object
      The current CSS position of the dialog.
    • offset
      Type: Object
      The current offset position of the dialog.
Code examples:

Initialize the dialog with the dragStart callback specified:

$( ".selector" ).dialog({
    dragStart: function( event, ui ) {}
});

Bind an event listener to the dialogdragstart event:

$( ".selector" ).on( "dialogdragstart", function( event, ui ) {} );

dragStop( event, ui )Type: dialogdragstop

Triggered after the dialog has been dragged.
  • event
    Type: Event
  • ui
    Type: Object
    • position
      Type: Object
      The current CSS position of the dialog.
    • offset
      Type: Object
      The current offset position of the dialog.
Code examples:

Initialize the dialog with the dragStop callback specified:

$( ".selector" ).dialog({
    dragStop: function( event, ui ) {}
});

Bind an event listener to the dialogdragstop event:

$( ".selector" ).on( "dialogdragstop", function( event, ui ) {} );

focus( event, ui )Type: dialogfocus

Triggered when the dialog gains focus.
Code examples:

Initialize the dialog with the focus callback specified:

$( ".selector" ).dialog({
    focus: function( event, ui ) {}
});

Bind an event listener to the dialogfocus event:

$( ".selector" ).on( "dialogfocus", function( event, ui ) {} );

open( event, ui )Type: dialogopen

Triggered when the dialog is opened.
Code examples:

Initialize the dialog with the open callback specified:

$( ".selector" ).dialog({
    open: function( event, ui ) {}
});

Bind an event listener to the dialogopen event:

$( ".selector" ).on( "dialogopen", function( event, ui ) {} );

resize( event, ui )Type: dialogresize

Triggered while the dialog is being resized.
  • event
    Type: Event
  • ui
    Type: Object
    • orginalPosition
      Type: Object
      The CSS position of the dialog prior to being resized.
    • position
      Type: Object
      The current CSS position of the dialog.
    • originalSize
      Type: Object
      The size of the dialog prior to being resized.
    • size
      Type: Object
      The current size of the dialog.
Code examples:

Initialize the dialog with the resize callback specified:

$( ".selector" ).dialog({
    resize: function( event, ui ) {}
});

Bind an event listener to the dialogresize event:

$( ".selector" ).on( "dialogresize", function( event, ui ) {} );

resizeStart( event, ui )Type: dialogresizestart

Triggered when the user starts resizing the dialog.
  • event
    Type: Event
  • ui
    Type: Object
    • orginalPosition
      Type: Object
      The CSS position of the dialog prior to being resized.
    • position
      Type: Object
      The current CSS position of the dialog.
    • originalSize
      Type: Object
      The size of the dialog prior to being resized.
    • size
      Type: Object
      The current size of the dialog.
Code examples:

Initialize the dialog with the resizeStart callback specified:

$( ".selector" ).dialog({
    resizeStart: function( event, ui ) {}
});

Bind an event listener to the dialogresizestart event:

$( ".selector" ).on( "dialogresizestart", function( event, ui ) {} );

resizeStop( event, ui )Type: dialogresizestop

Triggered after the dialog has been resized.
  • event
    Type: Event
  • ui
    Type: Object
    • orginalPosition
      Type: Object
      The CSS position of the dialog prior to being resized.
    • position
      Type: Object
      The current CSS position of the dialog.
    • originalSize
      Type: Object
      The size of the dialog prior to being resized.
    • size
      Type: Object
      The current size of the dialog.
Code examples:

Initialize the dialog with the resizeStop callback specified:

$( ".selector" ).dialog({
    resizeStop: function( event, ui ) {}
});

Bind an event listener to the dialogresizestop event:

$( ".selector" ).on( "dialogresizestop", function( event, ui ) {} );

Example:

A simple jQuery UI Dialog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>dialog demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<button id="opener">open the dialog</button>
<div id="dialog" title="Dialog Title">I'm a dialog</div>
 
<script>
$( "#dialog" ).dialog({ autoOpen: false });
$( "#opener" ).click(function() {
    $( "#dialog" ).dialog( "open" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/clip-effect.html0000644000175000017500000002104112107500070022213 0ustar metalmetal jQuery UI clip-effect documentation

Clip Effect

Description: The clip effect will hide or show an element by clipping the element vertically or horizontally.

  • clip

    • direction (default: "up")
      Type: String

      The plane in which the clip effect will hide or show its element.

      vertical clips the top and bottom edges, while horizontal clips the right and left edges.

Example:

Toggle a div using the clip effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>clip demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "clip" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/explode-effect.html0000644000175000017500000002064712107500070022737 0ustar metalmetal jQuery UI explode-effect documentation

Explode Effect

Description: The explode effect hides or shows an element by splitting it into pieces.

  • explode

    • pieces (default: 9)
      Type: Integer
      The number of pieces to explode, should be a perfect square, any other values are rounded to the nearest square.

Example:

Toggle a div using the explode effect.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>explode demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #toggle {
        width: 100px;
        height: 100px;
        background: #ccc;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<p>Click anywhere to toggle the box.</p>
<div id="toggle"></div>
 
<script>
$( document ).click(function() {
    $( "#toggle" ).toggle( "explode" );
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/sortable.html0000644000175000017500000033614312107500070021661 0ustar metalmetal jQuery UI sortable documentation

Sortable Widgetversion added: 1.0

Description: Reorder elements in a list or grid using the mouse.

QuickNavExamples

The jQuery UI Sortable plugin makes selected elements sortable by dragging with the mouse.

Note: In order to sort table rows, the tbody must be made sortable, not the table.

Options

appendToType: jQuery or Element or Selector or String

Default: "parent"
Defines where the helper that moves with the mouse is being appended to during the drag (for example, to resolve overlap/zIndex issues).
Multiple types supported:
  • jQuery: A jQuery object containing the element to append the helper to.
  • Element: The element to append the helper to.
  • Selector: A selector specifying which element to append the helper to.
  • String: The string "parent" will cause the helper to be a sibling of the sortable item.
Code examples:

Initialize the sortable with the appendTo option specified:

$( ".selector" ).sortable({ appendTo: document.body });

Get or set the appendTo option, after initialization:

// getter
var appendTo = $( ".selector" ).sortable( "option", "appendTo" );
 
// setter
$( ".selector" ).sortable( "option", "appendTo", document.body );

axisType: String

Default: false
If defined, the items can be dragged only horizontally or vertically. Possible values: "x", "y".
Code examples:

Initialize the sortable with the axis option specified:

$( ".selector" ).sortable({ axis: "x" });

Get or set the axis option, after initialization:

// getter
var axis = $( ".selector" ).sortable( "option", "axis" );
 
// setter
$( ".selector" ).sortable( "option", "axis", "x" );

cancelType: Selector

Default: ":input,button"
Prevents sorting if you start on elements matching the selector.
Code examples:

Initialize the sortable with the cancel option specified:

$( ".selector" ).sortable({ cancel: "a,button" });

Get or set the cancel option, after initialization:

// getter
var cancel = $( ".selector" ).sortable( "option", "cancel" );
 
// setter
$( ".selector" ).sortable( "option", "cancel", "a,button" );

connectWithType: Selector

Default: false
A selector of other sortable elements that the items from this list should be connected to. This is a one-way relationship, if you want the items to be connected in both directions, the connectWith option must be set on both sortable elements.
Code examples:

Initialize the sortable with the connectWith option specified:

$( ".selector" ).sortable({ connectWith: "#shopping-cart" });

Get or set the connectWith option, after initialization:

// getter
var connectWith = $( ".selector" ).sortable( "option", "connectWith" );
 
// setter
$( ".selector" ).sortable( "option", "connectWith", "#shopping-cart" );

containmentType: Element or Selector or String

Default: false

Defines a bounding box that the sortable items are contrained to while dragging.

Note: The element specified for containment must have a calculated width and height (though it need not be explicit). For example, if you have float: left sortable children and specify containment: "parent" be sure to have float: left on the sortable/parent container as well or it will have height: 0, causing undefined behavior.

Multiple types supported:
  • Element: An element to use as the container.
  • Selector: A selector specifying an element to use as the container.
  • String: A string identifying an element to use as the container. Possible values: "parent", "document", "window".
Code examples:

Initialize the sortable with the containment option specified:

$( ".selector" ).sortable({ containment: "parent" });

Get or set the containment option, after initialization:

// getter
var containment = $( ".selector" ).sortable( "option", "containment" );
 
// setter
$( ".selector" ).sortable( "option", "containment", "parent" );

cursorType: String

Default: "auto"
Defines the cursor that is being shown while sorting.
Code examples:

Initialize the sortable with the cursor option specified:

$( ".selector" ).sortable({ cursor: "move" });

Get or set the cursor option, after initialization:

// getter
var cursor = $( ".selector" ).sortable( "option", "cursor" );
 
// setter
$( ".selector" ).sortable( "option", "cursor", "move" );

cursorAtType: Object

Default: false
Moves the sorting element or helper so the cursor always appears to drag from the same position. Coordinates can be given as a hash using a combination of one or two keys: { top, left, right, bottom }.
Code examples:

Initialize the sortable with the cursorAt option specified:

$( ".selector" ).sortable({ cursorAt: { left: 5 } });

Get or set the cursorAt option, after initialization:

// getter
var cursorAt = $( ".selector" ).sortable( "option", "cursorAt" );
 
// setter
$( ".selector" ).sortable( "option", "cursorAt", { left: 5 } );

delayType: Integer

Default: 0
Time in milliseconds to define when the sorting should start. Adding a delay helps preventing unwanted drags when clicking on an element.
Code examples:

Initialize the sortable with the delay option specified:

$( ".selector" ).sortable({ delay: 150 });

Get or set the delay option, after initialization:

// getter
var delay = $( ".selector" ).sortable( "option", "delay" );
 
// setter
$( ".selector" ).sortable( "option", "delay", 150 );

disabledType: Boolean

Default: false
Disables the sortable if set to true.
Code examples:

Initialize the sortable with the disabled option specified:

$( ".selector" ).sortable({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).sortable( "option", "disabled" );
 
// setter
$( ".selector" ).sortable( "option", "disabled", true );

distanceType: Number

Default: 1
Tolerance, in pixels, for when sorting should start. If specified, sorting will not start until after mouse is dragged beyond distance. Can be used to allow for clicks on elements within a handle.
Code examples:

Initialize the sortable with the distance option specified:

$( ".selector" ).sortable({ distance: 5 });

Get or set the distance option, after initialization:

// getter
var distance = $( ".selector" ).sortable( "option", "distance" );
 
// setter
$( ".selector" ).sortable( "option", "distance", 5 );

dropOnEmptyType: Boolean

Default: true
If false, items from this sortable can't be dropped on an empty connect sortable (see the connectWith option.
Code examples:

Initialize the sortable with the dropOnEmpty option specified:

$( ".selector" ).sortable({ dropOnEmpty: false });

Get or set the dropOnEmpty option, after initialization:

// getter
var dropOnEmpty = $( ".selector" ).sortable( "option", "dropOnEmpty" );
 
// setter
$( ".selector" ).sortable( "option", "dropOnEmpty", false );

forceHelperSizeType: Boolean

Default: false
If true, forces the helper to have a size.
Code examples:

Initialize the sortable with the forceHelperSize option specified:

$( ".selector" ).sortable({ forceHelperSize: true });

Get or set the forceHelperSize option, after initialization:

// getter
var forceHelperSize = $( ".selector" ).sortable( "option", "forceHelperSize" );
 
// setter
$( ".selector" ).sortable( "option", "forceHelperSize", true );

forcePlaceholderSizeType: Boolean

Default: false
If true, forces the placeholder to have a size.
Code examples:

Initialize the sortable with the forcePlaceholderSize option specified:

$( ".selector" ).sortable({ forcePlaceholderSize: true });

Get or set the forcePlaceholderSize option, after initialization:

// getter
var forcePlaceholderSize = $( ".selector" ).sortable( "option", "forcePlaceholderSize" );
 
// setter
$( ".selector" ).sortable( "option", "forcePlaceholderSize", true );

gridType: Array

Default: false
Snaps the sorting element or helper to a grid, every x and y pixels. Array values: [ x, y ].
Code examples:

Initialize the sortable with the grid option specified:

$( ".selector" ).sortable({ grid: [ 20, 10 ] });

Get or set the grid option, after initialization:

// getter
var grid = $( ".selector" ).sortable( "option", "grid" );
 
// setter
$( ".selector" ).sortable( "option", "grid", [ 20, 10 ] );

handleType: Selector or Element

Default: false
Restricts sort start click to the specified element.
Code examples:

Initialize the sortable with the handle option specified:

$( ".selector" ).sortable({ handle: ".handle" });

Get or set the handle option, after initialization:

// getter
var handle = $( ".selector" ).sortable( "option", "handle" );
 
// setter
$( ".selector" ).sortable( "option", "handle", ".handle" );

helperType: String or Function()

Default: "original"
Allows for a helper element to be used for dragging display.
Multiple types supported:
  • String: If set to "clone", then the element will be cloned and the clone will be dragged.
  • Function: A function that will return a DOMElement to use while dragging. The function receives the event and the element being sorted.
Code examples:

Initialize the sortable with the helper option specified:

$( ".selector" ).sortable({ helper: "clone" });

Get or set the helper option, after initialization:

// getter
var helper = $( ".selector" ).sortable( "option", "helper" );
 
// setter
$( ".selector" ).sortable( "option", "helper", "clone" );

itemsType: Selector

Default: "> *"
Specifies which items inside the element should be sortable.
Code examples:

Initialize the sortable with the items option specified:

$( ".selector" ).sortable({ items: "> li" });

Get or set the items option, after initialization:

// getter
var items = $( ".selector" ).sortable( "option", "items" );
 
// setter
$( ".selector" ).sortable( "option", "items", "> li" );

opacityType: Number

Default: false
Defines the opacity of the helper while sorting. From 0.01 to 1.
Code examples:

Initialize the sortable with the opacity option specified:

$( ".selector" ).sortable({ opacity: 0.5 });

Get or set the opacity option, after initialization:

// getter
var opacity = $( ".selector" ).sortable( "option", "opacity" );
 
// setter
$( ".selector" ).sortable( "option", "opacity", 0.5 );

placeholderType: String

Default: false
A class name that gets applied to the otherwise white space.
Code examples:

Initialize the sortable with the placeholder option specified:

$( ".selector" ).sortable({ placeholder: "sortable-placeholder" });

Get or set the placeholder option, after initialization:

// getter
var placeholder = $( ".selector" ).sortable( "option", "placeholder" );
 
// setter
$( ".selector" ).sortable( "option", "placeholder", "sortable-placeholder" );

revertType: Boolean or Number

Default: false
Whether the sortable items should revert to their new positions using a smooth animation.
Multiple types supported:
  • Boolean: When set to true, the items will animate with the default duration.
  • Number: The duration for the animation, in milliseconds.
Code examples:

Initialize the sortable with the revert option specified:

$( ".selector" ).sortable({ revert: true });

Get or set the revert option, after initialization:

// getter
var revert = $( ".selector" ).sortable( "option", "revert" );
 
// setter
$( ".selector" ).sortable( "option", "revert", true );

scrollType: Boolean

Default: true
If set to true, the page scrolls when coming to an edge.
Code examples:

Initialize the sortable with the scroll option specified:

$( ".selector" ).sortable({ scroll: false });

Get or set the scroll option, after initialization:

// getter
var scroll = $( ".selector" ).sortable( "option", "scroll" );
 
// setter
$( ".selector" ).sortable( "option", "scroll", false );

scrollSensitivityType: Number

Default: 20
Defines how near the mouse must be to an edge to start scrolling.
Code examples:

Initialize the sortable with the scrollSensitivity option specified:

$( ".selector" ).sortable({ scrollSensitivity: 10 });

Get or set the scrollSensitivity option, after initialization:

// getter
var scrollSensitivity = $( ".selector" ).sortable( "option", "scrollSensitivity" );
 
// setter
$( ".selector" ).sortable( "option", "scrollSensitivity", 10 );

scrollSpeedType: Number

Default: 20
The speed at which the window should scroll once the mouse pointer gets within the scrollSensitivity distance.
Code examples:

Initialize the sortable with the scrollSpeed option specified:

$( ".selector" ).sortable({ scrollSpeed: 40 });

Get or set the scrollSpeed option, after initialization:

// getter
var scrollSpeed = $( ".selector" ).sortable( "option", "scrollSpeed" );
 
// setter
$( ".selector" ).sortable( "option", "scrollSpeed", 40 );

toleranceType: String

Default: "intersect"
Specifies which mode to use for testing whether the item being moved is hovering over another item. Possible values:
  • "intersect": The item overlaps the other item by at least 50%.
  • "pointer": The mouse pointer overlaps the other item.
Code examples:

Initialize the sortable with the tolerance option specified:

$( ".selector" ).sortable({ tolerance: "pointer" });

Get or set the tolerance option, after initialization:

// getter
var tolerance = $( ".selector" ).sortable( "option", "tolerance" );
 
// setter
$( ".selector" ).sortable( "option", "tolerance", "pointer" );

zIndexType: Integer

Default: 1000
Z-index for element/helper while being sorted.
Code examples:

Initialize the sortable with the zIndex option specified:

$( ".selector" ).sortable({ zIndex: 9999 });

Get or set the zIndex option, after initialization:

// getter
var zIndex = $( ".selector" ).sortable( "option", "zIndex" );
 
// setter
$( ".selector" ).sortable( "option", "zIndex", 9999 );

Methods

cancel()

Cancels a change in the current sortable and reverts it to the state prior to when the current sort was started. Useful in the stop and receive callback functions.
  • This method does not accept any arguments.
Code examples:

Invoke the cancel method:

$( ".selector" ).sortable( "cancel" );

destroy()

Removes the sortable functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).sortable( "destroy" );

disable()

Disables the sortable.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).sortable( "disable" );

enable()

Enables the sortable.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).sortable( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).sortable( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current sortable options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).sortable( "option" );

option( optionName, value )

Sets the value of the sortable option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).sortable( "option", "disabled", true );

option( options )

Sets one or more options for the sortable.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).sortable( "option", { disabled: true } );

refresh()

Refresh the sortable items. Triggers the reloading of all sortable items, causing new items to be recognized.
  • This method does not accept any arguments.
Code examples:

Invoke the refresh method:

$( ".selector" ).sortable( "refresh" );

refreshPositions()

Refresh the cached positions of the sortable items. Calling this method refreshes the cached item positions of all sortables.
  • This method does not accept any arguments.
Code examples:

Invoke the refreshPositions method:

$( ".selector" ).sortable( "refreshPositions" );

serialize( options )Returns: String

Serializes the sortable's item ids into a form/ajax submittable string. Calling this method produces a hash that can be appended to any url to easily submit a new item order back to the server.

It works by default by looking at the id of each item in the format "setname_number", and it spits out a hash like "setname[]=number&setname[]=number".

Note: If serialize returns an empty string, make sure the id attributes include an underscore. They must be in the form: "set_number" For example, a 3 element list with id attributes "foo_1", "foo_5", "foo_2" will serialize to "foo[]=1&foo[]=5&foo[]=2". You can use an underscore, equal sign or hyphen to separate the set and number. For example "foo=1", "foo-1", and "foo_1" all serialize to "foo[]=1".

  • options
    Type: Object
    Options to customize the serialization.
    • key (default: the part of the attribute in front of the separator)
      Type: String
      Replaces part1[] with the specified value.
    • attribute (default: "id")
      Type: String
      The name of the attribute to use for the values.
    • expression (default: /(.+)[-=_](.+)/)
      Type: RegExp
      A regular expression used to split the attribute value into key and value parts.
Code examples:

Invoke the serialize method:

var sorted = $( ".selector" ).sortable( "serialize", { key: "sort" } );

toArray()Returns: Array

Serializes the sortable's item id's into an array of string.
  • This method does not accept any arguments.
Code examples:

Invoke the toArray method:

var sortedIDs = $( ".selector" ).sortable( "toArray" );

widget()Returns: jQuery

Returns a jQuery object containing the sortable element.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).sortable( "widget" );

Events

activate( event, ui )Type: sortactivate

This event is triggered when using connected lists, every connected list on drag start receives it.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the activate callback specified:

$( ".selector" ).sortable({
    activate: function( event, ui ) {}
});

Bind an event listener to the sortactivate event:

$( ".selector" ).on( "sortactivate", function( event, ui ) {} );

beforeStop( event, ui )Type: sortbeforestop

This event is triggered when sorting stops, but when the placeholder/helper is still available.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the beforeStop callback specified:

$( ".selector" ).sortable({
    beforeStop: function( event, ui ) {}
});

Bind an event listener to the sortbeforestop event:

$( ".selector" ).on( "sortbeforestop", function( event, ui ) {} );

change( event, ui )Type: sortchange

This event is triggered during sorting, but only when the DOM position has changed.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the change callback specified:

$( ".selector" ).sortable({
    change: function( event, ui ) {}
});

Bind an event listener to the sortchange event:

$( ".selector" ).on( "sortchange", function( event, ui ) {} );

create( event, ui )Type: sortcreate

Triggered when the sortable is created.
Code examples:

Initialize the sortable with the create callback specified:

$( ".selector" ).sortable({
    create: function( event, ui ) {}
});

Bind an event listener to the sortcreate event:

$( ".selector" ).on( "sortcreate", function( event, ui ) {} );

deactivate( event, ui )Type: sortdeactivate

This event is triggered when sorting was stopped, is propagated to all possible connected lists.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the deactivate callback specified:

$( ".selector" ).sortable({
    deactivate: function( event, ui ) {}
});

Bind an event listener to the sortdeactivate event:

$( ".selector" ).on( "sortdeactivate", function( event, ui ) {} );

out( event, ui )Type: sortout

This event is triggered when a sortable item is moved away from a connected list.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the out callback specified:

$( ".selector" ).sortable({
    out: function( event, ui ) {}
});

Bind an event listener to the sortout event:

$( ".selector" ).on( "sortout", function( event, ui ) {} );

over( event, ui )Type: sortover

This event is triggered when a sortable item is moved into a connected list.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the over callback specified:

$( ".selector" ).sortable({
    over: function( event, ui ) {}
});

Bind an event listener to the sortover event:

$( ".selector" ).on( "sortover", function( event, ui ) {} );

receive( event, ui )Type: sortreceive

This event is triggered when a connected sortable list has received an item from another list.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the receive callback specified:

$( ".selector" ).sortable({
    receive: function( event, ui ) {}
});

Bind an event listener to the sortreceive event:

$( ".selector" ).on( "sortreceive", function( event, ui ) {} );

remove( event, ui )Type: sortremove

This event is triggered when a sortable item has been dragged out from the list and into another.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the remove callback specified:

$( ".selector" ).sortable({
    remove: function( event, ui ) {}
});

Bind an event listener to the sortremove event:

$( ".selector" ).on( "sortremove", function( event, ui ) {} );

sort( event, ui )Type: sort

This event is triggered during sorting.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the sort callback specified:

$( ".selector" ).sortable({
    sort: function( event, ui ) {}
});

Bind an event listener to the sort event:

$( ".selector" ).on( "sort", function( event, ui ) {} );

start( event, ui )Type: sortstart

This event is triggered when sorting starts.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the start callback specified:

$( ".selector" ).sortable({
    start: function( event, ui ) {}
});

Bind an event listener to the sortstart event:

$( ".selector" ).on( "sortstart", function( event, ui ) {} );

stop( event, ui )Type: sortstop

This event is triggered when sorting has stopped.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the stop callback specified:

$( ".selector" ).sortable({
    stop: function( event, ui ) {}
});

Bind an event listener to the sortstop event:

$( ".selector" ).on( "sortstop", function( event, ui ) {} );

update( event, ui )Type: sortupdate

This event is triggered when the user stopped sorting and the DOM position has changed.
  • event
    Type: Event
  • ui
    Type: Object
    • helper
      Type: jQuery
      The jQuery object representing the helper being sorted
    • item
      Type: jQuery
      The jQuery object representing the current dragged element
    • offset
      Type: Object
      The current absolute position of the helper represented as { top, left }
    • position
      Type: Object
      The current position of the helper represented as { top, left }
    • originalPosition
      Type: Object
      The original position of the element represented as { top, left }
    • sender
      Type: jQuery
      The sortable that the item comes from if moving from one sortable to another
Code examples:

Initialize the sortable with the update callback specified:

$( ".selector" ).sortable({
    update: function( event, ui ) {}
});

Bind an event listener to the sortupdate event:

$( ".selector" ).on( "sortupdate", function( event, ui ) {} );

Example:

A simple jQuery UI Sortable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>sortable demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<ul id="sortable">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>
 
<script>$("#sortable").sortable();</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/selectable.html0000644000175000017500000013740312107500070022147 0ustar metalmetal jQuery UI selectable documentation

Selectable Widgetversion added: 1.0

Description: Use the mouse to select elements, individually or in a group.

QuickNavExamples

The jQuery UI Selectable plugin allows for elements to be selected by dragging a box (sometimes called a lasso) with the mouse over the elements. Elements can also be selected via click or drag while holding the ctrl/meta key, allowing for multiple (non-contiguous) selections.

Additional Notes:

  • This widget requires some functional CSS, otherwise it won't work. If you build a custom theme, use the widget's specific CSS file as a starting point.

Options

appendToType: Selector

Default: "body"
Which element the selection helper (the lasso) should be appended to.
Code examples:

Initialize the selectable with the appendTo option specified:

$( ".selector" ).selectable({ appendTo: "#someElem" });

Get or set the appendTo option, after initialization:

// getter
var appendTo = $( ".selector" ).selectable( "option", "appendTo" );
 
// setter
$( ".selector" ).selectable( "option", "appendTo", "#someElem" );

autoRefreshType: Boolean

Default: true
This determines whether to refresh (recalculate) the position and size of each selectee at the beginning of each select operation. If you have many items, you may want to set this to false and call the refresh() method manually.
Code examples:

Initialize the selectable with the autoRefresh option specified:

$( ".selector" ).selectable({ autoRefresh: false });

Get or set the autoRefresh option, after initialization:

// getter
var autoRefresh = $( ".selector" ).selectable( "option", "autoRefresh" );
 
// setter
$( ".selector" ).selectable( "option", "autoRefresh", false );

cancelType: Selector

Default: "input,textarea,button,select,option"
Prevents selecting if you start on elements matching the selector.
Code examples:

Initialize the selectable with the cancel option specified:

$( ".selector" ).selectable({ cancel: a,.cancel });

Get or set the cancel option, after initialization:

// getter
var cancel = $( ".selector" ).selectable( "option", "cancel" );
 
// setter
$( ".selector" ).selectable( "option", "cancel", a,.cancel );

delayType: Integer

Default: 0
Time in milliseconds to define when the selecting should start. This helps prevent unwanted selections when clicking on an element.
Code examples:

Initialize the selectable with the delay option specified:

$( ".selector" ).selectable({ delay: 150 });

Get or set the delay option, after initialization:

// getter
var delay = $( ".selector" ).selectable( "option", "delay" );
 
// setter
$( ".selector" ).selectable( "option", "delay", 150 );

disabledType: Boolean

Default: false
Disables the selectable if set to true.
Code examples:

Initialize the selectable with the disabled option specified:

$( ".selector" ).selectable({ disabled: true });

Get or set the disabled option, after initialization:

// getter
var disabled = $( ".selector" ).selectable( "option", "disabled" );
 
// setter
$( ".selector" ).selectable( "option", "disabled", true );

distanceType: Number

Default: 0
Tolerance, in pixels, for when selecting should start. If specified, selecting will not start until the mouse has been dragged beyond the specified distance.
Code examples:

Initialize the selectable with the distance option specified:

$( ".selector" ).selectable({ distance: 30 });

Get or set the distance option, after initialization:

// getter
var distance = $( ".selector" ).selectable( "option", "distance" );
 
// setter
$( ".selector" ).selectable( "option", "distance", 30 );

filterType: Selector

Default: "*"
The matching child elements will be made selectees (able to be selected).
Code examples:

Initialize the selectable with the filter option specified:

$( ".selector" ).selectable({ filter: li });

Get or set the filter option, after initialization:

// getter
var filter = $( ".selector" ).selectable( "option", "filter" );
 
// setter
$( ".selector" ).selectable( "option", "filter", li );

toleranceType: String

Default: "touch"
Specifies which mode to use for testing whether the lasso should select an item. Possible values:
  • "fit": Lasso overlaps the item entirely.
  • "touch": Lasso overlaps the item by any amount.
Code examples:

Initialize the selectable with the tolerance option specified:

$( ".selector" ).selectable({ tolerance: "fit" });

Get or set the tolerance option, after initialization:

// getter
var tolerance = $( ".selector" ).selectable( "option", "tolerance" );
 
// setter
$( ".selector" ).selectable( "option", "tolerance", "fit" );

Methods

destroy()

Removes the selectable functionality completely. This will return the element back to its pre-init state.
  • This method does not accept any arguments.
Code examples:

Invoke the destroy method:

$( ".selector" ).selectable( "destroy" );

disable()

Disables the selectable.
  • This method does not accept any arguments.
Code examples:

Invoke the disable method:

$( ".selector" ).selectable( "disable" );

enable()

Enables the selectable.
  • This method does not accept any arguments.
Code examples:

Invoke the enable method:

$( ".selector" ).selectable( "enable" );

option( optionName )Returns: Object

Gets the value currently associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to get.
Code examples:

Invoke the method:

var isDisabled = $( ".selector" ).selectable( "option", "disabled" );

option()Returns: PlainObject

Gets an object containing key/value pairs representing the current selectable options hash.
  • This method does not accept any arguments.
Code examples:

Invoke the method:

var options = $( ".selector" ).selectable( "option" );

option( optionName, value )

Sets the value of the selectable option associated with the specified optionName.
  • optionName
    Type: String
    The name of the option to set.
  • value
    Type: Object
    A value to set for the option.
Code examples:

Invoke the method:

$( ".selector" ).selectable( "option", "disabled", true );

option( options )

Sets one or more options for the selectable.
  • options
    Type: Object
    A map of option-value pairs to set.
Code examples:

Invoke the method:

$( ".selector" ).selectable( "option", { disabled: true } );

refresh()

Refresh the position and size of each selectee element. This method can be used to manually recalculate the position and size of each selectee when the autoRefresh option is set to false.
  • This method does not accept any arguments.
Code examples:

Invoke the refresh method:

$( ".selector" ).selectable( "refresh" );

widget()Returns: jQuery

Returns a jQuery object containing the selectable element.
  • This method does not accept any arguments.
Code examples:

Invoke the widget method:

var widget = $( ".selector" ).selectable( "widget" );

Events

create( event, ui )Type: selectablecreate

Triggered when the selectable is created.
Code examples:

Initialize the selectable with the create callback specified:

$( ".selector" ).selectable({
    create: function( event, ui ) {}
});

Bind an event listener to the selectablecreate event:

$( ".selector" ).on( "selectablecreate", function( event, ui ) {} );

selected( event, ui )Type: selectableselected

Triggered at the end of the select operation, on each element added to the selection.
  • event
    Type: Event
  • ui
    Type: Object
    • selected
      Type: Element
      The selectable item that has been selected.
Code examples:

Initialize the selectable with the selected callback specified:

$( ".selector" ).selectable({
    selected: function( event, ui ) {}
});

Bind an event listener to the selectableselected event:

$( ".selector" ).on( "selectableselected", function( event, ui ) {} );

selecting( event, ui )Type: selectableselecting

Triggered during the select operation, on each element added to the selection.
  • event
    Type: Event
  • ui
    Type: Object
    • selecting
      Type: Element
      The current selectable item being selected.
Code examples:

Initialize the selectable with the selecting callback specified:

$( ".selector" ).selectable({
    selecting: function( event, ui ) {}
});

Bind an event listener to the selectableselecting event:

$( ".selector" ).on( "selectableselecting", function( event, ui ) {} );

start( event, ui )Type: selectablestart

Triggered at the beginning of the select operation.
Code examples:

Initialize the selectable with the start callback specified:

$( ".selector" ).selectable({
    start: function( event, ui ) {}
});

Bind an event listener to the selectablestart event:

$( ".selector" ).on( "selectablestart", function( event, ui ) {} );

stop( event, ui )Type: selectablestop

Triggered at the end of the select operation.
Code examples:

Initialize the selectable with the stop callback specified:

$( ".selector" ).selectable({
    stop: function( event, ui ) {}
});

Bind an event listener to the selectablestop event:

$( ".selector" ).on( "selectablestop", function( event, ui ) {} );

unselected( event, ui )Type: selectableunselected

Triggered at the end of the select operation, on each element removed from the selection.
  • event
    Type: Event
  • ui
    Type: Object
    • unselected
      Type: Element
      The selectable item that has been unselected.
Code examples:

Initialize the selectable with the unselected callback specified:

$( ".selector" ).selectable({
    unselected: function( event, ui ) {}
});

Bind an event listener to the selectableunselected event:

$( ".selector" ).on( "selectableunselected", function( event, ui ) {} );

unselecting( event, ui )Type: selectableunselecting

Triggered during the select operation, on each element removed from the selection.
  • event
    Type: Event
  • ui
    Type: Object
    • unselecting
      Type: Element
      The current selectable item being unselected.
Code examples:

Initialize the selectable with the unselecting callback specified:

$( ".selector" ).selectable({
    unselecting: function( event, ui ) {}
});

Bind an event listener to the selectableunselecting event:

$( ".selector" ).on( "selectableunselecting", function( event, ui ) {} );

Example:

A simple jQuery UI Selectable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>selectable demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    #selectable .ui-selecting {
        background: #ccc;
    }
    #selectable .ui-selected {
        background: #999;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<ul id="selectable">
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
</ul>
 
<script>
$( "#selectable" ).selectable();
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/docs/position.html0000644000175000017500000004657012107500070021714 0ustar metalmetal jQuery UI position documentation

.position( options )Returns: jQueryversion added: 1.8

Description: Position an element relative to another.

  • .position( options )

    • options
      Type: Object
      • my (default: "center")
        Type: String
        Defines which position on the element being positioned to align with the target element: "horizontal vertical" alignment. A single value such as "right" will be normalized to "right center", "top" will be normalized to "center top" (following CSS convention). Acceptable horizontal values: "left", "center", "right". Acceptable vertical values: "top", "center", "bottom". Example: "left top" or "center center". Each dimension can also contain offsets, in pixels or percent, e.g., "right+10 top-25%". Percentage offsets are relative to the element being positioned.
      • at (default: "center")
        Type: String
        Defines which position on the target element to align the positioned element against: "horizontal vertical" alignment. See the my option for full details on possible values. Perecentage offsets are relative to the target element.
      • of (default: null)
        Type: Selector or Element or jQuery or Event
        Which element to position against. If you provide a selector or jQuery object, the first matching element will be used. If you provide an event object, the pageX and pageY properties will be used. Example: "#top-menu"
      • collision (default: "flip")
        Type: String

        When the positioned element overflows the window in some direction, move it to an alternative position. Similar to my and at, this accepts a single value or a pair for horizontal/vertical, e.g., "flip", "fit", "fit flip", "fit none".

        • "flip": Flips the element to the opposite side of the target and the collision detection is run again to see if it will fit. Whichever side allows more of the element to be visible will be used.
        • "fit": Shift the element away from the edge of the window.
        • "flipfit": First applies the flip logic, placing the element on whichever side allows more of the element to be visible. Then the fit logic is applied to ensure as much of the element is visible as possible.
        • "none": Does not apply any collision detection.
      • using (default: null)
        Type: Function()
        When specified, the actual property setting is delegated to this callback. Receives two parameters: The first is a hash of top and left values for the position that should be set and can be forwarded to .css() or .animate().

        The second provides feedback about the position and dimensions of both elements, as well as calculations to their relative position. Both target and element have these properties: element, left, top, width, height. In addition, there's horizontal, vertical and important, giving you twelve potential directions like { horizontal: "center", vertical: "left", important: "horizontal" }.

      • within (default: window)
        Type: Selector or Element or jQuery
        Element to position within, affecting collision detection. If you provide a selector or jQuery object, the first matching element will be used.

The jQuery UI .position() method allows you to position an element relative to the window, document, another element, or the cursor/mouse, without worrying about offset parents.

Note: jQuery UI does not support positioning hidden elements.

This is a standalone jQuery plugin and has no dependencies on other jQuery UI components.

This plugin extends jQuery's built-in .position() method. If jQuery UI is not loaded, calling the .position() method may not fail directly, as the method still exists. However, the expected behavior will not occur.

Example:

A simple jQuery UI Position example.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>position demo</title>
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
    <style>
    .positionDiv {
        position: absolute;
        width: 75px;
        height: 75px;
        background: green;
    }
    </style>
    <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
</head>
<body>
 
<div id="targetElement">
    <div class="positionDiv" id="position1"></div>
    <div class="positionDiv" id="position2"></div>
    <div class="positionDiv" id="position3"></div>
    <div class="positionDiv" id="position4"></div>
</div>
 
<script>
$( "#position1" ).position({
    my: "center",
    at: "center",
    of: "#targetElement"
});
 
$( "#position2" ).position({
    my: "left top",
    at: "left top",
    of: "#targetElement"
});
 
$( "#position3" ).position({
    my: "right center",
    at: "right bottom",
    of: "#targetElement"
});
 
$( document ).mousemove(function( event ) {
    $( "#position4" ).position({
        my: "left+3 bottom-3",
        of: event,
        collision: "fit"
    });
});
</script>
 
</body>
</html>

Demo:

jqueryui-1.10.1/development-bundle/ui.selectable.jquery.json0000644000175000017500000000275612107500066023165 0ustar metalmetal{ "name": "ui.selectable", "title": "jQuery UI Selectable", "description": "Allows groups of elements to be selected with the mouse.", "keywords": [ "ui", "selectable", "selection" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/selectable/", "demo": "http://jqueryui.com/selectable/", "docs": "http://api.jqueryui.com/selectable/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.mouse": "1.10.1" }, "category": "interaction" } jqueryui-1.10.1/development-bundle/ui.effect-fold.jquery.json0000644000175000017500000000271212107500066023230 0ustar metalmetal{ "name": "ui.effect-fold", "title": "jQuery UI Fold Effect", "description": "Folds an element first horizontally and then vertically.", "keywords": [ "ui", "fold", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/fold-effect/", "demo": "http://jqueryui.com/fold-effect/", "docs": "http://api.jqueryui.com/fold-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.datepicker.jquery.json0000644000175000017500000000273512107500066023172 0ustar metalmetal{ "name": "ui.datepicker", "title": "jQuery UI Datepicker", "description": "Displays a calendar from an input or inline for selecting dates.", "keywords": [ "ui", "datepicker", "form", "calendar", "date", "i18n" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/datepicker/", "demo": "http://jqueryui.com/datepicker/", "docs": "http://api.jqueryui.com/datepicker/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.accordion.jquery.json0000644000175000017500000000302512107500066023011 0ustar metalmetal{ "name": "ui.accordion", "title": "jQuery UI Accordion", "description": "Displays collapsible content panels for presenting information in a limited amount of space.", "keywords": [ "ui", "accordion", "navigation", "panel", "collapse", "expand" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/accordion/", "demo": "http://jqueryui.com/accordion/", "docs": "http://api.jqueryui.com/accordion/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui/0000755000175000017500000000000012111026004016626 5ustar metalmetaljqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-fold.js0000644000175000017500000000324212107500066023307 0ustar metalmetal/*! * jQuery UI Effects Fold 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/fold-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.fold = function( o, done ) { // Create element var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", hide = mode === "hide", size = o.size || 15, percent = /([0-9]+)%/.exec( size ), horizFirst = !!o.horizFirst, widthFirst = show !== horizFirst, ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], duration = o.duration / 2, wrapper, distance, animation1 = {}, animation2 = {}; $.effects.save( el, props ); el.show(); // Create Wrapper wrapper = $.effects.createWrapper( el ).css({ overflow: "hidden" }); distance = widthFirst ? [ wrapper.width(), wrapper.height() ] : [ wrapper.height(), wrapper.width() ]; if ( percent ) { size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; } if ( show ) { wrapper.css( horizFirst ? { height: 0, width: size } : { height: size, width: 0 }); } // Animation animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; // Animate wrapper .animate( animation1, duration, o.easing ) .animate( animation2, duration, o.easing, function() { if ( hide ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); }); }; })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-bounce.js0000644000175000017500000000534512107500066023644 0ustar metalmetal/*! * jQuery UI Effects Bounce 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/bounce-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.bounce = function( o, done ) { var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], // defaults: mode = $.effects.setMode( el, o.mode || "effect" ), hide = mode === "hide", show = mode === "show", direction = o.direction || "up", distance = o.distance, times = o.times || 5, // number of internal animations anims = times * 2 + ( show || hide ? 1 : 0 ), speed = o.duration / anims, easing = o.easing, // utility: ref = ( direction === "up" || direction === "down" ) ? "top" : "left", motion = ( direction === "up" || direction === "left" ), i, upAnim, downAnim, // we will need to re-assemble the queue to stack our animations in place queue = el.queue(), queuelen = queue.length; // Avoid touching opacity to prevent clearType and PNG issues in IE if ( show || hide ) { props.push( "opacity" ); } $.effects.save( el, props ); el.show(); $.effects.createWrapper( el ); // Create Wrapper // default distance for the BIGGEST bounce is the outer Distance / 3 if ( !distance ) { distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; } if ( show ) { downAnim = { opacity: 1 }; downAnim[ ref ] = 0; // if we are showing, force opacity 0 and set the initial position // then do the "first" animation el.css( "opacity", 0 ) .css( ref, motion ? -distance * 2 : distance * 2 ) .animate( downAnim, speed, easing ); } // start at the smallest distance if we are hiding if ( hide ) { distance = distance / Math.pow( 2, times - 1 ); } downAnim = {}; downAnim[ ref ] = 0; // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here for ( i = 0; i < times; i++ ) { upAnim = {}; upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; el.animate( upAnim, speed, easing ) .animate( downAnim, speed, easing ); distance = hide ? distance * 2 : distance / 2; } // Last Bounce when Hiding if ( hide ) { upAnim = { opacity: 0 }; upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; el.animate( upAnim, speed, easing ); } el.queue(function() { if ( hide ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); }); // inject all the animations we just queued to be first in line (after "inprogress") if ( queuelen > 1) { queue.splice.apply( queue, [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); } el.dequeue(); }; })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.mouse.js0000644000175000017500000001072112107500066022261 0ustar metalmetal/*! * jQuery UI Mouse 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/mouse/ * * Depends: * jquery.ui.widget.js */ (function( $, undefined ) { var mouseHandled = false; $( document ).mouseup( function() { mouseHandled = false; }); $.widget("ui.mouse", { version: "1.10.1", options: { cancel: "input,textarea,button,select,option", distance: 1, delay: 0 }, _mouseInit: function() { var that = this; this.element .bind("mousedown."+this.widgetName, function(event) { return that._mouseDown(event); }) .bind("click."+this.widgetName, function(event) { if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) { $.removeData(event.target, that.widgetName + ".preventClickEvent"); event.stopImmediatePropagation(); return false; } }); this.started = false; }, // TODO: make sure destroying one instance of mouse doesn't mess with // other instances of mouse _mouseDestroy: function() { this.element.unbind("."+this.widgetName); if ( this._mouseMoveDelegate ) { $(document) .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate) .unbind("mouseup."+this.widgetName, this._mouseUpDelegate); } }, _mouseDown: function(event) { // don't let more than one widget handle mouseStart if( mouseHandled ) { return; } // we may have missed mouseup (out of window) (this._mouseStarted && this._mouseUp(event)); this._mouseDownEvent = event; var that = this, btnIsLeft = (event.which === 1), // event.target.nodeName works around a bug in IE 8 with // disabled inputs (#7620) elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { return true; } this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) { this._mouseDelayTimer = setTimeout(function() { that.mouseDelayMet = true; }, this.options.delay); } if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { this._mouseStarted = (this._mouseStart(event) !== false); if (!this._mouseStarted) { event.preventDefault(); return true; } } // Click event may never have fired (Gecko & Opera) if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) { $.removeData(event.target, this.widgetName + ".preventClickEvent"); } // these delegates are required to keep context this._mouseMoveDelegate = function(event) { return that._mouseMove(event); }; this._mouseUpDelegate = function(event) { return that._mouseUp(event); }; $(document) .bind("mousemove."+this.widgetName, this._mouseMoveDelegate) .bind("mouseup."+this.widgetName, this._mouseUpDelegate); event.preventDefault(); mouseHandled = true; return true; }, _mouseMove: function(event) { // IE mouseup check - mouseup happened when mouse was out of window if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { return this._mouseUp(event); } if (this._mouseStarted) { this._mouseDrag(event); return event.preventDefault(); } if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { this._mouseStarted = (this._mouseStart(this._mouseDownEvent, event) !== false); (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); } return !this._mouseStarted; }, _mouseUp: function(event) { $(document) .unbind("mousemove."+this.widgetName, this._mouseMoveDelegate) .unbind("mouseup."+this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; if (event.target === this._mouseDownEvent.target) { $.data(event.target, this.widgetName + ".preventClickEvent", true); } this._mouseStop(event); } return false; }, _mouseDistanceMet: function(event) { return (Math.max( Math.abs(this._mouseDownEvent.pageX - event.pageX), Math.abs(this._mouseDownEvent.pageY - event.pageY) ) >= this.options.distance ); }, _mouseDelayMet: function(/* event */) { return this.mouseDelayMet; }, // These are placeholder methods, to be overriden by extending plugin _mouseStart: function(/* event */) {}, _mouseDrag: function(/* event */) {}, _mouseStop: function(/* event */) {}, _mouseCapture: function(/* event */) { return true; } }); })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.core.js0000644000175000017500000002007312107500066022062 0ustar metalmetal/*! * jQuery UI Core 1.10.1 * http://jqueryui.com * * Copyright 2013 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.10.1", 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 //
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().addBack().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: jQuery <1.8 if ( !$( "" ).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.8 if ( !$.fn.addBack ) { $.fn.addBack = function( selector ) { return this.add( selector == null ? this.prevObject : this.prevObject.filter( selector ) ); }; } // support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) if ( $( "" ).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 $.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); $.support.selectstart = "onselectstart" in document.createElement( "div" ); $.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 ); } } } }, // 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; } }); })( jQuery ); jqueryui-1.10.1/development-bundle/ui/jquery.ui.button.js0000644000175000017500000002705512107500066022454 0ustar metalmetal/*! * jQuery UI Button 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/button/ * * Depends: * jquery.ui.core.js * jquery.ui.widget.js */ (function( $, undefined ) { var lastActive, startXPos, startYPos, clickDragged, baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", stateClasses = "ui-state-hover ui-state-active ", typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", formResetHandler = function() { var buttons = $( this ).find( ":ui-button" ); setTimeout(function() { buttons.button( "refresh" ); }, 1 ); }, radioGroup = function( radio ) { var name = radio.name, form = radio.form, radios = $( [] ); if ( name ) { name = name.replace( /'/g, "\\'" ); if ( form ) { radios = $( form ).find( "[name='" + name + "']" ); } else { radios = $( "[name='" + name + "']", radio.ownerDocument ) .filter(function() { return !this.form; }); } } return radios; }; $.widget( "ui.button", { version: "1.10.1", defaultElement: "").addClass(this._triggerClass). html(!buttonImage ? buttonText : $("").attr( { src:buttonImage, alt:buttonText, title:buttonText }))); input[isRTL ? "before" : "after"](inst.trigger); inst.trigger.click(function() { if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) { $.datepicker._hideDatepicker(); } else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) { $.datepicker._hideDatepicker(); $.datepicker._showDatepicker(input[0]); } else { $.datepicker._showDatepicker(input[0]); } return false; }); } }, /* Apply the maximum length for the date format. */ _autoSize: function(inst) { if (this._get(inst, "autoSize") && !inst.inline) { var findMax, max, maxI, i, date = new Date(2009, 12 - 1, 20), // Ensure double digits dateFormat = this._get(inst, "dateFormat"); if (dateFormat.match(/[DM]/)) { findMax = function(names) { max = 0; maxI = 0; for (i = 0; i < names.length; i++) { if (names[i].length > max) { max = names[i].length; maxI = i; } } return maxI; }; date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? "monthNames" : "monthNamesShort")))); date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? "dayNames" : "dayNamesShort"))) + 20 - date.getDay()); } inst.input.attr("size", this._formatDate(inst, date).length); } }, /* Attach an inline date picker to a div. */ _inlineDatepicker: function(target, inst) { var divSpan = $(target); if (divSpan.hasClass(this.markerClassName)) { return; } divSpan.addClass(this.markerClassName).append(inst.dpDiv); $.data(target, PROP_NAME, inst); this._setDate(inst, this._getDefaultDate(inst), true); this._updateDatepicker(inst); this._updateAlternate(inst); //If disabled option is true, disable the datepicker before showing it (see ticket #5665) if( inst.settings.disabled ) { this._disableDatepicker( target ); } // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height inst.dpDiv.css( "display", "block" ); }, /* Pop-up the date picker in a "dialog" box. * @param input element - ignored * @param date string or Date - the initial date to display * @param onSelect function - the function to call when a date is selected * @param settings object - update the dialog date picker instance's settings (anonymous object) * @param pos int[2] - coordinates for the dialog's position within the screen or * event - with x/y coordinates or * leave empty for default (screen centre) * @return the manager object */ _dialogDatepicker: function(input, date, onSelect, settings, pos) { var id, browserWidth, browserHeight, scrollX, scrollY, inst = this._dialogInst; // internal instance if (!inst) { this.uuid += 1; id = "dp" + this.uuid; this._dialogInput = $(""); this._dialogInput.keydown(this._doKeyDown); $("body").append(this._dialogInput); inst = this._dialogInst = this._newInst(this._dialogInput, false); inst.settings = {}; $.data(this._dialogInput[0], PROP_NAME, inst); } extendRemove(inst.settings, settings || {}); date = (date && date.constructor === Date ? this._formatDate(inst, date) : date); this._dialogInput.val(date); this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); if (!this._pos) { browserWidth = document.documentElement.clientWidth; browserHeight = document.documentElement.clientHeight; scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; scrollY = document.documentElement.scrollTop || document.body.scrollTop; this._pos = // should use actual width/height below [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; } // move input on screen for focus, but hidden behind dialog this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px"); inst.settings.onSelect = onSelect; this._inDialog = true; this.dpDiv.addClass(this._dialogClass); this._showDatepicker(this._dialogInput[0]); if ($.blockUI) { $.blockUI(this.dpDiv); } $.data(this._dialogInput[0], PROP_NAME, inst); return this; }, /* Detach a datepicker from its control. * @param target element - the target input field or division or span */ _destroyDatepicker: function(target) { var nodeName, $target = $(target), inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } nodeName = target.nodeName.toLowerCase(); $.removeData(target, PROP_NAME); if (nodeName === "input") { inst.append.remove(); inst.trigger.remove(); $target.removeClass(this.markerClassName). unbind("focus", this._showDatepicker). unbind("keydown", this._doKeyDown). unbind("keypress", this._doKeyPress). unbind("keyup", this._doKeyUp); } else if (nodeName === "div" || nodeName === "span") { $target.removeClass(this.markerClassName).empty(); } }, /* Enable the date picker to a jQuery selection. * @param target element - the target input field or division or span */ _enableDatepicker: function(target) { var nodeName, inline, $target = $(target), inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } nodeName = target.nodeName.toLowerCase(); if (nodeName === "input") { target.disabled = false; inst.trigger.filter("button"). each(function() { this.disabled = false; }).end(). filter("img").css({opacity: "1.0", cursor: ""}); } else if (nodeName === "div" || nodeName === "span") { inline = $target.children("." + this._inlineClass); inline.children().removeClass("ui-state-disabled"); inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). prop("disabled", false); } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value === target ? null : value); }); // delete entry }, /* Disable the date picker to a jQuery selection. * @param target element - the target input field or division or span */ _disableDatepicker: function(target) { var nodeName, inline, $target = $(target), inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } nodeName = target.nodeName.toLowerCase(); if (nodeName === "input") { target.disabled = true; inst.trigger.filter("button"). each(function() { this.disabled = true; }).end(). filter("img").css({opacity: "0.5", cursor: "default"}); } else if (nodeName === "div" || nodeName === "span") { inline = $target.children("." + this._inlineClass); inline.children().addClass("ui-state-disabled"); inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). prop("disabled", true); } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value === target ? null : value); }); // delete entry this._disabledInputs[this._disabledInputs.length] = target; }, /* Is the first field in a jQuery collection disabled as a datepicker? * @param target element - the target input field or division or span * @return boolean - true if disabled, false if enabled */ _isDisabledDatepicker: function(target) { if (!target) { return false; } for (var i = 0; i < this._disabledInputs.length; i++) { if (this._disabledInputs[i] === target) { return true; } } return false; }, /* Retrieve the instance data for the target control. * @param target element - the target input field or division or span * @return object - the associated instance data * @throws error if a jQuery problem getting data */ _getInst: function(target) { try { return $.data(target, PROP_NAME); } catch (err) { throw "Missing instance data for this datepicker"; } }, /* Update or retrieve the settings for a date picker attached to an input field or division. * @param target element - the target input field or division or span * @param name object - the new settings to update or * string - the name of the setting to change or retrieve, * when retrieving also "all" for all instance settings or * "defaults" for all global defaults * @param value any - the new value for the setting * (omit if above is an object or to retrieve a value) */ _optionDatepicker: function(target, name, value) { var settings, date, minDate, maxDate, inst = this._getInst(target); if (arguments.length === 2 && typeof name === "string") { return (name === "defaults" ? $.extend({}, $.datepicker._defaults) : (inst ? (name === "all" ? $.extend({}, inst.settings) : this._get(inst, name)) : null)); } settings = name || {}; if (typeof name === "string") { settings = {}; settings[name] = value; } if (inst) { if (this._curInst === inst) { this._hideDatepicker(); } date = this._getDateDatepicker(target, true); minDate = this._getMinMaxDate(inst, "min"); maxDate = this._getMinMaxDate(inst, "max"); extendRemove(inst.settings, settings); // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) { inst.settings.minDate = this._formatDate(inst, minDate); } if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) { inst.settings.maxDate = this._formatDate(inst, maxDate); } if ( "disabled" in settings ) { if ( settings.disabled ) { this._disableDatepicker(target); } else { this._enableDatepicker(target); } } this._attachments($(target), inst); this._autoSize(inst); this._setDate(inst, date); this._updateAlternate(inst); this._updateDatepicker(inst); } }, // change method deprecated _changeDatepicker: function(target, name, value) { this._optionDatepicker(target, name, value); }, /* Redraw the date picker attached to an input field or division. * @param target element - the target input field or division or span */ _refreshDatepicker: function(target) { var inst = this._getInst(target); if (inst) { this._updateDatepicker(inst); } }, /* Set the dates for a jQuery selection. * @param target element - the target input field or division or span * @param date Date - the new date */ _setDateDatepicker: function(target, date) { var inst = this._getInst(target); if (inst) { this._setDate(inst, date); this._updateDatepicker(inst); this._updateAlternate(inst); } }, /* Get the date(s) for the first entry in a jQuery selection. * @param target element - the target input field or division or span * @param noDefault boolean - true if no default date is to be used * @return Date - the current date */ _getDateDatepicker: function(target, noDefault) { var inst = this._getInst(target); if (inst && !inst.inline) { this._setDateFromField(inst, noDefault); } return (inst ? this._getDate(inst) : null); }, /* Handle keystrokes. */ _doKeyDown: function(event) { var onSelect, dateStr, sel, inst = $.datepicker._getInst(event.target), handled = true, isRTL = inst.dpDiv.is(".ui-datepicker-rtl"); inst._keyEvent = true; if ($.datepicker._datepickerShowing) { switch (event.keyCode) { case 9: $.datepicker._hideDatepicker(); handled = false; break; // hide on tab out case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." + $.datepicker._currentClass + ")", inst.dpDiv); if (sel[0]) { $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); } onSelect = $.datepicker._get(inst, "onSelect"); if (onSelect) { dateStr = $.datepicker._formatDate(inst); // trigger custom callback onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); } else { $.datepicker._hideDatepicker(); } return false; // don't submit the form case 27: $.datepicker._hideDatepicker(); break; // hide on escape case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, "stepBigMonths") : -$.datepicker._get(inst, "stepMonths")), "M"); break; // previous month/year on page up/+ ctrl case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, "stepBigMonths") : +$.datepicker._get(inst, "stepMonths")), "M"); break; // next month/year on page down/+ ctrl case 35: if (event.ctrlKey || event.metaKey) { $.datepicker._clearDate(event.target); } handled = event.ctrlKey || event.metaKey; break; // clear on ctrl or command +end case 36: if (event.ctrlKey || event.metaKey) { $.datepicker._gotoToday(event.target); } handled = event.ctrlKey || event.metaKey; break; // current on ctrl or command +home case 37: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D"); } handled = event.ctrlKey || event.metaKey; // -1 day on ctrl or command +left if (event.originalEvent.altKey) { $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, "stepBigMonths") : -$.datepicker._get(inst, "stepMonths")), "M"); } // next month/year on alt +left on Mac break; case 38: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, -7, "D"); } handled = event.ctrlKey || event.metaKey; break; // -1 week on ctrl or command +up case 39: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D"); } handled = event.ctrlKey || event.metaKey; // +1 day on ctrl or command +right if (event.originalEvent.altKey) { $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, "stepBigMonths") : +$.datepicker._get(inst, "stepMonths")), "M"); } // next month/year on alt +right break; case 40: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, +7, "D"); } handled = event.ctrlKey || event.metaKey; break; // +1 week on ctrl or command +down default: handled = false; } } else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home $.datepicker._showDatepicker(this); } else { handled = false; } if (handled) { event.preventDefault(); event.stopPropagation(); } }, /* Filter entered characters - based on date format. */ _doKeyPress: function(event) { var chars, chr, inst = $.datepicker._getInst(event.target); if ($.datepicker._get(inst, "constrainInput")) { chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat")); chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode); return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1); } }, /* Synchronise manual entry and field/alternate field. */ _doKeyUp: function(event) { var date, inst = $.datepicker._getInst(event.target); if (inst.input.val() !== inst.lastVal) { try { date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), (inst.input ? inst.input.val() : null), $.datepicker._getFormatConfig(inst)); if (date) { // only if valid $.datepicker._setDateFromField(inst); $.datepicker._updateAlternate(inst); $.datepicker._updateDatepicker(inst); } } catch (err) { } } return true; }, /* Pop-up the date picker for a given input field. * If false returned from beforeShow event handler do not show. * @param input element - the input field attached to the date picker or * event - if triggered by focus */ _showDatepicker: function(input) { input = input.target || input; if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger input = $("input", input.parentNode)[0]; } if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here return; } var inst, beforeShow, beforeShowSettings, isFixed, offset, showAnim, duration; inst = $.datepicker._getInst(input); if ($.datepicker._curInst && $.datepicker._curInst !== inst) { $.datepicker._curInst.dpDiv.stop(true, true); if ( inst && $.datepicker._datepickerShowing ) { $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] ); } } beforeShow = $.datepicker._get(inst, "beforeShow"); beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; if(beforeShowSettings === false){ return; } extendRemove(inst.settings, beforeShowSettings); inst.lastVal = null; $.datepicker._lastInput = input; $.datepicker._setDateFromField(inst); if ($.datepicker._inDialog) { // hide cursor input.value = ""; } if (!$.datepicker._pos) { // position below input $.datepicker._pos = $.datepicker._findPos(input); $.datepicker._pos[1] += input.offsetHeight; // add the height } isFixed = false; $(input).parents().each(function() { isFixed |= $(this).css("position") === "fixed"; return !isFixed; }); offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; $.datepicker._pos = null; //to avoid flashes on Firefox inst.dpDiv.empty(); // determine sizing offscreen inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"}); $.datepicker._updateDatepicker(inst); // fix width for dynamic number of date pickers // and adjust position before showing offset = $.datepicker._checkOffset(inst, offset, isFixed); inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? "static" : (isFixed ? "fixed" : "absolute")), display: "none", left: offset.left + "px", top: offset.top + "px"}); if (!inst.inline) { showAnim = $.datepicker._get(inst, "showAnim"); duration = $.datepicker._get(inst, "duration"); inst.dpDiv.zIndex($(input).zIndex()+1); $.datepicker._datepickerShowing = true; if ( $.effects && $.effects.effect[ showAnim ] ) { inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration); } else { inst.dpDiv[showAnim || "show"](showAnim ? duration : null); } if (inst.input.is(":visible") && !inst.input.is(":disabled")) { inst.input.focus(); } $.datepicker._curInst = inst; } }, /* Generate the date picker content. */ _updateDatepicker: function(inst) { this.maxRows = 4; //Reset the max number of rows being displayed (see #7043) instActive = inst; // for delegate hover events inst.dpDiv.empty().append(this._generateHTML(inst)); this._attachHandlers(inst); inst.dpDiv.find("." + this._dayOverClass + " a").mouseover(); var origyearshtml, numMonths = this._getNumberOfMonths(inst), cols = numMonths[1], width = 17; inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); if (cols > 1) { inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em"); } inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); // #6694 - don't focus the input if it's already focused // this breaks the change event in IE if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input && inst.input.is(":visible") && !inst.input.is(":disabled") && inst.input[0] !== document.activeElement) { inst.input.focus(); } // deffered render of the years select (to avoid flashes on Firefox) if( inst.yearshtml ){ origyearshtml = inst.yearshtml; setTimeout(function(){ //assure that inst.yearshtml didn't change. if( origyearshtml === inst.yearshtml && inst.yearshtml ){ inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml); } origyearshtml = inst.yearshtml = null; }, 0); } }, /* Retrieve the size of left and top borders for an element. * @param elem (jQuery object) the element of interest * @return (number[2]) the left and top borders */ _getBorders: function(elem) { var convert = function(value) { return {thin: 1, medium: 2, thick: 3}[value] || value; }; return [parseFloat(convert(elem.css("border-left-width"))), parseFloat(convert(elem.css("border-top-width")))]; }, /* Check positioning to remain on screen. */ _checkOffset: function(inst, offset, isFixed) { var dpWidth = inst.dpDiv.outerWidth(), dpHeight = inst.dpDiv.outerHeight(), inputWidth = inst.input ? inst.input.outerWidth() : 0, inputHeight = inst.input ? inst.input.outerHeight() : 0, viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()), viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop()); offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0); offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0; offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; // now check if datepicker is showing outside window viewport - move to a better place if so. offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? Math.abs(offset.left + dpWidth - viewWidth) : 0); offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? Math.abs(dpHeight + inputHeight) : 0); return offset; }, /* Find an object's position on the screen. */ _findPos: function(obj) { var position, inst = this._getInst(obj), isRTL = this._get(inst, "isRTL"); while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) { obj = obj[isRTL ? "previousSibling" : "nextSibling"]; } position = $(obj).offset(); return [position.left, position.top]; }, /* Hide the date picker from view. * @param input element - the input field attached to the date picker */ _hideDatepicker: function(input) { var showAnim, duration, postProcess, onClose, inst = this._curInst; if (!inst || (input && inst !== $.data(input, PROP_NAME))) { return; } if (this._datepickerShowing) { showAnim = this._get(inst, "showAnim"); duration = this._get(inst, "duration"); postProcess = function() { $.datepicker._tidyDialog(inst); }; // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) { inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess); } else { inst.dpDiv[(showAnim === "slideDown" ? "slideUp" : (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess); } if (!showAnim) { postProcess(); } this._datepickerShowing = false; onClose = this._get(inst, "onClose"); if (onClose) { onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]); } this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if ($.blockUI) { $.unblockUI(); $("body").append(this.dpDiv); } } this._inDialog = false; } }, /* Tidy up after a dialog display. */ _tidyDialog: function(inst) { inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); }, /* Close date picker if clicked elsewhere. */ _checkExternalClick: function(event) { if (!$.datepicker._curInst) { return; } var $target = $(event.target), inst = $.datepicker._getInst($target[0]); if ( ( ( $target[0].id !== $.datepicker._mainDivId && $target.parents("#" + $.datepicker._mainDivId).length === 0 && !$target.hasClass($.datepicker.markerClassName) && !$target.closest("." + $.datepicker._triggerClass).length && $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) || ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) { $.datepicker._hideDatepicker(); } }, /* Adjust one of the date sub-fields. */ _adjustDate: function(id, offset, period) { var target = $(id), inst = this._getInst(target[0]); if (this._isDisabledDatepicker(target[0])) { return; } this._adjustInstDate(inst, offset + (period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning period); this._updateDatepicker(inst); }, /* Action for current link. */ _gotoToday: function(id) { var date, target = $(id), inst = this._getInst(target[0]); if (this._get(inst, "gotoCurrent") && inst.currentDay) { inst.selectedDay = inst.currentDay; inst.drawMonth = inst.selectedMonth = inst.currentMonth; inst.drawYear = inst.selectedYear = inst.currentYear; } else { date = new Date(); inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); } this._notifyChange(inst); this._adjustDate(target); }, /* Action for selecting a new month/year. */ _selectMonthYear: function(id, select, period) { var target = $(id), inst = this._getInst(target[0]); inst["selected" + (period === "M" ? "Month" : "Year")] = inst["draw" + (period === "M" ? "Month" : "Year")] = parseInt(select.options[select.selectedIndex].value,10); this._notifyChange(inst); this._adjustDate(target); }, /* Action for selecting a day. */ _selectDay: function(id, month, year, td) { var inst, target = $(id); if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { return; } inst = this._getInst(target[0]); inst.selectedDay = inst.currentDay = $("a", td).html(); inst.selectedMonth = inst.currentMonth = month; inst.selectedYear = inst.currentYear = year; this._selectDate(id, this._formatDate(inst, inst.currentDay, inst.currentMonth, inst.currentYear)); }, /* Erase the input field and hide the date picker. */ _clearDate: function(id) { var target = $(id); this._selectDate(target, ""); }, /* Update the input field with the selected date. */ _selectDate: function(id, dateStr) { var onSelect, target = $(id), inst = this._getInst(target[0]); dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); if (inst.input) { inst.input.val(dateStr); } this._updateAlternate(inst); onSelect = this._get(inst, "onSelect"); if (onSelect) { onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback } else if (inst.input) { inst.input.trigger("change"); // fire the change event } if (inst.inline){ this._updateDatepicker(inst); } else { this._hideDatepicker(); this._lastInput = inst.input[0]; if (typeof(inst.input[0]) !== "object") { inst.input.focus(); // restore focus } this._lastInput = null; } }, /* Update any alternate field to synchronise with the main field. */ _updateAlternate: function(inst) { var altFormat, date, dateStr, altField = this._get(inst, "altField"); if (altField) { // update alternate field too altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat"); date = this._getDate(inst); dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); $(altField).each(function() { $(this).val(dateStr); }); } }, /* Set as beforeShowDay function to prevent selection of weekends. * @param date Date - the date to customise * @return [boolean, string] - is this date selectable?, what is its CSS class? */ noWeekends: function(date) { var day = date.getDay(); return [(day > 0 && day < 6), ""]; }, /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. * @param date Date - the date to get the week for * @return number - the number of the week within the year that contains this date */ iso8601Week: function(date) { var time, checkDate = new Date(date.getTime()); // Find Thursday of this week starting on Monday checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); time = checkDate.getTime(); checkDate.setMonth(0); // Compare with Jan 1 checkDate.setDate(1); return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; }, /* Parse a string value into a date object. * See formatDate below for the possible formats. * * @param format string - the expected format of the date * @param value string - the date in the above format * @param settings Object - attributes include: * shortYearCutoff number - the cutoff year for determining the century (optional) * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) * dayNames string[7] - names of the days from Sunday (optional) * monthNamesShort string[12] - abbreviated names of the months (optional) * monthNames string[12] - names of the months (optional) * @return Date - the extracted date value or null if value is blank */ parseDate: function (format, value, settings) { if (format == null || value == null) { throw "Invalid arguments"; } value = (typeof value === "object" ? value.toString() : value + ""); if (value === "") { return null; } var iFormat, dim, extra, iValue = 0, shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff, shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp : new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)), dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, year = -1, month = -1, day = -1, doy = -1, literal = false, date, // Check whether a format character is doubled lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); if (matches) { iFormat++; } return matches; }, // Extract a number from the string value getNumber = function(match) { var isDoubled = lookAhead(match), size = (match === "@" ? 14 : (match === "!" ? 20 : (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), digits = new RegExp("^\\d{1," + size + "}"), num = value.substring(iValue).match(digits); if (!num) { throw "Missing number at position " + iValue; } iValue += num[0].length; return parseInt(num[0], 10); }, // Extract a name from the string value and convert to an index getName = function(match, shortNames, longNames) { var index = -1, names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { return [ [k, v] ]; }).sort(function (a, b) { return -(a[1].length - b[1].length); }); $.each(names, function (i, pair) { var name = pair[1]; if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) { index = pair[0]; iValue += name.length; return false; } }); if (index !== -1) { return index + 1; } else { throw "Unknown name at position " + iValue; } }, // Confirm that a literal character matches the string value checkLiteral = function() { if (value.charAt(iValue) !== format.charAt(iFormat)) { throw "Unexpected literal at position " + iValue; } iValue++; }; for (iFormat = 0; iFormat < format.length; iFormat++) { if (literal) { if (format.charAt(iFormat) === "'" && !lookAhead("'")) { literal = false; } else { checkLiteral(); } } else { switch (format.charAt(iFormat)) { case "d": day = getNumber("d"); break; case "D": getName("D", dayNamesShort, dayNames); break; case "o": doy = getNumber("o"); break; case "m": month = getNumber("m"); break; case "M": month = getName("M", monthNamesShort, monthNames); break; case "y": year = getNumber("y"); break; case "@": date = new Date(getNumber("@")); year = date.getFullYear(); month = date.getMonth() + 1; day = date.getDate(); break; case "!": date = new Date((getNumber("!") - this._ticksTo1970) / 10000); year = date.getFullYear(); month = date.getMonth() + 1; day = date.getDate(); break; case "'": if (lookAhead("'")){ checkLiteral(); } else { literal = true; } break; default: checkLiteral(); } } } if (iValue < value.length){ extra = value.substr(iValue); if (!/^\s+/.test(extra)) { throw "Extra/unparsed characters found in date: " + extra; } } if (year === -1) { year = new Date().getFullYear(); } else if (year < 100) { year += new Date().getFullYear() - new Date().getFullYear() % 100 + (year <= shortYearCutoff ? 0 : -100); } if (doy > -1) { month = 1; day = doy; do { dim = this._getDaysInMonth(year, month - 1); if (day <= dim) { break; } month++; day -= dim; } while (true); } date = this._daylightSavingAdjust(new Date(year, month - 1, day)); if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) { throw "Invalid date"; // E.g. 31/02/00 } return date; }, /* Standard date formats. */ ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601) COOKIE: "D, dd M yy", ISO_8601: "yy-mm-dd", RFC_822: "D, d M y", RFC_850: "DD, dd-M-y", RFC_1036: "D, d M y", RFC_1123: "D, d M yy", RFC_2822: "D, d M yy", RSS: "D, d M y", // RFC 822 TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", // ISO 8601 _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), /* Format a date object into a string value. * The format can be combinations of the following: * d - day of month (no leading zero) * dd - day of month (two digit) * o - day of year (no leading zeros) * oo - day of year (three digit) * D - day name short * DD - day name long * m - month of year (no leading zero) * mm - month of year (two digit) * M - month name short * MM - month name long * y - year (two digit) * yy - year (four digit) * @ - Unix timestamp (ms since 01/01/1970) * ! - Windows ticks (100ns since 01/01/0001) * "..." - literal text * '' - single quote * * @param format string - the desired format of the date * @param date Date - the date value to format * @param settings Object - attributes include: * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) * dayNames string[7] - names of the days from Sunday (optional) * monthNamesShort string[12] - abbreviated names of the months (optional) * monthNames string[12] - names of the months (optional) * @return string - the date in the above format */ formatDate: function (format, date, settings) { if (!date) { return ""; } var iFormat, dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, // Check whether a format character is doubled lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); if (matches) { iFormat++; } return matches; }, // Format a number, with leading zero if necessary formatNumber = function(match, value, len) { var num = "" + value; if (lookAhead(match)) { while (num.length < len) { num = "0" + num; } } return num; }, // Format a name, short or long as requested formatName = function(match, value, shortNames, longNames) { return (lookAhead(match) ? longNames[value] : shortNames[value]); }, output = "", literal = false; if (date) { for (iFormat = 0; iFormat < format.length; iFormat++) { if (literal) { if (format.charAt(iFormat) === "'" && !lookAhead("'")) { literal = false; } else { output += format.charAt(iFormat); } } else { switch (format.charAt(iFormat)) { case "d": output += formatNumber("d", date.getDate(), 2); break; case "D": output += formatName("D", date.getDay(), dayNamesShort, dayNames); break; case "o": output += formatNumber("o", Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); break; case "m": output += formatNumber("m", date.getMonth() + 1, 2); break; case "M": output += formatName("M", date.getMonth(), monthNamesShort, monthNames); break; case "y": output += (lookAhead("y") ? date.getFullYear() : (date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100); break; case "@": output += date.getTime(); break; case "!": output += date.getTime() * 10000 + this._ticksTo1970; break; case "'": if (lookAhead("'")) { output += "'"; } else { literal = true; } break; default: output += format.charAt(iFormat); } } } } return output; }, /* Extract all possible characters from the date format. */ _possibleChars: function (format) { var iFormat, chars = "", literal = false, // Check whether a format character is doubled lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); if (matches) { iFormat++; } return matches; }; for (iFormat = 0; iFormat < format.length; iFormat++) { if (literal) { if (format.charAt(iFormat) === "'" && !lookAhead("'")) { literal = false; } else { chars += format.charAt(iFormat); } } else { switch (format.charAt(iFormat)) { case "d": case "m": case "y": case "@": chars += "0123456789"; break; case "D": case "M": return null; // Accept anything case "'": if (lookAhead("'")) { chars += "'"; } else { literal = true; } break; default: chars += format.charAt(iFormat); } } } return chars; }, /* Get a setting value, defaulting if necessary. */ _get: function(inst, name) { return inst.settings[name] !== undefined ? inst.settings[name] : this._defaults[name]; }, /* Parse existing date and initialise date picker. */ _setDateFromField: function(inst, noDefault) { if (inst.input.val() === inst.lastVal) { return; } var dateFormat = this._get(inst, "dateFormat"), dates = inst.lastVal = inst.input ? inst.input.val() : null, defaultDate = this._getDefaultDate(inst), date = defaultDate, settings = this._getFormatConfig(inst); try { date = this.parseDate(dateFormat, dates, settings) || defaultDate; } catch (event) { dates = (noDefault ? "" : dates); } inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); inst.currentDay = (dates ? date.getDate() : 0); inst.currentMonth = (dates ? date.getMonth() : 0); inst.currentYear = (dates ? date.getFullYear() : 0); this._adjustInstDate(inst); }, /* Retrieve the default date shown on opening. */ _getDefaultDate: function(inst) { return this._restrictMinMax(inst, this._determineDate(inst, this._get(inst, "defaultDate"), new Date())); }, /* A date may be specified as an exact value or a relative one. */ _determineDate: function(inst, date, defaultDate) { var offsetNumeric = function(offset) { var date = new Date(); date.setDate(date.getDate() + offset); return date; }, offsetString = function(offset) { try { return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), offset, $.datepicker._getFormatConfig(inst)); } catch (e) { // Ignore } var date = (offset.toLowerCase().match(/^c/) ? $.datepicker._getDate(inst) : null) || new Date(), year = date.getFullYear(), month = date.getMonth(), day = date.getDate(), pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, matches = pattern.exec(offset); while (matches) { switch (matches[2] || "d") { case "d" : case "D" : day += parseInt(matches[1],10); break; case "w" : case "W" : day += parseInt(matches[1],10) * 7; break; case "m" : case "M" : month += parseInt(matches[1],10); day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); break; case "y": case "Y" : year += parseInt(matches[1],10); day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); break; } matches = pattern.exec(offset); } return new Date(year, month, day); }, newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) : (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate); if (newDate) { newDate.setHours(0); newDate.setMinutes(0); newDate.setSeconds(0); newDate.setMilliseconds(0); } return this._daylightSavingAdjust(newDate); }, /* Handle switch to/from daylight saving. * Hours may be non-zero on daylight saving cut-over: * > 12 when midnight changeover, but then cannot generate * midnight datetime, so jump to 1AM, otherwise reset. * @param date (Date) the date to check * @return (Date) the corrected date */ _daylightSavingAdjust: function(date) { if (!date) { return null; } date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); return date; }, /* Set the date(s) directly. */ _setDate: function(inst, date, noChange) { var clear = !date, origMonth = inst.selectedMonth, origYear = inst.selectedYear, newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); inst.selectedDay = inst.currentDay = newDate.getDate(); inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) { this._notifyChange(inst); } this._adjustInstDate(inst); if (inst.input) { inst.input.val(clear ? "" : this._formatDate(inst)); } }, /* Retrieve the date(s) directly. */ _getDate: function(inst) { var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null : this._daylightSavingAdjust(new Date( inst.currentYear, inst.currentMonth, inst.currentDay))); return startDate; }, /* Attach the onxxx handlers. These are declared statically so * they work with static code transformers like Caja. */ _attachHandlers: function(inst) { var stepMonths = this._get(inst, "stepMonths"), id = "#" + inst.id.replace( /\\\\/g, "\\" ); inst.dpDiv.find("[data-handler]").map(function () { var handler = { prev: function () { window["DP_jQuery_" + dpuuid].datepicker._adjustDate(id, -stepMonths, "M"); }, next: function () { window["DP_jQuery_" + dpuuid].datepicker._adjustDate(id, +stepMonths, "M"); }, hide: function () { window["DP_jQuery_" + dpuuid].datepicker._hideDatepicker(); }, today: function () { window["DP_jQuery_" + dpuuid].datepicker._gotoToday(id); }, selectDay: function () { window["DP_jQuery_" + dpuuid].datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this); return false; }, selectMonth: function () { window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(id, this, "M"); return false; }, selectYear: function () { window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(id, this, "Y"); return false; } }; $(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]); }); }, /* Generate the HTML for the current state of the date picker. */ _generateHTML: function(inst) { var maxDraw, prevText, prev, nextText, next, currentText, gotoDate, controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin, monthNames, monthNamesShort, beforeShowDay, showOtherMonths, selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate, cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows, printDate, dRow, tbody, daySettings, otherMonth, unselectable, tempDate = new Date(), today = this._daylightSavingAdjust( new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time isRTL = this._get(inst, "isRTL"), showButtonPanel = this._get(inst, "showButtonPanel"), hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"), navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"), numMonths = this._getNumberOfMonths(inst), showCurrentAtPos = this._get(inst, "showCurrentAtPos"), stepMonths = this._get(inst, "stepMonths"), isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1), currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : new Date(inst.currentYear, inst.currentMonth, inst.currentDay))), minDate = this._getMinMaxDate(inst, "min"), maxDate = this._getMinMaxDate(inst, "max"), drawMonth = inst.drawMonth - showCurrentAtPos, drawYear = inst.drawYear; if (drawMonth < 0) { drawMonth += 12; drawYear--; } if (maxDate) { maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { drawMonth--; if (drawMonth < 0) { drawMonth = 11; drawYear--; } } } inst.drawMonth = drawMonth; inst.drawYear = drawYear; prevText = this._get(inst, "prevText"); prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), this._getFormatConfig(inst))); prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? "" + prevText + "" : (hideIfNoPrevNext ? "" : "" + prevText + "")); nextText = this._get(inst, "nextText"); nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), this._getFormatConfig(inst))); next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? "" + nextText + "" : (hideIfNoPrevNext ? "" : "" + nextText + "")); currentText = this._get(inst, "currentText"); gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today); currentText = (!navigationAsDateFormat ? currentText : this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); controls = (!inst.inline ? "" : ""); buttonPanel = (showButtonPanel) ? "
" + (isRTL ? controls : "") + (this._isInRange(inst, gotoDate) ? "" : "") + (isRTL ? "" : controls) + "
" : ""; firstDay = parseInt(this._get(inst, "firstDay"),10); firstDay = (isNaN(firstDay) ? 0 : firstDay); showWeek = this._get(inst, "showWeek"); dayNames = this._get(inst, "dayNames"); dayNamesMin = this._get(inst, "dayNamesMin"); monthNames = this._get(inst, "monthNames"); monthNamesShort = this._get(inst, "monthNamesShort"); beforeShowDay = this._get(inst, "beforeShowDay"); showOtherMonths = this._get(inst, "showOtherMonths"); selectOtherMonths = this._get(inst, "selectOtherMonths"); defaultDate = this._getDefaultDate(inst); html = ""; dow; for (row = 0; row < numMonths[0]; row++) { group = ""; this.maxRows = 4; for (col = 0; col < numMonths[1]; col++) { selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); cornerClass = " ui-corner-all"; calender = ""; if (isMultiMonth) { calender += "
"; } calender += "
" + (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") + (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers "
" + ""; thead = (showWeek ? "" : ""); for (dow = 0; dow < 7; dow++) { // days of the week day = (dow + firstDay) % 7; thead += "= 5 ? " class='ui-datepicker-week-end'" : "") + ">" + "" + dayNamesMin[day] + ""; } calender += thead + ""; daysInMonth = this._getDaysInMonth(drawYear, drawMonth); if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) { inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); } leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) this.maxRows = numRows; printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows calender += ""; tbody = (!showWeek ? "" : ""); for (dow = 0; dow < 7; dow++) { // create date picker days daySettings = (beforeShowDay ? beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]); otherMonth = (printDate.getMonth() !== drawMonth); unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || (minDate && printDate < minDate) || (maxDate && printDate > maxDate); tbody += ""; // display selectable date printDate.setDate(printDate.getDate() + 1); printDate = this._daylightSavingAdjust(printDate); } calender += tbody + ""; } drawMonth++; if (drawMonth > 11) { drawMonth = 0; drawYear++; } calender += "
" + this._get(inst, "weekHeader") + "
" + this._get(inst, "calculateWeek")(printDate) + "" + // actions (otherMonth && !showOtherMonths ? " " : // display for other months (unselectable ? "" + printDate.getDate() + "" : "" + printDate.getDate() + "")) + "
" + (isMultiMonth ? "
" + ((numMonths[0] > 0 && col === numMonths[1]-1) ? "
" : "") : ""); group += calender; } html += group; } html += buttonPanel; inst._keyEvent = false; return html; }, /* Generate the month and year header. */ _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, secondary, monthNames, monthNamesShort) { var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear, changeMonth = this._get(inst, "changeMonth"), changeYear = this._get(inst, "changeYear"), showMonthAfterYear = this._get(inst, "showMonthAfterYear"), html = "
", monthHtml = ""; // month selection if (secondary || !changeMonth) { monthHtml += "" + monthNames[drawMonth] + ""; } else { inMinYear = (minDate && minDate.getFullYear() === drawYear); inMaxYear = (maxDate && maxDate.getFullYear() === drawYear); monthHtml += ""; } if (!showMonthAfterYear) { html += monthHtml + (secondary || !(changeMonth && changeYear) ? " " : ""); } // year selection if ( !inst.yearshtml ) { inst.yearshtml = ""; if (secondary || !changeYear) { html += "" + drawYear + ""; } else { // determine range of years to display years = this._get(inst, "yearRange").split(":"); thisYear = new Date().getFullYear(); determineYear = function(value) { var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) : (value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) : parseInt(value, 10))); return (isNaN(year) ? thisYear : year); }; year = determineYear(years[0]); endYear = Math.max(year, determineYear(years[1] || "")); year = (minDate ? Math.max(year, minDate.getFullYear()) : year); endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); inst.yearshtml += ""; html += inst.yearshtml; inst.yearshtml = null; } } html += this._get(inst, "yearSuffix"); if (showMonthAfterYear) { html += (secondary || !(changeMonth && changeYear) ? " " : "") + monthHtml; } html += "
"; // Close datepicker_header return html; }, /* Adjust one of the date sub-fields. */ _adjustInstDate: function(inst, offset, period) { var year = inst.drawYear + (period === "Y" ? offset : 0), month = inst.drawMonth + (period === "M" ? offset : 0), day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0), date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day))); inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); if (period === "M" || period === "Y") { this._notifyChange(inst); } }, /* Ensure a date is within any min/max bounds. */ _restrictMinMax: function(inst, date) { var minDate = this._getMinMaxDate(inst, "min"), maxDate = this._getMinMaxDate(inst, "max"), newDate = (minDate && date < minDate ? minDate : date); return (maxDate && newDate > maxDate ? maxDate : newDate); }, /* Notify change of month/year. */ _notifyChange: function(inst) { var onChange = this._get(inst, "onChangeMonthYear"); if (onChange) { onChange.apply((inst.input ? inst.input[0] : null), [inst.selectedYear, inst.selectedMonth + 1, inst]); } }, /* Determine the number of months to show. */ _getNumberOfMonths: function(inst) { var numMonths = this._get(inst, "numberOfMonths"); return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths)); }, /* Determine the current maximum date - ensure no time components are set. */ _getMinMaxDate: function(inst, minMax) { return this._determineDate(inst, this._get(inst, minMax + "Date"), null); }, /* Find the number of days in a given month. */ _getDaysInMonth: function(year, month) { return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); }, /* Find the day of the week of the first of a month. */ _getFirstDayOfMonth: function(year, month) { return new Date(year, month, 1).getDay(); }, /* Determines if we should allow a "next/prev" month display change. */ _canAdjustMonth: function(inst, offset, curYear, curMonth) { var numMonths = this._getNumberOfMonths(inst), date = this._daylightSavingAdjust(new Date(curYear, curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); if (offset < 0) { date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); } return this._isInRange(inst, date); }, /* Is the given date in the accepted range? */ _isInRange: function(inst, date) { var yearSplit, currentYear, minDate = this._getMinMaxDate(inst, "min"), maxDate = this._getMinMaxDate(inst, "max"), minYear = null, maxYear = null, years = this._get(inst, "yearRange"); if (years){ yearSplit = years.split(":"); currentYear = new Date().getFullYear(); minYear = parseInt(yearSplit[0], 10); maxYear = parseInt(yearSplit[1], 10); if ( yearSplit[0].match(/[+\-].*/) ) { minYear += currentYear; } if ( yearSplit[1].match(/[+\-].*/) ) { maxYear += currentYear; } } return ((!minDate || date.getTime() >= minDate.getTime()) && (!maxDate || date.getTime() <= maxDate.getTime()) && (!minYear || date.getFullYear() >= minYear) && (!maxYear || date.getFullYear() <= maxYear)); }, /* Provide the configuration settings for formatting/parsing. */ _getFormatConfig: function(inst) { var shortYearCutoff = this._get(inst, "shortYearCutoff"); shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff : new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); return {shortYearCutoff: shortYearCutoff, dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"), monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")}; }, /* Format the given date for display. */ _formatDate: function(inst, day, month, year) { if (!day) { inst.currentDay = inst.selectedDay; inst.currentMonth = inst.selectedMonth; inst.currentYear = inst.selectedYear; } var date = (day ? (typeof day === "object" ? day : this._daylightSavingAdjust(new Date(year, month, day))) : this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst)); } }); /* * Bind hover events for datepicker elements. * Done via delegate so the binding only occurs once in the lifetime of the parent div. * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. */ function bindHover(dpDiv) { var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; return dpDiv.delegate(selector, "mouseout", function() { $(this).removeClass("ui-state-hover"); if (this.className.indexOf("ui-datepicker-prev") !== -1) { $(this).removeClass("ui-datepicker-prev-hover"); } if (this.className.indexOf("ui-datepicker-next") !== -1) { $(this).removeClass("ui-datepicker-next-hover"); } }) .delegate(selector, "mouseover", function(){ if (!$.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) { $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); $(this).addClass("ui-state-hover"); if (this.className.indexOf("ui-datepicker-prev") !== -1) { $(this).addClass("ui-datepicker-prev-hover"); } if (this.className.indexOf("ui-datepicker-next") !== -1) { $(this).addClass("ui-datepicker-next-hover"); } } }); } /* jQuery extend now ignores nulls! */ function extendRemove(target, props) { $.extend(target, props); for (var name in props) { if (props[name] == null) { target[name] = props[name]; } } return target; } /* Invoke the datepicker functionality. @param options string - a command, optionally followed by additional parameters or Object - settings for attaching new datepicker functionality @return jQuery object */ $.fn.datepicker = function(options){ /* Verify an empty collection wasn't passed - Fixes #6976 */ if ( !this.length ) { return this; } /* Initialise the date picker. */ if (!$.datepicker.initialized) { $(document).mousedown($.datepicker._checkExternalClick); $.datepicker.initialized = true; } /* Append datepicker main container to body if not exist. */ if ($("#"+$.datepicker._mainDivId).length === 0) { $("body").append($.datepicker.dpDiv); } var otherArgs = Array.prototype.slice.call(arguments, 1); if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) { return $.datepicker["_" + options + "Datepicker"]. apply($.datepicker, [this[0]].concat(otherArgs)); } if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") { return $.datepicker["_" + options + "Datepicker"]. apply($.datepicker, [this[0]].concat(otherArgs)); } return this.each(function() { typeof options === "string" ? $.datepicker["_" + options + "Datepicker"]. apply($.datepicker, [this].concat(otherArgs)) : $.datepicker._attachDatepicker(this, options); }); }; $.datepicker = new Datepicker(); // singleton instance $.datepicker.initialized = false; $.datepicker.uuid = new Date().getTime(); $.datepicker.version = "1.10.1"; // Workaround for #4055 // Add another global to avoid noConflict issues with inline event handlers window["DP_jQuery_" + dpuuid] = $; })(jQuery); (function( $, undefined ) { var sizeRelatedOptions = { buttons: true, height: true, maxHeight: true, maxWidth: true, minHeight: true, minWidth: true, width: true }, resizableRelatedOptions = { maxHeight: true, maxWidth: true, minHeight: true, minWidth: true }; $.widget( "ui.dialog", { version: "1.10.1", options: { appendTo: "body", autoOpen: true, buttons: [], closeOnEscape: true, closeText: "close", dialogClass: "", draggable: true, hide: null, height: "auto", maxHeight: null, maxWidth: null, minHeight: 150, minWidth: 150, modal: false, position: { my: "center", at: "center", of: window, collision: "fit", // Ensure the titlebar is always visible using: function( pos ) { var topOffset = $( this ).css( pos ).offset().top; if ( topOffset < 0 ) { $( this ).css( "top", pos.top - topOffset ); } } }, resizable: true, show: null, title: null, width: 300, // callbacks beforeClose: null, close: null, drag: null, dragStart: null, dragStop: null, focus: null, open: null, resize: null, resizeStart: null, resizeStop: null }, _create: function() { this.originalCss = { display: this.element[0].style.display, width: this.element[0].style.width, minHeight: this.element[0].style.minHeight, maxHeight: this.element[0].style.maxHeight, height: this.element[0].style.height }; this.originalPosition = { parent: this.element.parent(), index: this.element.parent().children().index( this.element ) }; this.originalTitle = this.element.attr("title"); this.options.title = this.options.title || this.originalTitle; this._createWrapper(); this.element .show() .removeAttr("title") .addClass("ui-dialog-content ui-widget-content") .appendTo( this.uiDialog ); this._createTitlebar(); this._createButtonPane(); if ( this.options.draggable && $.fn.draggable ) { this._makeDraggable(); } if ( this.options.resizable && $.fn.resizable ) { this._makeResizable(); } this._isOpen = false; }, _init: function() { if ( this.options.autoOpen ) { this.open(); } }, _appendTo: function() { var element = this.options.appendTo; if ( element && (element.jquery || element.nodeType) ) { return $( element ); } return this.document.find( element || "body" ).eq( 0 ); }, _destroy: function() { var next, originalPosition = this.originalPosition; this._destroyOverlay(); this.element .removeUniqueId() .removeClass("ui-dialog-content ui-widget-content") .css( this.originalCss ) // Without detaching first, the following becomes really slow .detach(); this.uiDialog.stop( true, true ).remove(); if ( this.originalTitle ) { this.element.attr( "title", this.originalTitle ); } next = originalPosition.parent.children().eq( originalPosition.index ); // Don't try to place the dialog next to itself (#8613) if ( next.length && next[0] !== this.element[0] ) { next.before( this.element ); } else { originalPosition.parent.append( this.element ); } }, widget: function() { return this.uiDialog; }, disable: $.noop, enable: $.noop, close: function( event ) { var that = this; if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) { return; } this._isOpen = false; this._destroyOverlay(); if ( !this.opener.filter(":focusable").focus().length ) { // Hiding a focused element doesn't trigger blur in WebKit // so in case we have nothing to focus on, explicitly blur the active element // https://bugs.webkit.org/show_bug.cgi?id=47182 $( this.document[0].activeElement ).blur(); } this._hide( this.uiDialog, this.options.hide, function() { that._trigger( "close", event ); }); }, isOpen: function() { return this._isOpen; }, moveToTop: function() { this._moveToTop(); }, _moveToTop: function( event, silent ) { var moved = !!this.uiDialog.nextAll(":visible").insertBefore( this.uiDialog ).length; if ( moved && !silent ) { this._trigger( "focus", event ); } return moved; }, open: function() { var that = this; if ( this._isOpen ) { if ( this._moveToTop() ) { this._focusTabbable(); } return; } this._isOpen = true; this.opener = $( this.document[0].activeElement ); this._size(); this._position(); this._createOverlay(); this._moveToTop( null, true ); this._show( this.uiDialog, this.options.show, function() { that._focusTabbable(); that._trigger("focus"); }); this._trigger("open"); }, _focusTabbable: function() { // Set focus to the first match: // 1. First element inside the dialog matching [autofocus] // 2. Tabbable element inside the content element // 3. Tabbable element inside the buttonpane // 4. The close button // 5. The dialog itself var hasFocus = this.element.find("[autofocus]"); if ( !hasFocus.length ) { hasFocus = this.element.find(":tabbable"); } if ( !hasFocus.length ) { hasFocus = this.uiDialogButtonPane.find(":tabbable"); } if ( !hasFocus.length ) { hasFocus = this.uiDialogTitlebarClose.filter(":tabbable"); } if ( !hasFocus.length ) { hasFocus = this.uiDialog; } hasFocus.eq( 0 ).focus(); }, _keepFocus: function( event ) { function checkFocus() { var activeElement = this.document[0].activeElement, isActive = this.uiDialog[0] === activeElement || $.contains( this.uiDialog[0], activeElement ); if ( !isActive ) { this._focusTabbable(); } } event.preventDefault(); checkFocus.call( this ); // support: IE // IE <= 8 doesn't prevent moving focus even with event.preventDefault() // so we check again later this._delay( checkFocus ); }, _createWrapper: function() { this.uiDialog = $("
") .addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + this.options.dialogClass ) .hide() .attr({ // Setting tabIndex makes the div focusable tabIndex: -1, role: "dialog" }) .appendTo( this._appendTo() ); this._on( this.uiDialog, { keydown: function( event ) { if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && event.keyCode === $.ui.keyCode.ESCAPE ) { event.preventDefault(); this.close( event ); return; } // prevent tabbing out of dialogs if ( event.keyCode !== $.ui.keyCode.TAB ) { return; } var tabbables = this.uiDialog.find(":tabbable"), first = tabbables.filter(":first"), last = tabbables.filter(":last"); if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) { first.focus( 1 ); event.preventDefault(); } else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) { last.focus( 1 ); event.preventDefault(); } }, mousedown: function( event ) { if ( this._moveToTop( event ) ) { this._focusTabbable(); } } }); // We assume that any existing aria-describedby attribute means // that the dialog content is marked up properly // otherwise we brute force the content as the description if ( !this.element.find("[aria-describedby]").length ) { this.uiDialog.attr({ "aria-describedby": this.element.uniqueId().attr("id") }); } }, _createTitlebar: function() { var uiDialogTitle; this.uiDialogTitlebar = $("
") .addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix") .prependTo( this.uiDialog ); this._on( this.uiDialogTitlebar, { mousedown: function( event ) { // Don't prevent click on close button (#8838) // Focusing a dialog that is partially scrolled out of view // causes the browser to scroll it into view, preventing the click event if ( !$( event.target ).closest(".ui-dialog-titlebar-close") ) { // Dialog isn't getting focus when dragging (#8063) this.uiDialog.focus(); } } }); this.uiDialogTitlebarClose = $("") .button({ label: this.options.closeText, icons: { primary: "ui-icon-closethick" }, text: false }) .addClass("ui-dialog-titlebar-close") .appendTo( this.uiDialogTitlebar ); this._on( this.uiDialogTitlebarClose, { click: function( event ) { event.preventDefault(); this.close( event ); } }); uiDialogTitle = $("") .uniqueId() .addClass("ui-dialog-title") .prependTo( this.uiDialogTitlebar ); this._title( uiDialogTitle ); this.uiDialog.attr({ "aria-labelledby": uiDialogTitle.attr("id") }); }, _title: function( title ) { if ( !this.options.title ) { title.html(" "); } title.text( this.options.title ); }, _createButtonPane: function() { this.uiDialogButtonPane = $("
") .addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"); this.uiButtonSet = $("
") .addClass("ui-dialog-buttonset") .appendTo( this.uiDialogButtonPane ); this._createButtons(); }, _createButtons: function() { var that = this, buttons = this.options.buttons; // if we already have a button pane, remove it this.uiDialogButtonPane.remove(); this.uiButtonSet.empty(); if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) { this.uiDialog.removeClass("ui-dialog-buttons"); return; } $.each( buttons, function( name, props ) { var click, buttonOptions; props = $.isFunction( props ) ? { click: props, text: name } : props; // Default to a non-submitting button props = $.extend( { type: "button" }, props ); // Change the context for the click callback to be the main element click = props.click; props.click = function() { click.apply( that.element[0], arguments ); }; buttonOptions = { icons: props.icons, text: props.showText }; delete props.icons; delete props.showText; $( "", props ) .button( buttonOptions ) .appendTo( that.uiButtonSet ); }); this.uiDialog.addClass("ui-dialog-buttons"); this.uiDialogButtonPane.appendTo( this.uiDialog ); }, _makeDraggable: function() { var that = this, options = this.options; function filteredUi( ui ) { return { position: ui.position, offset: ui.offset }; } this.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function( event, ui ) { $( this ).addClass("ui-dialog-dragging"); that._blockFrames(); that._trigger( "dragStart", event, filteredUi( ui ) ); }, drag: function( event, ui ) { that._trigger( "drag", event, filteredUi( ui ) ); }, stop: function( event, ui ) { options.position = [ ui.position.left - that.document.scrollLeft(), ui.position.top - that.document.scrollTop() ]; $( this ).removeClass("ui-dialog-dragging"); that._unblockFrames(); that._trigger( "dragStop", event, filteredUi( ui ) ); } }); }, _makeResizable: function() { var that = this, options = this.options, handles = options.resizable, // .ui-resizable has position: relative defined in the stylesheet // but dialogs have to use absolute or fixed positioning position = this.uiDialog.css("position"), resizeHandles = typeof handles === "string" ? handles : "n,e,s,w,se,sw,ne,nw"; function filteredUi( ui ) { return { originalPosition: ui.originalPosition, originalSize: ui.originalSize, position: ui.position, size: ui.size }; } this.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: this.element, maxWidth: options.maxWidth, maxHeight: options.maxHeight, minWidth: options.minWidth, minHeight: this._minHeight(), handles: resizeHandles, start: function( event, ui ) { $( this ).addClass("ui-dialog-resizing"); that._blockFrames(); that._trigger( "resizeStart", event, filteredUi( ui ) ); }, resize: function( event, ui ) { that._trigger( "resize", event, filteredUi( ui ) ); }, stop: function( event, ui ) { options.height = $( this ).height(); options.width = $( this ).width(); $( this ).removeClass("ui-dialog-resizing"); that._unblockFrames(); that._trigger( "resizeStop", event, filteredUi( ui ) ); } }) .css( "position", position ); }, _minHeight: function() { var options = this.options; return options.height === "auto" ? options.minHeight : Math.min( options.minHeight, options.height ); }, _position: function() { // Need to show the dialog to get the actual offset in the position plugin var isVisible = this.uiDialog.is(":visible"); if ( !isVisible ) { this.uiDialog.show(); } this.uiDialog.position( this.options.position ); if ( !isVisible ) { this.uiDialog.hide(); } }, _setOptions: function( options ) { var that = this, resize = false, resizableOptions = {}; $.each( options, function( key, value ) { that._setOption( key, value ); if ( key in sizeRelatedOptions ) { resize = true; } if ( key in resizableRelatedOptions ) { resizableOptions[ key ] = value; } }); if ( resize ) { this._size(); this._position(); } if ( this.uiDialog.is(":data(ui-resizable)") ) { this.uiDialog.resizable( "option", resizableOptions ); } }, _setOption: function( key, value ) { /*jshint maxcomplexity:15*/ var isDraggable, isResizable, uiDialog = this.uiDialog; if ( key === "dialogClass" ) { uiDialog .removeClass( this.options.dialogClass ) .addClass( value ); } if ( key === "disabled" ) { return; } this._super( key, value ); if ( key === "appendTo" ) { this.uiDialog.appendTo( this._appendTo() ); } if ( key === "buttons" ) { this._createButtons(); } if ( key === "closeText" ) { this.uiDialogTitlebarClose.button({ // Ensure that we always pass a string label: "" + value }); } if ( key === "draggable" ) { isDraggable = uiDialog.is(":data(ui-draggable)"); if ( isDraggable && !value ) { uiDialog.draggable("destroy"); } if ( !isDraggable && value ) { this._makeDraggable(); } } if ( key === "position" ) { this._position(); } if ( key === "resizable" ) { // currently resizable, becoming non-resizable isResizable = uiDialog.is(":data(ui-resizable)"); if ( isResizable && !value ) { uiDialog.resizable("destroy"); } // currently resizable, changing handles if ( isResizable && typeof value === "string" ) { uiDialog.resizable( "option", "handles", value ); } // currently non-resizable, becoming resizable if ( !isResizable && value !== false ) { this._makeResizable(); } } if ( key === "title" ) { this._title( this.uiDialogTitlebar.find(".ui-dialog-title") ); } }, _size: function() { // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content // divs will both have width and height set, so we need to reset them var nonContentHeight, minContentHeight, maxContentHeight, options = this.options; // Reset content sizing this.element.show().css({ width: "auto", minHeight: 0, maxHeight: "none", height: 0 }); if ( options.minWidth > options.width ) { options.width = options.minWidth; } // reset wrapper sizing // determine the height of all the non-content elements nonContentHeight = this.uiDialog.css({ height: "auto", width: options.width }) .outerHeight(); minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); maxContentHeight = typeof options.maxHeight === "number" ? Math.max( 0, options.maxHeight - nonContentHeight ) : "none"; if ( options.height === "auto" ) { this.element.css({ minHeight: minContentHeight, maxHeight: maxContentHeight, height: "auto" }); } else { this.element.height( Math.max( 0, options.height - nonContentHeight ) ); } if (this.uiDialog.is(":data(ui-resizable)") ) { this.uiDialog.resizable( "option", "minHeight", this._minHeight() ); } }, _blockFrames: function() { this.iframeBlocks = this.document.find( "iframe" ).map(function() { var iframe = $( this ); return $( "
" ) .css({ position: "absolute", width: iframe.outerWidth(), height: iframe.outerHeight() }) .appendTo( iframe.parent() ) .offset( iframe.offset() )[0]; }); }, _unblockFrames: function() { if ( this.iframeBlocks ) { this.iframeBlocks.remove(); delete this.iframeBlocks; } }, _createOverlay: function() { if ( !this.options.modal ) { return; } if ( !$.ui.dialog.overlayInstances ) { // Prevent use of anchors and inputs. // We use a delay in case the overlay is created from an // event that we're going to be cancelling. (#2804) this._delay(function() { // Handle .dialog().dialog("close") (#4065) if ( $.ui.dialog.overlayInstances ) { this.document.bind( "focusin.dialog", function( event ) { if ( !$( event.target ).closest(".ui-dialog").length && // TODO: Remove hack when datepicker implements // the .ui-front logic (#8989) !$( event.target ).closest(".ui-datepicker").length ) { event.preventDefault(); $(".ui-dialog:visible:last .ui-dialog-content") .data("ui-dialog")._focusTabbable(); } }); } }); } this.overlay = $("
") .addClass("ui-widget-overlay ui-front") .appendTo( this._appendTo() ); this._on( this.overlay, { mousedown: "_keepFocus" }); $.ui.dialog.overlayInstances++; }, _destroyOverlay: function() { if ( !this.options.modal ) { return; } if ( this.overlay ) { $.ui.dialog.overlayInstances--; if ( !$.ui.dialog.overlayInstances ) { this.document.unbind( "focusin.dialog" ); } this.overlay.remove(); this.overlay = null; } } }); $.ui.dialog.overlayInstances = 0; // DEPRECATED if ( $.uiBackCompat !== false ) { // position option with array notation // just override with old implementation $.widget( "ui.dialog", $.ui.dialog, { _position: function() { var position = this.options.position, myAt = [], offset = [ 0, 0 ], isVisible; if ( position ) { if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) { myAt = position.split ? position.split(" ") : [ position[0], position[1] ]; if ( myAt.length === 1 ) { myAt[1] = myAt[0]; } $.each( [ "left", "top" ], function( i, offsetPosition ) { if ( +myAt[ i ] === myAt[ i ] ) { offset[ i ] = myAt[ i ]; myAt[ i ] = offsetPosition; } }); position = { my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " + myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]), at: myAt.join(" ") }; } position = $.extend( {}, $.ui.dialog.prototype.options.position, position ); } else { position = $.ui.dialog.prototype.options.position; } // need to show the dialog to get the actual offset in the position plugin isVisible = this.uiDialog.is(":visible"); if ( !isVisible ) { this.uiDialog.show(); } this.uiDialog.position( position ); if ( !isVisible ) { this.uiDialog.hide(); } } }); } }( jQuery ) ); (function( $, undefined ) { $.widget("ui.draggable", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "drag", options: { addClasses: true, appendTo: "parent", axis: false, connectToSortable: false, containment: false, cursor: "auto", cursorAt: false, grid: false, handle: false, helper: "original", iframeFix: false, opacity: false, refreshPositions: false, revert: false, revertDuration: 500, scope: "default", scroll: true, scrollSensitivity: 20, scrollSpeed: 20, snap: false, snapMode: "both", snapTolerance: 20, stack: false, zIndex: false, // callbacks drag: null, start: null, stop: null }, _create: function() { if (this.options.helper === "original" && !(/^(?:r|a|f)/).test(this.element.css("position"))) { this.element[0].style.position = "relative"; } if (this.options.addClasses){ this.element.addClass("ui-draggable"); } if (this.options.disabled){ this.element.addClass("ui-draggable-disabled"); } this._mouseInit(); }, _destroy: function() { this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ); this._mouseDestroy(); }, _mouseCapture: function(event) { var o = this.options; // among others, prevent a drag on a resizable-handle if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { return false; } //Quit if we're not on a valid handle this.handle = this._getHandle(event); if (!this.handle) { return false; } $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { $("
") .css({ width: this.offsetWidth+"px", height: this.offsetHeight+"px", position: "absolute", opacity: "0.001", zIndex: 1000 }) .css($(this).offset()) .appendTo("body"); }); return true; }, _mouseStart: function(event) { var o = this.options; //Create and append the visible helper this.helper = this._createHelper(event); this.helper.addClass("ui-draggable-dragging"); //Cache the helper size this._cacheHelperProportions(); //If ddmanager is used for droppables, set the global draggable if($.ui.ddmanager) { $.ui.ddmanager.current = this; } /* * - Position generation - * This block generates everything position related - it's the core of draggables. */ //Cache the margins of the original element this._cacheMargins(); //Store the helper's css position this.cssPosition = this.helper.css("position"); this.scrollParent = this.helper.scrollParent(); //The element's absolute position on the page minus margins this.offset = this.positionAbs = this.element.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; $.extend(this.offset, { click: { //Where the click happened, relative to the element left: event.pageX - this.offset.left, top: event.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper }); //Generate the original position this.originalPosition = this.position = this._generatePosition(event); this.originalPageX = event.pageX; this.originalPageY = event.pageY; //Adjust the mouse offset relative to the helper if "cursorAt" is supplied (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); //Set a containment if given in the options if(o.containment) { this._setContainment(); } //Trigger event + callbacks if(this._trigger("start", event) === false) { this._clear(); return false; } //Recache the helper size this._cacheHelperProportions(); //Prepare the droppable offsets if ($.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(this, event); } this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) if ( $.ui.ddmanager ) { $.ui.ddmanager.dragStart(this, event); } return true; }, _mouseDrag: function(event, noPropagation) { //Compute the helpers position this.position = this._generatePosition(event); this.positionAbs = this._convertPositionTo("absolute"); //Call plugins and callbacks and use the resulting position if something is returned if (!noPropagation) { var ui = this._uiHash(); if(this._trigger("drag", event, ui) === false) { this._mouseUp({}); return false; } this.position = ui.position; } if(!this.options.axis || this.options.axis !== "y") { this.helper[0].style.left = this.position.left+"px"; } if(!this.options.axis || this.options.axis !== "x") { this.helper[0].style.top = this.position.top+"px"; } if($.ui.ddmanager) { $.ui.ddmanager.drag(this, event); } return false; }, _mouseStop: function(event) { //If we are using droppables, inform the manager about the drop var element, that = this, elementInDom = false, dropped = false; if ($.ui.ddmanager && !this.options.dropBehaviour) { dropped = $.ui.ddmanager.drop(this, event); } //if a drop comes from outside (a sortable) if(this.dropped) { dropped = this.dropped; this.dropped = false; } //if the original element is no longer in the DOM don't bother to continue (see #8269) element = this.element[0]; while ( element && (element = element.parentNode) ) { if (element === document ) { elementInDom = true; } } if ( !elementInDom && this.options.helper === "original" ) { return false; } if((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { if(that._trigger("stop", event) !== false) { that._clear(); } }); } else { if(this._trigger("stop", event) !== false) { this._clear(); } } return false; }, _mouseUp: function(event) { //Remove frame helpers $("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) if( $.ui.ddmanager ) { $.ui.ddmanager.dragStop(this, event); } return $.ui.mouse.prototype._mouseUp.call(this, event); }, cancel: function() { if(this.helper.is(".ui-draggable-dragging")) { this._mouseUp({}); } else { this._clear(); } return this; }, _getHandle: function(event) { var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; $(this.options.handle, this.element) .find("*") .addBack() .each(function() { if(this === event.target) { handle = true; } }); return handle; }, _createHelper: function(event) { var o = this.options, helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element); if(!helper.parents("body").length) { helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo)); } if(helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) { helper.css("position", "absolute"); } return helper; }, _adjustOffsetFromHelper: function(obj) { if (typeof obj === "string") { obj = obj.split(" "); } if ($.isArray(obj)) { obj = {left: +obj[0], top: +obj[1] || 0}; } if ("left" in obj) { this.offset.click.left = obj.left + this.margins.left; } if ("right" in obj) { this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; } if ("top" in obj) { this.offset.click.top = obj.top + this.margins.top; } if ("bottom" in obj) { this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; } }, _getParentOffset: function() { //Get the offsetParent and cache its position this.offsetParent = this.helper.offsetParent(); var po = this.offsetParent.offset(); // This is a special case where we need to modify a offset calculated on start, since the following happened: // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { po.left += this.scrollParent.scrollLeft(); po.top += this.scrollParent.scrollTop(); } //This needs to be actually done for all browsers, since pageX/pageY includes this information //Ugly IE fix if((this.offsetParent[0] === document.body) || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { po = { top: 0, left: 0 }; } return { top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) }; }, _getRelativeOffset: function() { if(this.cssPosition === "relative") { var p = this.element.position(); return { top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() }; } else { return { top: 0, left: 0 }; } }, _cacheMargins: function() { this.margins = { left: (parseInt(this.element.css("marginLeft"),10) || 0), top: (parseInt(this.element.css("marginTop"),10) || 0), right: (parseInt(this.element.css("marginRight"),10) || 0), bottom: (parseInt(this.element.css("marginBottom"),10) || 0) }; }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() }; }, _setContainment: function() { var over, c, ce, o = this.options; if(o.containment === "parent") { o.containment = this.helper[0].parentNode; } if(o.containment === "document" || o.containment === "window") { this.containment = [ o.containment === "document" ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, o.containment === "document" ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, (o.containment === "document" ? 0 : $(window).scrollLeft()) + $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (o.containment === "document" ? 0 : $(window).scrollTop()) + ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; } if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor !== Array) { c = $(o.containment); ce = c[0]; if(!ce) { return; } over = ($(ce).css("overflow") !== "hidden"); this.containment = [ (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0), (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0), (over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom ]; this.relative_container = c; } else if(o.containment.constructor === Array) { this.containment = o.containment; } }, _convertPositionTo: function(d, pos) { if(!pos) { pos = this.position; } var mod = d === "absolute" ? 1 : -1, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); return { top: ( pos.top + // The absolute mouse position this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) ), left: ( pos.left + // The absolute mouse position this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) ) }; }, _generatePosition: function(event) { var containment, co, top, left, o = this.options, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName), pageX = event.pageX, pageY = event.pageY; /* * - Position constraining - * Constrain the position to a mix of grid, containment. */ if(this.originalPosition) { //If we are not dragging yet, we won't check for options if(this.containment) { if (this.relative_container){ co = this.relative_container.offset(); containment = [ this.containment[0] + co.left, this.containment[1] + co.top, this.containment[2] + co.left, this.containment[3] + co.top ]; } else { containment = this.containment; } if(event.pageX - this.offset.click.left < containment[0]) { pageX = containment[0] + this.offset.click.left; } if(event.pageY - this.offset.click.top < containment[1]) { pageY = containment[1] + this.offset.click.top; } if(event.pageX - this.offset.click.left > containment[2]) { pageX = containment[2] + this.offset.click.left; } if(event.pageY - this.offset.click.top > containment[3]) { pageY = containment[3] + this.offset.click.top; } } if(o.grid) { //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950) top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY; pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX; pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; } } return { top: ( pageY - // The absolute mouse position this.offset.click.top - // Click offset (relative to the element) this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) ), left: ( pageX - // The absolute mouse position this.offset.click.left - // Click offset (relative to the element) this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) ) }; }, _clear: function() { this.helper.removeClass("ui-draggable-dragging"); if(this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) { this.helper.remove(); } this.helper = null; this.cancelHelperRemoval = false; }, // From now on bulk stuff - mainly helpers _trigger: function(type, event, ui) { ui = ui || this._uiHash(); $.ui.plugin.call(this, type, [event, ui]); //The absolute position has to be recalculated after plugins if(type === "drag") { this.positionAbs = this._convertPositionTo("absolute"); } return $.Widget.prototype._trigger.call(this, type, event, ui); }, plugins: {}, _uiHash: function() { return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs }; } }); $.ui.plugin.add("draggable", "connectToSortable", { start: function(event, ui) { var inst = $(this).data("ui-draggable"), o = inst.options, uiSortable = $.extend({}, ui, { item: inst.element }); inst.sortables = []; $(o.connectToSortable).each(function() { var sortable = $.data(this, "ui-sortable"); if (sortable && !sortable.options.disabled) { inst.sortables.push({ instance: sortable, shouldRevert: sortable.options.revert }); sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page). sortable._trigger("activate", event, uiSortable); } }); }, stop: function(event, ui) { //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper var inst = $(this).data("ui-draggable"), uiSortable = $.extend({}, ui, { item: inst.element }); $.each(inst.sortables, function() { if(this.instance.isOver) { this.instance.isOver = 0; inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid" if(this.shouldRevert) { this.instance.options.revert = true; } //Trigger the stop of the sortable this.instance._mouseStop(event); this.instance.options.helper = this.instance.options._helper; //If the helper has been the original item, restore properties in the sortable if(inst.options.helper === "original") { this.instance.currentItem.css({ top: "auto", left: "auto" }); } } else { this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance this.instance._trigger("deactivate", event, uiSortable); } }); }, drag: function(event, ui) { var inst = $(this).data("ui-draggable"), that = this; $.each(inst.sortables, function() { var innermostIntersecting = false, thisSortable = this; //Copy over some variables to allow calling the sortable's native _intersectsWith this.instance.positionAbs = inst.positionAbs; this.instance.helperProportions = inst.helperProportions; this.instance.offset.click = inst.offset.click; if(this.instance._intersectsWith(this.instance.containerCache)) { innermostIntersecting = true; $.each(inst.sortables, function () { this.instance.positionAbs = inst.positionAbs; this.instance.helperProportions = inst.helperProportions; this.instance.offset.click = inst.offset.click; if (this !== thisSortable && this.instance._intersectsWith(this.instance.containerCache) && $.contains(thisSortable.instance.element[0], this.instance.element[0]) ) { innermostIntersecting = false; } return innermostIntersecting; }); } if(innermostIntersecting) { //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once if(!this.instance.isOver) { this.instance.isOver = 1; //Now we fake the start of dragging for the sortable instance, //by cloning the list group item, appending it to the sortable and using it as inst.currentItem //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) this.instance.currentItem = $(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true); this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it this.instance.options.helper = function() { return ui.helper[0]; }; event.target = this.instance.currentItem[0]; this.instance._mouseCapture(event, true); this.instance._mouseStart(event, true, true); //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes this.instance.offset.click.top = inst.offset.click.top; this.instance.offset.click.left = inst.offset.click.left; this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; inst._trigger("toSortable", event); inst.dropped = this.instance.element; //draggable revert needs that //hack so receive/update callbacks work (mostly) inst.currentItem = inst.element; this.instance.fromOutside = inst; } //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable if(this.instance.currentItem) { this.instance._mouseDrag(event); } } else { //If it doesn't intersect with the sortable, and it intersected before, //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval if(this.instance.isOver) { this.instance.isOver = 0; this.instance.cancelHelperRemoval = true; //Prevent reverting on this forced stop this.instance.options.revert = false; // The out event needs to be triggered independently this.instance._trigger("out", event, this.instance._uiHash(this.instance)); this.instance._mouseStop(event, true); this.instance.options.helper = this.instance.options._helper; //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size this.instance.currentItem.remove(); if(this.instance.placeholder) { this.instance.placeholder.remove(); } inst._trigger("fromSortable", event); inst.dropped = false; //draggable revert needs that } } }); } }); $.ui.plugin.add("draggable", "cursor", { start: function() { var t = $("body"), o = $(this).data("ui-draggable").options; if (t.css("cursor")) { o._cursor = t.css("cursor"); } t.css("cursor", o.cursor); }, stop: function() { var o = $(this).data("ui-draggable").options; if (o._cursor) { $("body").css("cursor", o._cursor); } } }); $.ui.plugin.add("draggable", "opacity", { start: function(event, ui) { var t = $(ui.helper), o = $(this).data("ui-draggable").options; if(t.css("opacity")) { o._opacity = t.css("opacity"); } t.css("opacity", o.opacity); }, stop: function(event, ui) { var o = $(this).data("ui-draggable").options; if(o._opacity) { $(ui.helper).css("opacity", o._opacity); } } }); $.ui.plugin.add("draggable", "scroll", { start: function() { var i = $(this).data("ui-draggable"); if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") { i.overflowOffset = i.scrollParent.offset(); } }, drag: function( event ) { var i = $(this).data("ui-draggable"), o = i.options, scrolled = false; if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") { if(!o.axis || o.axis !== "x") { if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; } else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) { i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; } } if(!o.axis || o.axis !== "y") { if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; } else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) { i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; } } } else { if(!o.axis || o.axis !== "x") { if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); } } if(!o.axis || o.axis !== "y") { if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); } } } if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(i, event); } } }); $.ui.plugin.add("draggable", "snap", { start: function() { var i = $(this).data("ui-draggable"), o = i.options; i.snapElements = []; $(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() { var $t = $(this), $o = $t.offset(); if(this !== i.element[0]) { i.snapElements.push({ item: this, width: $t.outerWidth(), height: $t.outerHeight(), top: $o.top, left: $o.left }); } }); }, drag: function(event, ui) { var ts, bs, ls, rs, l, r, t, b, i, first, inst = $(this).data("ui-draggable"), o = inst.options, d = o.snapTolerance, x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; for (i = inst.snapElements.length - 1; i >= 0; i--){ l = inst.snapElements[i].left; r = l + inst.snapElements[i].width; t = inst.snapElements[i].top; b = t + inst.snapElements[i].height; //Yes, I know, this is insane ;) if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) { if(inst.snapElements[i].snapping) { (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); } inst.snapElements[i].snapping = false; continue; } if(o.snapMode !== "inner") { ts = Math.abs(t - y2) <= d; bs = Math.abs(b - y1) <= d; ls = Math.abs(l - x2) <= d; rs = Math.abs(r - x1) <= d; if(ts) { ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; } if(bs) { ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; } if(ls) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; } if(rs) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; } } first = (ts || bs || ls || rs); if(o.snapMode !== "outer") { ts = Math.abs(t - y1) <= d; bs = Math.abs(b - y2) <= d; ls = Math.abs(l - x1) <= d; rs = Math.abs(r - x2) <= d; if(ts) { ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; } if(bs) { ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; } if(ls) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; } if(rs) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; } } if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) { (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); } inst.snapElements[i].snapping = (ts || bs || ls || rs || first); } } }); $.ui.plugin.add("draggable", "stack", { start: function() { var min, o = this.data("ui-draggable").options, group = $.makeArray($(o.stack)).sort(function(a,b) { return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); }); if (!group.length) { return; } min = parseInt($(group[0]).css("zIndex"), 10) || 0; $(group).each(function(i) { $(this).css("zIndex", min + i); }); this.css("zIndex", (min + group.length)); } }); $.ui.plugin.add("draggable", "zIndex", { start: function(event, ui) { var t = $(ui.helper), o = $(this).data("ui-draggable").options; if(t.css("zIndex")) { o._zIndex = t.css("zIndex"); } t.css("zIndex", o.zIndex); }, stop: function(event, ui) { var o = $(this).data("ui-draggable").options; if(o._zIndex) { $(ui.helper).css("zIndex", o._zIndex); } } }); })(jQuery); (function( $, undefined ) { function isOverAxis( x, reference, size ) { return ( x > reference ) && ( x < ( reference + size ) ); } $.widget("ui.droppable", { version: "1.10.1", widgetEventPrefix: "drop", options: { accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect", // callbacks activate: null, deactivate: null, drop: null, out: null, over: null }, _create: function() { var o = this.options, accept = o.accept; this.isover = false; this.isout = true; this.accept = $.isFunction(accept) ? accept : function(d) { return d.is(accept); }; //Store the droppable's proportions this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; // Add the reference and positions to the manager $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; $.ui.ddmanager.droppables[o.scope].push(this); (o.addClasses && this.element.addClass("ui-droppable")); }, _destroy: function() { var i = 0, drop = $.ui.ddmanager.droppables[this.options.scope]; for ( ; i < drop.length; i++ ) { if ( drop[i] === this ) { drop.splice(i, 1); } } this.element.removeClass("ui-droppable ui-droppable-disabled"); }, _setOption: function(key, value) { if(key === "accept") { this.accept = $.isFunction(value) ? value : function(d) { return d.is(value); }; } $.Widget.prototype._setOption.apply(this, arguments); }, _activate: function(event) { var draggable = $.ui.ddmanager.current; if(this.options.activeClass) { this.element.addClass(this.options.activeClass); } if(draggable){ this._trigger("activate", event, this.ui(draggable)); } }, _deactivate: function(event) { var draggable = $.ui.ddmanager.current; if(this.options.activeClass) { this.element.removeClass(this.options.activeClass); } if(draggable){ this._trigger("deactivate", event, this.ui(draggable)); } }, _over: function(event) { var draggable = $.ui.ddmanager.current; // Bail if draggable and droppable are same element if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) { return; } if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { if(this.options.hoverClass) { this.element.addClass(this.options.hoverClass); } this._trigger("over", event, this.ui(draggable)); } }, _out: function(event) { var draggable = $.ui.ddmanager.current; // Bail if draggable and droppable are same element if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) { return; } if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { if(this.options.hoverClass) { this.element.removeClass(this.options.hoverClass); } this._trigger("out", event, this.ui(draggable)); } }, _drop: function(event,custom) { var draggable = custom || $.ui.ddmanager.current, childrenIntersection = false; // Bail if draggable and droppable are same element if (!draggable || (draggable.currentItem || draggable.element)[0] === this.element[0]) { return false; } this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function() { var inst = $.data(this, "ui-droppable"); if( inst.options.greedy && !inst.options.disabled && inst.options.scope === draggable.options.scope && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) ) { childrenIntersection = true; return false; } }); if(childrenIntersection) { return false; } if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { if(this.options.activeClass) { this.element.removeClass(this.options.activeClass); } if(this.options.hoverClass) { this.element.removeClass(this.options.hoverClass); } this._trigger("drop", event, this.ui(draggable)); return this.element; } return false; }, ui: function(c) { return { draggable: (c.currentItem || c.element), helper: c.helper, position: c.position, offset: c.positionAbs }; } }); $.ui.intersect = function(draggable, droppable, toleranceMode) { if (!droppable.offset) { return false; } var draggableLeft, draggableTop, x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height, l = droppable.offset.left, r = l + droppable.proportions.width, t = droppable.offset.top, b = t + droppable.proportions.height; switch (toleranceMode) { case "fit": return (l <= x1 && x2 <= r && t <= y1 && y2 <= b); case "intersect": return (l < x1 + (draggable.helperProportions.width / 2) && // Right Half x2 - (draggable.helperProportions.width / 2) < r && // Left Half t < y1 + (draggable.helperProportions.height / 2) && // Bottom Half y2 - (draggable.helperProportions.height / 2) < b ); // Top Half case "pointer": draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left); draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top); return isOverAxis( draggableTop, t, droppable.proportions.height ) && isOverAxis( draggableLeft, l, droppable.proportions.width ); case "touch": return ( (y1 >= t && y1 <= b) || // Top edge touching (y2 >= t && y2 <= b) || // Bottom edge touching (y1 < t && y2 > b) // Surrounded vertically ) && ( (x1 >= l && x1 <= r) || // Left edge touching (x2 >= l && x2 <= r) || // Right edge touching (x1 < l && x2 > r) // Surrounded horizontally ); default: return false; } }; /* This manager tracks offsets of draggables and droppables */ $.ui.ddmanager = { current: null, droppables: { "default": [] }, prepareOffsets: function(t, event) { var i, j, m = $.ui.ddmanager.droppables[t.options.scope] || [], type = event ? event.type : null, // workaround for #2317 list = (t.currentItem || t.element).find(":data(ui-droppable)").addBack(); droppablesLoop: for (i = 0; i < m.length; i++) { //No disabled and non-accepted if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) { continue; } // Filter out elements in the current dragged item for (j=0; j < list.length; j++) { if(list[j] === m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } } m[i].visible = m[i].element.css("display") !== "none"; if(!m[i].visible) { continue; } //Activate the droppable if used directly from draggables if(type === "mousedown") { m[i]._activate.call(m[i], event); } m[i].offset = m[i].element.offset(); m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight }; } }, drop: function(draggable, event) { var dropped = false; $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { if(!this.options) { return; } if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) { dropped = this._drop.call(this, event) || dropped; } if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { this.isout = true; this.isover = false; this._deactivate.call(this, event); } }); return dropped; }, dragStart: function( draggable, event ) { //Listen for scrolling so that if the dragging causes scrolling the position of the droppables can be recalculated (see #5003) draggable.element.parentsUntil( "body" ).bind( "scroll.droppable", function() { if( !draggable.options.refreshPositions ) { $.ui.ddmanager.prepareOffsets( draggable, event ); } }); }, drag: function(draggable, event) { //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. if(draggable.options.refreshPositions) { $.ui.ddmanager.prepareOffsets(draggable, event); } //Run through all droppables and check their positions based on specific tolerance options $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { if(this.options.disabled || this.greedyChild || !this.visible) { return; } var parentInstance, scope, parent, intersects = $.ui.intersect(draggable, this, this.options.tolerance), c = !intersects && this.isover ? "isout" : (intersects && !this.isover ? "isover" : null); if(!c) { return; } if (this.options.greedy) { // find droppable parents with same scope scope = this.options.scope; parent = this.element.parents(":data(ui-droppable)").filter(function () { return $.data(this, "ui-droppable").options.scope === scope; }); if (parent.length) { parentInstance = $.data(parent[0], "ui-droppable"); parentInstance.greedyChild = (c === "isover"); } } // we just moved into a greedy child if (parentInstance && c === "isover") { parentInstance.isover = false; parentInstance.isout = true; parentInstance._out.call(parentInstance, event); } this[c] = true; this[c === "isout" ? "isover" : "isout"] = false; this[c === "isover" ? "_over" : "_out"].call(this, event); // we just moved out of a greedy child if (parentInstance && c === "isout") { parentInstance.isout = false; parentInstance.isover = true; parentInstance._over.call(parentInstance, event); } }); }, dragStop: function( draggable, event ) { draggable.element.parentsUntil( "body" ).unbind( "scroll.droppable" ); //Call prepareOffsets one final time since IE does not fire return scroll events when overflow was caused by drag (see #5003) if( !draggable.options.refreshPositions ) { $.ui.ddmanager.prepareOffsets( draggable, event ); } } }; })(jQuery); ;(jQuery.effects || (function($, undefined) { var dataSpace = "ui-effects-"; $.effects = { effect: {} }; /*! * jQuery Color Animations v2.1.2 * https://github.com/jquery/jquery-color * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * Date: Wed Jan 16 08:47:09 2013 -0600 */ (function( jQuery, undefined ) { var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", // plusequals test for += 100 -= 100 rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, // a set of RE's that can match strings and generate color tuples. stringParsers = [{ re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function( execResult ) { return [ execResult[ 1 ], execResult[ 2 ], execResult[ 3 ], execResult[ 4 ] ]; } }, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function( execResult ) { return [ execResult[ 1 ] * 2.55, execResult[ 2 ] * 2.55, execResult[ 3 ] * 2.55, execResult[ 4 ] ]; } }, { // this regex ignores A-F because it's compared against an already lowercased string re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function( execResult ) { return [ parseInt( execResult[ 1 ], 16 ), parseInt( execResult[ 2 ], 16 ), parseInt( execResult[ 3 ], 16 ) ]; } }, { // this regex ignores A-F because it's compared against an already lowercased string re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function( execResult ) { return [ parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) ]; } }, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: "hsla", parse: function( execResult ) { return [ execResult[ 1 ], execResult[ 2 ] / 100, execResult[ 3 ] / 100, execResult[ 4 ] ]; } }], // jQuery.Color( ) color = jQuery.Color = function( color, green, blue, alpha ) { return new jQuery.Color.fn.parse( color, green, blue, alpha ); }, spaces = { rgba: { props: { red: { idx: 0, type: "byte" }, green: { idx: 1, type: "byte" }, blue: { idx: 2, type: "byte" } } }, hsla: { props: { hue: { idx: 0, type: "degrees" }, saturation: { idx: 1, type: "percent" }, lightness: { idx: 2, type: "percent" } } } }, propTypes = { "byte": { floor: true, max: 255 }, "percent": { max: 1 }, "degrees": { mod: 360, floor: true } }, support = color.support = {}, // element for support tests supportElem = jQuery( "

" )[ 0 ], // colors = jQuery.Color.names colors, // local aliases of functions called often each = jQuery.each; // determine rgba support immediately supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; // define cache name and alpha properties // for rgba and hsla spaces each( spaces, function( spaceName, space ) { space.cache = "_" + spaceName; space.props.alpha = { idx: 3, type: "percent", def: 1 }; }); function clamp( value, prop, allowEmpty ) { var type = propTypes[ prop.type ] || {}; if ( value == null ) { return (allowEmpty || !prop.def) ? null : prop.def; } // ~~ is an short way of doing floor for positive numbers value = type.floor ? ~~value : parseFloat( value ); // IE will pass in empty strings as value for alpha, // which will hit this case if ( isNaN( value ) ) { return prop.def; } if ( type.mod ) { // we add mod before modding to make sure that negatives values // get converted properly: -10 -> 350 return (value + type.mod) % type.mod; } // for now all property types without mod have min and max return 0 > value ? 0 : type.max < value ? type.max : value; } function stringParse( string ) { var inst = color(), rgba = inst._rgba = []; string = string.toLowerCase(); each( stringParsers, function( i, parser ) { var parsed, match = parser.re.exec( string ), values = match && parser.parse( match ), spaceName = parser.space || "rgba"; if ( values ) { parsed = inst[ spaceName ]( values ); // if this was an rgba parse the assignment might happen twice // oh well.... inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; rgba = inst._rgba = parsed._rgba; // exit each( stringParsers ) here because we matched return false; } }); // Found a stringParser that handled it if ( rgba.length ) { // if this came from a parsed string, force "transparent" when alpha is 0 // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) if ( rgba.join() === "0,0,0,0" ) { jQuery.extend( rgba, colors.transparent ); } return inst; } // named colors return colors[ string ]; } color.fn = jQuery.extend( color.prototype, { parse: function( red, green, blue, alpha ) { if ( red === undefined ) { this._rgba = [ null, null, null, null ]; return this; } if ( red.jquery || red.nodeType ) { red = jQuery( red ).css( green ); green = undefined; } var inst = this, type = jQuery.type( red ), rgba = this._rgba = []; // more than 1 argument specified - assume ( red, green, blue, alpha ) if ( green !== undefined ) { red = [ red, green, blue, alpha ]; type = "array"; } if ( type === "string" ) { return this.parse( stringParse( red ) || colors._default ); } if ( type === "array" ) { each( spaces.rgba.props, function( key, prop ) { rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); }); return this; } if ( type === "object" ) { if ( red instanceof color ) { each( spaces, function( spaceName, space ) { if ( red[ space.cache ] ) { inst[ space.cache ] = red[ space.cache ].slice(); } }); } else { each( spaces, function( spaceName, space ) { var cache = space.cache; each( space.props, function( key, prop ) { // if the cache doesn't exist, and we know how to convert if ( !inst[ cache ] && space.to ) { // if the value was null, we don't need to copy it // if the key was alpha, we don't need to copy it either if ( key === "alpha" || red[ key ] == null ) { return; } inst[ cache ] = space.to( inst._rgba ); } // this is the only case where we allow nulls for ALL properties. // call clamp with alwaysAllowEmpty inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); }); // everything defined but alpha? if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { // use the default of 1 inst[ cache ][ 3 ] = 1; if ( space.from ) { inst._rgba = space.from( inst[ cache ] ); } } }); } return this; } }, is: function( compare ) { var is = color( compare ), same = true, inst = this; each( spaces, function( _, space ) { var localCache, isCache = is[ space.cache ]; if (isCache) { localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; each( space.props, function( _, prop ) { if ( isCache[ prop.idx ] != null ) { same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); return same; } }); } return same; }); return same; }, _space: function() { var used = [], inst = this; each( spaces, function( spaceName, space ) { if ( inst[ space.cache ] ) { used.push( spaceName ); } }); return used.pop(); }, transition: function( other, distance ) { var end = color( other ), spaceName = end._space(), space = spaces[ spaceName ], startColor = this.alpha() === 0 ? color( "transparent" ) : this, start = startColor[ space.cache ] || space.to( startColor._rgba ), result = start.slice(); end = end[ space.cache ]; each( space.props, function( key, prop ) { var index = prop.idx, startValue = start[ index ], endValue = end[ index ], type = propTypes[ prop.type ] || {}; // if null, don't override start value if ( endValue === null ) { return; } // if null - use end if ( startValue === null ) { result[ index ] = endValue; } else { if ( type.mod ) { if ( endValue - startValue > type.mod / 2 ) { startValue += type.mod; } else if ( startValue - endValue > type.mod / 2 ) { startValue -= type.mod; } } result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); } }); return this[ spaceName ]( result ); }, blend: function( opaque ) { // if we are already opaque - return ourself if ( this._rgba[ 3 ] === 1 ) { return this; } var rgb = this._rgba.slice(), a = rgb.pop(), blend = color( opaque )._rgba; return color( jQuery.map( rgb, function( v, i ) { return ( 1 - a ) * blend[ i ] + a * v; })); }, toRgbaString: function() { var prefix = "rgba(", rgba = jQuery.map( this._rgba, function( v, i ) { return v == null ? ( i > 2 ? 1 : 0 ) : v; }); if ( rgba[ 3 ] === 1 ) { rgba.pop(); prefix = "rgb("; } return prefix + rgba.join() + ")"; }, toHslaString: function() { var prefix = "hsla(", hsla = jQuery.map( this.hsla(), function( v, i ) { if ( v == null ) { v = i > 2 ? 1 : 0; } // catch 1 and 2 if ( i && i < 3 ) { v = Math.round( v * 100 ) + "%"; } return v; }); if ( hsla[ 3 ] === 1 ) { hsla.pop(); prefix = "hsl("; } return prefix + hsla.join() + ")"; }, toHexString: function( includeAlpha ) { var rgba = this._rgba.slice(), alpha = rgba.pop(); if ( includeAlpha ) { rgba.push( ~~( alpha * 255 ) ); } return "#" + jQuery.map( rgba, function( v ) { // default to 0 when nulls exist v = ( v || 0 ).toString( 16 ); return v.length === 1 ? "0" + v : v; }).join(""); }, toString: function() { return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); } }); color.fn.parse.prototype = color.fn; // hsla conversions adapted from: // https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 function hue2rgb( p, q, h ) { h = ( h + 1 ) % 1; if ( h * 6 < 1 ) { return p + (q - p) * h * 6; } if ( h * 2 < 1) { return q; } if ( h * 3 < 2 ) { return p + (q - p) * ((2/3) - h) * 6; } return p; } spaces.hsla.to = function ( rgba ) { if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { return [ null, null, null, rgba[ 3 ] ]; } var r = rgba[ 0 ] / 255, g = rgba[ 1 ] / 255, b = rgba[ 2 ] / 255, a = rgba[ 3 ], max = Math.max( r, g, b ), min = Math.min( r, g, b ), diff = max - min, add = max + min, l = add * 0.5, h, s; if ( min === max ) { h = 0; } else if ( r === max ) { h = ( 60 * ( g - b ) / diff ) + 360; } else if ( g === max ) { h = ( 60 * ( b - r ) / diff ) + 120; } else { h = ( 60 * ( r - g ) / diff ) + 240; } // chroma (diff) == 0 means greyscale which, by definition, saturation = 0% // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) if ( diff === 0 ) { s = 0; } else if ( l <= 0.5 ) { s = diff / add; } else { s = diff / ( 2 - add ); } return [ Math.round(h) % 360, s, l, a == null ? 1 : a ]; }; spaces.hsla.from = function ( hsla ) { if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { return [ null, null, null, hsla[ 3 ] ]; } var h = hsla[ 0 ] / 360, s = hsla[ 1 ], l = hsla[ 2 ], a = hsla[ 3 ], q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, p = 2 * l - q; return [ Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), Math.round( hue2rgb( p, q, h ) * 255 ), Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), a ]; }; each( spaces, function( spaceName, space ) { var props = space.props, cache = space.cache, to = space.to, from = space.from; // makes rgba() and hsla() color.fn[ spaceName ] = function( value ) { // generate a cache for this space if it doesn't exist if ( to && !this[ cache ] ) { this[ cache ] = to( this._rgba ); } if ( value === undefined ) { return this[ cache ].slice(); } var ret, type = jQuery.type( value ), arr = ( type === "array" || type === "object" ) ? value : arguments, local = this[ cache ].slice(); each( props, function( key, prop ) { var val = arr[ type === "object" ? key : prop.idx ]; if ( val == null ) { val = local[ prop.idx ]; } local[ prop.idx ] = clamp( val, prop ); }); if ( from ) { ret = color( from( local ) ); ret[ cache ] = local; return ret; } else { return color( local ); } }; // makes red() green() blue() alpha() hue() saturation() lightness() each( props, function( key, prop ) { // alpha is included in more than one space if ( color.fn[ key ] ) { return; } color.fn[ key ] = function( value ) { var vtype = jQuery.type( value ), fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), local = this[ fn ](), cur = local[ prop.idx ], match; if ( vtype === "undefined" ) { return cur; } if ( vtype === "function" ) { value = value.call( this, cur ); vtype = jQuery.type( value ); } if ( value == null && prop.empty ) { return this; } if ( vtype === "string" ) { match = rplusequals.exec( value ); if ( match ) { value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); } } local[ prop.idx ] = value; return this[ fn ]( local ); }; }); }); // add cssHook and .fx.step function for each named hook. // accept a space separated string of properties color.hook = function( hook ) { var hooks = hook.split( " " ); each( hooks, function( i, hook ) { jQuery.cssHooks[ hook ] = { set: function( elem, value ) { var parsed, curElem, backgroundColor = ""; if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) { value = color( parsed || value ); if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { curElem = hook === "backgroundColor" ? elem.parentNode : elem; while ( (backgroundColor === "" || backgroundColor === "transparent") && curElem && curElem.style ) { try { backgroundColor = jQuery.css( curElem, "backgroundColor" ); curElem = curElem.parentNode; } catch ( e ) { } } value = value.blend( backgroundColor && backgroundColor !== "transparent" ? backgroundColor : "_default" ); } value = value.toRgbaString(); } try { elem.style[ hook ] = value; } catch( e ) { // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' } } }; jQuery.fx.step[ hook ] = function( fx ) { if ( !fx.colorInit ) { fx.start = color( fx.elem, hook ); fx.end = color( fx.end ); fx.colorInit = true; } jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); }; }); }; color.hook( stepHooks ); jQuery.cssHooks.borderColor = { expand: function( value ) { var expanded = {}; each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { expanded[ "border" + part + "Color" ] = value; }); return expanded; } }; // Basic color names only. // Usage of any of the other color names requires adding yourself or including // jquery.color.svg-names.js. colors = jQuery.Color.names = { // 4.1. Basic color keywords aqua: "#00ffff", black: "#000000", blue: "#0000ff", fuchsia: "#ff00ff", gray: "#808080", green: "#008000", lime: "#00ff00", maroon: "#800000", navy: "#000080", olive: "#808000", purple: "#800080", red: "#ff0000", silver: "#c0c0c0", teal: "#008080", white: "#ffffff", yellow: "#ffff00", // 4.2.3. "transparent" color keyword transparent: [ null, null, null, 0 ], _default: "#ffffff" }; })( jQuery ); /******************************************************************************/ /****************************** CLASS ANIMATIONS ******************************/ /******************************************************************************/ (function() { var classAnimationActions = [ "add", "remove", "toggle" ], shorthandStyles = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; $.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { $.fx.step[ prop ] = function( fx ) { if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { jQuery.style( fx.elem, prop, fx.end ); fx.setAttr = true; } }; }); function getElementStyles( elem ) { var key, len, style = elem.ownerDocument.defaultView ? elem.ownerDocument.defaultView.getComputedStyle( elem, null ) : elem.currentStyle, styles = {}; if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { len = style.length; while ( len-- ) { key = style[ len ]; if ( typeof style[ key ] === "string" ) { styles[ $.camelCase( key ) ] = style[ key ]; } } // support: Opera, IE <9 } else { for ( key in style ) { if ( typeof style[ key ] === "string" ) { styles[ key ] = style[ key ]; } } } return styles; } function styleDifference( oldStyle, newStyle ) { var diff = {}, name, value; for ( name in newStyle ) { value = newStyle[ name ]; if ( oldStyle[ name ] !== value ) { if ( !shorthandStyles[ name ] ) { if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { diff[ name ] = value; } } } } return diff; } // support: jQuery <1.8 if ( !$.fn.addBack ) { $.fn.addBack = function( selector ) { return this.add( selector == null ? this.prevObject : this.prevObject.filter( selector ) ); }; } $.effects.animateClass = function( value, duration, easing, callback ) { var o = $.speed( duration, easing, callback ); return this.queue( function() { var animated = $( this ), baseClass = animated.attr( "class" ) || "", applyClassChange, allAnimations = o.children ? animated.find( "*" ).addBack() : animated; // map the animated objects to store the original styles. allAnimations = allAnimations.map(function() { var el = $( this ); return { el: el, start: getElementStyles( this ) }; }); // apply class change applyClassChange = function() { $.each( classAnimationActions, function(i, action) { if ( value[ action ] ) { animated[ action + "Class" ]( value[ action ] ); } }); }; applyClassChange(); // map all animated objects again - calculate new styles and diff allAnimations = allAnimations.map(function() { this.end = getElementStyles( this.el[ 0 ] ); this.diff = styleDifference( this.start, this.end ); return this; }); // apply original class animated.attr( "class", baseClass ); // map all animated objects again - this time collecting a promise allAnimations = allAnimations.map(function() { var styleInfo = this, dfd = $.Deferred(), opts = $.extend({}, o, { queue: false, complete: function() { dfd.resolve( styleInfo ); } }); this.el.animate( this.diff, opts ); return dfd.promise(); }); // once all animations have completed: $.when.apply( $, allAnimations.get() ).done(function() { // set the final class applyClassChange(); // for each animated element, // clear all css properties that were animated $.each( arguments, function() { var el = this.el; $.each( this.diff, function(key) { el.css( key, "" ); }); }); // this is guarnteed to be there if you use jQuery.speed() // it also handles dequeuing the next anim... o.complete.call( animated[ 0 ] ); }); }); }; $.fn.extend({ _addClass: $.fn.addClass, addClass: function( classNames, speed, easing, callback ) { return speed ? $.effects.animateClass.call( this, { add: classNames }, speed, easing, callback ) : this._addClass( classNames ); }, _removeClass: $.fn.removeClass, removeClass: function( classNames, speed, easing, callback ) { return arguments.length > 1 ? $.effects.animateClass.call( this, { remove: classNames }, speed, easing, callback ) : this._removeClass.apply( this, arguments ); }, _toggleClass: $.fn.toggleClass, toggleClass: function( classNames, force, speed, easing, callback ) { if ( typeof force === "boolean" || force === undefined ) { if ( !speed ) { // without speed parameter return this._toggleClass( classNames, force ); } else { return $.effects.animateClass.call( this, (force ? { add: classNames } : { remove: classNames }), speed, easing, callback ); } } else { // without force parameter return $.effects.animateClass.call( this, { toggle: classNames }, force, speed, easing ); } }, switchClass: function( remove, add, speed, easing, callback) { return $.effects.animateClass.call( this, { add: add, remove: remove }, speed, easing, callback ); } }); })(); /******************************************************************************/ /*********************************** EFFECTS **********************************/ /******************************************************************************/ (function() { $.extend( $.effects, { version: "1.10.1", // Saves a set of properties in a data storage save: function( element, set ) { for( var i=0; i < set.length; i++ ) { if ( set[ i ] !== null ) { element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); } } }, // Restores a set of previously saved properties from a data storage restore: function( element, set ) { var val, i; for( i=0; i < set.length; i++ ) { if ( set[ i ] !== null ) { val = element.data( dataSpace + set[ i ] ); // support: jQuery 1.6.2 // http://bugs.jquery.com/ticket/9917 // jQuery 1.6.2 incorrectly returns undefined for any falsy value. // We can't differentiate between "" and 0 here, so we just assume // empty string since it's likely to be a more common value... if ( val === undefined ) { val = ""; } element.css( set[ i ], val ); } } }, setMode: function( el, mode ) { if (mode === "toggle") { mode = el.is( ":hidden" ) ? "show" : "hide"; } return mode; }, // Translates a [top,left] array into a baseline value // this should be a little more flexible in the future to handle a string & hash getBaseline: function( origin, original ) { var y, x; switch ( origin[ 0 ] ) { case "top": y = 0; break; case "middle": y = 0.5; break; case "bottom": y = 1; break; default: y = origin[ 0 ] / original.height; } switch ( origin[ 1 ] ) { case "left": x = 0; break; case "center": x = 0.5; break; case "right": x = 1; break; default: x = origin[ 1 ] / original.width; } return { x: x, y: y }; }, // Wraps the element around a wrapper that copies position properties createWrapper: function( element ) { // if the element is already wrapped, return it if ( element.parent().is( ".ui-effects-wrapper" )) { return element.parent(); } // wrap the element var props = { width: element.outerWidth(true), height: element.outerHeight(true), "float": element.css( "float" ) }, wrapper = $( "

" ) .addClass( "ui-effects-wrapper" ) .css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }), // Store the size in case width/height are defined in % - Fixes #5245 size = { width: element.width(), height: element.height() }, active = document.activeElement; // support: Firefox // Firefox incorrectly exposes anonymous content // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 try { active.id; } catch( e ) { active = document.body; } element.wrap( wrapper ); // Fixes #7595 - Elements lose focus when wrapped. if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { $( active ).focus(); } wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element // transfer positioning properties to the wrapper if ( element.css( "position" ) === "static" ) { wrapper.css({ position: "relative" }); element.css({ position: "relative" }); } else { $.extend( props, { position: element.css( "position" ), zIndex: element.css( "z-index" ) }); $.each([ "top", "left", "bottom", "right" ], function(i, pos) { props[ pos ] = element.css( pos ); if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { props[ pos ] = "auto"; } }); element.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" }); } element.css(size); return wrapper.css( props ).show(); }, removeWrapper: function( element ) { var active = document.activeElement; if ( element.parent().is( ".ui-effects-wrapper" ) ) { element.parent().replaceWith( element ); // Fixes #7595 - Elements lose focus when wrapped. if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { $( active ).focus(); } } return element; }, setTransition: function( element, list, factor, value ) { value = value || {}; $.each( list, function( i, x ) { var unit = element.cssUnit( x ); if ( unit[ 0 ] > 0 ) { value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; } }); return value; } }); // return an effect options object for the given parameters: function _normalizeArguments( effect, options, speed, callback ) { // allow passing all options as the first parameter if ( $.isPlainObject( effect ) ) { options = effect; effect = effect.effect; } // convert to an object effect = { effect: effect }; // catch (effect, null, ...) if ( options == null ) { options = {}; } // catch (effect, callback) if ( $.isFunction( options ) ) { callback = options; speed = null; options = {}; } // catch (effect, speed, ?) if ( typeof options === "number" || $.fx.speeds[ options ] ) { callback = speed; speed = options; options = {}; } // catch (effect, options, callback) if ( $.isFunction( speed ) ) { callback = speed; speed = null; } // add options to effect if ( options ) { $.extend( effect, options ); } speed = speed || options.duration; effect.duration = $.fx.off ? 0 : typeof speed === "number" ? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default; effect.complete = callback || options.complete; return effect; } function standardSpeed( speed ) { // valid standard speeds if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { return true; } // invalid strings - treat as "normal" speed return typeof speed === "string" && !$.effects.effect[ speed ]; } $.fn.extend({ effect: function( /* effect, options, speed, callback */ ) { var args = _normalizeArguments.apply( this, arguments ), mode = args.mode, queue = args.queue, effectMethod = $.effects.effect[ args.effect ]; if ( $.fx.off || !effectMethod ) { // delegate to the original method (e.g., .show()) if possible if ( mode ) { return this[ mode ]( args.duration, args.complete ); } else { return this.each( function() { if ( args.complete ) { args.complete.call( this ); } }); } } function run( next ) { var elem = $( this ), complete = args.complete, mode = args.mode; function done() { if ( $.isFunction( complete ) ) { complete.call( elem[0] ); } if ( $.isFunction( next ) ) { next(); } } // if the element is hiddden and mode is hide, // or element is visible and mode is show if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { done(); } else { effectMethod.call( elem[0], args, done ); } } return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); }, _show: $.fn.show, show: function( speed ) { if ( standardSpeed( speed ) ) { return this._show.apply( this, arguments ); } else { var args = _normalizeArguments.apply( this, arguments ); args.mode = "show"; return this.effect.call( this, args ); } }, _hide: $.fn.hide, hide: function( speed ) { if ( standardSpeed( speed ) ) { return this._hide.apply( this, arguments ); } else { var args = _normalizeArguments.apply( this, arguments ); args.mode = "hide"; return this.effect.call( this, args ); } }, // jQuery core overloads toggle and creates _toggle __toggle: $.fn.toggle, toggle: function( speed ) { if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { return this.__toggle.apply( this, arguments ); } else { var args = _normalizeArguments.apply( this, arguments ); args.mode = "toggle"; return this.effect.call( this, args ); } }, // helper functions cssUnit: function(key) { var style = this.css( key ), val = []; $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { if ( style.indexOf( unit ) > 0 ) { val = [ parseFloat( style ), unit ]; } }); return val; } }); })(); /******************************************************************************/ /*********************************** EASING ***********************************/ /******************************************************************************/ (function() { // based on easing equations from Robert Penner (http://www.robertpenner.com/easing) var baseEasings = {}; $.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { baseEasings[ name ] = function( p ) { return Math.pow( p, i + 2 ); }; }); $.extend( baseEasings, { Sine: function ( p ) { return 1 - Math.cos( p * Math.PI / 2 ); }, Circ: function ( p ) { return 1 - Math.sqrt( 1 - p * p ); }, Elastic: function( p ) { return p === 0 || p === 1 ? p : -Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 ); }, Back: function( p ) { return p * p * ( 3 * p - 2 ); }, Bounce: function ( p ) { var pow2, bounce = 4; while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); } }); $.each( baseEasings, function( name, easeIn ) { $.easing[ "easeIn" + name ] = easeIn; $.easing[ "easeOut" + name ] = function( p ) { return 1 - easeIn( 1 - p ); }; $.easing[ "easeInOut" + name ] = function( p ) { return p < 0.5 ? easeIn( p * 2 ) / 2 : 1 - easeIn( p * -2 + 2 ) / 2; }; }); })(); })(jQuery)); (function( $, undefined ) { var rvertical = /up|down|vertical/, rpositivemotion = /up|left|vertical|horizontal/; $.effects.effect.blind = function( o, done ) { // Create element var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], mode = $.effects.setMode( el, o.mode || "hide" ), direction = o.direction || "up", vertical = rvertical.test( direction ), ref = vertical ? "height" : "width", ref2 = vertical ? "top" : "left", motion = rpositivemotion.test( direction ), animation = {}, show = mode === "show", wrapper, distance, margin; // if already wrapped, the wrapper's properties are my property. #6245 if ( el.parent().is( ".ui-effects-wrapper" ) ) { $.effects.save( el.parent(), props ); } else { $.effects.save( el, props ); } el.show(); wrapper = $.effects.createWrapper( el ).css({ overflow: "hidden" }); distance = wrapper[ ref ](); margin = parseFloat( wrapper.css( ref2 ) ) || 0; animation[ ref ] = show ? distance : 0; if ( !motion ) { el .css( vertical ? "bottom" : "right", 0 ) .css( vertical ? "top" : "left", "auto" ) .css({ position: "absolute" }); animation[ ref2 ] = show ? margin : distance + margin; } // start at 0 if we are showing if ( show ) { wrapper.css( ref, 0 ); if ( ! motion ) { wrapper.css( ref2, margin + distance ); } } // Animate wrapper.animate( animation, { duration: o.duration, easing: o.easing, queue: false, complete: function() { if ( mode === "hide" ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); (function( $, undefined ) { $.effects.effect.bounce = function( o, done ) { var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], // defaults: mode = $.effects.setMode( el, o.mode || "effect" ), hide = mode === "hide", show = mode === "show", direction = o.direction || "up", distance = o.distance, times = o.times || 5, // number of internal animations anims = times * 2 + ( show || hide ? 1 : 0 ), speed = o.duration / anims, easing = o.easing, // utility: ref = ( direction === "up" || direction === "down" ) ? "top" : "left", motion = ( direction === "up" || direction === "left" ), i, upAnim, downAnim, // we will need to re-assemble the queue to stack our animations in place queue = el.queue(), queuelen = queue.length; // Avoid touching opacity to prevent clearType and PNG issues in IE if ( show || hide ) { props.push( "opacity" ); } $.effects.save( el, props ); el.show(); $.effects.createWrapper( el ); // Create Wrapper // default distance for the BIGGEST bounce is the outer Distance / 3 if ( !distance ) { distance = el[ ref === "top" ? "outerHeight" : "outerWidth" ]() / 3; } if ( show ) { downAnim = { opacity: 1 }; downAnim[ ref ] = 0; // if we are showing, force opacity 0 and set the initial position // then do the "first" animation el.css( "opacity", 0 ) .css( ref, motion ? -distance * 2 : distance * 2 ) .animate( downAnim, speed, easing ); } // start at the smallest distance if we are hiding if ( hide ) { distance = distance / Math.pow( 2, times - 1 ); } downAnim = {}; downAnim[ ref ] = 0; // Bounces up/down/left/right then back to 0 -- times * 2 animations happen here for ( i = 0; i < times; i++ ) { upAnim = {}; upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; el.animate( upAnim, speed, easing ) .animate( downAnim, speed, easing ); distance = hide ? distance * 2 : distance / 2; } // Last Bounce when Hiding if ( hide ) { upAnim = { opacity: 0 }; upAnim[ ref ] = ( motion ? "-=" : "+=" ) + distance; el.animate( upAnim, speed, easing ); } el.queue(function() { if ( hide ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); }); // inject all the animations we just queued to be first in line (after "inprogress") if ( queuelen > 1) { queue.splice.apply( queue, [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); } el.dequeue(); }; })(jQuery); (function( $, undefined ) { $.effects.effect.clip = function( o, done ) { // Create element var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", direction = o.direction || "vertical", vert = direction === "vertical", size = vert ? "height" : "width", position = vert ? "top" : "left", animation = {}, wrapper, animate, distance; // Save & Show $.effects.save( el, props ); el.show(); // Create Wrapper wrapper = $.effects.createWrapper( el ).css({ overflow: "hidden" }); animate = ( el[0].tagName === "IMG" ) ? wrapper : el; distance = animate[ size ](); // Shift if ( show ) { animate.css( size, 0 ); animate.css( position, distance / 2 ); } // Create Animation Object: animation[ size ] = show ? distance : 0; animation[ position ] = show ? 0 : distance / 2; // Animate animate.animate( animation, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( !show ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); (function( $, undefined ) { $.effects.effect.drop = function( o, done ) { var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", direction = o.direction || "left", ref = ( direction === "up" || direction === "down" ) ? "top" : "left", motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg", animation = { opacity: show ? 1 : 0 }, distance; // Adjust $.effects.save( el, props ); el.show(); $.effects.createWrapper( el ); distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2; if ( show ) { el .css( "opacity", 0 ) .css( ref, motion === "pos" ? -distance : distance ); } // Animation animation[ ref ] = ( show ? ( motion === "pos" ? "+=" : "-=" ) : ( motion === "pos" ? "-=" : "+=" ) ) + distance; // Animate el.animate( animation, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( mode === "hide" ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); (function( $, undefined ) { $.effects.effect.explode = function( o, done ) { var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3, cells = rows, el = $( this ), mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", // show and then visibility:hidden the element before calculating offset offset = el.show().css( "visibility", "hidden" ).offset(), // width and height of a piece width = Math.ceil( el.outerWidth() / cells ), height = Math.ceil( el.outerHeight() / rows ), pieces = [], // loop i, j, left, top, mx, my; // children animate complete: function childComplete() { pieces.push( this ); if ( pieces.length === rows * cells ) { animComplete(); } } // clone the element for each row and cell. for( i = 0; i < rows ; i++ ) { // ===> top = offset.top + i * height; my = i - ( rows - 1 ) / 2 ; for( j = 0; j < cells ; j++ ) { // ||| left = offset.left + j * width; mx = j - ( cells - 1 ) / 2 ; // Create a clone of the now hidden main element that will be absolute positioned // within a wrapper div off the -left and -top equal to size of our pieces el .clone() .appendTo( "body" ) .wrap( "
" ) .css({ position: "absolute", visibility: "visible", left: -j * width, top: -i * height }) // select the wrapper - make it overflow: hidden and absolute positioned based on // where the original was located +left and +top equal to the size of pieces .parent() .addClass( "ui-effects-explode" ) .css({ position: "absolute", overflow: "hidden", width: width, height: height, left: left + ( show ? mx * width : 0 ), top: top + ( show ? my * height : 0 ), opacity: show ? 0 : 1 }).animate({ left: left + ( show ? 0 : mx * width ), top: top + ( show ? 0 : my * height ), opacity: show ? 1 : 0 }, o.duration || 500, o.easing, childComplete ); } } function animComplete() { el.css({ visibility: "visible" }); $( pieces ).remove(); if ( !show ) { el.hide(); } done(); } }; })(jQuery); (function( $, undefined ) { $.effects.effect.fade = function( o, done ) { var el = $( this ), mode = $.effects.setMode( el, o.mode || "toggle" ); el.animate({ opacity: mode }, { queue: false, duration: o.duration, easing: o.easing, complete: done }); }; })( jQuery ); (function( $, undefined ) { $.effects.effect.fold = function( o, done ) { // Create element var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", hide = mode === "hide", size = o.size || 15, percent = /([0-9]+)%/.exec( size ), horizFirst = !!o.horizFirst, widthFirst = show !== horizFirst, ref = widthFirst ? [ "width", "height" ] : [ "height", "width" ], duration = o.duration / 2, wrapper, distance, animation1 = {}, animation2 = {}; $.effects.save( el, props ); el.show(); // Create Wrapper wrapper = $.effects.createWrapper( el ).css({ overflow: "hidden" }); distance = widthFirst ? [ wrapper.width(), wrapper.height() ] : [ wrapper.height(), wrapper.width() ]; if ( percent ) { size = parseInt( percent[ 1 ], 10 ) / 100 * distance[ hide ? 0 : 1 ]; } if ( show ) { wrapper.css( horizFirst ? { height: 0, width: size } : { height: size, width: 0 }); } // Animation animation1[ ref[ 0 ] ] = show ? distance[ 0 ] : size; animation2[ ref[ 1 ] ] = show ? distance[ 1 ] : 0; // Animate wrapper .animate( animation1, duration, o.easing ) .animate( animation2, duration, o.easing, function() { if ( hide ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); }); }; })(jQuery); (function( $, undefined ) { $.effects.effect.highlight = function( o, done ) { var elem = $( this ), props = [ "backgroundImage", "backgroundColor", "opacity" ], mode = $.effects.setMode( elem, o.mode || "show" ), animation = { backgroundColor: elem.css( "backgroundColor" ) }; if (mode === "hide") { animation.opacity = 0; } $.effects.save( elem, props ); elem .show() .css({ backgroundImage: "none", backgroundColor: o.color || "#ffff99" }) .animate( animation, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( mode === "hide" ) { elem.hide(); } $.effects.restore( elem, props ); done(); } }); }; })(jQuery); (function( $, undefined ) { $.effects.effect.pulsate = function( o, done ) { var elem = $( this ), mode = $.effects.setMode( elem, o.mode || "show" ), show = mode === "show", hide = mode === "hide", showhide = ( show || mode === "hide" ), // showing or hiding leaves of the "last" animation anims = ( ( o.times || 5 ) * 2 ) + ( showhide ? 1 : 0 ), duration = o.duration / anims, animateTo = 0, queue = elem.queue(), queuelen = queue.length, i; if ( show || !elem.is(":visible")) { elem.css( "opacity", 0 ).show(); animateTo = 1; } // anims - 1 opacity "toggles" for ( i = 1; i < anims; i++ ) { elem.animate({ opacity: animateTo }, duration, o.easing ); animateTo = 1 - animateTo; } elem.animate({ opacity: animateTo }, duration, o.easing); elem.queue(function() { if ( hide ) { elem.hide(); } done(); }); // We just queued up "anims" animations, we need to put them next in the queue if ( queuelen > 1 ) { queue.splice.apply( queue, [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); } elem.dequeue(); }; })(jQuery); (function( $, undefined ) { $.effects.effect.puff = function( o, done ) { var elem = $( this ), mode = $.effects.setMode( elem, o.mode || "hide" ), hide = mode === "hide", percent = parseInt( o.percent, 10 ) || 150, factor = percent / 100, original = { height: elem.height(), width: elem.width(), outerHeight: elem.outerHeight(), outerWidth: elem.outerWidth() }; $.extend( o, { effect: "scale", queue: false, fade: true, mode: mode, complete: done, percent: hide ? percent : 100, from: hide ? original : { height: original.height * factor, width: original.width * factor, outerHeight: original.outerHeight * factor, outerWidth: original.outerWidth * factor } }); elem.effect( o ); }; $.effects.effect.scale = function( o, done ) { // Create element var el = $( this ), options = $.extend( true, {}, o ), mode = $.effects.setMode( el, o.mode || "effect" ), percent = parseInt( o.percent, 10 ) || ( parseInt( o.percent, 10 ) === 0 ? 0 : ( mode === "hide" ? 0 : 100 ) ), direction = o.direction || "both", origin = o.origin, original = { height: el.height(), width: el.width(), outerHeight: el.outerHeight(), outerWidth: el.outerWidth() }, factor = { y: direction !== "horizontal" ? (percent / 100) : 1, x: direction !== "vertical" ? (percent / 100) : 1 }; // We are going to pass this effect to the size effect: options.effect = "size"; options.queue = false; options.complete = done; // Set default origin and restore for show/hide if ( mode !== "effect" ) { options.origin = origin || ["middle","center"]; options.restore = true; } options.from = o.from || ( mode === "show" ? { height: 0, width: 0, outerHeight: 0, outerWidth: 0 } : original ); options.to = { height: original.height * factor.y, width: original.width * factor.x, outerHeight: original.outerHeight * factor.y, outerWidth: original.outerWidth * factor.x }; // Fade option to support puff if ( options.fade ) { if ( mode === "show" ) { options.from.opacity = 0; options.to.opacity = 1; } if ( mode === "hide" ) { options.from.opacity = 1; options.to.opacity = 0; } } // Animate el.effect( options ); }; $.effects.effect.size = function( o, done ) { // Create element var original, baseline, factor, el = $( this ), props0 = [ "position", "top", "bottom", "left", "right", "width", "height", "overflow", "opacity" ], // Always restore props1 = [ "position", "top", "bottom", "left", "right", "overflow", "opacity" ], // Copy for children props2 = [ "width", "height", "overflow" ], cProps = [ "fontSize" ], vProps = [ "borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom" ], hProps = [ "borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight" ], // Set options mode = $.effects.setMode( el, o.mode || "effect" ), restore = o.restore || mode !== "effect", scale = o.scale || "both", origin = o.origin || [ "middle", "center" ], position = el.css( "position" ), props = restore ? props0 : props1, zero = { height: 0, width: 0, outerHeight: 0, outerWidth: 0 }; if ( mode === "show" ) { el.show(); } original = { height: el.height(), width: el.width(), outerHeight: el.outerHeight(), outerWidth: el.outerWidth() }; if ( o.mode === "toggle" && mode === "show" ) { el.from = o.to || zero; el.to = o.from || original; } else { el.from = o.from || ( mode === "show" ? zero : original ); el.to = o.to || ( mode === "hide" ? zero : original ); } // Set scaling factor factor = { from: { y: el.from.height / original.height, x: el.from.width / original.width }, to: { y: el.to.height / original.height, x: el.to.width / original.width } }; // Scale the css box if ( scale === "box" || scale === "both" ) { // Vertical props scaling if ( factor.from.y !== factor.to.y ) { props = props.concat( vProps ); el.from = $.effects.setTransition( el, vProps, factor.from.y, el.from ); el.to = $.effects.setTransition( el, vProps, factor.to.y, el.to ); } // Horizontal props scaling if ( factor.from.x !== factor.to.x ) { props = props.concat( hProps ); el.from = $.effects.setTransition( el, hProps, factor.from.x, el.from ); el.to = $.effects.setTransition( el, hProps, factor.to.x, el.to ); } } // Scale the content if ( scale === "content" || scale === "both" ) { // Vertical props scaling if ( factor.from.y !== factor.to.y ) { props = props.concat( cProps ).concat( props2 ); el.from = $.effects.setTransition( el, cProps, factor.from.y, el.from ); el.to = $.effects.setTransition( el, cProps, factor.to.y, el.to ); } } $.effects.save( el, props ); el.show(); $.effects.createWrapper( el ); el.css( "overflow", "hidden" ).css( el.from ); // Adjust if (origin) { // Calculate baseline shifts baseline = $.effects.getBaseline( origin, original ); el.from.top = ( original.outerHeight - el.outerHeight() ) * baseline.y; el.from.left = ( original.outerWidth - el.outerWidth() ) * baseline.x; el.to.top = ( original.outerHeight - el.to.outerHeight ) * baseline.y; el.to.left = ( original.outerWidth - el.to.outerWidth ) * baseline.x; } el.css( el.from ); // set top & left // Animate if ( scale === "content" || scale === "both" ) { // Scale the children // Add margins/font-size vProps = vProps.concat([ "marginTop", "marginBottom" ]).concat(cProps); hProps = hProps.concat([ "marginLeft", "marginRight" ]); props2 = props0.concat(vProps).concat(hProps); el.find( "*[width]" ).each( function(){ var child = $( this ), c_original = { height: child.height(), width: child.width(), outerHeight: child.outerHeight(), outerWidth: child.outerWidth() }; if (restore) { $.effects.save(child, props2); } child.from = { height: c_original.height * factor.from.y, width: c_original.width * factor.from.x, outerHeight: c_original.outerHeight * factor.from.y, outerWidth: c_original.outerWidth * factor.from.x }; child.to = { height: c_original.height * factor.to.y, width: c_original.width * factor.to.x, outerHeight: c_original.height * factor.to.y, outerWidth: c_original.width * factor.to.x }; // Vertical props scaling if ( factor.from.y !== factor.to.y ) { child.from = $.effects.setTransition( child, vProps, factor.from.y, child.from ); child.to = $.effects.setTransition( child, vProps, factor.to.y, child.to ); } // Horizontal props scaling if ( factor.from.x !== factor.to.x ) { child.from = $.effects.setTransition( child, hProps, factor.from.x, child.from ); child.to = $.effects.setTransition( child, hProps, factor.to.x, child.to ); } // Animate children child.css( child.from ); child.animate( child.to, o.duration, o.easing, function() { // Restore children if ( restore ) { $.effects.restore( child, props2 ); } }); }); } // Animate el.animate( el.to, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( el.to.opacity === 0 ) { el.css( "opacity", el.from.opacity ); } if( mode === "hide" ) { el.hide(); } $.effects.restore( el, props ); if ( !restore ) { // we need to calculate our new positioning based on the scaling if ( position === "static" ) { el.css({ position: "relative", top: el.to.top, left: el.to.left }); } else { $.each([ "top", "left" ], function( idx, pos ) { el.css( pos, function( _, str ) { var val = parseInt( str, 10 ), toRef = idx ? el.to.left : el.to.top; // if original was "auto", recalculate the new value from wrapper if ( str === "auto" ) { return toRef + "px"; } return val + toRef + "px"; }); }); } } $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); (function( $, undefined ) { $.effects.effect.shake = function( o, done ) { var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], mode = $.effects.setMode( el, o.mode || "effect" ), direction = o.direction || "left", distance = o.distance || 20, times = o.times || 3, anims = times * 2 + 1, speed = Math.round(o.duration/anims), ref = (direction === "up" || direction === "down") ? "top" : "left", positiveMotion = (direction === "up" || direction === "left"), animation = {}, animation1 = {}, animation2 = {}, i, // we will need to re-assemble the queue to stack our animations in place queue = el.queue(), queuelen = queue.length; $.effects.save( el, props ); el.show(); $.effects.createWrapper( el ); // Animation animation[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance; animation1[ ref ] = ( positiveMotion ? "+=" : "-=" ) + distance * 2; animation2[ ref ] = ( positiveMotion ? "-=" : "+=" ) + distance * 2; // Animate el.animate( animation, speed, o.easing ); // Shakes for ( i = 1; i < times; i++ ) { el.animate( animation1, speed, o.easing ).animate( animation2, speed, o.easing ); } el .animate( animation1, speed, o.easing ) .animate( animation, speed / 2, o.easing ) .queue(function() { if ( mode === "hide" ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); }); // inject all the animations we just queued to be first in line (after "inprogress") if ( queuelen > 1) { queue.splice.apply( queue, [ 1, 0 ].concat( queue.splice( queuelen, anims + 1 ) ) ); } el.dequeue(); }; })(jQuery); (function( $, undefined ) { $.effects.effect.slide = function( o, done ) { // Create element var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "width", "height" ], mode = $.effects.setMode( el, o.mode || "show" ), show = mode === "show", direction = o.direction || "left", ref = (direction === "up" || direction === "down") ? "top" : "left", positiveMotion = (direction === "up" || direction === "left"), distance, animation = {}; // Adjust $.effects.save( el, props ); el.show(); distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ); $.effects.createWrapper( el ).css({ overflow: "hidden" }); if ( show ) { el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance ); } // Animation animation[ ref ] = ( show ? ( positiveMotion ? "+=" : "-=") : ( positiveMotion ? "-=" : "+=")) + distance; // Animate el.animate( animation, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( mode === "hide" ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); (function( $, undefined ) { $.effects.effect.transfer = function( o, done ) { var elem = $( this ), target = $( o.to ), targetFixed = target.css( "position" ) === "fixed", body = $("body"), fixTop = targetFixed ? body.scrollTop() : 0, fixLeft = targetFixed ? body.scrollLeft() : 0, endPosition = target.offset(), animation = { top: endPosition.top - fixTop , left: endPosition.left - fixLeft , height: target.innerHeight(), width: target.innerWidth() }, startPosition = elem.offset(), transfer = $( "
" ) .appendTo( document.body ) .addClass( o.className ) .css({ top: startPosition.top - fixTop , left: startPosition.left - fixLeft , height: elem.innerHeight(), width: elem.innerWidth(), position: targetFixed ? "fixed" : "absolute" }) .animate( animation, o.duration, o.easing, function() { transfer.remove(); done(); }); }; })(jQuery); (function( $, undefined ) { $.widget( "ui.menu", { version: "1.10.1", defaultElement: "
    ", delay: 300, options: { icons: { submenu: "ui-icon-carat-1-e" }, menus: "ul", position: { my: "left top", at: "right top" }, role: "menu", // callbacks blur: null, focus: null, select: null }, _create: function() { this.activeMenu = this.element; // flag used to prevent firing of the click handler // as the event bubbles up through nested menus this.mouseHandled = false; this.element .uniqueId() .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ) .attr({ role: this.options.role, tabIndex: 0 }) // need to catch all clicks on disabled menu // not possible through _on .bind( "click" + this.eventNamespace, $.proxy(function( event ) { if ( this.options.disabled ) { event.preventDefault(); } }, this )); if ( this.options.disabled ) { this.element .addClass( "ui-state-disabled" ) .attr( "aria-disabled", "true" ); } this._on({ // Prevent focus from sticking to links inside menu after clicking // them (focus should always stay on UL during navigation). "mousedown .ui-menu-item > a": function( event ) { event.preventDefault(); }, "click .ui-state-disabled > a": function( event ) { event.preventDefault(); }, "click .ui-menu-item:has(a)": function( event ) { var target = $( event.target ).closest( ".ui-menu-item" ); if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) { this.mouseHandled = true; this.select( event ); // Open submenu on click if ( target.has( ".ui-menu" ).length ) { this.expand( event ); } else if ( !this.element.is( ":focus" ) ) { // Redirect focus to the menu this.element.trigger( "focus", [ true ] ); // If the active item is on the top level, let it stay active. // Otherwise, blur the active item since it is no longer visible. if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) { clearTimeout( this.timer ); } } } }, "mouseenter .ui-menu-item": function( event ) { var target = $( event.currentTarget ); // Remove ui-state-active class from siblings of the newly focused menu item // to avoid a jump caused by adjacent elements both having a class with a border target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" ); this.focus( event, target ); }, mouseleave: "collapseAll", "mouseleave .ui-menu": "collapseAll", focus: function( event, keepActiveItem ) { // If there's already an active item, keep it active // If not, activate the first item var item = this.active || this.element.children( ".ui-menu-item" ).eq( 0 ); if ( !keepActiveItem ) { this.focus( event, item ); } }, blur: function( event ) { this._delay(function() { if ( !$.contains( this.element[0], this.document[0].activeElement ) ) { this.collapseAll( event ); } }); }, keydown: "_keydown" }); this.refresh(); // Clicks outside of a menu collapse any open menus this._on( this.document, { click: function( event ) { if ( !$( event.target ).closest( ".ui-menu" ).length ) { this.collapseAll( event ); } // Reset the mouseHandled flag this.mouseHandled = false; } }); }, _destroy: function() { // Destroy (sub)menus this.element .removeAttr( "aria-activedescendant" ) .find( ".ui-menu" ).addBack() .removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" ) .removeAttr( "role" ) .removeAttr( "tabIndex" ) .removeAttr( "aria-labelledby" ) .removeAttr( "aria-expanded" ) .removeAttr( "aria-hidden" ) .removeAttr( "aria-disabled" ) .removeUniqueId() .show(); // Destroy menu items this.element.find( ".ui-menu-item" ) .removeClass( "ui-menu-item" ) .removeAttr( "role" ) .removeAttr( "aria-disabled" ) .children( "a" ) .removeUniqueId() .removeClass( "ui-corner-all ui-state-hover" ) .removeAttr( "tabIndex" ) .removeAttr( "role" ) .removeAttr( "aria-haspopup" ) .children().each( function() { var elem = $( this ); if ( elem.data( "ui-menu-submenu-carat" ) ) { elem.remove(); } }); // Destroy menu dividers this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" ); }, _keydown: function( event ) { /*jshint maxcomplexity:20*/ var match, prev, character, skip, regex, preventDefault = true; function escape( value ) { return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); } switch ( event.keyCode ) { case $.ui.keyCode.PAGE_UP: this.previousPage( event ); break; case $.ui.keyCode.PAGE_DOWN: this.nextPage( event ); break; case $.ui.keyCode.HOME: this._move( "first", "first", event ); break; case $.ui.keyCode.END: this._move( "last", "last", event ); break; case $.ui.keyCode.UP: this.previous( event ); break; case $.ui.keyCode.DOWN: this.next( event ); break; case $.ui.keyCode.LEFT: this.collapse( event ); break; case $.ui.keyCode.RIGHT: if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { this.expand( event ); } break; case $.ui.keyCode.ENTER: case $.ui.keyCode.SPACE: this._activate( event ); break; case $.ui.keyCode.ESCAPE: this.collapse( event ); break; default: preventDefault = false; prev = this.previousFilter || ""; character = String.fromCharCode( event.keyCode ); skip = false; clearTimeout( this.filterTimer ); if ( character === prev ) { skip = true; } else { character = prev + character; } regex = new RegExp( "^" + escape( character ), "i" ); match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { return regex.test( $( this ).children( "a" ).text() ); }); match = skip && match.index( this.active.next() ) !== -1 ? this.active.nextAll( ".ui-menu-item" ) : match; // If no matches on the current filter, reset to the last character pressed // to move down the menu to the first item that starts with that character if ( !match.length ) { character = String.fromCharCode( event.keyCode ); regex = new RegExp( "^" + escape( character ), "i" ); match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { return regex.test( $( this ).children( "a" ).text() ); }); } if ( match.length ) { this.focus( event, match ); if ( match.length > 1 ) { this.previousFilter = character; this.filterTimer = this._delay(function() { delete this.previousFilter; }, 1000 ); } else { delete this.previousFilter; } } else { delete this.previousFilter; } } if ( preventDefault ) { event.preventDefault(); } }, _activate: function( event ) { if ( !this.active.is( ".ui-state-disabled" ) ) { if ( this.active.children( "a[aria-haspopup='true']" ).length ) { this.expand( event ); } else { this.select( event ); } } }, refresh: function() { var menus, icon = this.options.icons.submenu, submenus = this.element.find( this.options.menus ); // Initialize nested menus submenus.filter( ":not(.ui-menu)" ) .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) .hide() .attr({ role: this.options.role, "aria-hidden": "true", "aria-expanded": "false" }) .each(function() { var menu = $( this ), item = menu.prev( "a" ), submenuCarat = $( "" ) .addClass( "ui-menu-icon ui-icon " + icon ) .data( "ui-menu-submenu-carat", true ); item .attr( "aria-haspopup", "true" ) .prepend( submenuCarat ); menu.attr( "aria-labelledby", item.attr( "id" ) ); }); menus = submenus.add( this.element ); // Don't refresh list items that are already adapted menus.children( ":not(.ui-menu-item):has(a)" ) .addClass( "ui-menu-item" ) .attr( "role", "presentation" ) .children( "a" ) .uniqueId() .addClass( "ui-corner-all" ) .attr({ tabIndex: -1, role: this._itemRole() }); // Initialize unlinked menu-items containing spaces and/or dashes only as dividers menus.children( ":not(.ui-menu-item)" ).each(function() { var item = $( this ); // hyphen, em dash, en dash if ( !/[^\-\u2014\u2013\s]/.test( item.text() ) ) { item.addClass( "ui-widget-content ui-menu-divider" ); } }); // Add aria-disabled attribute to any disabled menu item menus.children( ".ui-state-disabled" ).attr( "aria-disabled", "true" ); // If the active item has been removed, blur the menu if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { this.blur(); } }, _itemRole: function() { return { menu: "menuitem", listbox: "option" }[ this.options.role ]; }, _setOption: function( key, value ) { if ( key === "icons" ) { this.element.find( ".ui-menu-icon" ) .removeClass( this.options.icons.submenu ) .addClass( value.submenu ); } this._super( key, value ); }, focus: function( event, item ) { var nested, focused; this.blur( event, event && event.type === "focus" ); this._scrollIntoView( item ); this.active = item.first(); focused = this.active.children( "a" ).addClass( "ui-state-focus" ); // Only update aria-activedescendant if there's a role // otherwise we assume focus is managed elsewhere if ( this.options.role ) { this.element.attr( "aria-activedescendant", focused.attr( "id" ) ); } // Highlight active parent menu item, if any this.active .parent() .closest( ".ui-menu-item" ) .children( "a:first" ) .addClass( "ui-state-active" ); if ( event && event.type === "keydown" ) { this._close(); } else { this.timer = this._delay(function() { this._close(); }, this.delay ); } nested = item.children( ".ui-menu" ); if ( nested.length && ( /^mouse/.test( event.type ) ) ) { this._startOpening(nested); } this.activeMenu = item.parent(); this._trigger( "focus", event, { item: item } ); }, _scrollIntoView: function( item ) { var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; if ( this._hasScroll() ) { borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0; paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0; offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; scroll = this.activeMenu.scrollTop(); elementHeight = this.activeMenu.height(); itemHeight = item.height(); if ( offset < 0 ) { this.activeMenu.scrollTop( scroll + offset ); } else if ( offset + itemHeight > elementHeight ) { this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); } } }, blur: function( event, fromFocus ) { if ( !fromFocus ) { clearTimeout( this.timer ); } if ( !this.active ) { return; } this.active.children( "a" ).removeClass( "ui-state-focus" ); this.active = null; this._trigger( "blur", event, { item: this.active } ); }, _startOpening: function( submenu ) { clearTimeout( this.timer ); // Don't open if already open fixes a Firefox bug that caused a .5 pixel // shift in the submenu position when mousing over the carat icon if ( submenu.attr( "aria-hidden" ) !== "true" ) { return; } this.timer = this._delay(function() { this._close(); this._open( submenu ); }, this.delay ); }, _open: function( submenu ) { var position = $.extend({ of: this.active }, this.options.position ); clearTimeout( this.timer ); this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) ) .hide() .attr( "aria-hidden", "true" ); submenu .show() .removeAttr( "aria-hidden" ) .attr( "aria-expanded", "true" ) .position( position ); }, collapseAll: function( event, all ) { clearTimeout( this.timer ); this.timer = this._delay(function() { // If we were passed an event, look for the submenu that contains the event var currentMenu = all ? this.element : $( event && event.target ).closest( this.element.find( ".ui-menu" ) ); // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway if ( !currentMenu.length ) { currentMenu = this.element; } this._close( currentMenu ); this.blur( event ); this.activeMenu = currentMenu; }, this.delay ); }, // With no arguments, closes the currently active menu - if nothing is active // it closes all menus. If passed an argument, it will search for menus BELOW _close: function( startMenu ) { if ( !startMenu ) { startMenu = this.active ? this.active.parent() : this.element; } startMenu .find( ".ui-menu" ) .hide() .attr( "aria-hidden", "true" ) .attr( "aria-expanded", "false" ) .end() .find( "a.ui-state-active" ) .removeClass( "ui-state-active" ); }, collapse: function( event ) { var newItem = this.active && this.active.parent().closest( ".ui-menu-item", this.element ); if ( newItem && newItem.length ) { this._close(); this.focus( event, newItem ); } }, expand: function( event ) { var newItem = this.active && this.active .children( ".ui-menu " ) .children( ".ui-menu-item" ) .first(); if ( newItem && newItem.length ) { this._open( newItem.parent() ); // Delay so Firefox will not hide activedescendant change in expanding submenu from AT this._delay(function() { this.focus( event, newItem ); }); } }, next: function( event ) { this._move( "next", "first", event ); }, previous: function( event ) { this._move( "prev", "last", event ); }, isFirstItem: function() { return this.active && !this.active.prevAll( ".ui-menu-item" ).length; }, isLastItem: function() { return this.active && !this.active.nextAll( ".ui-menu-item" ).length; }, _move: function( direction, filter, event ) { var next; if ( this.active ) { if ( direction === "first" || direction === "last" ) { next = this.active [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" ) .eq( -1 ); } else { next = this.active [ direction + "All" ]( ".ui-menu-item" ) .eq( 0 ); } } if ( !next || !next.length || !this.active ) { next = this.activeMenu.children( ".ui-menu-item" )[ filter ](); } this.focus( event, next ); }, nextPage: function( event ) { var item, base, height; if ( !this.active ) { this.next( event ); return; } if ( this.isLastItem() ) { return; } if ( this._hasScroll() ) { base = this.active.offset().top; height = this.element.height(); this.active.nextAll( ".ui-menu-item" ).each(function() { item = $( this ); return item.offset().top - base - height < 0; }); this.focus( event, item ); } else { this.focus( event, this.activeMenu.children( ".ui-menu-item" ) [ !this.active ? "first" : "last" ]() ); } }, previousPage: function( event ) { var item, base, height; if ( !this.active ) { this.next( event ); return; } if ( this.isFirstItem() ) { return; } if ( this._hasScroll() ) { base = this.active.offset().top; height = this.element.height(); this.active.prevAll( ".ui-menu-item" ).each(function() { item = $( this ); return item.offset().top - base + height > 0; }); this.focus( event, item ); } else { this.focus( event, this.activeMenu.children( ".ui-menu-item" ).first() ); } }, _hasScroll: function() { return this.element.outerHeight() < this.element.prop( "scrollHeight" ); }, select: function( event ) { // TODO: It should never be possible to not have an active item at this // point, but the tests don't trigger mouseenter before click. this.active = this.active || $( event.target ).closest( ".ui-menu-item" ); var ui = { item: this.active }; if ( !this.active.has( ".ui-menu" ).length ) { this.collapseAll( event, true ); } this._trigger( "select", event, ui ); } }); }( jQuery )); (function( $, undefined ) { $.widget( "ui.progressbar", { version: "1.10.1", options: { max: 100, value: 0, change: null, complete: null }, min: 0, _create: function() { // Constrain initial value this.oldValue = this.options.value = this._constrainedValue(); this.element .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) .attr({ // Only set static values, aria-valuenow and aria-valuemax are // set inside _refreshValue() role: "progressbar", "aria-valuemin": this.min }); this.valueDiv = $( "
    " ) .appendTo( this.element ); this._refreshValue(); }, _destroy: function() { this.element .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) .removeAttr( "role" ) .removeAttr( "aria-valuemin" ) .removeAttr( "aria-valuemax" ) .removeAttr( "aria-valuenow" ); this.valueDiv.remove(); }, value: function( newValue ) { if ( newValue === undefined ) { return this.options.value; } this.options.value = this._constrainedValue( newValue ); this._refreshValue(); }, _constrainedValue: function( newValue ) { if ( newValue === undefined ) { newValue = this.options.value; } this.indeterminate = newValue === false; // sanitize value if ( typeof newValue !== "number" ) { newValue = 0; } return this.indeterminate ? false : Math.min( this.options.max, Math.max( this.min, newValue ) ); }, _setOptions: function( options ) { // Ensure "value" option is set after other values (like max) var value = options.value; delete options.value; this._super( options ); this.options.value = this._constrainedValue( value ); this._refreshValue(); }, _setOption: function( key, value ) { if ( key === "max" ) { // Don't allow a max less than min value = Math.max( this.min, value ); } this._super( key, value ); }, _percentage: function() { return this.indeterminate ? 100 : 100 * ( this.options.value - this.min ) / ( this.options.max - this.min ); }, _refreshValue: function() { var value = this.options.value, percentage = this._percentage(); this.valueDiv .toggle( this.indeterminate || value > this.min ) .toggleClass( "ui-corner-right", value === this.options.max ) .width( percentage.toFixed(0) + "%" ); this.element.toggleClass( "ui-progressbar-indeterminate", this.indeterminate ); if ( this.indeterminate ) { this.element.removeAttr( "aria-valuenow" ); if ( !this.overlayDiv ) { this.overlayDiv = $( "
    " ).appendTo( this.valueDiv ); } } else { this.element.attr({ "aria-valuemax": this.options.max, "aria-valuenow": value }); if ( this.overlayDiv ) { this.overlayDiv.remove(); this.overlayDiv = null; } } if ( this.oldValue !== value ) { this.oldValue = value; this._trigger( "change" ); } if ( value === this.options.max ) { this._trigger( "complete" ); } } }); })( jQuery ); (function( $, undefined ) { function num(v) { return parseInt(v, 10) || 0; } function isNumber(value) { return !isNaN(parseInt(value, 10)); } $.widget("ui.resizable", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "resize", options: { alsoResize: false, animate: false, animateDuration: "slow", animateEasing: "swing", aspectRatio: false, autoHide: false, containment: false, ghost: false, grid: false, handles: "e,s,se", helper: false, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, // See #7960 zIndex: 90, // callbacks resize: null, start: null, stop: null }, _create: function() { var n, i, handle, axis, hname, that = this, o = this.options; this.element.addClass("ui-resizable"); $.extend(this, { _aspectRatio: !!(o.aspectRatio), aspectRatio: o.aspectRatio, originalElement: this.element, _proportionallyResizeElements: [], _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null }); //Wrap the element if it cannot hold child nodes if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { //Create a wrapper element and set the wrapper to the new current internal element this.element.wrap( $("
    ").css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(), top: this.element.css("top"), left: this.element.css("left") }) ); //Overwrite the original this.element this.element = this.element.parent().data( "ui-resizable", this.element.data("ui-resizable") ); this.elementIsWrapper = true; //Move margins to the wrapper this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0}); //Prevent Safari textarea resize this.originalResizeStyle = this.originalElement.css("resize"); this.originalElement.css("resize", "none"); //Push the actual element to our proportionallyResize internal array this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); // avoid IE jump (hard set the margin) this.originalElement.css({ margin: this.originalElement.css("margin") }); // fix handlers offset this._proportionallyResize(); } this.handles = o.handles || (!$(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" }); if(this.handles.constructor === String) { if ( this.handles === "all") { this.handles = "n,e,s,w,se,sw,ne,nw"; } n = this.handles.split(","); this.handles = {}; for(i = 0; i < n.length; i++) { handle = $.trim(n[i]); hname = "ui-resizable-"+handle; axis = $("
    "); // Apply zIndex to all handles - see #7960 axis.css({ zIndex: o.zIndex }); //TODO : What's going on here? if ("se" === handle) { axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); } //Insert into internal handles object and append to element this.handles[handle] = ".ui-resizable-"+handle; this.element.append(axis); } } this._renderAxis = function(target) { var i, axis, padPos, padWrapper; target = target || this.element; for(i in this.handles) { if(this.handles[i].constructor === String) { this.handles[i] = $(this.handles[i], this.element).show(); } //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls) if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { axis = $(this.handles[i], this.element); //Checking the correct pad and border padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); //The padding type i have to apply... padPos = [ "padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left" ].join(""); target.css(padPos, padWrapper); this._proportionallyResize(); } //TODO: What's that good for? There's not anything to be executed left if(!$(this.handles[i]).length) { continue; } } }; //TODO: make renderAxis a prototype function this._renderAxis(this.element); this._handles = $(".ui-resizable-handle", this.element) .disableSelection(); //Matching axis name this._handles.mouseover(function() { if (!that.resizing) { if (this.className) { axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); } //Axis, default = se that.axis = axis && axis[1] ? axis[1] : "se"; } }); //If we want to auto hide the elements if (o.autoHide) { this._handles.hide(); $(this.element) .addClass("ui-resizable-autohide") .mouseenter(function() { if (o.disabled) { return; } $(this).removeClass("ui-resizable-autohide"); that._handles.show(); }) .mouseleave(function(){ if (o.disabled) { return; } if (!that.resizing) { $(this).addClass("ui-resizable-autohide"); that._handles.hide(); } }); } //Initialize the mouse interaction this._mouseInit(); }, _destroy: function() { this._mouseDestroy(); var wrapper, _destroy = function(exp) { $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") .removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove(); }; //TODO: Unwrap at same DOM position if (this.elementIsWrapper) { _destroy(this.element); wrapper = this.element; this.originalElement.css({ position: wrapper.css("position"), width: wrapper.outerWidth(), height: wrapper.outerHeight(), top: wrapper.css("top"), left: wrapper.css("left") }).insertAfter( wrapper ); wrapper.remove(); } this.originalElement.css("resize", this.originalResizeStyle); _destroy(this.originalElement); return this; }, _mouseCapture: function(event) { var i, handle, capture = false; for (i in this.handles) { handle = $(this.handles[i])[0]; if (handle === event.target || $.contains(handle, event.target)) { capture = true; } } return !this.options.disabled && capture; }, _mouseStart: function(event) { var curleft, curtop, cursor, o = this.options, iniPos = this.element.position(), el = this.element; this.resizing = true; // bugfix for http://dev.jquery.com/ticket/1749 if ( (/absolute/).test( el.css("position") ) ) { el.css({ position: "absolute", top: el.css("top"), left: el.css("left") }); } else if (el.is(".ui-draggable")) { el.css({ position: "absolute", top: iniPos.top, left: iniPos.left }); } this._renderProxy(); curleft = num(this.helper.css("left")); curtop = num(this.helper.css("top")); if (o.containment) { curleft += $(o.containment).scrollLeft() || 0; curtop += $(o.containment).scrollTop() || 0; } //Store needed variables this.offset = this.helper.offset(); this.position = { left: curleft, top: curtop }; this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; this.originalPosition = { left: curleft, top: curtop }; this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; this.originalMousePosition = { left: event.pageX, top: event.pageY }; //Aspect Ratio this.aspectRatio = (typeof o.aspectRatio === "number") ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); cursor = $(".ui-resizable-" + this.axis).css("cursor"); $("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor); el.addClass("ui-resizable-resizing"); this._propagate("start", event); return true; }, _mouseDrag: function(event) { //Increase performance, avoid regex var data, el = this.helper, props = {}, smp = this.originalMousePosition, a = this.axis, prevTop = this.position.top, prevLeft = this.position.left, prevWidth = this.size.width, prevHeight = this.size.height, dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0, trigger = this._change[a]; if (!trigger) { return false; } // Calculate the attrs that will be change data = trigger.apply(this, [event, dx, dy]); // Put this in the mouseDrag handler since the user can start pressing shift while resizing this._updateVirtualBoundaries(event.shiftKey); if (this._aspectRatio || event.shiftKey) { data = this._updateRatio(data, event); } data = this._respectSize(data, event); this._updateCache(data); // plugins callbacks need to be called first this._propagate("resize", event); if (this.position.top !== prevTop) { props.top = this.position.top + "px"; } if (this.position.left !== prevLeft) { props.left = this.position.left + "px"; } if (this.size.width !== prevWidth) { props.width = this.size.width + "px"; } if (this.size.height !== prevHeight) { props.height = this.size.height + "px"; } el.css(props); if (!this._helper && this._proportionallyResizeElements.length) { this._proportionallyResize(); } // Call the user callback if the element was resized if ( ! $.isEmptyObject(props) ) { this._trigger("resize", event, this.ui()); } return false; }, _mouseStop: function(event) { this.resizing = false; var pr, ista, soffseth, soffsetw, s, left, top, o = this.options, that = this; if(this._helper) { pr = this._proportionallyResizeElements; ista = pr.length && (/textarea/i).test(pr[0].nodeName); soffseth = ista && $.ui.hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height; soffsetw = ista ? 0 : that.sizeDiff.width; s = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) }; left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null; top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; if (!o.animate) { this.element.css($.extend(s, { top: top, left: left })); } that.helper.height(that.size.height); that.helper.width(that.size.width); if (this._helper && !o.animate) { this._proportionallyResize(); } } $("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing"); this._propagate("stop", event); if (this._helper) { this.helper.remove(); } return false; }, _updateVirtualBoundaries: function(forceAspectRatio) { var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, o = this.options; b = { minWidth: isNumber(o.minWidth) ? o.minWidth : 0, maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity, minHeight: isNumber(o.minHeight) ? o.minHeight : 0, maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity }; if(this._aspectRatio || forceAspectRatio) { // We want to create an enclosing box whose aspect ration is the requested one // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension pMinWidth = b.minHeight * this.aspectRatio; pMinHeight = b.minWidth / this.aspectRatio; pMaxWidth = b.maxHeight * this.aspectRatio; pMaxHeight = b.maxWidth / this.aspectRatio; if(pMinWidth > b.minWidth) { b.minWidth = pMinWidth; } if(pMinHeight > b.minHeight) { b.minHeight = pMinHeight; } if(pMaxWidth < b.maxWidth) { b.maxWidth = pMaxWidth; } if(pMaxHeight < b.maxHeight) { b.maxHeight = pMaxHeight; } } this._vBoundaries = b; }, _updateCache: function(data) { this.offset = this.helper.offset(); if (isNumber(data.left)) { this.position.left = data.left; } if (isNumber(data.top)) { this.position.top = data.top; } if (isNumber(data.height)) { this.size.height = data.height; } if (isNumber(data.width)) { this.size.width = data.width; } }, _updateRatio: function( data ) { var cpos = this.position, csize = this.size, a = this.axis; if (isNumber(data.height)) { data.width = (data.height * this.aspectRatio); } else if (isNumber(data.width)) { data.height = (data.width / this.aspectRatio); } if (a === "sw") { data.left = cpos.left + (csize.width - data.width); data.top = null; } if (a === "nw") { data.top = cpos.top + (csize.height - data.height); data.left = cpos.left + (csize.width - data.width); } return data; }, _respectSize: function( data ) { var o = this._vBoundaries, a = this.axis, ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height), dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height, cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); if (isminw) { data.width = o.minWidth; } if (isminh) { data.height = o.minHeight; } if (ismaxw) { data.width = o.maxWidth; } if (ismaxh) { data.height = o.maxHeight; } if (isminw && cw) { data.left = dw - o.minWidth; } if (ismaxw && cw) { data.left = dw - o.maxWidth; } if (isminh && ch) { data.top = dh - o.minHeight; } if (ismaxh && ch) { data.top = dh - o.maxHeight; } // fixing jump error on top/left - bug #2330 if (!data.width && !data.height && !data.left && data.top) { data.top = null; } else if (!data.width && !data.height && !data.top && data.left) { data.left = null; } return data; }, _proportionallyResize: function() { if (!this._proportionallyResizeElements.length) { return; } var i, j, borders, paddings, prel, element = this.helper || this.element; for ( i=0; i < this._proportionallyResizeElements.length; i++) { prel = this._proportionallyResizeElements[i]; if (!this.borderDif) { this.borderDif = []; borders = [prel.css("borderTopWidth"), prel.css("borderRightWidth"), prel.css("borderBottomWidth"), prel.css("borderLeftWidth")]; paddings = [prel.css("paddingTop"), prel.css("paddingRight"), prel.css("paddingBottom"), prel.css("paddingLeft")]; for ( j = 0; j < borders.length; j++ ) { this.borderDif[ j ] = ( parseInt( borders[ j ], 10 ) || 0 ) + ( parseInt( paddings[ j ], 10 ) || 0 ); } } prel.css({ height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 }); } }, _renderProxy: function() { var el = this.element, o = this.options; this.elementOffset = el.offset(); if(this._helper) { this.helper = this.helper || $("
    "); this.helper.addClass(this._helper).css({ width: this.element.outerWidth() - 1, height: this.element.outerHeight() - 1, position: "absolute", left: this.elementOffset.left +"px", top: this.elementOffset.top +"px", zIndex: ++o.zIndex //TODO: Don't modify option }); this.helper .appendTo("body") .disableSelection(); } else { this.helper = this.element; } }, _change: { e: function(event, dx) { return { width: this.originalSize.width + dx }; }, w: function(event, dx) { var cs = this.originalSize, sp = this.originalPosition; return { left: sp.left + dx, width: cs.width - dx }; }, n: function(event, dx, dy) { var cs = this.originalSize, sp = this.originalPosition; return { top: sp.top + dy, height: cs.height - dy }; }, s: function(event, dx, dy) { return { height: this.originalSize.height + dy }; }, se: function(event, dx, dy) { return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); }, sw: function(event, dx, dy) { return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); }, ne: function(event, dx, dy) { return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); }, nw: function(event, dx, dy) { return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); } }, _propagate: function(n, event) { $.ui.plugin.call(this, n, [event, this.ui()]); (n !== "resize" && this._trigger(n, event, this.ui())); }, plugins: {}, ui: function() { return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition }; } }); /* * Resizable Extensions */ $.ui.plugin.add("resizable", "animate", { stop: function( event ) { var that = $(this).data("ui-resizable"), o = that.options, pr = that._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), soffseth = ista && $.ui.hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width, style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null, top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; that.element.animate( $.extend(style, top && left ? { top: top, left: left } : {}), { duration: o.animateDuration, easing: o.animateEasing, step: function() { var data = { width: parseInt(that.element.css("width"), 10), height: parseInt(that.element.css("height"), 10), top: parseInt(that.element.css("top"), 10), left: parseInt(that.element.css("left"), 10) }; if (pr && pr.length) { $(pr[0]).css({ width: data.width, height: data.height }); } // propagating resize, and updating values for each animation step that._updateCache(data); that._propagate("resize", event); } } ); } }); $.ui.plugin.add("resizable", "containment", { start: function() { var element, p, co, ch, cw, width, height, that = $(this).data("ui-resizable"), o = that.options, el = that.element, oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc; if (!ce) { return; } that.containerElement = $(ce); if (/document/.test(oc) || oc === document) { that.containerOffset = { left: 0, top: 0 }; that.containerPosition = { left: 0, top: 0 }; that.parentData = { element: $(document), left: 0, top: 0, width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight }; } // i'm a node, so compute top, left, right, bottom else { element = $(ce); p = []; $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); }); that.containerOffset = element.offset(); that.containerPosition = element.position(); that.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) }; co = that.containerOffset; ch = that.containerSize.height; cw = that.containerSize.width; width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ); height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch); that.parentData = { element: ce, left: co.left, top: co.top, width: width, height: height }; } }, resize: function( event ) { var woset, hoset, isParent, isOffsetRelative, that = $(this).data("ui-resizable"), o = that.options, co = that.containerOffset, cp = that.position, pRatio = that._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = that.containerElement; if (ce[0] !== document && (/static/).test(ce.css("position"))) { cop = co; } if (cp.left < (that._helper ? co.left : 0)) { that.size.width = that.size.width + (that._helper ? (that.position.left - co.left) : (that.position.left - cop.left)); if (pRatio) { that.size.height = that.size.width / that.aspectRatio; } that.position.left = o.helper ? co.left : 0; } if (cp.top < (that._helper ? co.top : 0)) { that.size.height = that.size.height + (that._helper ? (that.position.top - co.top) : that.position.top); if (pRatio) { that.size.width = that.size.height * that.aspectRatio; } that.position.top = that._helper ? co.top : 0; } that.offset.left = that.parentData.left+that.position.left; that.offset.top = that.parentData.top+that.position.top; woset = Math.abs( (that._helper ? that.offset.left - cop.left : (that.offset.left - cop.left)) + that.sizeDiff.width ); hoset = Math.abs( (that._helper ? that.offset.top - cop.top : (that.offset.top - co.top)) + that.sizeDiff.height ); isParent = that.containerElement.get(0) === that.element.parent().get(0); isOffsetRelative = /relative|absolute/.test(that.containerElement.css("position")); if(isParent && isOffsetRelative) { woset -= that.parentData.left; } if (woset + that.size.width >= that.parentData.width) { that.size.width = that.parentData.width - woset; if (pRatio) { that.size.height = that.size.width / that.aspectRatio; } } if (hoset + that.size.height >= that.parentData.height) { that.size.height = that.parentData.height - hoset; if (pRatio) { that.size.width = that.size.height * that.aspectRatio; } } }, stop: function(){ var that = $(this).data("ui-resizable"), o = that.options, co = that.containerOffset, cop = that.containerPosition, ce = that.containerElement, helper = $(that.helper), ho = helper.offset(), w = helper.outerWidth() - that.sizeDiff.width, h = helper.outerHeight() - that.sizeDiff.height; if (that._helper && !o.animate && (/relative/).test(ce.css("position"))) { $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); } if (that._helper && !o.animate && (/static/).test(ce.css("position"))) { $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); } } }); $.ui.plugin.add("resizable", "alsoResize", { start: function () { var that = $(this).data("ui-resizable"), o = that.options, _store = function (exp) { $(exp).each(function() { var el = $(this); el.data("ui-resizable-alsoresize", { width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) }); }); }; if (typeof(o.alsoResize) === "object" && !o.alsoResize.parentNode) { if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } else { $.each(o.alsoResize, function (exp) { _store(exp); }); } }else{ _store(o.alsoResize); } }, resize: function (event, ui) { var that = $(this).data("ui-resizable"), o = that.options, os = that.originalSize, op = that.originalPosition, delta = { height: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0, top: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0 }, _alsoResize = function (exp, c) { $(exp).each(function() { var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; $.each(css, function (i, prop) { var sum = (start[prop]||0) + (delta[prop]||0); if (sum && sum >= 0) { style[prop] = sum || null; } }); el.css(style); }); }; if (typeof(o.alsoResize) === "object" && !o.alsoResize.nodeType) { $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); }else{ _alsoResize(o.alsoResize); } }, stop: function () { $(this).removeData("resizable-alsoresize"); } }); $.ui.plugin.add("resizable", "ghost", { start: function() { var that = $(this).data("ui-resizable"), o = that.options, cs = that.size; that.ghost = that.originalElement.clone(); that.ghost .css({ opacity: 0.25, display: "block", position: "relative", height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) .addClass("ui-resizable-ghost") .addClass(typeof o.ghost === "string" ? o.ghost : ""); that.ghost.appendTo(that.helper); }, resize: function(){ var that = $(this).data("ui-resizable"); if (that.ghost) { that.ghost.css({ position: "relative", height: that.size.height, width: that.size.width }); } }, stop: function() { var that = $(this).data("ui-resizable"); if (that.ghost && that.helper) { that.helper.get(0).removeChild(that.ghost.get(0)); } } }); $.ui.plugin.add("resizable", "grid", { resize: function() { var that = $(this).data("ui-resizable"), o = that.options, cs = that.size, os = that.originalSize, op = that.originalPosition, a = that.axis, grid = typeof o.grid === "number" ? [o.grid, o.grid] : o.grid, gridX = (grid[0]||1), gridY = (grid[1]||1), ox = Math.round((cs.width - os.width) / gridX) * gridX, oy = Math.round((cs.height - os.height) / gridY) * gridY, newWidth = os.width + ox, newHeight = os.height + oy, isMaxWidth = o.maxWidth && (o.maxWidth < newWidth), isMaxHeight = o.maxHeight && (o.maxHeight < newHeight), isMinWidth = o.minWidth && (o.minWidth > newWidth), isMinHeight = o.minHeight && (o.minHeight > newHeight); o.grid = grid; if (isMinWidth) { newWidth = newWidth + gridX; } if (isMinHeight) { newHeight = newHeight + gridY; } if (isMaxWidth) { newWidth = newWidth - gridX; } if (isMaxHeight) { newHeight = newHeight - gridY; } if (/^(se|s|e)$/.test(a)) { that.size.width = newWidth; that.size.height = newHeight; } else if (/^(ne)$/.test(a)) { that.size.width = newWidth; that.size.height = newHeight; that.position.top = op.top - oy; } else if (/^(sw)$/.test(a)) { that.size.width = newWidth; that.size.height = newHeight; that.position.left = op.left - ox; } else { that.size.width = newWidth; that.size.height = newHeight; that.position.top = op.top - oy; that.position.left = op.left - ox; } } }); })(jQuery); (function( $, undefined ) { $.widget("ui.selectable", $.ui.mouse, { version: "1.10.1", options: { appendTo: "body", autoRefresh: true, distance: 0, filter: "*", tolerance: "touch", // callbacks selected: null, selecting: null, start: null, stop: null, unselected: null, unselecting: null }, _create: function() { var selectees, that = this; this.element.addClass("ui-selectable"); this.dragged = false; // cache selectee children based on filter this.refresh = function() { selectees = $(that.options.filter, that.element[0]); selectees.addClass("ui-selectee"); selectees.each(function() { var $this = $(this), pos = $this.offset(); $.data(this, "selectable-item", { element: this, $element: $this, left: pos.left, top: pos.top, right: pos.left + $this.outerWidth(), bottom: pos.top + $this.outerHeight(), startselected: false, selected: $this.hasClass("ui-selected"), selecting: $this.hasClass("ui-selecting"), unselecting: $this.hasClass("ui-unselecting") }); }); }; this.refresh(); this.selectees = selectees.addClass("ui-selectee"); this._mouseInit(); this.helper = $("
    "); }, _destroy: function() { this.selectees .removeClass("ui-selectee") .removeData("selectable-item"); this.element .removeClass("ui-selectable ui-selectable-disabled"); this._mouseDestroy(); }, _mouseStart: function(event) { var that = this, options = this.options; this.opos = [event.pageX, event.pageY]; if (this.options.disabled) { return; } this.selectees = $(options.filter, this.element[0]); this._trigger("start", event); $(options.appendTo).append(this.helper); // position helper (lasso) this.helper.css({ "left": event.pageX, "top": event.pageY, "width": 0, "height": 0 }); if (options.autoRefresh) { this.refresh(); } this.selectees.filter(".ui-selected").each(function() { var selectee = $.data(this, "selectable-item"); selectee.startselected = true; if (!event.metaKey && !event.ctrlKey) { selectee.$element.removeClass("ui-selected"); selectee.selected = false; selectee.$element.addClass("ui-unselecting"); selectee.unselecting = true; // selectable UNSELECTING callback that._trigger("unselecting", event, { unselecting: selectee.element }); } }); $(event.target).parents().addBack().each(function() { var doSelect, selectee = $.data(this, "selectable-item"); if (selectee) { doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected"); selectee.$element .removeClass(doSelect ? "ui-unselecting" : "ui-selected") .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); selectee.unselecting = !doSelect; selectee.selecting = doSelect; selectee.selected = doSelect; // selectable (UN)SELECTING callback if (doSelect) { that._trigger("selecting", event, { selecting: selectee.element }); } else { that._trigger("unselecting", event, { unselecting: selectee.element }); } return false; } }); }, _mouseDrag: function(event) { this.dragged = true; if (this.options.disabled) { return; } var tmp, that = this, options = this.options, x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY; if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; } if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; } this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); this.selectees.each(function() { var selectee = $.data(this, "selectable-item"), hit = false; //prevent helper from being selected if appendTo: selectable if (!selectee || selectee.element === that.element[0]) { return; } if (options.tolerance === "touch") { hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); } else if (options.tolerance === "fit") { hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); } if (hit) { // SELECT if (selectee.selected) { selectee.$element.removeClass("ui-selected"); selectee.selected = false; } if (selectee.unselecting) { selectee.$element.removeClass("ui-unselecting"); selectee.unselecting = false; } if (!selectee.selecting) { selectee.$element.addClass("ui-selecting"); selectee.selecting = true; // selectable SELECTING callback that._trigger("selecting", event, { selecting: selectee.element }); } } else { // UNSELECT if (selectee.selecting) { if ((event.metaKey || event.ctrlKey) && selectee.startselected) { selectee.$element.removeClass("ui-selecting"); selectee.selecting = false; selectee.$element.addClass("ui-selected"); selectee.selected = true; } else { selectee.$element.removeClass("ui-selecting"); selectee.selecting = false; if (selectee.startselected) { selectee.$element.addClass("ui-unselecting"); selectee.unselecting = true; } // selectable UNSELECTING callback that._trigger("unselecting", event, { unselecting: selectee.element }); } } if (selectee.selected) { if (!event.metaKey && !event.ctrlKey && !selectee.startselected) { selectee.$element.removeClass("ui-selected"); selectee.selected = false; selectee.$element.addClass("ui-unselecting"); selectee.unselecting = true; // selectable UNSELECTING callback that._trigger("unselecting", event, { unselecting: selectee.element }); } } } }); return false; }, _mouseStop: function(event) { var that = this; this.dragged = false; $(".ui-unselecting", this.element[0]).each(function() { var selectee = $.data(this, "selectable-item"); selectee.$element.removeClass("ui-unselecting"); selectee.unselecting = false; selectee.startselected = false; that._trigger("unselected", event, { unselected: selectee.element }); }); $(".ui-selecting", this.element[0]).each(function() { var selectee = $.data(this, "selectable-item"); selectee.$element.removeClass("ui-selecting").addClass("ui-selected"); selectee.selecting = false; selectee.selected = true; selectee.startselected = true; that._trigger("selected", event, { selected: selectee.element }); }); this._trigger("stop", event); this.helper.remove(); return false; } }); })(jQuery); (function( $, undefined ) { // number of pages in a slider // (how many times can you page up/down to go through the whole range) var numPages = 5; $.widget( "ui.slider", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "slide", options: { animate: false, distance: 0, max: 100, min: 0, orientation: "horizontal", range: false, step: 1, value: 0, values: null, // callbacks change: null, slide: null, start: null, stop: null }, _create: function() { this._keySliding = false; this._mouseSliding = false; this._animateOff = true; this._handleIndex = null; this._detectOrientation(); this._mouseInit(); this.element .addClass( "ui-slider" + " ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all"); this._refresh(); this._setOption( "disabled", this.options.disabled ); this._animateOff = false; }, _refresh: function() { this._createRange(); this._createHandles(); this._setupEvents(); this._refreshValue(); }, _createHandles: function() { var i, handleCount, options = this.options, existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), handle = "", handles = []; handleCount = ( options.values && options.values.length ) || 1; if ( existingHandles.length > handleCount ) { existingHandles.slice( handleCount ).remove(); existingHandles = existingHandles.slice( 0, handleCount ); } for ( i = existingHandles.length; i < handleCount; i++ ) { handles.push( handle ); } this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) ); this.handle = this.handles.eq( 0 ); this.handles.each(function( i ) { $( this ).data( "ui-slider-handle-index", i ); }); }, _createRange: function() { var options = this.options, classes = ""; if ( options.range ) { if ( options.range === true ) { if ( !options.values ) { options.values = [ this._valueMin(), this._valueMin() ]; } else if ( options.values.length && options.values.length !== 2 ) { options.values = [ options.values[0], options.values[0] ]; } else if ( $.isArray( options.values ) ) { options.values = options.values.slice(0); } } if ( !this.range || !this.range.length ) { this.range = $( "
    " ) .appendTo( this.element ); classes = "ui-slider-range" + // note: this isn't the most fittingly semantic framework class for this element, // but worked best visually with a variety of themes " ui-widget-header ui-corner-all"; } else { this.range.removeClass( "ui-slider-range-min ui-slider-range-max" ) // Handle range switching from true to min/max .css({ "left": "", "bottom": "" }); } this.range.addClass( classes + ( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) ); } else { this.range = $([]); } }, _setupEvents: function() { var elements = this.handles.add( this.range ).filter( "a" ); this._off( elements ); this._on( elements, this._handleEvents ); this._hoverable( elements ); this._focusable( elements ); }, _destroy: function() { this.handles.remove(); this.range.remove(); this.element .removeClass( "ui-slider" + " ui-slider-horizontal" + " ui-slider-vertical" + " ui-widget" + " ui-widget-content" + " ui-corner-all" ); this._mouseDestroy(); }, _mouseCapture: function( event ) { var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, that = this, o = this.options; if ( o.disabled ) { return false; } this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }; this.elementOffset = this.element.offset(); position = { x: event.pageX, y: event.pageY }; normValue = this._normValueFromMouse( position ); distance = this._valueMax() - this._valueMin() + 1; this.handles.each(function( i ) { var thisDistance = Math.abs( normValue - that.values(i) ); if (( distance > thisDistance ) || ( distance === thisDistance && (i === that._lastChangedValue || that.values(i) === o.min ))) { distance = thisDistance; closestHandle = $( this ); index = i; } }); allowed = this._start( event, index ); if ( allowed === false ) { return false; } this._mouseSliding = true; this._handleIndex = index; closestHandle .addClass( "ui-state-active" ) .focus(); offset = closestHandle.offset(); mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" ); this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { left: event.pageX - offset.left - ( closestHandle.width() / 2 ), top: event.pageY - offset.top - ( closestHandle.height() / 2 ) - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) }; if ( !this.handles.hasClass( "ui-state-hover" ) ) { this._slide( event, index, normValue ); } this._animateOff = true; return true; }, _mouseStart: function() { return true; }, _mouseDrag: function( event ) { var position = { x: event.pageX, y: event.pageY }, normValue = this._normValueFromMouse( position ); this._slide( event, this._handleIndex, normValue ); return false; }, _mouseStop: function( event ) { this.handles.removeClass( "ui-state-active" ); this._mouseSliding = false; this._stop( event, this._handleIndex ); this._change( event, this._handleIndex ); this._handleIndex = null; this._clickOffset = null; this._animateOff = false; return false; }, _detectOrientation: function() { this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; }, _normValueFromMouse: function( position ) { var pixelTotal, pixelMouse, percentMouse, valueTotal, valueMouse; if ( this.orientation === "horizontal" ) { pixelTotal = this.elementSize.width; pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); } else { pixelTotal = this.elementSize.height; pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); } percentMouse = ( pixelMouse / pixelTotal ); if ( percentMouse > 1 ) { percentMouse = 1; } if ( percentMouse < 0 ) { percentMouse = 0; } if ( this.orientation === "vertical" ) { percentMouse = 1 - percentMouse; } valueTotal = this._valueMax() - this._valueMin(); valueMouse = this._valueMin() + percentMouse * valueTotal; return this._trimAlignValue( valueMouse ); }, _start: function( event, index ) { var uiHash = { handle: this.handles[ index ], value: this.value() }; if ( this.options.values && this.options.values.length ) { uiHash.value = this.values( index ); uiHash.values = this.values(); } return this._trigger( "start", event, uiHash ); }, _slide: function( event, index, newVal ) { var otherVal, newValues, allowed; if ( this.options.values && this.options.values.length ) { otherVal = this.values( index ? 0 : 1 ); if ( ( this.options.values.length === 2 && this.options.range === true ) && ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) ) { newVal = otherVal; } if ( newVal !== this.values( index ) ) { newValues = this.values(); newValues[ index ] = newVal; // A slide can be canceled by returning false from the slide callback allowed = this._trigger( "slide", event, { handle: this.handles[ index ], value: newVal, values: newValues } ); otherVal = this.values( index ? 0 : 1 ); if ( allowed !== false ) { this.values( index, newVal, true ); } } } else { if ( newVal !== this.value() ) { // A slide can be canceled by returning false from the slide callback allowed = this._trigger( "slide", event, { handle: this.handles[ index ], value: newVal } ); if ( allowed !== false ) { this.value( newVal ); } } } }, _stop: function( event, index ) { var uiHash = { handle: this.handles[ index ], value: this.value() }; if ( this.options.values && this.options.values.length ) { uiHash.value = this.values( index ); uiHash.values = this.values(); } this._trigger( "stop", event, uiHash ); }, _change: function( event, index ) { if ( !this._keySliding && !this._mouseSliding ) { var uiHash = { handle: this.handles[ index ], value: this.value() }; if ( this.options.values && this.options.values.length ) { uiHash.value = this.values( index ); uiHash.values = this.values(); } //store the last changed value index for reference when handles overlap this._lastChangedValue = index; this._trigger( "change", event, uiHash ); } }, value: function( newValue ) { if ( arguments.length ) { this.options.value = this._trimAlignValue( newValue ); this._refreshValue(); this._change( null, 0 ); return; } return this._value(); }, values: function( index, newValue ) { var vals, newValues, i; if ( arguments.length > 1 ) { this.options.values[ index ] = this._trimAlignValue( newValue ); this._refreshValue(); this._change( null, index ); return; } if ( arguments.length ) { if ( $.isArray( arguments[ 0 ] ) ) { vals = this.options.values; newValues = arguments[ 0 ]; for ( i = 0; i < vals.length; i += 1 ) { vals[ i ] = this._trimAlignValue( newValues[ i ] ); this._change( null, i ); } this._refreshValue(); } else { if ( this.options.values && this.options.values.length ) { return this._values( index ); } else { return this.value(); } } } else { return this._values(); } }, _setOption: function( key, value ) { var i, valsLength = 0; if ( key === "range" && this.options.range === true ) { if ( value === "min" ) { this.options.value = this._values( 0 ); this.options.values = null; } else if ( value === "max" ) { this.options.value = this._values( this.options.values.length-1 ); this.options.values = null; } } if ( $.isArray( this.options.values ) ) { valsLength = this.options.values.length; } $.Widget.prototype._setOption.apply( this, arguments ); switch ( key ) { case "orientation": this._detectOrientation(); this.element .removeClass( "ui-slider-horizontal ui-slider-vertical" ) .addClass( "ui-slider-" + this.orientation ); this._refreshValue(); break; case "value": this._animateOff = true; this._refreshValue(); this._change( null, 0 ); this._animateOff = false; break; case "values": this._animateOff = true; this._refreshValue(); for ( i = 0; i < valsLength; i += 1 ) { this._change( null, i ); } this._animateOff = false; break; case "min": case "max": this._animateOff = true; this._refreshValue(); this._animateOff = false; break; case "range": this._animateOff = true; this._refresh(); this._animateOff = false; break; } }, //internal value getter // _value() returns value trimmed by min and max, aligned by step _value: function() { var val = this.options.value; val = this._trimAlignValue( val ); return val; }, //internal values getter // _values() returns array of values trimmed by min and max, aligned by step // _values( index ) returns single value trimmed by min and max, aligned by step _values: function( index ) { var val, vals, i; if ( arguments.length ) { val = this.options.values[ index ]; val = this._trimAlignValue( val ); return val; } else if ( this.options.values && this.options.values.length ) { // .slice() creates a copy of the array // this copy gets trimmed by min and max and then returned vals = this.options.values.slice(); for ( i = 0; i < vals.length; i+= 1) { vals[ i ] = this._trimAlignValue( vals[ i ] ); } return vals; } else { return []; } }, // returns the step-aligned value that val is closest to, between (inclusive) min and max _trimAlignValue: function( val ) { if ( val <= this._valueMin() ) { return this._valueMin(); } if ( val >= this._valueMax() ) { return this._valueMax(); } var step = ( this.options.step > 0 ) ? this.options.step : 1, valModStep = (val - this._valueMin()) % step, alignValue = val - valModStep; if ( Math.abs(valModStep) * 2 >= step ) { alignValue += ( valModStep > 0 ) ? step : ( -step ); } // Since JavaScript has problems with large floats, round // the final value to 5 digits after the decimal point (see #4124) return parseFloat( alignValue.toFixed(5) ); }, _valueMin: function() { return this.options.min; }, _valueMax: function() { return this.options.max; }, _refreshValue: function() { var lastValPercent, valPercent, value, valueMin, valueMax, oRange = this.options.range, o = this.options, that = this, animate = ( !this._animateOff ) ? o.animate : false, _set = {}; if ( this.options.values && this.options.values.length ) { this.handles.each(function( i ) { valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100; _set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); if ( that.options.range === true ) { if ( that.orientation === "horizontal" ) { if ( i === 0 ) { that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); } if ( i === 1 ) { that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); } } else { if ( i === 0 ) { that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); } if ( i === 1 ) { that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); } } } lastValPercent = valPercent; }); } else { value = this.value(); valueMin = this._valueMin(); valueMax = this._valueMax(); valPercent = ( valueMax !== valueMin ) ? ( value - valueMin ) / ( valueMax - valueMin ) * 100 : 0; _set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); if ( oRange === "min" && this.orientation === "horizontal" ) { this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); } if ( oRange === "max" && this.orientation === "horizontal" ) { this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); } if ( oRange === "min" && this.orientation === "vertical" ) { this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); } if ( oRange === "max" && this.orientation === "vertical" ) { this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); } } }, _handleEvents: { keydown: function( event ) { /*jshint maxcomplexity:25*/ var allowed, curVal, newVal, step, index = $( event.target ).data( "ui-slider-handle-index" ); switch ( event.keyCode ) { case $.ui.keyCode.HOME: case $.ui.keyCode.END: case $.ui.keyCode.PAGE_UP: case $.ui.keyCode.PAGE_DOWN: case $.ui.keyCode.UP: case $.ui.keyCode.RIGHT: case $.ui.keyCode.DOWN: case $.ui.keyCode.LEFT: event.preventDefault(); if ( !this._keySliding ) { this._keySliding = true; $( event.target ).addClass( "ui-state-active" ); allowed = this._start( event, index ); if ( allowed === false ) { return; } } break; } step = this.options.step; if ( this.options.values && this.options.values.length ) { curVal = newVal = this.values( index ); } else { curVal = newVal = this.value(); } switch ( event.keyCode ) { case $.ui.keyCode.HOME: newVal = this._valueMin(); break; case $.ui.keyCode.END: newVal = this._valueMax(); break; case $.ui.keyCode.PAGE_UP: newVal = this._trimAlignValue( curVal + ( (this._valueMax() - this._valueMin()) / numPages ) ); break; case $.ui.keyCode.PAGE_DOWN: newVal = this._trimAlignValue( curVal - ( (this._valueMax() - this._valueMin()) / numPages ) ); break; case $.ui.keyCode.UP: case $.ui.keyCode.RIGHT: if ( curVal === this._valueMax() ) { return; } newVal = this._trimAlignValue( curVal + step ); break; case $.ui.keyCode.DOWN: case $.ui.keyCode.LEFT: if ( curVal === this._valueMin() ) { return; } newVal = this._trimAlignValue( curVal - step ); break; } this._slide( event, index, newVal ); }, click: function( event ) { event.preventDefault(); }, keyup: function( event ) { var index = $( event.target ).data( "ui-slider-handle-index" ); if ( this._keySliding ) { this._keySliding = false; this._stop( event, index ); this._change( event, index ); $( event.target ).removeClass( "ui-state-active" ); } } } }); }(jQuery)); (function( $, undefined ) { /*jshint loopfunc: true */ function isOverAxis( x, reference, size ) { return ( x > reference ) && ( x < ( reference + size ) ); } $.widget("ui.sortable", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "sort", ready: false, options: { appendTo: "parent", axis: false, connectWith: false, containment: false, cursor: "auto", cursorAt: false, dropOnEmpty: true, forcePlaceholderSize: false, forceHelperSize: false, grid: false, handle: false, helper: "original", items: "> *", opacity: false, placeholder: false, revert: false, scroll: true, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1000, // callbacks activate: null, beforeStop: null, change: null, deactivate: null, out: null, over: null, receive: null, remove: null, sort: null, start: null, stop: null, update: null }, _create: function() { var o = this.options; this.containerCache = {}; this.element.addClass("ui-sortable"); //Get the items this.refresh(); //Let's determine if the items are being displayed horizontally this.floating = this.items.length ? o.axis === "x" || (/left|right/).test(this.items[0].item.css("float")) || (/inline|table-cell/).test(this.items[0].item.css("display")) : false; //Let's determine the parent's offset this.offset = this.element.offset(); //Initialize mouse events for interaction this._mouseInit(); //We're ready to go this.ready = true; }, _destroy: function() { this.element .removeClass("ui-sortable ui-sortable-disabled"); this._mouseDestroy(); for ( var i = this.items.length - 1; i >= 0; i-- ) { this.items[i].item.removeData(this.widgetName + "-item"); } return this; }, _setOption: function(key, value){ if ( key === "disabled" ) { this.options[ key ] = value; this.widget().toggleClass( "ui-sortable-disabled", !!value ); } else { // Don't call widget base _setOption for disable as it adds ui-state-disabled class $.Widget.prototype._setOption.apply(this, arguments); } }, _mouseCapture: function(event, overrideHandle) { var currentItem = null, validHandle = false, that = this; if (this.reverting) { return false; } if(this.options.disabled || this.options.type === "static") { return false; } //We have to refresh the items data once first this._refreshItems(event); //Find out if the clicked node (or one of its parents) is a actual item in this.items $(event.target).parents().each(function() { if($.data(this, that.widgetName + "-item") === that) { currentItem = $(this); return false; } }); if($.data(event.target, that.widgetName + "-item") === that) { currentItem = $(event.target); } if(!currentItem) { return false; } if(this.options.handle && !overrideHandle) { $(this.options.handle, currentItem).find("*").addBack().each(function() { if(this === event.target) { validHandle = true; } }); if(!validHandle) { return false; } } this.currentItem = currentItem; this._removeCurrentsFromItems(); return true; }, _mouseStart: function(event, overrideHandle, noActivation) { var i, o = this.options; this.currentContainer = this; //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture this.refreshPositions(); //Create and append the visible helper this.helper = this._createHelper(event); //Cache the helper size this._cacheHelperProportions(); /* * - Position generation - * This block generates everything position related - it's the core of draggables. */ //Cache the margins of the original element this._cacheMargins(); //Get the next scrolling parent this.scrollParent = this.helper.scrollParent(); //The element's absolute position on the page minus margins this.offset = this.currentItem.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; $.extend(this.offset, { click: { //Where the click happened, relative to the element left: event.pageX - this.offset.left, top: event.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper }); // Only after we got the offset, we can change the helper's position to absolute // TODO: Still need to figure out a way to make relative sorting possible this.helper.css("position", "absolute"); this.cssPosition = this.helper.css("position"); //Generate the original position this.originalPosition = this._generatePosition(event); this.originalPageX = event.pageX; this.originalPageY = event.pageY; //Adjust the mouse offset relative to the helper if "cursorAt" is supplied (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); //Cache the former DOM position this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way if(this.helper[0] !== this.currentItem[0]) { this.currentItem.hide(); } //Create the placeholder this._createPlaceholder(); //Set a containment if given in the options if(o.containment) { this._setContainment(); } if(o.cursor) { // cursor option if ($("body").css("cursor")) { this._storedCursor = $("body").css("cursor"); } $("body").css("cursor", o.cursor); } if(o.opacity) { // opacity option if (this.helper.css("opacity")) { this._storedOpacity = this.helper.css("opacity"); } this.helper.css("opacity", o.opacity); } if(o.zIndex) { // zIndex option if (this.helper.css("zIndex")) { this._storedZIndex = this.helper.css("zIndex"); } this.helper.css("zIndex", o.zIndex); } //Prepare scrolling if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { this.overflowOffset = this.scrollParent.offset(); } //Call callbacks this._trigger("start", event, this._uiHash()); //Recache the helper size if(!this._preserveHelperProportions) { this._cacheHelperProportions(); } //Post "activate" events to possible containers if( !noActivation ) { for ( i = this.containers.length - 1; i >= 0; i-- ) { this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) ); } } //Prepare possible droppables if($.ui.ddmanager) { $.ui.ddmanager.current = this; } if ($.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(this, event); } this.dragging = true; this.helper.addClass("ui-sortable-helper"); this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position return true; }, _mouseDrag: function(event) { var i, item, itemElement, intersection, o = this.options, scrolled = false; //Compute the helpers position this.position = this._generatePosition(event); this.positionAbs = this._convertPositionTo("absolute"); if (!this.lastPositionAbs) { this.lastPositionAbs = this.positionAbs; } //Do scrolling if(this.options.scroll) { if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; } else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) { this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; } if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; } else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) { this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; } } else { if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); } if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); } } if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(this, event); } } //Regenerate the absolute position used for position checks this.positionAbs = this._convertPositionTo("absolute"); //Set the helper position if(!this.options.axis || this.options.axis !== "y") { this.helper[0].style.left = this.position.left+"px"; } if(!this.options.axis || this.options.axis !== "x") { this.helper[0].style.top = this.position.top+"px"; } //Rearrange for (i = this.items.length - 1; i >= 0; i--) { //Cache variables and intersection, continue if no intersection item = this.items[i]; itemElement = item.item[0]; intersection = this._intersectsWithPointer(item); if (!intersection) { continue; } // Only put the placeholder inside the current Container, skip all // items form other containers. This works because when moving // an item from one container to another the // currentContainer is switched before the placeholder is moved. // // Without this moving items in "sub-sortables" can cause the placeholder to jitter // beetween the outer and inner container. if (item.instance !== this.currentContainer) { continue; } // cannot intersect with itself // no useless actions that have been done before // no action if the item moved is the parent of the item checked if (itemElement !== this.currentItem[0] && this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement && !$.contains(this.placeholder[0], itemElement) && (this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true) ) { this.direction = intersection === 1 ? "down" : "up"; if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) { this._rearrange(event, item); } else { break; } this._trigger("change", event, this._uiHash()); break; } } //Post events to containers this._contactContainers(event); //Interconnect with droppables if($.ui.ddmanager) { $.ui.ddmanager.drag(this, event); } //Call callbacks this._trigger("sort", event, this._uiHash()); this.lastPositionAbs = this.positionAbs; return false; }, _mouseStop: function(event, noPropagation) { if(!event) { return; } //If we are using droppables, inform the manager about the drop if ($.ui.ddmanager && !this.options.dropBehaviour) { $.ui.ddmanager.drop(this, event); } if(this.options.revert) { var that = this, cur = this.placeholder.offset(); this.reverting = true; $(this.helper).animate({ left: cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft), top: cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop) }, parseInt(this.options.revert, 10) || 500, function() { that._clear(event); }); } else { this._clear(event, noPropagation); } return false; }, cancel: function() { if(this.dragging) { this._mouseUp({ target: null }); if(this.options.helper === "original") { this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); } else { this.currentItem.show(); } //Post deactivating events to containers for (var i = this.containers.length - 1; i >= 0; i--){ this.containers[i]._trigger("deactivate", null, this._uiHash(this)); if(this.containers[i].containerCache.over) { this.containers[i]._trigger("out", null, this._uiHash(this)); this.containers[i].containerCache.over = 0; } } } if (this.placeholder) { //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! if(this.placeholder[0].parentNode) { this.placeholder[0].parentNode.removeChild(this.placeholder[0]); } if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) { this.helper.remove(); } $.extend(this, { helper: null, dragging: false, reverting: false, _noFinalSort: null }); if(this.domPosition.prev) { $(this.domPosition.prev).after(this.currentItem); } else { $(this.domPosition.parent).prepend(this.currentItem); } } return this; }, serialize: function(o) { var items = this._getItemsAsjQuery(o && o.connected), str = []; o = o || {}; $(items).each(function() { var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/)); if (res) { str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2])); } }); if(!str.length && o.key) { str.push(o.key + "="); } return str.join("&"); }, toArray: function(o) { var items = this._getItemsAsjQuery(o && o.connected), ret = []; o = o || {}; items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); }); return ret; }, /* Be careful with the following core functions */ _intersectsWith: function(item) { var x1 = this.positionAbs.left, x2 = x1 + this.helperProportions.width, y1 = this.positionAbs.top, y2 = y1 + this.helperProportions.height, l = item.left, r = l + item.width, t = item.top, b = t + item.height, dyClick = this.offset.click.top, dxClick = this.offset.click.left, isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; if ( this.options.tolerance === "pointer" || this.options.forcePointerForContainers || (this.options.tolerance !== "pointer" && this.helperProportions[this.floating ? "width" : "height"] > item[this.floating ? "width" : "height"]) ) { return isOverElement; } else { return (l < x1 + (this.helperProportions.width / 2) && // Right Half x2 - (this.helperProportions.width / 2) < r && // Left Half t < y1 + (this.helperProportions.height / 2) && // Bottom Half y2 - (this.helperProportions.height / 2) < b ); // Top Half } }, _intersectsWithPointer: function(item) { var isOverElementHeight = (this.options.axis === "x") || isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), isOverElementWidth = (this.options.axis === "y") || isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), isOverElement = isOverElementHeight && isOverElementWidth, verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection(); if (!isOverElement) { return false; } return this.floating ? ( ((horizontalDirection && horizontalDirection === "right") || verticalDirection === "down") ? 2 : 1 ) : ( verticalDirection && (verticalDirection === "down" ? 2 : 1) ); }, _intersectsWithSides: function(item) { var isOverBottomHalf = isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), isOverRightHalf = isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection(); if (this.floating && horizontalDirection) { return ((horizontalDirection === "right" && isOverRightHalf) || (horizontalDirection === "left" && !isOverRightHalf)); } else { return verticalDirection && ((verticalDirection === "down" && isOverBottomHalf) || (verticalDirection === "up" && !isOverBottomHalf)); } }, _getDragVerticalDirection: function() { var delta = this.positionAbs.top - this.lastPositionAbs.top; return delta !== 0 && (delta > 0 ? "down" : "up"); }, _getDragHorizontalDirection: function() { var delta = this.positionAbs.left - this.lastPositionAbs.left; return delta !== 0 && (delta > 0 ? "right" : "left"); }, refresh: function(event) { this._refreshItems(event); this.refreshPositions(); return this; }, _connectWith: function() { var options = this.options; return options.connectWith.constructor === String ? [options.connectWith] : options.connectWith; }, _getItemsAsjQuery: function(connected) { var i, j, cur, inst, items = [], queries = [], connectWith = this._connectWith(); if(connectWith && connected) { for (i = connectWith.length - 1; i >= 0; i--){ cur = $(connectWith[i]); for ( j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]); } } } } queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); for (i = queries.length - 1; i >= 0; i--){ queries[i][0].each(function() { items.push(this); }); } return $(items); }, _removeCurrentsFromItems: function() { var list = this.currentItem.find(":data(" + this.widgetName + "-item)"); this.items = $.grep(this.items, function (item) { for (var j=0; j < list.length; j++) { if(list[j] === item.item[0]) { return false; } } return true; }); }, _refreshItems: function(event) { this.items = []; this.containers = [this]; var i, j, cur, inst, targetData, _queries, item, queriesLength, items = this.items, queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]], connectWith = this._connectWith(); if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down for (i = connectWith.length - 1; i >= 0; i--){ cur = $(connectWith[i]); for (j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); this.containers.push(inst); } } } } for (i = queries.length - 1; i >= 0; i--) { targetData = queries[i][1]; _queries = queries[i][0]; for (j=0, queriesLength = _queries.length; j < queriesLength; j++) { item = $(_queries[j]); item.data(this.widgetName + "-item", targetData); // Data for target checking (mouse manager) items.push({ item: item, instance: targetData, width: 0, height: 0, left: 0, top: 0 }); } } }, refreshPositions: function(fast) { //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change if(this.offsetParent && this.helper) { this.offset.parent = this._getParentOffset(); } var i, item, t, p; for (i = this.items.length - 1; i >= 0; i--){ item = this.items[i]; //We ignore calculating positions of all connected containers when we're not over them if(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) { continue; } t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; if (!fast) { item.width = t.outerWidth(); item.height = t.outerHeight(); } p = t.offset(); item.left = p.left; item.top = p.top; } if(this.options.custom && this.options.custom.refreshContainers) { this.options.custom.refreshContainers.call(this); } else { for (i = this.containers.length - 1; i >= 0; i--){ p = this.containers[i].element.offset(); this.containers[i].containerCache.left = p.left; this.containers[i].containerCache.top = p.top; this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); } } return this; }, _createPlaceholder: function(that) { that = that || this; var className, o = that.options; if(!o.placeholder || o.placeholder.constructor === String) { className = o.placeholder; o.placeholder = { element: function() { var el = $(document.createElement(that.currentItem[0].nodeName)) .addClass(className || that.currentItem[0].className+" ui-sortable-placeholder") .removeClass("ui-sortable-helper")[0]; if(!className) { el.style.visibility = "hidden"; } return el; }, update: function(container, p) { // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified if(className && !o.forcePlaceholderSize) { return; } //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item if(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); } if(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); } } }; } //Create the placeholder that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem)); //Append it after the actual current item that.currentItem.after(that.placeholder); //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) o.placeholder.update(that, that.placeholder); }, _contactContainers: function(event) { var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, base, cur, nearBottom, innermostContainer = null, innermostIndex = null; // get innermost container that intersects with item for (i = this.containers.length - 1; i >= 0; i--) { // never consider a container that's located within the item itself if($.contains(this.currentItem[0], this.containers[i].element[0])) { continue; } if(this._intersectsWith(this.containers[i].containerCache)) { // if we've already found a container and it's more "inner" than this, then continue if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) { continue; } innermostContainer = this.containers[i]; innermostIndex = i; } else { // container doesn't intersect. trigger "out" event if necessary if(this.containers[i].containerCache.over) { this.containers[i]._trigger("out", event, this._uiHash(this)); this.containers[i].containerCache.over = 0; } } } // if no intersecting containers found, return if(!innermostContainer) { return; } // move the item into the container if it's not there already if(this.containers.length === 1) { this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); this.containers[innermostIndex].containerCache.over = 1; } else { //When entering a new container, we will find the item with the least distance and append our item near it dist = 10000; itemWithLeastDistance = null; posProperty = this.containers[innermostIndex].floating ? "left" : "top"; sizeProperty = this.containers[innermostIndex].floating ? "width" : "height"; base = this.positionAbs[posProperty] + this.offset.click[posProperty]; for (j = this.items.length - 1; j >= 0; j--) { if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) { continue; } if(this.items[j].item[0] === this.currentItem[0]) { continue; } cur = this.items[j].item.offset()[posProperty]; nearBottom = false; if(Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)){ nearBottom = true; cur += this.items[j][sizeProperty]; } if(Math.abs(cur - base) < dist) { dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; this.direction = nearBottom ? "up": "down"; } } //Check if dropOnEmpty is enabled if(!itemWithLeastDistance && !this.options.dropOnEmpty) { return; } this.currentContainer = this.containers[innermostIndex]; itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); this._trigger("change", event, this._uiHash()); this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); //Update the placeholder this.options.placeholder.update(this.currentContainer, this.placeholder); this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); this.containers[innermostIndex].containerCache.over = 1; } }, _createHelper: function(event) { var o = this.options, helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === "clone" ? this.currentItem.clone() : this.currentItem); //Add the helper to the DOM if that didn't happen already if(!helper.parents("body").length) { $(o.appendTo !== "parent" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); } if(helper[0] === this.currentItem[0]) { this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; } if(!helper[0].style.width || o.forceHelperSize) { helper.width(this.currentItem.width()); } if(!helper[0].style.height || o.forceHelperSize) { helper.height(this.currentItem.height()); } return helper; }, _adjustOffsetFromHelper: function(obj) { if (typeof obj === "string") { obj = obj.split(" "); } if ($.isArray(obj)) { obj = {left: +obj[0], top: +obj[1] || 0}; } if ("left" in obj) { this.offset.click.left = obj.left + this.margins.left; } if ("right" in obj) { this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; } if ("top" in obj) { this.offset.click.top = obj.top + this.margins.top; } if ("bottom" in obj) { this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; } }, _getParentOffset: function() { //Get the offsetParent and cache its position this.offsetParent = this.helper.offsetParent(); var po = this.offsetParent.offset(); // This is a special case where we need to modify a offset calculated on start, since the following happened: // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { po.left += this.scrollParent.scrollLeft(); po.top += this.scrollParent.scrollTop(); } // This needs to be actually done for all browsers, since pageX/pageY includes this information // with an ugly IE fix if( this.offsetParent[0] === document.body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { po = { top: 0, left: 0 }; } return { top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) }; }, _getRelativeOffset: function() { if(this.cssPosition === "relative") { var p = this.currentItem.position(); return { top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() }; } else { return { top: 0, left: 0 }; } }, _cacheMargins: function() { this.margins = { left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), top: (parseInt(this.currentItem.css("marginTop"),10) || 0) }; }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() }; }, _setContainment: function() { var ce, co, over, o = this.options; if(o.containment === "parent") { o.containment = this.helper[0].parentNode; } if(o.containment === "document" || o.containment === "window") { this.containment = [ 0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left, ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; } if(!(/^(document|window|parent)$/).test(o.containment)) { ce = $(o.containment)[0]; co = $(o.containment).offset(); over = ($(ce).css("overflow") !== "hidden"); this.containment = [ co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top ]; } }, _convertPositionTo: function(d, pos) { if(!pos) { pos = this.position; } var mod = d === "absolute" ? 1 : -1, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); return { top: ( pos.top + // The absolute mouse position this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) ), left: ( pos.left + // The absolute mouse position this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) ) }; }, _generatePosition: function(event) { var top, left, o = this.options, pageX = event.pageX, pageY = event.pageY, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); // This is another very weird special case that only happens for relative elements: // 1. If the css position is relative // 2. and the scroll parent is the document or similar to the offset parent // we have to refresh the relative offset during the scroll so there are no jumps if(this.cssPosition === "relative" && !(this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0])) { this.offset.relative = this._getRelativeOffset(); } /* * - Position constraining - * Constrain the position to a mix of grid, containment. */ if(this.originalPosition) { //If we are not dragging yet, we won't check for options if(this.containment) { if(event.pageX - this.offset.click.left < this.containment[0]) { pageX = this.containment[0] + this.offset.click.left; } if(event.pageY - this.offset.click.top < this.containment[1]) { pageY = this.containment[1] + this.offset.click.top; } if(event.pageX - this.offset.click.left > this.containment[2]) { pageX = this.containment[2] + this.offset.click.left; } if(event.pageY - this.offset.click.top > this.containment[3]) { pageY = this.containment[3] + this.offset.click.top; } } if(o.grid) { top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; pageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; pageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; } } return { top: ( pageY - // The absolute mouse position this.offset.click.top - // Click offset (relative to the element) this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) ), left: ( pageX - // The absolute mouse position this.offset.click.left - // Click offset (relative to the element) this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) ) }; }, _rearrange: function(event, i, a, hardRefresh) { a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === "down" ? i.item[0] : i.item[0].nextSibling)); //Various things done here to improve the performance: // 1. we create a setTimeout, that calls refreshPositions // 2. on the instance, we have a counter variable, that get's higher after every append // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same // 4. this lets only the last addition to the timeout stack through this.counter = this.counter ? ++this.counter : 1; var counter = this.counter; this._delay(function() { if(counter === this.counter) { this.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove } }); }, _clear: function(event, noPropagation) { this.reverting = false; // We delay all events that have to be triggered to after the point where the placeholder has been removed and // everything else normalized again var i, delayedTriggers = []; // We first have to update the dom position of the actual currentItem // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) if(!this._noFinalSort && this.currentItem.parent().length) { this.placeholder.before(this.currentItem); } this._noFinalSort = null; if(this.helper[0] === this.currentItem[0]) { for(i in this._storedCSS) { if(this._storedCSS[i] === "auto" || this._storedCSS[i] === "static") { this._storedCSS[i] = ""; } } this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); } else { this.currentItem.show(); } if(this.fromOutside && !noPropagation) { delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); } if((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) { delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed } // Check if the items Container has Changed and trigger appropriate // events. if (this !== this.currentContainer) { if(!noPropagation) { delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); } } //Post events to containers for (i = this.containers.length - 1; i >= 0; i--){ if(!noPropagation) { delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); } if(this.containers[i].containerCache.over) { delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); this.containers[i].containerCache.over = 0; } } //Do what was originally in plugins if(this._storedCursor) { $("body").css("cursor", this._storedCursor); } if(this._storedOpacity) { this.helper.css("opacity", this._storedOpacity); } if(this._storedZIndex) { this.helper.css("zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex); } this.dragging = false; if(this.cancelHelperRemoval) { if(!noPropagation) { this._trigger("beforeStop", event, this._uiHash()); for (i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); } //Trigger all delayed events this._trigger("stop", event, this._uiHash()); } this.fromOutside = false; return false; } if(!noPropagation) { this._trigger("beforeStop", event, this._uiHash()); } //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! this.placeholder[0].parentNode.removeChild(this.placeholder[0]); if(this.helper[0] !== this.currentItem[0]) { this.helper.remove(); } this.helper = null; if(!noPropagation) { for (i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); } //Trigger all delayed events this._trigger("stop", event, this._uiHash()); } this.fromOutside = false; return true; }, _trigger: function() { if ($.Widget.prototype._trigger.apply(this, arguments) === false) { this.cancel(); } }, _uiHash: function(_inst) { var inst = _inst || this; return { helper: inst.helper, placeholder: inst.placeholder || $([]), position: inst.position, originalPosition: inst.originalPosition, offset: inst.positionAbs, item: inst.currentItem, sender: _inst ? _inst.element : null }; } }); })(jQuery); (function( $ ) { function modifier( fn ) { return function() { var previous = this.element.val(); fn.apply( this, arguments ); this._refresh(); if ( previous !== this.element.val() ) { this._trigger( "change" ); } }; } $.widget( "ui.spinner", { version: "1.10.1", defaultElement: "", widgetEventPrefix: "spin", options: { culture: null, icons: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" }, incremental: true, max: null, min: null, numberFormat: null, page: 10, step: 1, change: null, spin: null, start: null, stop: null }, _create: function() { // handle string values that need to be parsed this._setOption( "max", this.options.max ); this._setOption( "min", this.options.min ); this._setOption( "step", this.options.step ); // format the value, but don't constrain this._value( this.element.val(), true ); this._draw(); this._on( this._events ); this._refresh(); // turning off autocomplete prevents the browser from remembering the // value when navigating through history, so we re-enable autocomplete // if the page is unloaded before the widget is destroyed. #7790 this._on( this.window, { beforeunload: function() { this.element.removeAttr( "autocomplete" ); } }); }, _getCreateOptions: function() { var options = {}, element = this.element; $.each( [ "min", "max", "step" ], function( i, option ) { var value = element.attr( option ); if ( value !== undefined && value.length ) { options[ option ] = value; } }); return options; }, _events: { keydown: function( event ) { if ( this._start( event ) && this._keydown( event ) ) { event.preventDefault(); } }, keyup: "_stop", focus: function() { this.previous = this.element.val(); }, blur: function( event ) { if ( this.cancelBlur ) { delete this.cancelBlur; return; } this._refresh(); if ( this.previous !== this.element.val() ) { this._trigger( "change", event ); } }, mousewheel: function( event, delta ) { if ( !delta ) { return; } if ( !this.spinning && !this._start( event ) ) { return false; } this._spin( (delta > 0 ? 1 : -1) * this.options.step, event ); clearTimeout( this.mousewheelTimer ); this.mousewheelTimer = this._delay(function() { if ( this.spinning ) { this._stop( event ); } }, 100 ); event.preventDefault(); }, "mousedown .ui-spinner-button": function( event ) { var previous; // We never want the buttons to have focus; whenever the user is // interacting with the spinner, the focus should be on the input. // If the input is focused then this.previous is properly set from // when the input first received focus. If the input is not focused // then we need to set this.previous based on the value before spinning. previous = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(); function checkFocus() { var isActive = this.element[0] === this.document[0].activeElement; if ( !isActive ) { this.element.focus(); this.previous = previous; // support: IE // IE sets focus asynchronously, so we need to check if focus // moved off of the input because the user clicked on the button. this._delay(function() { this.previous = previous; }); } } // ensure focus is on (or stays on) the text field event.preventDefault(); checkFocus.call( this ); // support: IE // IE doesn't prevent moving focus even with event.preventDefault() // so we set a flag to know when we should ignore the blur event // and check (again) if focus moved off of the input. this.cancelBlur = true; this._delay(function() { delete this.cancelBlur; checkFocus.call( this ); }); if ( this._start( event ) === false ) { return; } this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); }, "mouseup .ui-spinner-button": "_stop", "mouseenter .ui-spinner-button": function( event ) { // button will add ui-state-active if mouse was down while mouseleave and kept down if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) { return; } if ( this._start( event ) === false ) { return false; } this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); }, // TODO: do we really want to consider this a stop? // shouldn't we just stop the repeater and wait until mouseup before // we trigger the stop event? "mouseleave .ui-spinner-button": "_stop" }, _draw: function() { var uiSpinner = this.uiSpinner = this.element .addClass( "ui-spinner-input" ) .attr( "autocomplete", "off" ) .wrap( this._uiSpinnerHtml() ) .parent() // add buttons .append( this._buttonHtml() ); this.element.attr( "role", "spinbutton" ); // button bindings this.buttons = uiSpinner.find( ".ui-spinner-button" ) .attr( "tabIndex", -1 ) .button() .removeClass( "ui-corner-all" ); // IE 6 doesn't understand height: 50% for the buttons // unless the wrapper has an explicit height if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) && uiSpinner.height() > 0 ) { uiSpinner.height( uiSpinner.height() ); } // disable spinner if element was already disabled if ( this.options.disabled ) { this.disable(); } }, _keydown: function( event ) { var options = this.options, keyCode = $.ui.keyCode; switch ( event.keyCode ) { case keyCode.UP: this._repeat( null, 1, event ); return true; case keyCode.DOWN: this._repeat( null, -1, event ); return true; case keyCode.PAGE_UP: this._repeat( null, options.page, event ); return true; case keyCode.PAGE_DOWN: this._repeat( null, -options.page, event ); return true; } return false; }, _uiSpinnerHtml: function() { return ""; }, _buttonHtml: function() { return "" + "" + "" + "" + "" + "" + ""; }, _start: function( event ) { if ( !this.spinning && this._trigger( "start", event ) === false ) { return false; } if ( !this.counter ) { this.counter = 1; } this.spinning = true; return true; }, _repeat: function( i, steps, event ) { i = i || 500; clearTimeout( this.timer ); this.timer = this._delay(function() { this._repeat( 40, steps, event ); }, i ); this._spin( steps * this.options.step, event ); }, _spin: function( step, event ) { var value = this.value() || 0; if ( !this.counter ) { this.counter = 1; } value = this._adjustValue( value + step * this._increment( this.counter ) ); if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) { this._value( value ); this.counter++; } }, _increment: function( i ) { var incremental = this.options.incremental; if ( incremental ) { return $.isFunction( incremental ) ? incremental( i ) : Math.floor( i*i*i/50000 - i*i/500 + 17*i/200 + 1 ); } return 1; }, _precision: function() { var precision = this._precisionOf( this.options.step ); if ( this.options.min !== null ) { precision = Math.max( precision, this._precisionOf( this.options.min ) ); } return precision; }, _precisionOf: function( num ) { var str = num.toString(), decimal = str.indexOf( "." ); return decimal === -1 ? 0 : str.length - decimal - 1; }, _adjustValue: function( value ) { var base, aboveMin, options = this.options; // make sure we're at a valid step // - find out where we are relative to the base (min or 0) base = options.min !== null ? options.min : 0; aboveMin = value - base; // - round to the nearest step aboveMin = Math.round(aboveMin / options.step) * options.step; // - rounding is based on 0, so adjust back to our base value = base + aboveMin; // fix precision from bad JS floating point math value = parseFloat( value.toFixed( this._precision() ) ); // clamp the value if ( options.max !== null && value > options.max) { return options.max; } if ( options.min !== null && value < options.min ) { return options.min; } return value; }, _stop: function( event ) { if ( !this.spinning ) { return; } clearTimeout( this.timer ); clearTimeout( this.mousewheelTimer ); this.counter = 0; this.spinning = false; this._trigger( "stop", event ); }, _setOption: function( key, value ) { if ( key === "culture" || key === "numberFormat" ) { var prevValue = this._parse( this.element.val() ); this.options[ key ] = value; this.element.val( this._format( prevValue ) ); return; } if ( key === "max" || key === "min" || key === "step" ) { if ( typeof value === "string" ) { value = this._parse( value ); } } if ( key === "icons" ) { this.buttons.first().find( ".ui-icon" ) .removeClass( this.options.icons.up ) .addClass( value.up ); this.buttons.last().find( ".ui-icon" ) .removeClass( this.options.icons.down ) .addClass( value.down ); } this._super( key, value ); if ( key === "disabled" ) { if ( value ) { this.element.prop( "disabled", true ); this.buttons.button( "disable" ); } else { this.element.prop( "disabled", false ); this.buttons.button( "enable" ); } } }, _setOptions: modifier(function( options ) { this._super( options ); this._value( this.element.val() ); }), _parse: function( val ) { if ( typeof val === "string" && val !== "" ) { val = window.Globalize && this.options.numberFormat ? Globalize.parseFloat( val, 10, this.options.culture ) : +val; } return val === "" || isNaN( val ) ? null : val; }, _format: function( value ) { if ( value === "" ) { return ""; } return window.Globalize && this.options.numberFormat ? Globalize.format( value, this.options.numberFormat, this.options.culture ) : value; }, _refresh: function() { this.element.attr({ "aria-valuemin": this.options.min, "aria-valuemax": this.options.max, // TODO: what should we do with values that can't be parsed? "aria-valuenow": this._parse( this.element.val() ) }); }, // update the value without triggering change _value: function( value, allowAny ) { var parsed; if ( value !== "" ) { parsed = this._parse( value ); if ( parsed !== null ) { if ( !allowAny ) { parsed = this._adjustValue( parsed ); } value = this._format( parsed ); } } this.element.val( value ); this._refresh(); }, _destroy: function() { this.element .removeClass( "ui-spinner-input" ) .prop( "disabled", false ) .removeAttr( "autocomplete" ) .removeAttr( "role" ) .removeAttr( "aria-valuemin" ) .removeAttr( "aria-valuemax" ) .removeAttr( "aria-valuenow" ); this.uiSpinner.replaceWith( this.element ); }, stepUp: modifier(function( steps ) { this._stepUp( steps ); }), _stepUp: function( steps ) { if ( this._start() ) { this._spin( (steps || 1) * this.options.step ); this._stop(); } }, stepDown: modifier(function( steps ) { this._stepDown( steps ); }), _stepDown: function( steps ) { if ( this._start() ) { this._spin( (steps || 1) * -this.options.step ); this._stop(); } }, pageUp: modifier(function( pages ) { this._stepUp( (pages || 1) * this.options.page ); }), pageDown: modifier(function( pages ) { this._stepDown( (pages || 1) * this.options.page ); }), value: function( newVal ) { if ( !arguments.length ) { return this._parse( this.element.val() ); } modifier( this._value ).call( this, newVal ); }, widget: function() { return this.uiSpinner; } }); }( jQuery ) ); (function( $, undefined ) { var tabId = 0, rhash = /#.*$/; function getNextTabId() { return ++tabId; } function isLocal( anchor ) { return anchor.hash.length > 1 && decodeURIComponent( anchor.href.replace( rhash, "" ) ) === decodeURIComponent( location.href.replace( rhash, "" ) ); } $.widget( "ui.tabs", { version: "1.10.1", delay: 300, options: { active: null, collapsible: false, event: "click", heightStyle: "content", hide: null, show: null, // callbacks activate: null, beforeActivate: null, beforeLoad: null, load: null }, _create: function() { var that = this, options = this.options; this.running = false; this.element .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ) .toggleClass( "ui-tabs-collapsible", options.collapsible ) // Prevent users from focusing disabled tabs via click .delegate( ".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function( event ) { if ( $( this ).is( ".ui-state-disabled" ) ) { event.preventDefault(); } }) // support: IE <9 // Preventing the default action in mousedown doesn't prevent IE // from focusing the element, so if the anchor gets focused, blur. // We don't have to worry about focusing the previously focused // element since clicking on a non-focusable element should focus // the body anyway. .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { this.blur(); } }); this._processTabs(); options.active = this._initialActive(); // Take disabling tabs via class attribute from HTML // into account and update option properly. if ( $.isArray( options.disabled ) ) { options.disabled = $.unique( options.disabled.concat( $.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) { return that.tabs.index( li ); }) ) ).sort(); } // check for length avoids error when initializing empty list if ( this.options.active !== false && this.anchors.length ) { this.active = this._findActive( options.active ); } else { this.active = $(); } this._refresh(); if ( this.active.length ) { this.load( options.active ); } }, _initialActive: function() { var active = this.options.active, collapsible = this.options.collapsible, locationHash = location.hash.substring( 1 ); if ( active === null ) { // check the fragment identifier in the URL if ( locationHash ) { this.tabs.each(function( i, tab ) { if ( $( tab ).attr( "aria-controls" ) === locationHash ) { active = i; return false; } }); } // check for a tab marked active via a class if ( active === null ) { active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) ); } // no active tab, set to false if ( active === null || active === -1 ) { active = this.tabs.length ? 0 : false; } } // handle numbers: negative, out of range if ( active !== false ) { active = this.tabs.index( this.tabs.eq( active ) ); if ( active === -1 ) { active = collapsible ? false : 0; } } // don't allow collapsible: false and active: false if ( !collapsible && active === false && this.anchors.length ) { active = 0; } return active; }, _getCreateEventData: function() { return { tab: this.active, panel: !this.active.length ? $() : this._getPanelForTab( this.active ) }; }, _tabKeydown: function( event ) { /*jshint maxcomplexity:15*/ var focusedTab = $( this.document[0].activeElement ).closest( "li" ), selectedIndex = this.tabs.index( focusedTab ), goingForward = true; if ( this._handlePageNav( event ) ) { return; } switch ( event.keyCode ) { case $.ui.keyCode.RIGHT: case $.ui.keyCode.DOWN: selectedIndex++; break; case $.ui.keyCode.UP: case $.ui.keyCode.LEFT: goingForward = false; selectedIndex--; break; case $.ui.keyCode.END: selectedIndex = this.anchors.length - 1; break; case $.ui.keyCode.HOME: selectedIndex = 0; break; case $.ui.keyCode.SPACE: // Activate only, no collapsing event.preventDefault(); clearTimeout( this.activating ); this._activate( selectedIndex ); return; case $.ui.keyCode.ENTER: // Toggle (cancel delayed activation, allow collapsing) event.preventDefault(); clearTimeout( this.activating ); // Determine if we should collapse or activate this._activate( selectedIndex === this.options.active ? false : selectedIndex ); return; default: return; } // Focus the appropriate tab, based on which key was pressed event.preventDefault(); clearTimeout( this.activating ); selectedIndex = this._focusNextTab( selectedIndex, goingForward ); // Navigating with control key will prevent automatic activation if ( !event.ctrlKey ) { // Update aria-selected immediately so that AT think the tab is already selected. // Otherwise AT may confuse the user by stating that they need to activate the tab, // but the tab will already be activated by the time the announcement finishes. focusedTab.attr( "aria-selected", "false" ); this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" ); this.activating = this._delay(function() { this.option( "active", selectedIndex ); }, this.delay ); } }, _panelKeydown: function( event ) { if ( this._handlePageNav( event ) ) { return; } // Ctrl+up moves focus to the current tab if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) { event.preventDefault(); this.active.focus(); } }, // Alt+page up/down moves focus to the previous/next tab (and activates) _handlePageNav: function( event ) { if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) { this._activate( this._focusNextTab( this.options.active - 1, false ) ); return true; } if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) { this._activate( this._focusNextTab( this.options.active + 1, true ) ); return true; } }, _findNextTab: function( index, goingForward ) { var lastTabIndex = this.tabs.length - 1; function constrain() { if ( index > lastTabIndex ) { index = 0; } if ( index < 0 ) { index = lastTabIndex; } return index; } while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) { index = goingForward ? index + 1 : index - 1; } return index; }, _focusNextTab: function( index, goingForward ) { index = this._findNextTab( index, goingForward ); this.tabs.eq( index ).focus(); return index; }, _setOption: function( key, value ) { if ( key === "active" ) { // _activate() will handle invalid values and update this.options this._activate( value ); return; } if ( key === "disabled" ) { // don't use the widget factory's disabled handling this._setupDisabled( value ); return; } this._super( key, value); if ( key === "collapsible" ) { this.element.toggleClass( "ui-tabs-collapsible", value ); // Setting collapsible: false while collapsed; open first panel if ( !value && this.options.active === false ) { this._activate( 0 ); } } if ( key === "event" ) { this._setupEvents( value ); } if ( key === "heightStyle" ) { this._setupHeightStyle( value ); } }, _tabId: function( tab ) { return tab.attr( "aria-controls" ) || "ui-tabs-" + getNextTabId(); }, _sanitizeSelector: function( hash ) { return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : ""; }, refresh: function() { var options = this.options, lis = this.tablist.children( ":has(a[href])" ); // get disabled tabs from class attribute from HTML // this will get converted to a boolean if needed in _refresh() options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) { return lis.index( tab ); }); this._processTabs(); // was collapsed or no tabs if ( options.active === false || !this.anchors.length ) { options.active = false; this.active = $(); // was active, but active tab is gone } else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) { // all remaining tabs are disabled if ( this.tabs.length === options.disabled.length ) { options.active = false; this.active = $(); // activate previous tab } else { this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) ); } // was active, active tab still exists } else { // make sure active index is correct options.active = this.tabs.index( this.active ); } this._refresh(); }, _refresh: function() { this._setupDisabled( this.options.disabled ); this._setupEvents( this.options.event ); this._setupHeightStyle( this.options.heightStyle ); this.tabs.not( this.active ).attr({ "aria-selected": "false", tabIndex: -1 }); this.panels.not( this._getPanelForTab( this.active ) ) .hide() .attr({ "aria-expanded": "false", "aria-hidden": "true" }); // Make sure one tab is in the tab order if ( !this.active.length ) { this.tabs.eq( 0 ).attr( "tabIndex", 0 ); } else { this.active .addClass( "ui-tabs-active ui-state-active" ) .attr({ "aria-selected": "true", tabIndex: 0 }); this._getPanelForTab( this.active ) .show() .attr({ "aria-expanded": "true", "aria-hidden": "false" }); } }, _processTabs: function() { var that = this; this.tablist = this._getList() .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) .attr( "role", "tablist" ); this.tabs = this.tablist.find( "> li:has(a[href])" ) .addClass( "ui-state-default ui-corner-top" ) .attr({ role: "tab", tabIndex: -1 }); this.anchors = this.tabs.map(function() { return $( "a", this )[ 0 ]; }) .addClass( "ui-tabs-anchor" ) .attr({ role: "presentation", tabIndex: -1 }); this.panels = $(); this.anchors.each(function( i, anchor ) { var selector, panel, panelId, anchorId = $( anchor ).uniqueId().attr( "id" ), tab = $( anchor ).closest( "li" ), originalAriaControls = tab.attr( "aria-controls" ); // inline tab if ( isLocal( anchor ) ) { selector = anchor.hash; panel = that.element.find( that._sanitizeSelector( selector ) ); // remote tab } else { panelId = that._tabId( tab ); selector = "#" + panelId; panel = that.element.find( selector ); if ( !panel.length ) { panel = that._createPanel( panelId ); panel.insertAfter( that.panels[ i - 1 ] || that.tablist ); } panel.attr( "aria-live", "polite" ); } if ( panel.length) { that.panels = that.panels.add( panel ); } if ( originalAriaControls ) { tab.data( "ui-tabs-aria-controls", originalAriaControls ); } tab.attr({ "aria-controls": selector.substring( 1 ), "aria-labelledby": anchorId }); panel.attr( "aria-labelledby", anchorId ); }); this.panels .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) .attr( "role", "tabpanel" ); }, // allow overriding how to find the list for rare usage scenarios (#7715) _getList: function() { return this.element.find( "ol,ul" ).eq( 0 ); }, _createPanel: function( id ) { return $( "
    " ) .attr( "id", id ) .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) .data( "ui-tabs-destroy", true ); }, _setupDisabled: function( disabled ) { if ( $.isArray( disabled ) ) { if ( !disabled.length ) { disabled = false; } else if ( disabled.length === this.anchors.length ) { disabled = true; } } // disable tabs for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) { if ( disabled === true || $.inArray( i, disabled ) !== -1 ) { $( li ) .addClass( "ui-state-disabled" ) .attr( "aria-disabled", "true" ); } else { $( li ) .removeClass( "ui-state-disabled" ) .removeAttr( "aria-disabled" ); } } this.options.disabled = disabled; }, _setupEvents: function( event ) { var events = { click: function( event ) { event.preventDefault(); } }; if ( event ) { $.each( event.split(" "), function( index, eventName ) { events[ eventName ] = "_eventHandler"; }); } this._off( this.anchors.add( this.tabs ).add( this.panels ) ); this._on( this.anchors, events ); this._on( this.tabs, { keydown: "_tabKeydown" } ); this._on( this.panels, { keydown: "_panelKeydown" } ); this._focusable( this.tabs ); this._hoverable( this.tabs ); }, _setupHeightStyle: function( heightStyle ) { var maxHeight, parent = this.element.parent(); if ( heightStyle === "fill" ) { maxHeight = parent.height(); maxHeight -= this.element.outerHeight() - this.element.height(); this.element.siblings( ":visible" ).each(function() { var elem = $( this ), position = elem.css( "position" ); if ( position === "absolute" || position === "fixed" ) { return; } maxHeight -= elem.outerHeight( true ); }); this.element.children().not( this.panels ).each(function() { maxHeight -= $( this ).outerHeight( true ); }); this.panels.each(function() { $( this ).height( Math.max( 0, maxHeight - $( this ).innerHeight() + $( this ).height() ) ); }) .css( "overflow", "auto" ); } else if ( heightStyle === "auto" ) { maxHeight = 0; this.panels.each(function() { maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); }).height( maxHeight ); } }, _eventHandler: function( event ) { var options = this.options, active = this.active, anchor = $( event.currentTarget ), tab = anchor.closest( "li" ), clickedIsActive = tab[ 0 ] === active[ 0 ], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : this._getPanelForTab( tab ), toHide = !active.length ? $() : this._getPanelForTab( active ), eventData = { oldTab: active, oldPanel: toHide, newTab: collapsing ? $() : tab, newPanel: toShow }; event.preventDefault(); if ( tab.hasClass( "ui-state-disabled" ) || // tab is already loading tab.hasClass( "ui-tabs-loading" ) || // can't switch durning an animation this.running || // click on active header, but not collapsible ( clickedIsActive && !options.collapsible ) || // allow canceling activation ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { return; } options.active = collapsing ? false : this.tabs.index( tab ); this.active = clickedIsActive ? $() : tab; if ( this.xhr ) { this.xhr.abort(); } if ( !toHide.length && !toShow.length ) { $.error( "jQuery UI Tabs: Mismatching fragment identifier." ); } if ( toShow.length ) { this.load( this.tabs.index( tab ), event ); } this._toggle( event, eventData ); }, // handles show/hide for selecting tabs _toggle: function( event, eventData ) { var that = this, toShow = eventData.newPanel, toHide = eventData.oldPanel; this.running = true; function complete() { that.running = false; that._trigger( "activate", event, eventData ); } function show() { eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" ); if ( toShow.length && that.options.show ) { that._show( toShow, that.options.show, complete ); } else { toShow.show(); complete(); } } // start out by hiding, then showing, then completing if ( toHide.length && this.options.hide ) { this._hide( toHide, this.options.hide, function() { eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); show(); }); } else { eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); toHide.hide(); show(); } toHide.attr({ "aria-expanded": "false", "aria-hidden": "true" }); eventData.oldTab.attr( "aria-selected", "false" ); // If we're switching tabs, remove the old tab from the tab order. // If we're opening from collapsed state, remove the previous tab from the tab order. // If we're collapsing, then keep the collapsing tab in the tab order. if ( toShow.length && toHide.length ) { eventData.oldTab.attr( "tabIndex", -1 ); } else if ( toShow.length ) { this.tabs.filter(function() { return $( this ).attr( "tabIndex" ) === 0; }) .attr( "tabIndex", -1 ); } toShow.attr({ "aria-expanded": "true", "aria-hidden": "false" }); eventData.newTab.attr({ "aria-selected": "true", tabIndex: 0 }); }, _activate: function( index ) { var anchor, active = this._findActive( index ); // trying to activate the already active panel if ( active[ 0 ] === this.active[ 0 ] ) { return; } // trying to collapse, simulate a click on the current active header if ( !active.length ) { active = this.active; } anchor = active.find( ".ui-tabs-anchor" )[ 0 ]; this._eventHandler({ target: anchor, currentTarget: anchor, preventDefault: $.noop }); }, _findActive: function( index ) { return index === false ? $() : this.tabs.eq( index ); }, _getIndex: function( index ) { // meta-function to give users option to provide a href string instead of a numerical index. if ( typeof index === "string" ) { index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) ); } return index; }, _destroy: function() { if ( this.xhr ) { this.xhr.abort(); } this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ); this.tablist .removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) .removeAttr( "role" ); this.anchors .removeClass( "ui-tabs-anchor" ) .removeAttr( "role" ) .removeAttr( "tabIndex" ) .removeUniqueId(); this.tabs.add( this.panels ).each(function() { if ( $.data( this, "ui-tabs-destroy" ) ) { $( this ).remove(); } else { $( this ) .removeClass( "ui-state-default ui-state-active ui-state-disabled " + "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" ) .removeAttr( "tabIndex" ) .removeAttr( "aria-live" ) .removeAttr( "aria-busy" ) .removeAttr( "aria-selected" ) .removeAttr( "aria-labelledby" ) .removeAttr( "aria-hidden" ) .removeAttr( "aria-expanded" ) .removeAttr( "role" ); } }); this.tabs.each(function() { var li = $( this ), prev = li.data( "ui-tabs-aria-controls" ); if ( prev ) { li .attr( "aria-controls", prev ) .removeData( "ui-tabs-aria-controls" ); } else { li.removeAttr( "aria-controls" ); } }); this.panels.show(); if ( this.options.heightStyle !== "content" ) { this.panels.css( "height", "" ); } }, enable: function( index ) { var disabled = this.options.disabled; if ( disabled === false ) { return; } if ( index === undefined ) { disabled = false; } else { index = this._getIndex( index ); if ( $.isArray( disabled ) ) { disabled = $.map( disabled, function( num ) { return num !== index ? num : null; }); } else { disabled = $.map( this.tabs, function( li, num ) { return num !== index ? num : null; }); } } this._setupDisabled( disabled ); }, disable: function( index ) { var disabled = this.options.disabled; if ( disabled === true ) { return; } if ( index === undefined ) { disabled = true; } else { index = this._getIndex( index ); if ( $.inArray( index, disabled ) !== -1 ) { return; } if ( $.isArray( disabled ) ) { disabled = $.merge( [ index ], disabled ).sort(); } else { disabled = [ index ]; } } this._setupDisabled( disabled ); }, load: function( index, event ) { index = this._getIndex( index ); var that = this, tab = this.tabs.eq( index ), anchor = tab.find( ".ui-tabs-anchor" ), panel = this._getPanelForTab( tab ), eventData = { tab: tab, panel: panel }; // not remote if ( isLocal( anchor[ 0 ] ) ) { return; } this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) ); // support: jQuery <1.8 // jQuery <1.8 returns false if the request is canceled in beforeSend, // but as of 1.8, $.ajax() always returns a jqXHR object. if ( this.xhr && this.xhr.statusText !== "canceled" ) { tab.addClass( "ui-tabs-loading" ); panel.attr( "aria-busy", "true" ); this.xhr .success(function( response ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { panel.html( response ); that._trigger( "load", event, eventData ); }, 1 ); }) .complete(function( jqXHR, status ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { if ( status === "abort" ) { that.panels.stop( false, true ); } tab.removeClass( "ui-tabs-loading" ); panel.removeAttr( "aria-busy" ); if ( jqXHR === that.xhr ) { delete that.xhr; } }, 1 ); }); } }, _ajaxSettings: function( anchor, event, eventData ) { var that = this; return { url: anchor.attr( "href" ), beforeSend: function( jqXHR, settings ) { return that._trigger( "beforeLoad", event, $.extend( { jqXHR : jqXHR, ajaxSettings: settings }, eventData ) ); } }; }, _getPanelForTab: function( tab ) { var id = $( tab ).attr( "aria-controls" ); return this.element.find( this._sanitizeSelector( "#" + id ) ); } }); })( jQuery ); (function( $ ) { var increments = 0; function addDescribedBy( elem, id ) { var describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ); describedby.push( id ); elem .data( "ui-tooltip-id", id ) .attr( "aria-describedby", $.trim( describedby.join( " " ) ) ); } function removeDescribedBy( elem ) { var id = elem.data( "ui-tooltip-id" ), describedby = (elem.attr( "aria-describedby" ) || "").split( /\s+/ ), index = $.inArray( id, describedby ); if ( index !== -1 ) { describedby.splice( index, 1 ); } elem.removeData( "ui-tooltip-id" ); describedby = $.trim( describedby.join( " " ) ); if ( describedby ) { elem.attr( "aria-describedby", describedby ); } else { elem.removeAttr( "aria-describedby" ); } } $.widget( "ui.tooltip", { version: "1.10.1", options: { content: function() { // support: IE<9, Opera in jQuery <1.7 // .text() can't accept undefined, so coerce to a string var title = $( this ).attr( "title" ) || ""; // Escape title, since we're going from an attribute to raw HTML return $( "" ).text( title ).html(); }, hide: true, // Disabled elements have inconsistent behavior across browsers (#8661) items: "[title]:not([disabled])", position: { my: "left top+15", at: "left bottom", collision: "flipfit flip" }, show: true, tooltipClass: null, track: false, // callbacks close: null, open: null }, _create: function() { this._on({ mouseover: "open", focusin: "open" }); // IDs of generated tooltips, needed for destroy this.tooltips = {}; // IDs of parent tooltips where we removed the title attribute this.parents = {}; if ( this.options.disabled ) { this._disable(); } }, _setOption: function( key, value ) { var that = this; if ( key === "disabled" ) { this[ value ? "_disable" : "_enable" ](); this.options[ key ] = value; // disable element style changes return; } this._super( key, value ); if ( key === "content" ) { $.each( this.tooltips, function( id, element ) { that._updateContent( element ); }); } }, _disable: function() { var that = this; // close open tooltips $.each( this.tooltips, function( id, element ) { var event = $.Event( "blur" ); event.target = event.currentTarget = element[0]; that.close( event, true ); }); // remove title attributes to prevent native tooltips this.element.find( this.options.items ).addBack().each(function() { var element = $( this ); if ( element.is( "[title]" ) ) { element .data( "ui-tooltip-title", element.attr( "title" ) ) .attr( "title", "" ); } }); }, _enable: function() { // restore title attributes this.element.find( this.options.items ).addBack().each(function() { var element = $( this ); if ( element.data( "ui-tooltip-title" ) ) { element.attr( "title", element.data( "ui-tooltip-title" ) ); } }); }, open: function( event ) { var that = this, target = $( event ? event.target : this.element ) // we need closest here due to mouseover bubbling, // but always pointing at the same event target .closest( this.options.items ); // No element to show a tooltip for or the tooltip is already open if ( !target.length || target.data( "ui-tooltip-id" ) ) { return; } if ( target.attr( "title" ) ) { target.data( "ui-tooltip-title", target.attr( "title" ) ); } target.data( "ui-tooltip-open", true ); // kill parent tooltips, custom or native, for hover if ( event && event.type === "mouseover" ) { target.parents().each(function() { var parent = $( this ), blurEvent; if ( parent.data( "ui-tooltip-open" ) ) { blurEvent = $.Event( "blur" ); blurEvent.target = blurEvent.currentTarget = this; that.close( blurEvent, true ); } if ( parent.attr( "title" ) ) { parent.uniqueId(); that.parents[ this.id ] = { element: this, title: parent.attr( "title" ) }; parent.attr( "title", "" ); } }); } this._updateContent( target, event ); }, _updateContent: function( target, event ) { var content, contentOption = this.options.content, that = this, eventType = event ? event.type : null; if ( typeof contentOption === "string" ) { return this._open( event, target, contentOption ); } content = contentOption.call( target[0], function( response ) { // ignore async response if tooltip was closed already if ( !target.data( "ui-tooltip-open" ) ) { return; } // IE may instantly serve a cached response for ajax requests // delay this call to _open so the other call to _open runs first that._delay(function() { // jQuery creates a special event for focusin when it doesn't // exist natively. To improve performance, the native event // object is reused and the type is changed. Therefore, we can't // rely on the type being correct after the event finished // bubbling, so we set it back to the previous value. (#8740) if ( event ) { event.type = eventType; } this._open( event, target, response ); }); }); if ( content ) { this._open( event, target, content ); } }, _open: function( event, target, content ) { var tooltip, events, delayedShow, positionOption = $.extend( {}, this.options.position ); if ( !content ) { return; } // Content can be updated multiple times. If the tooltip already // exists, then just update the content and bail. tooltip = this._find( target ); if ( tooltip.length ) { tooltip.find( ".ui-tooltip-content" ).html( content ); return; } // if we have a title, clear it to prevent the native tooltip // we have to check first to avoid defining a title if none exists // (we don't want to cause an element to start matching [title]) // // We use removeAttr only for key events, to allow IE to export the correct // accessible attributes. For mouse events, set to empty string to avoid // native tooltip showing up (happens only when removing inside mouseover). if ( target.is( "[title]" ) ) { if ( event && event.type === "mouseover" ) { target.attr( "title", "" ); } else { target.removeAttr( "title" ); } } tooltip = this._tooltip( target ); addDescribedBy( target, tooltip.attr( "id" ) ); tooltip.find( ".ui-tooltip-content" ).html( content ); function position( event ) { positionOption.of = event; if ( tooltip.is( ":hidden" ) ) { return; } tooltip.position( positionOption ); } if ( this.options.track && event && /^mouse/.test( event.type ) ) { this._on( this.document, { mousemove: position }); // trigger once to override element-relative positioning position( event ); } else { tooltip.position( $.extend({ of: target }, this.options.position ) ); } tooltip.hide(); this._show( tooltip, this.options.show ); // Handle tracking tooltips that are shown with a delay (#8644). As soon // as the tooltip is visible, position the tooltip using the most recent // event. if ( this.options.show && this.options.show.delay ) { delayedShow = this.delayedShow = setInterval(function() { if ( tooltip.is( ":visible" ) ) { position( positionOption.of ); clearInterval( delayedShow ); } }, $.fx.interval ); } this._trigger( "open", event, { tooltip: tooltip } ); events = { keyup: function( event ) { if ( event.keyCode === $.ui.keyCode.ESCAPE ) { var fakeEvent = $.Event(event); fakeEvent.currentTarget = target[0]; this.close( fakeEvent, true ); } }, remove: function() { this._removeTooltip( tooltip ); } }; if ( !event || event.type === "mouseover" ) { events.mouseleave = "close"; } if ( !event || event.type === "focusin" ) { events.focusout = "close"; } this._on( true, target, events ); }, close: function( event ) { var that = this, target = $( event ? event.currentTarget : this.element ), tooltip = this._find( target ); // disabling closes the tooltip, so we need to track when we're closing // to avoid an infinite loop in case the tooltip becomes disabled on close if ( this.closing ) { return; } // Clear the interval for delayed tracking tooltips clearInterval( this.delayedShow ); // only set title if we had one before (see comment in _open()) if ( target.data( "ui-tooltip-title" ) ) { target.attr( "title", target.data( "ui-tooltip-title" ) ); } removeDescribedBy( target ); tooltip.stop( true ); this._hide( tooltip, this.options.hide, function() { that._removeTooltip( $( this ) ); }); target.removeData( "ui-tooltip-open" ); this._off( target, "mouseleave focusout keyup" ); // Remove 'remove' binding only on delegated targets if ( target[0] !== this.element[0] ) { this._off( target, "remove" ); } this._off( this.document, "mousemove" ); if ( event && event.type === "mouseleave" ) { $.each( this.parents, function( id, parent ) { $( parent.element ).attr( "title", parent.title ); delete that.parents[ id ]; }); } this.closing = true; this._trigger( "close", event, { tooltip: tooltip } ); this.closing = false; }, _tooltip: function( element ) { var id = "ui-tooltip-" + increments++, tooltip = $( "
    " ) .attr({ id: id, role: "tooltip" }) .addClass( "ui-tooltip ui-widget ui-corner-all ui-widget-content " + ( this.options.tooltipClass || "" ) ); $( "
    " ) .addClass( "ui-tooltip-content" ) .appendTo( tooltip ); tooltip.appendTo( this.document[0].body ); this.tooltips[ id ] = element; return tooltip; }, _find: function( target ) { var id = target.data( "ui-tooltip-id" ); return id ? $( "#" + id ) : $(); }, _removeTooltip: function( tooltip ) { tooltip.remove(); delete this.tooltips[ tooltip.attr( "id" ) ]; }, _destroy: function() { var that = this; // close open tooltips $.each( this.tooltips, function( id, element ) { // Delegate to close method to handle common cleanup var event = $.Event( "blur" ); event.target = event.currentTarget = element[0]; that.close( event, true ); // Remove immediately; destroying an open tooltip doesn't use the // hide animation $( "#" + id ).remove(); // Restore the title if ( element.data( "ui-tooltip-title" ) ) { element.attr( "title", element.data( "ui-tooltip-title" ) ); element.removeData( "ui-tooltip-title" ); } }); } }); }( jQuery ) ); jqueryui-1.10.1/development-bundle/ui/jquery.ui.sortable.js0000644000175000017500000012067012107500066022751 0ustar metalmetal/*! * jQuery UI Sortable 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/sortable/ * * Depends: * jquery.ui.core.js * jquery.ui.mouse.js * jquery.ui.widget.js */ (function( $, undefined ) { /*jshint loopfunc: true */ function isOverAxis( x, reference, size ) { return ( x > reference ) && ( x < ( reference + size ) ); } $.widget("ui.sortable", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "sort", ready: false, options: { appendTo: "parent", axis: false, connectWith: false, containment: false, cursor: "auto", cursorAt: false, dropOnEmpty: true, forcePlaceholderSize: false, forceHelperSize: false, grid: false, handle: false, helper: "original", items: "> *", opacity: false, placeholder: false, revert: false, scroll: true, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1000, // callbacks activate: null, beforeStop: null, change: null, deactivate: null, out: null, over: null, receive: null, remove: null, sort: null, start: null, stop: null, update: null }, _create: function() { var o = this.options; this.containerCache = {}; this.element.addClass("ui-sortable"); //Get the items this.refresh(); //Let's determine if the items are being displayed horizontally this.floating = this.items.length ? o.axis === "x" || (/left|right/).test(this.items[0].item.css("float")) || (/inline|table-cell/).test(this.items[0].item.css("display")) : false; //Let's determine the parent's offset this.offset = this.element.offset(); //Initialize mouse events for interaction this._mouseInit(); //We're ready to go this.ready = true; }, _destroy: function() { this.element .removeClass("ui-sortable ui-sortable-disabled"); this._mouseDestroy(); for ( var i = this.items.length - 1; i >= 0; i-- ) { this.items[i].item.removeData(this.widgetName + "-item"); } return this; }, _setOption: function(key, value){ if ( key === "disabled" ) { this.options[ key ] = value; this.widget().toggleClass( "ui-sortable-disabled", !!value ); } else { // Don't call widget base _setOption for disable as it adds ui-state-disabled class $.Widget.prototype._setOption.apply(this, arguments); } }, _mouseCapture: function(event, overrideHandle) { var currentItem = null, validHandle = false, that = this; if (this.reverting) { return false; } if(this.options.disabled || this.options.type === "static") { return false; } //We have to refresh the items data once first this._refreshItems(event); //Find out if the clicked node (or one of its parents) is a actual item in this.items $(event.target).parents().each(function() { if($.data(this, that.widgetName + "-item") === that) { currentItem = $(this); return false; } }); if($.data(event.target, that.widgetName + "-item") === that) { currentItem = $(event.target); } if(!currentItem) { return false; } if(this.options.handle && !overrideHandle) { $(this.options.handle, currentItem).find("*").addBack().each(function() { if(this === event.target) { validHandle = true; } }); if(!validHandle) { return false; } } this.currentItem = currentItem; this._removeCurrentsFromItems(); return true; }, _mouseStart: function(event, overrideHandle, noActivation) { var i, o = this.options; this.currentContainer = this; //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture this.refreshPositions(); //Create and append the visible helper this.helper = this._createHelper(event); //Cache the helper size this._cacheHelperProportions(); /* * - Position generation - * This block generates everything position related - it's the core of draggables. */ //Cache the margins of the original element this._cacheMargins(); //Get the next scrolling parent this.scrollParent = this.helper.scrollParent(); //The element's absolute position on the page minus margins this.offset = this.currentItem.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; $.extend(this.offset, { click: { //Where the click happened, relative to the element left: event.pageX - this.offset.left, top: event.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper }); // Only after we got the offset, we can change the helper's position to absolute // TODO: Still need to figure out a way to make relative sorting possible this.helper.css("position", "absolute"); this.cssPosition = this.helper.css("position"); //Generate the original position this.originalPosition = this._generatePosition(event); this.originalPageX = event.pageX; this.originalPageY = event.pageY; //Adjust the mouse offset relative to the helper if "cursorAt" is supplied (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); //Cache the former DOM position this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way if(this.helper[0] !== this.currentItem[0]) { this.currentItem.hide(); } //Create the placeholder this._createPlaceholder(); //Set a containment if given in the options if(o.containment) { this._setContainment(); } if(o.cursor) { // cursor option if ($("body").css("cursor")) { this._storedCursor = $("body").css("cursor"); } $("body").css("cursor", o.cursor); } if(o.opacity) { // opacity option if (this.helper.css("opacity")) { this._storedOpacity = this.helper.css("opacity"); } this.helper.css("opacity", o.opacity); } if(o.zIndex) { // zIndex option if (this.helper.css("zIndex")) { this._storedZIndex = this.helper.css("zIndex"); } this.helper.css("zIndex", o.zIndex); } //Prepare scrolling if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { this.overflowOffset = this.scrollParent.offset(); } //Call callbacks this._trigger("start", event, this._uiHash()); //Recache the helper size if(!this._preserveHelperProportions) { this._cacheHelperProportions(); } //Post "activate" events to possible containers if( !noActivation ) { for ( i = this.containers.length - 1; i >= 0; i-- ) { this.containers[ i ]._trigger( "activate", event, this._uiHash( this ) ); } } //Prepare possible droppables if($.ui.ddmanager) { $.ui.ddmanager.current = this; } if ($.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(this, event); } this.dragging = true; this.helper.addClass("ui-sortable-helper"); this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position return true; }, _mouseDrag: function(event) { var i, item, itemElement, intersection, o = this.options, scrolled = false; //Compute the helpers position this.position = this._generatePosition(event); this.positionAbs = this._convertPositionTo("absolute"); if (!this.lastPositionAbs) { this.lastPositionAbs = this.positionAbs; } //Do scrolling if(this.options.scroll) { if(this.scrollParent[0] !== document && this.scrollParent[0].tagName !== "HTML") { if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; } else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) { this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; } if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; } else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) { this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; } } else { if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); } if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); } } if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(this, event); } } //Regenerate the absolute position used for position checks this.positionAbs = this._convertPositionTo("absolute"); //Set the helper position if(!this.options.axis || this.options.axis !== "y") { this.helper[0].style.left = this.position.left+"px"; } if(!this.options.axis || this.options.axis !== "x") { this.helper[0].style.top = this.position.top+"px"; } //Rearrange for (i = this.items.length - 1; i >= 0; i--) { //Cache variables and intersection, continue if no intersection item = this.items[i]; itemElement = item.item[0]; intersection = this._intersectsWithPointer(item); if (!intersection) { continue; } // Only put the placeholder inside the current Container, skip all // items form other containers. This works because when moving // an item from one container to another the // currentContainer is switched before the placeholder is moved. // // Without this moving items in "sub-sortables" can cause the placeholder to jitter // beetween the outer and inner container. if (item.instance !== this.currentContainer) { continue; } // cannot intersect with itself // no useless actions that have been done before // no action if the item moved is the parent of the item checked if (itemElement !== this.currentItem[0] && this.placeholder[intersection === 1 ? "next" : "prev"]()[0] !== itemElement && !$.contains(this.placeholder[0], itemElement) && (this.options.type === "semi-dynamic" ? !$.contains(this.element[0], itemElement) : true) ) { this.direction = intersection === 1 ? "down" : "up"; if (this.options.tolerance === "pointer" || this._intersectsWithSides(item)) { this._rearrange(event, item); } else { break; } this._trigger("change", event, this._uiHash()); break; } } //Post events to containers this._contactContainers(event); //Interconnect with droppables if($.ui.ddmanager) { $.ui.ddmanager.drag(this, event); } //Call callbacks this._trigger("sort", event, this._uiHash()); this.lastPositionAbs = this.positionAbs; return false; }, _mouseStop: function(event, noPropagation) { if(!event) { return; } //If we are using droppables, inform the manager about the drop if ($.ui.ddmanager && !this.options.dropBehaviour) { $.ui.ddmanager.drop(this, event); } if(this.options.revert) { var that = this, cur = this.placeholder.offset(); this.reverting = true; $(this.helper).animate({ left: cur.left - this.offset.parent.left - this.margins.left + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollLeft), top: cur.top - this.offset.parent.top - this.margins.top + (this.offsetParent[0] === document.body ? 0 : this.offsetParent[0].scrollTop) }, parseInt(this.options.revert, 10) || 500, function() { that._clear(event); }); } else { this._clear(event, noPropagation); } return false; }, cancel: function() { if(this.dragging) { this._mouseUp({ target: null }); if(this.options.helper === "original") { this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); } else { this.currentItem.show(); } //Post deactivating events to containers for (var i = this.containers.length - 1; i >= 0; i--){ this.containers[i]._trigger("deactivate", null, this._uiHash(this)); if(this.containers[i].containerCache.over) { this.containers[i]._trigger("out", null, this._uiHash(this)); this.containers[i].containerCache.over = 0; } } } if (this.placeholder) { //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! if(this.placeholder[0].parentNode) { this.placeholder[0].parentNode.removeChild(this.placeholder[0]); } if(this.options.helper !== "original" && this.helper && this.helper[0].parentNode) { this.helper.remove(); } $.extend(this, { helper: null, dragging: false, reverting: false, _noFinalSort: null }); if(this.domPosition.prev) { $(this.domPosition.prev).after(this.currentItem); } else { $(this.domPosition.parent).prepend(this.currentItem); } } return this; }, serialize: function(o) { var items = this._getItemsAsjQuery(o && o.connected), str = []; o = o || {}; $(items).each(function() { var res = ($(o.item || this).attr(o.attribute || "id") || "").match(o.expression || (/(.+)[\-=_](.+)/)); if (res) { str.push((o.key || res[1]+"[]")+"="+(o.key && o.expression ? res[1] : res[2])); } }); if(!str.length && o.key) { str.push(o.key + "="); } return str.join("&"); }, toArray: function(o) { var items = this._getItemsAsjQuery(o && o.connected), ret = []; o = o || {}; items.each(function() { ret.push($(o.item || this).attr(o.attribute || "id") || ""); }); return ret; }, /* Be careful with the following core functions */ _intersectsWith: function(item) { var x1 = this.positionAbs.left, x2 = x1 + this.helperProportions.width, y1 = this.positionAbs.top, y2 = y1 + this.helperProportions.height, l = item.left, r = l + item.width, t = item.top, b = t + item.height, dyClick = this.offset.click.top, dxClick = this.offset.click.left, isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; if ( this.options.tolerance === "pointer" || this.options.forcePointerForContainers || (this.options.tolerance !== "pointer" && this.helperProportions[this.floating ? "width" : "height"] > item[this.floating ? "width" : "height"]) ) { return isOverElement; } else { return (l < x1 + (this.helperProportions.width / 2) && // Right Half x2 - (this.helperProportions.width / 2) < r && // Left Half t < y1 + (this.helperProportions.height / 2) && // Bottom Half y2 - (this.helperProportions.height / 2) < b ); // Top Half } }, _intersectsWithPointer: function(item) { var isOverElementHeight = (this.options.axis === "x") || isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), isOverElementWidth = (this.options.axis === "y") || isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), isOverElement = isOverElementHeight && isOverElementWidth, verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection(); if (!isOverElement) { return false; } return this.floating ? ( ((horizontalDirection && horizontalDirection === "right") || verticalDirection === "down") ? 2 : 1 ) : ( verticalDirection && (verticalDirection === "down" ? 2 : 1) ); }, _intersectsWithSides: function(item) { var isOverBottomHalf = isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), isOverRightHalf = isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), verticalDirection = this._getDragVerticalDirection(), horizontalDirection = this._getDragHorizontalDirection(); if (this.floating && horizontalDirection) { return ((horizontalDirection === "right" && isOverRightHalf) || (horizontalDirection === "left" && !isOverRightHalf)); } else { return verticalDirection && ((verticalDirection === "down" && isOverBottomHalf) || (verticalDirection === "up" && !isOverBottomHalf)); } }, _getDragVerticalDirection: function() { var delta = this.positionAbs.top - this.lastPositionAbs.top; return delta !== 0 && (delta > 0 ? "down" : "up"); }, _getDragHorizontalDirection: function() { var delta = this.positionAbs.left - this.lastPositionAbs.left; return delta !== 0 && (delta > 0 ? "right" : "left"); }, refresh: function(event) { this._refreshItems(event); this.refreshPositions(); return this; }, _connectWith: function() { var options = this.options; return options.connectWith.constructor === String ? [options.connectWith] : options.connectWith; }, _getItemsAsjQuery: function(connected) { var i, j, cur, inst, items = [], queries = [], connectWith = this._connectWith(); if(connectWith && connected) { for (i = connectWith.length - 1; i >= 0; i--){ cur = $(connectWith[i]); for ( j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), inst]); } } } } queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); for (i = queries.length - 1; i >= 0; i--){ queries[i][0].each(function() { items.push(this); }); } return $(items); }, _removeCurrentsFromItems: function() { var list = this.currentItem.find(":data(" + this.widgetName + "-item)"); this.items = $.grep(this.items, function (item) { for (var j=0; j < list.length; j++) { if(list[j] === item.item[0]) { return false; } } return true; }); }, _refreshItems: function(event) { this.items = []; this.containers = [this]; var i, j, cur, inst, targetData, _queries, item, queriesLength, items = this.items, queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]], connectWith = this._connectWith(); if(connectWith && this.ready) { //Shouldn't be run the first time through due to massive slow-down for (i = connectWith.length - 1; i >= 0; i--){ cur = $(connectWith[i]); for (j = cur.length - 1; j >= 0; j--){ inst = $.data(cur[j], this.widgetFullName); if(inst && inst !== this && !inst.options.disabled) { queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); this.containers.push(inst); } } } } for (i = queries.length - 1; i >= 0; i--) { targetData = queries[i][1]; _queries = queries[i][0]; for (j=0, queriesLength = _queries.length; j < queriesLength; j++) { item = $(_queries[j]); item.data(this.widgetName + "-item", targetData); // Data for target checking (mouse manager) items.push({ item: item, instance: targetData, width: 0, height: 0, left: 0, top: 0 }); } } }, refreshPositions: function(fast) { //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change if(this.offsetParent && this.helper) { this.offset.parent = this._getParentOffset(); } var i, item, t, p; for (i = this.items.length - 1; i >= 0; i--){ item = this.items[i]; //We ignore calculating positions of all connected containers when we're not over them if(item.instance !== this.currentContainer && this.currentContainer && item.item[0] !== this.currentItem[0]) { continue; } t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; if (!fast) { item.width = t.outerWidth(); item.height = t.outerHeight(); } p = t.offset(); item.left = p.left; item.top = p.top; } if(this.options.custom && this.options.custom.refreshContainers) { this.options.custom.refreshContainers.call(this); } else { for (i = this.containers.length - 1; i >= 0; i--){ p = this.containers[i].element.offset(); this.containers[i].containerCache.left = p.left; this.containers[i].containerCache.top = p.top; this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); } } return this; }, _createPlaceholder: function(that) { that = that || this; var className, o = that.options; if(!o.placeholder || o.placeholder.constructor === String) { className = o.placeholder; o.placeholder = { element: function() { var el = $(document.createElement(that.currentItem[0].nodeName)) .addClass(className || that.currentItem[0].className+" ui-sortable-placeholder") .removeClass("ui-sortable-helper")[0]; if(!className) { el.style.visibility = "hidden"; } return el; }, update: function(container, p) { // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified if(className && !o.forcePlaceholderSize) { return; } //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item if(!p.height()) { p.height(that.currentItem.innerHeight() - parseInt(that.currentItem.css("paddingTop")||0, 10) - parseInt(that.currentItem.css("paddingBottom")||0, 10)); } if(!p.width()) { p.width(that.currentItem.innerWidth() - parseInt(that.currentItem.css("paddingLeft")||0, 10) - parseInt(that.currentItem.css("paddingRight")||0, 10)); } } }; } //Create the placeholder that.placeholder = $(o.placeholder.element.call(that.element, that.currentItem)); //Append it after the actual current item that.currentItem.after(that.placeholder); //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) o.placeholder.update(that, that.placeholder); }, _contactContainers: function(event) { var i, j, dist, itemWithLeastDistance, posProperty, sizeProperty, base, cur, nearBottom, innermostContainer = null, innermostIndex = null; // get innermost container that intersects with item for (i = this.containers.length - 1; i >= 0; i--) { // never consider a container that's located within the item itself if($.contains(this.currentItem[0], this.containers[i].element[0])) { continue; } if(this._intersectsWith(this.containers[i].containerCache)) { // if we've already found a container and it's more "inner" than this, then continue if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0])) { continue; } innermostContainer = this.containers[i]; innermostIndex = i; } else { // container doesn't intersect. trigger "out" event if necessary if(this.containers[i].containerCache.over) { this.containers[i]._trigger("out", event, this._uiHash(this)); this.containers[i].containerCache.over = 0; } } } // if no intersecting containers found, return if(!innermostContainer) { return; } // move the item into the container if it's not there already if(this.containers.length === 1) { this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); this.containers[innermostIndex].containerCache.over = 1; } else { //When entering a new container, we will find the item with the least distance and append our item near it dist = 10000; itemWithLeastDistance = null; posProperty = this.containers[innermostIndex].floating ? "left" : "top"; sizeProperty = this.containers[innermostIndex].floating ? "width" : "height"; base = this.positionAbs[posProperty] + this.offset.click[posProperty]; for (j = this.items.length - 1; j >= 0; j--) { if(!$.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) { continue; } if(this.items[j].item[0] === this.currentItem[0]) { continue; } cur = this.items[j].item.offset()[posProperty]; nearBottom = false; if(Math.abs(cur - base) > Math.abs(cur + this.items[j][sizeProperty] - base)){ nearBottom = true; cur += this.items[j][sizeProperty]; } if(Math.abs(cur - base) < dist) { dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; this.direction = nearBottom ? "up": "down"; } } //Check if dropOnEmpty is enabled if(!itemWithLeastDistance && !this.options.dropOnEmpty) { return; } this.currentContainer = this.containers[innermostIndex]; itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); this._trigger("change", event, this._uiHash()); this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); //Update the placeholder this.options.placeholder.update(this.currentContainer, this.placeholder); this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); this.containers[innermostIndex].containerCache.over = 1; } }, _createHelper: function(event) { var o = this.options, helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper === "clone" ? this.currentItem.clone() : this.currentItem); //Add the helper to the DOM if that didn't happen already if(!helper.parents("body").length) { $(o.appendTo !== "parent" ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); } if(helper[0] === this.currentItem[0]) { this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; } if(!helper[0].style.width || o.forceHelperSize) { helper.width(this.currentItem.width()); } if(!helper[0].style.height || o.forceHelperSize) { helper.height(this.currentItem.height()); } return helper; }, _adjustOffsetFromHelper: function(obj) { if (typeof obj === "string") { obj = obj.split(" "); } if ($.isArray(obj)) { obj = {left: +obj[0], top: +obj[1] || 0}; } if ("left" in obj) { this.offset.click.left = obj.left + this.margins.left; } if ("right" in obj) { this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; } if ("top" in obj) { this.offset.click.top = obj.top + this.margins.top; } if ("bottom" in obj) { this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; } }, _getParentOffset: function() { //Get the offsetParent and cache its position this.offsetParent = this.helper.offsetParent(); var po = this.offsetParent.offset(); // This is a special case where we need to modify a offset calculated on start, since the following happened: // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { po.left += this.scrollParent.scrollLeft(); po.top += this.scrollParent.scrollTop(); } // This needs to be actually done for all browsers, since pageX/pageY includes this information // with an ugly IE fix if( this.offsetParent[0] === document.body || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { po = { top: 0, left: 0 }; } return { top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) }; }, _getRelativeOffset: function() { if(this.cssPosition === "relative") { var p = this.currentItem.position(); return { top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() }; } else { return { top: 0, left: 0 }; } }, _cacheMargins: function() { this.margins = { left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), top: (parseInt(this.currentItem.css("marginTop"),10) || 0) }; }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() }; }, _setContainment: function() { var ce, co, over, o = this.options; if(o.containment === "parent") { o.containment = this.helper[0].parentNode; } if(o.containment === "document" || o.containment === "window") { this.containment = [ 0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left, ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; } if(!(/^(document|window|parent)$/).test(o.containment)) { ce = $(o.containment)[0]; co = $(o.containment).offset(); over = ($(ce).css("overflow") !== "hidden"); this.containment = [ co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top ]; } }, _convertPositionTo: function(d, pos) { if(!pos) { pos = this.position; } var mod = d === "absolute" ? 1 : -1, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); return { top: ( pos.top + // The absolute mouse position this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) ), left: ( pos.left + // The absolute mouse position this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) ) }; }, _generatePosition: function(event) { var top, left, o = this.options, pageX = event.pageX, pageY = event.pageY, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); // This is another very weird special case that only happens for relative elements: // 1. If the css position is relative // 2. and the scroll parent is the document or similar to the offset parent // we have to refresh the relative offset during the scroll so there are no jumps if(this.cssPosition === "relative" && !(this.scrollParent[0] !== document && this.scrollParent[0] !== this.offsetParent[0])) { this.offset.relative = this._getRelativeOffset(); } /* * - Position constraining - * Constrain the position to a mix of grid, containment. */ if(this.originalPosition) { //If we are not dragging yet, we won't check for options if(this.containment) { if(event.pageX - this.offset.click.left < this.containment[0]) { pageX = this.containment[0] + this.offset.click.left; } if(event.pageY - this.offset.click.top < this.containment[1]) { pageY = this.containment[1] + this.offset.click.top; } if(event.pageX - this.offset.click.left > this.containment[2]) { pageX = this.containment[2] + this.offset.click.left; } if(event.pageY - this.offset.click.top > this.containment[3]) { pageY = this.containment[3] + this.offset.click.top; } } if(o.grid) { top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; pageY = this.containment ? ( (top - this.offset.click.top >= this.containment[1] && top - this.offset.click.top <= this.containment[3]) ? top : ((top - this.offset.click.top >= this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; pageX = this.containment ? ( (left - this.offset.click.left >= this.containment[0] && left - this.offset.click.left <= this.containment[2]) ? left : ((left - this.offset.click.left >= this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; } } return { top: ( pageY - // The absolute mouse position this.offset.click.top - // Click offset (relative to the element) this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) ), left: ( pageX - // The absolute mouse position this.offset.click.left - // Click offset (relative to the element) this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) ) }; }, _rearrange: function(event, i, a, hardRefresh) { a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction === "down" ? i.item[0] : i.item[0].nextSibling)); //Various things done here to improve the performance: // 1. we create a setTimeout, that calls refreshPositions // 2. on the instance, we have a counter variable, that get's higher after every append // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same // 4. this lets only the last addition to the timeout stack through this.counter = this.counter ? ++this.counter : 1; var counter = this.counter; this._delay(function() { if(counter === this.counter) { this.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove } }); }, _clear: function(event, noPropagation) { this.reverting = false; // We delay all events that have to be triggered to after the point where the placeholder has been removed and // everything else normalized again var i, delayedTriggers = []; // We first have to update the dom position of the actual currentItem // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) if(!this._noFinalSort && this.currentItem.parent().length) { this.placeholder.before(this.currentItem); } this._noFinalSort = null; if(this.helper[0] === this.currentItem[0]) { for(i in this._storedCSS) { if(this._storedCSS[i] === "auto" || this._storedCSS[i] === "static") { this._storedCSS[i] = ""; } } this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); } else { this.currentItem.show(); } if(this.fromOutside && !noPropagation) { delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); } if((this.fromOutside || this.domPosition.prev !== this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent !== this.currentItem.parent()[0]) && !noPropagation) { delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed } // Check if the items Container has Changed and trigger appropriate // events. if (this !== this.currentContainer) { if(!noPropagation) { delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.currentContainer)); } } //Post events to containers for (i = this.containers.length - 1; i >= 0; i--){ if(!noPropagation) { delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); } if(this.containers[i].containerCache.over) { delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); this.containers[i].containerCache.over = 0; } } //Do what was originally in plugins if(this._storedCursor) { $("body").css("cursor", this._storedCursor); } if(this._storedOpacity) { this.helper.css("opacity", this._storedOpacity); } if(this._storedZIndex) { this.helper.css("zIndex", this._storedZIndex === "auto" ? "" : this._storedZIndex); } this.dragging = false; if(this.cancelHelperRemoval) { if(!noPropagation) { this._trigger("beforeStop", event, this._uiHash()); for (i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); } //Trigger all delayed events this._trigger("stop", event, this._uiHash()); } this.fromOutside = false; return false; } if(!noPropagation) { this._trigger("beforeStop", event, this._uiHash()); } //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! this.placeholder[0].parentNode.removeChild(this.placeholder[0]); if(this.helper[0] !== this.currentItem[0]) { this.helper.remove(); } this.helper = null; if(!noPropagation) { for (i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); } //Trigger all delayed events this._trigger("stop", event, this._uiHash()); } this.fromOutside = false; return true; }, _trigger: function() { if ($.Widget.prototype._trigger.apply(this, arguments) === false) { this.cancel(); } }, _uiHash: function(_inst) { var inst = _inst || this; return { helper: inst.helper, placeholder: inst.placeholder || $([]), position: inst.position, originalPosition: inst.originalPosition, offset: inst.positionAbs, item: inst.currentItem, sender: _inst ? _inst.element : null }; } }); })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.dialog.js0000644000175000017500000004655312107500066022404 0ustar metalmetal/*! * jQuery UI Dialog 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/dialog/ * * Depends: * jquery.ui.core.js * jquery.ui.widget.js * jquery.ui.button.js * jquery.ui.draggable.js * jquery.ui.mouse.js * jquery.ui.position.js * jquery.ui.resizable.js */ (function( $, undefined ) { var sizeRelatedOptions = { buttons: true, height: true, maxHeight: true, maxWidth: true, minHeight: true, minWidth: true, width: true }, resizableRelatedOptions = { maxHeight: true, maxWidth: true, minHeight: true, minWidth: true }; $.widget( "ui.dialog", { version: "1.10.1", options: { appendTo: "body", autoOpen: true, buttons: [], closeOnEscape: true, closeText: "close", dialogClass: "", draggable: true, hide: null, height: "auto", maxHeight: null, maxWidth: null, minHeight: 150, minWidth: 150, modal: false, position: { my: "center", at: "center", of: window, collision: "fit", // Ensure the titlebar is always visible using: function( pos ) { var topOffset = $( this ).css( pos ).offset().top; if ( topOffset < 0 ) { $( this ).css( "top", pos.top - topOffset ); } } }, resizable: true, show: null, title: null, width: 300, // callbacks beforeClose: null, close: null, drag: null, dragStart: null, dragStop: null, focus: null, open: null, resize: null, resizeStart: null, resizeStop: null }, _create: function() { this.originalCss = { display: this.element[0].style.display, width: this.element[0].style.width, minHeight: this.element[0].style.minHeight, maxHeight: this.element[0].style.maxHeight, height: this.element[0].style.height }; this.originalPosition = { parent: this.element.parent(), index: this.element.parent().children().index( this.element ) }; this.originalTitle = this.element.attr("title"); this.options.title = this.options.title || this.originalTitle; this._createWrapper(); this.element .show() .removeAttr("title") .addClass("ui-dialog-content ui-widget-content") .appendTo( this.uiDialog ); this._createTitlebar(); this._createButtonPane(); if ( this.options.draggable && $.fn.draggable ) { this._makeDraggable(); } if ( this.options.resizable && $.fn.resizable ) { this._makeResizable(); } this._isOpen = false; }, _init: function() { if ( this.options.autoOpen ) { this.open(); } }, _appendTo: function() { var element = this.options.appendTo; if ( element && (element.jquery || element.nodeType) ) { return $( element ); } return this.document.find( element || "body" ).eq( 0 ); }, _destroy: function() { var next, originalPosition = this.originalPosition; this._destroyOverlay(); this.element .removeUniqueId() .removeClass("ui-dialog-content ui-widget-content") .css( this.originalCss ) // Without detaching first, the following becomes really slow .detach(); this.uiDialog.stop( true, true ).remove(); if ( this.originalTitle ) { this.element.attr( "title", this.originalTitle ); } next = originalPosition.parent.children().eq( originalPosition.index ); // Don't try to place the dialog next to itself (#8613) if ( next.length && next[0] !== this.element[0] ) { next.before( this.element ); } else { originalPosition.parent.append( this.element ); } }, widget: function() { return this.uiDialog; }, disable: $.noop, enable: $.noop, close: function( event ) { var that = this; if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) { return; } this._isOpen = false; this._destroyOverlay(); if ( !this.opener.filter(":focusable").focus().length ) { // Hiding a focused element doesn't trigger blur in WebKit // so in case we have nothing to focus on, explicitly blur the active element // https://bugs.webkit.org/show_bug.cgi?id=47182 $( this.document[0].activeElement ).blur(); } this._hide( this.uiDialog, this.options.hide, function() { that._trigger( "close", event ); }); }, isOpen: function() { return this._isOpen; }, moveToTop: function() { this._moveToTop(); }, _moveToTop: function( event, silent ) { var moved = !!this.uiDialog.nextAll(":visible").insertBefore( this.uiDialog ).length; if ( moved && !silent ) { this._trigger( "focus", event ); } return moved; }, open: function() { var that = this; if ( this._isOpen ) { if ( this._moveToTop() ) { this._focusTabbable(); } return; } this._isOpen = true; this.opener = $( this.document[0].activeElement ); this._size(); this._position(); this._createOverlay(); this._moveToTop( null, true ); this._show( this.uiDialog, this.options.show, function() { that._focusTabbable(); that._trigger("focus"); }); this._trigger("open"); }, _focusTabbable: function() { // Set focus to the first match: // 1. First element inside the dialog matching [autofocus] // 2. Tabbable element inside the content element // 3. Tabbable element inside the buttonpane // 4. The close button // 5. The dialog itself var hasFocus = this.element.find("[autofocus]"); if ( !hasFocus.length ) { hasFocus = this.element.find(":tabbable"); } if ( !hasFocus.length ) { hasFocus = this.uiDialogButtonPane.find(":tabbable"); } if ( !hasFocus.length ) { hasFocus = this.uiDialogTitlebarClose.filter(":tabbable"); } if ( !hasFocus.length ) { hasFocus = this.uiDialog; } hasFocus.eq( 0 ).focus(); }, _keepFocus: function( event ) { function checkFocus() { var activeElement = this.document[0].activeElement, isActive = this.uiDialog[0] === activeElement || $.contains( this.uiDialog[0], activeElement ); if ( !isActive ) { this._focusTabbable(); } } event.preventDefault(); checkFocus.call( this ); // support: IE // IE <= 8 doesn't prevent moving focus even with event.preventDefault() // so we check again later this._delay( checkFocus ); }, _createWrapper: function() { this.uiDialog = $("
    ") .addClass( "ui-dialog ui-widget ui-widget-content ui-corner-all ui-front " + this.options.dialogClass ) .hide() .attr({ // Setting tabIndex makes the div focusable tabIndex: -1, role: "dialog" }) .appendTo( this._appendTo() ); this._on( this.uiDialog, { keydown: function( event ) { if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && event.keyCode === $.ui.keyCode.ESCAPE ) { event.preventDefault(); this.close( event ); return; } // prevent tabbing out of dialogs if ( event.keyCode !== $.ui.keyCode.TAB ) { return; } var tabbables = this.uiDialog.find(":tabbable"), first = tabbables.filter(":first"), last = tabbables.filter(":last"); if ( ( event.target === last[0] || event.target === this.uiDialog[0] ) && !event.shiftKey ) { first.focus( 1 ); event.preventDefault(); } else if ( ( event.target === first[0] || event.target === this.uiDialog[0] ) && event.shiftKey ) { last.focus( 1 ); event.preventDefault(); } }, mousedown: function( event ) { if ( this._moveToTop( event ) ) { this._focusTabbable(); } } }); // We assume that any existing aria-describedby attribute means // that the dialog content is marked up properly // otherwise we brute force the content as the description if ( !this.element.find("[aria-describedby]").length ) { this.uiDialog.attr({ "aria-describedby": this.element.uniqueId().attr("id") }); } }, _createTitlebar: function() { var uiDialogTitle; this.uiDialogTitlebar = $("
    ") .addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix") .prependTo( this.uiDialog ); this._on( this.uiDialogTitlebar, { mousedown: function( event ) { // Don't prevent click on close button (#8838) // Focusing a dialog that is partially scrolled out of view // causes the browser to scroll it into view, preventing the click event if ( !$( event.target ).closest(".ui-dialog-titlebar-close") ) { // Dialog isn't getting focus when dragging (#8063) this.uiDialog.focus(); } } }); this.uiDialogTitlebarClose = $("") .button({ label: this.options.closeText, icons: { primary: "ui-icon-closethick" }, text: false }) .addClass("ui-dialog-titlebar-close") .appendTo( this.uiDialogTitlebar ); this._on( this.uiDialogTitlebarClose, { click: function( event ) { event.preventDefault(); this.close( event ); } }); uiDialogTitle = $("") .uniqueId() .addClass("ui-dialog-title") .prependTo( this.uiDialogTitlebar ); this._title( uiDialogTitle ); this.uiDialog.attr({ "aria-labelledby": uiDialogTitle.attr("id") }); }, _title: function( title ) { if ( !this.options.title ) { title.html(" "); } title.text( this.options.title ); }, _createButtonPane: function() { this.uiDialogButtonPane = $("
    ") .addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"); this.uiButtonSet = $("
    ") .addClass("ui-dialog-buttonset") .appendTo( this.uiDialogButtonPane ); this._createButtons(); }, _createButtons: function() { var that = this, buttons = this.options.buttons; // if we already have a button pane, remove it this.uiDialogButtonPane.remove(); this.uiButtonSet.empty(); if ( $.isEmptyObject( buttons ) || ($.isArray( buttons ) && !buttons.length) ) { this.uiDialog.removeClass("ui-dialog-buttons"); return; } $.each( buttons, function( name, props ) { var click, buttonOptions; props = $.isFunction( props ) ? { click: props, text: name } : props; // Default to a non-submitting button props = $.extend( { type: "button" }, props ); // Change the context for the click callback to be the main element click = props.click; props.click = function() { click.apply( that.element[0], arguments ); }; buttonOptions = { icons: props.icons, text: props.showText }; delete props.icons; delete props.showText; $( "", props ) .button( buttonOptions ) .appendTo( that.uiButtonSet ); }); this.uiDialog.addClass("ui-dialog-buttons"); this.uiDialogButtonPane.appendTo( this.uiDialog ); }, _makeDraggable: function() { var that = this, options = this.options; function filteredUi( ui ) { return { position: ui.position, offset: ui.offset }; } this.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function( event, ui ) { $( this ).addClass("ui-dialog-dragging"); that._blockFrames(); that._trigger( "dragStart", event, filteredUi( ui ) ); }, drag: function( event, ui ) { that._trigger( "drag", event, filteredUi( ui ) ); }, stop: function( event, ui ) { options.position = [ ui.position.left - that.document.scrollLeft(), ui.position.top - that.document.scrollTop() ]; $( this ).removeClass("ui-dialog-dragging"); that._unblockFrames(); that._trigger( "dragStop", event, filteredUi( ui ) ); } }); }, _makeResizable: function() { var that = this, options = this.options, handles = options.resizable, // .ui-resizable has position: relative defined in the stylesheet // but dialogs have to use absolute or fixed positioning position = this.uiDialog.css("position"), resizeHandles = typeof handles === "string" ? handles : "n,e,s,w,se,sw,ne,nw"; function filteredUi( ui ) { return { originalPosition: ui.originalPosition, originalSize: ui.originalSize, position: ui.position, size: ui.size }; } this.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: this.element, maxWidth: options.maxWidth, maxHeight: options.maxHeight, minWidth: options.minWidth, minHeight: this._minHeight(), handles: resizeHandles, start: function( event, ui ) { $( this ).addClass("ui-dialog-resizing"); that._blockFrames(); that._trigger( "resizeStart", event, filteredUi( ui ) ); }, resize: function( event, ui ) { that._trigger( "resize", event, filteredUi( ui ) ); }, stop: function( event, ui ) { options.height = $( this ).height(); options.width = $( this ).width(); $( this ).removeClass("ui-dialog-resizing"); that._unblockFrames(); that._trigger( "resizeStop", event, filteredUi( ui ) ); } }) .css( "position", position ); }, _minHeight: function() { var options = this.options; return options.height === "auto" ? options.minHeight : Math.min( options.minHeight, options.height ); }, _position: function() { // Need to show the dialog to get the actual offset in the position plugin var isVisible = this.uiDialog.is(":visible"); if ( !isVisible ) { this.uiDialog.show(); } this.uiDialog.position( this.options.position ); if ( !isVisible ) { this.uiDialog.hide(); } }, _setOptions: function( options ) { var that = this, resize = false, resizableOptions = {}; $.each( options, function( key, value ) { that._setOption( key, value ); if ( key in sizeRelatedOptions ) { resize = true; } if ( key in resizableRelatedOptions ) { resizableOptions[ key ] = value; } }); if ( resize ) { this._size(); this._position(); } if ( this.uiDialog.is(":data(ui-resizable)") ) { this.uiDialog.resizable( "option", resizableOptions ); } }, _setOption: function( key, value ) { /*jshint maxcomplexity:15*/ var isDraggable, isResizable, uiDialog = this.uiDialog; if ( key === "dialogClass" ) { uiDialog .removeClass( this.options.dialogClass ) .addClass( value ); } if ( key === "disabled" ) { return; } this._super( key, value ); if ( key === "appendTo" ) { this.uiDialog.appendTo( this._appendTo() ); } if ( key === "buttons" ) { this._createButtons(); } if ( key === "closeText" ) { this.uiDialogTitlebarClose.button({ // Ensure that we always pass a string label: "" + value }); } if ( key === "draggable" ) { isDraggable = uiDialog.is(":data(ui-draggable)"); if ( isDraggable && !value ) { uiDialog.draggable("destroy"); } if ( !isDraggable && value ) { this._makeDraggable(); } } if ( key === "position" ) { this._position(); } if ( key === "resizable" ) { // currently resizable, becoming non-resizable isResizable = uiDialog.is(":data(ui-resizable)"); if ( isResizable && !value ) { uiDialog.resizable("destroy"); } // currently resizable, changing handles if ( isResizable && typeof value === "string" ) { uiDialog.resizable( "option", "handles", value ); } // currently non-resizable, becoming resizable if ( !isResizable && value !== false ) { this._makeResizable(); } } if ( key === "title" ) { this._title( this.uiDialogTitlebar.find(".ui-dialog-title") ); } }, _size: function() { // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content // divs will both have width and height set, so we need to reset them var nonContentHeight, minContentHeight, maxContentHeight, options = this.options; // Reset content sizing this.element.show().css({ width: "auto", minHeight: 0, maxHeight: "none", height: 0 }); if ( options.minWidth > options.width ) { options.width = options.minWidth; } // reset wrapper sizing // determine the height of all the non-content elements nonContentHeight = this.uiDialog.css({ height: "auto", width: options.width }) .outerHeight(); minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); maxContentHeight = typeof options.maxHeight === "number" ? Math.max( 0, options.maxHeight - nonContentHeight ) : "none"; if ( options.height === "auto" ) { this.element.css({ minHeight: minContentHeight, maxHeight: maxContentHeight, height: "auto" }); } else { this.element.height( Math.max( 0, options.height - nonContentHeight ) ); } if (this.uiDialog.is(":data(ui-resizable)") ) { this.uiDialog.resizable( "option", "minHeight", this._minHeight() ); } }, _blockFrames: function() { this.iframeBlocks = this.document.find( "iframe" ).map(function() { var iframe = $( this ); return $( "
    " ) .css({ position: "absolute", width: iframe.outerWidth(), height: iframe.outerHeight() }) .appendTo( iframe.parent() ) .offset( iframe.offset() )[0]; }); }, _unblockFrames: function() { if ( this.iframeBlocks ) { this.iframeBlocks.remove(); delete this.iframeBlocks; } }, _createOverlay: function() { if ( !this.options.modal ) { return; } if ( !$.ui.dialog.overlayInstances ) { // Prevent use of anchors and inputs. // We use a delay in case the overlay is created from an // event that we're going to be cancelling. (#2804) this._delay(function() { // Handle .dialog().dialog("close") (#4065) if ( $.ui.dialog.overlayInstances ) { this.document.bind( "focusin.dialog", function( event ) { if ( !$( event.target ).closest(".ui-dialog").length && // TODO: Remove hack when datepicker implements // the .ui-front logic (#8989) !$( event.target ).closest(".ui-datepicker").length ) { event.preventDefault(); $(".ui-dialog:visible:last .ui-dialog-content") .data("ui-dialog")._focusTabbable(); } }); } }); } this.overlay = $("
    ") .addClass("ui-widget-overlay ui-front") .appendTo( this._appendTo() ); this._on( this.overlay, { mousedown: "_keepFocus" }); $.ui.dialog.overlayInstances++; }, _destroyOverlay: function() { if ( !this.options.modal ) { return; } if ( this.overlay ) { $.ui.dialog.overlayInstances--; if ( !$.ui.dialog.overlayInstances ) { this.document.unbind( "focusin.dialog" ); } this.overlay.remove(); this.overlay = null; } } }); $.ui.dialog.overlayInstances = 0; // DEPRECATED if ( $.uiBackCompat !== false ) { // position option with array notation // just override with old implementation $.widget( "ui.dialog", $.ui.dialog, { _position: function() { var position = this.options.position, myAt = [], offset = [ 0, 0 ], isVisible; if ( position ) { if ( typeof position === "string" || (typeof position === "object" && "0" in position ) ) { myAt = position.split ? position.split(" ") : [ position[0], position[1] ]; if ( myAt.length === 1 ) { myAt[1] = myAt[0]; } $.each( [ "left", "top" ], function( i, offsetPosition ) { if ( +myAt[ i ] === myAt[ i ] ) { offset[ i ] = myAt[ i ]; myAt[ i ] = offsetPosition; } }); position = { my: myAt[0] + (offset[0] < 0 ? offset[0] : "+" + offset[0]) + " " + myAt[1] + (offset[1] < 0 ? offset[1] : "+" + offset[1]), at: myAt.join(" ") }; } position = $.extend( {}, $.ui.dialog.prototype.options.position, position ); } else { position = $.ui.dialog.prototype.options.position; } // need to show the dialog to get the actual offset in the position plugin isVisible = this.uiDialog.is(":visible"); if ( !isVisible ) { this.uiDialog.show(); } this.uiDialog.position( position ); if ( !isVisible ) { this.uiDialog.hide(); } } }); } }( jQuery ) ); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-fade.js0000644000175000017500000000105612107500066023263 0ustar metalmetal/*! * jQuery UI Effects Fade 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/fade-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.fade = function( o, done ) { var el = $( this ), mode = $.effects.setMode( el, o.mode || "toggle" ); el.animate({ opacity: mode }, { queue: false, duration: o.duration, easing: o.easing, complete: done }); }; })( jQuery ); jqueryui-1.10.1/development-bundle/ui/jquery.ui.datepicker.js0000644000175000017500000022633112107500066023252 0ustar metalmetal/*! * jQuery UI Datepicker 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/datepicker/ * * Depends: * jquery.ui.core.js */ (function( $, undefined ) { $.extend($.ui, { datepicker: { version: "1.10.1" } }); var PROP_NAME = "datepicker", dpuuid = new Date().getTime(), instActive; /* Date picker manager. Use the singleton instance of this class, $.datepicker, to interact with the date picker. Settings for (groups of) date pickers are maintained in an instance object, allowing multiple different settings on the same page. */ function Datepicker() { this._curInst = null; // The current instance in use this._keyEvent = false; // If the last event was a key event this._disabledInputs = []; // List of date picker inputs that have been disabled this._datepickerShowing = false; // True if the popup picker is showing , false if not this._inDialog = false; // True if showing within a "dialog", false if not this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class this._appendClass = "ui-datepicker-append"; // The name of the append marker class this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class this.regional = []; // Available regional settings, indexed by language code this.regional[""] = { // Default regional settings closeText: "Done", // Display text for close link prevText: "Prev", // Display text for previous month link nextText: "Next", // Display text for next month link currentText: "Today", // Display text for current month link monthNames: ["January","February","March","April","May","June", "July","August","September","October","November","December"], // Names of months for drop-down and formatting monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], // For formatting dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], // For formatting dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], // For formatting dayNamesMin: ["Su","Mo","Tu","We","Th","Fr","Sa"], // Column headings for days starting at Sunday weekHeader: "Wk", // Column header for week of the year dateFormat: "mm/dd/yy", // See format options on parseDate firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ... isRTL: false, // True if right-to-left language, false if left-to-right showMonthAfterYear: false, // True if the year select precedes month, false for month then year yearSuffix: "" // Additional text to append to the year in the month headers }; this._defaults = { // Global defaults for all the date picker instances showOn: "focus", // "focus" for popup on focus, // "button" for trigger button, or "both" for either showAnim: "fadeIn", // Name of jQuery animation for popup showOptions: {}, // Options for enhanced animations defaultDate: null, // Used when field is blank: actual date, // +/-number for offset from today, null for today appendText: "", // Display text following the input box, e.g. showing the format buttonText: "...", // Text for trigger button buttonImage: "", // URL for trigger button image buttonImageOnly: false, // True if the image appears alone, false if it appears on a button hideIfNoPrevNext: false, // True to hide next/previous month links // if not applicable, false to just disable them navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links gotoCurrent: false, // True if today link goes back to current selection instead changeMonth: false, // True if month can be selected directly, false if only prev/next changeYear: false, // True if year can be selected directly, false if only prev/next yearRange: "c-10:c+10", // Range of years to display in drop-down, // either relative to today's year (-nn:+nn), relative to currently displayed year // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) showOtherMonths: false, // True to show dates in other months, false to leave blank selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable showWeek: false, // True to show week of the year, false to not show it calculateWeek: this.iso8601Week, // How to calculate the week of the year, // takes a Date and returns the number of the week for it shortYearCutoff: "+10", // Short year values < this are in the current century, // > this are in the previous century, // string value starting with "+" for current year + value minDate: null, // The earliest selectable date, or null for no limit maxDate: null, // The latest selectable date, or null for no limit duration: "fast", // Duration of display/closure beforeShowDay: null, // Function that takes a date and returns an array with // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "", // [2] = cell title (optional), e.g. $.datepicker.noWeekends beforeShow: null, // Function that takes an input field and // returns a set of custom settings for the date picker onSelect: null, // Define a callback function when a date is selected onChangeMonthYear: null, // Define a callback function when the month or year is changed onClose: null, // Define a callback function when the datepicker is closed numberOfMonths: 1, // Number of months to show at a time showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0) stepMonths: 1, // Number of months to step back/forward stepBigMonths: 12, // Number of months to step back/forward for the big links altField: "", // Selector for an alternate field to store selected dates into altFormat: "", // The date format to use for the alternate field constrainInput: true, // The input is constrained by the current date format showButtonPanel: false, // True to show button panel, false to not show it autoSize: false, // True to size the input for the date format, false to leave as is disabled: false // The initial disabled state }; $.extend(this._defaults, this.regional[""]); this.dpDiv = bindHover($("
    ")); } $.extend(Datepicker.prototype, { /* Class name added to elements to indicate already configured with a date picker. */ markerClassName: "hasDatepicker", //Keep track of the maximum number of rows displayed (see #7043) maxRows: 4, // TODO rename to "widget" when switching to widget factory _widgetDatepicker: function() { return this.dpDiv; }, /* Override the default settings for all instances of the date picker. * @param settings object - the new settings to use as defaults (anonymous object) * @return the manager object */ setDefaults: function(settings) { extendRemove(this._defaults, settings || {}); return this; }, /* Attach the date picker to a jQuery selection. * @param target element - the target input field or division or span * @param settings object - the new settings to use for this date picker instance (anonymous) */ _attachDatepicker: function(target, settings) { var nodeName, inline, inst; nodeName = target.nodeName.toLowerCase(); inline = (nodeName === "div" || nodeName === "span"); if (!target.id) { this.uuid += 1; target.id = "dp" + this.uuid; } inst = this._newInst($(target), inline); inst.settings = $.extend({}, settings || {}); if (nodeName === "input") { this._connectDatepicker(target, inst); } else if (inline) { this._inlineDatepicker(target, inst); } }, /* Create a new instance object. */ _newInst: function(target, inline) { var id = target[0].id.replace(/([^A-Za-z0-9_\-])/g, "\\\\$1"); // escape jQuery meta chars return {id: id, input: target, // associated target selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection drawMonth: 0, drawYear: 0, // month being drawn inline: inline, // is datepicker inline or not dpDiv: (!inline ? this.dpDiv : // presentation div bindHover($("
    ")))}; }, /* Attach the date picker to an input field. */ _connectDatepicker: function(target, inst) { var input = $(target); inst.append = $([]); inst.trigger = $([]); if (input.hasClass(this.markerClassName)) { return; } this._attachments(input, inst); input.addClass(this.markerClassName).keydown(this._doKeyDown). keypress(this._doKeyPress).keyup(this._doKeyUp); this._autoSize(inst); $.data(target, PROP_NAME, inst); //If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665) if( inst.settings.disabled ) { this._disableDatepicker( target ); } }, /* Make attachments based on settings. */ _attachments: function(input, inst) { var showOn, buttonText, buttonImage, appendText = this._get(inst, "appendText"), isRTL = this._get(inst, "isRTL"); if (inst.append) { inst.append.remove(); } if (appendText) { inst.append = $("" + appendText + ""); input[isRTL ? "before" : "after"](inst.append); } input.unbind("focus", this._showDatepicker); if (inst.trigger) { inst.trigger.remove(); } showOn = this._get(inst, "showOn"); if (showOn === "focus" || showOn === "both") { // pop-up date picker when in the marked field input.focus(this._showDatepicker); } if (showOn === "button" || showOn === "both") { // pop-up date picker when button clicked buttonText = this._get(inst, "buttonText"); buttonImage = this._get(inst, "buttonImage"); inst.trigger = $(this._get(inst, "buttonImageOnly") ? $("").addClass(this._triggerClass). attr({ src: buttonImage, alt: buttonText, title: buttonText }) : $("").addClass(this._triggerClass). html(!buttonImage ? buttonText : $("").attr( { src:buttonImage, alt:buttonText, title:buttonText }))); input[isRTL ? "before" : "after"](inst.trigger); inst.trigger.click(function() { if ($.datepicker._datepickerShowing && $.datepicker._lastInput === input[0]) { $.datepicker._hideDatepicker(); } else if ($.datepicker._datepickerShowing && $.datepicker._lastInput !== input[0]) { $.datepicker._hideDatepicker(); $.datepicker._showDatepicker(input[0]); } else { $.datepicker._showDatepicker(input[0]); } return false; }); } }, /* Apply the maximum length for the date format. */ _autoSize: function(inst) { if (this._get(inst, "autoSize") && !inst.inline) { var findMax, max, maxI, i, date = new Date(2009, 12 - 1, 20), // Ensure double digits dateFormat = this._get(inst, "dateFormat"); if (dateFormat.match(/[DM]/)) { findMax = function(names) { max = 0; maxI = 0; for (i = 0; i < names.length; i++) { if (names[i].length > max) { max = names[i].length; maxI = i; } } return maxI; }; date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? "monthNames" : "monthNamesShort")))); date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? "dayNames" : "dayNamesShort"))) + 20 - date.getDay()); } inst.input.attr("size", this._formatDate(inst, date).length); } }, /* Attach an inline date picker to a div. */ _inlineDatepicker: function(target, inst) { var divSpan = $(target); if (divSpan.hasClass(this.markerClassName)) { return; } divSpan.addClass(this.markerClassName).append(inst.dpDiv); $.data(target, PROP_NAME, inst); this._setDate(inst, this._getDefaultDate(inst), true); this._updateDatepicker(inst); this._updateAlternate(inst); //If disabled option is true, disable the datepicker before showing it (see ticket #5665) if( inst.settings.disabled ) { this._disableDatepicker( target ); } // Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements // http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height inst.dpDiv.css( "display", "block" ); }, /* Pop-up the date picker in a "dialog" box. * @param input element - ignored * @param date string or Date - the initial date to display * @param onSelect function - the function to call when a date is selected * @param settings object - update the dialog date picker instance's settings (anonymous object) * @param pos int[2] - coordinates for the dialog's position within the screen or * event - with x/y coordinates or * leave empty for default (screen centre) * @return the manager object */ _dialogDatepicker: function(input, date, onSelect, settings, pos) { var id, browserWidth, browserHeight, scrollX, scrollY, inst = this._dialogInst; // internal instance if (!inst) { this.uuid += 1; id = "dp" + this.uuid; this._dialogInput = $(""); this._dialogInput.keydown(this._doKeyDown); $("body").append(this._dialogInput); inst = this._dialogInst = this._newInst(this._dialogInput, false); inst.settings = {}; $.data(this._dialogInput[0], PROP_NAME, inst); } extendRemove(inst.settings, settings || {}); date = (date && date.constructor === Date ? this._formatDate(inst, date) : date); this._dialogInput.val(date); this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); if (!this._pos) { browserWidth = document.documentElement.clientWidth; browserHeight = document.documentElement.clientHeight; scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; scrollY = document.documentElement.scrollTop || document.body.scrollTop; this._pos = // should use actual width/height below [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; } // move input on screen for focus, but hidden behind dialog this._dialogInput.css("left", (this._pos[0] + 20) + "px").css("top", this._pos[1] + "px"); inst.settings.onSelect = onSelect; this._inDialog = true; this.dpDiv.addClass(this._dialogClass); this._showDatepicker(this._dialogInput[0]); if ($.blockUI) { $.blockUI(this.dpDiv); } $.data(this._dialogInput[0], PROP_NAME, inst); return this; }, /* Detach a datepicker from its control. * @param target element - the target input field or division or span */ _destroyDatepicker: function(target) { var nodeName, $target = $(target), inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } nodeName = target.nodeName.toLowerCase(); $.removeData(target, PROP_NAME); if (nodeName === "input") { inst.append.remove(); inst.trigger.remove(); $target.removeClass(this.markerClassName). unbind("focus", this._showDatepicker). unbind("keydown", this._doKeyDown). unbind("keypress", this._doKeyPress). unbind("keyup", this._doKeyUp); } else if (nodeName === "div" || nodeName === "span") { $target.removeClass(this.markerClassName).empty(); } }, /* Enable the date picker to a jQuery selection. * @param target element - the target input field or division or span */ _enableDatepicker: function(target) { var nodeName, inline, $target = $(target), inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } nodeName = target.nodeName.toLowerCase(); if (nodeName === "input") { target.disabled = false; inst.trigger.filter("button"). each(function() { this.disabled = false; }).end(). filter("img").css({opacity: "1.0", cursor: ""}); } else if (nodeName === "div" || nodeName === "span") { inline = $target.children("." + this._inlineClass); inline.children().removeClass("ui-state-disabled"); inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). prop("disabled", false); } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value === target ? null : value); }); // delete entry }, /* Disable the date picker to a jQuery selection. * @param target element - the target input field or division or span */ _disableDatepicker: function(target) { var nodeName, inline, $target = $(target), inst = $.data(target, PROP_NAME); if (!$target.hasClass(this.markerClassName)) { return; } nodeName = target.nodeName.toLowerCase(); if (nodeName === "input") { target.disabled = true; inst.trigger.filter("button"). each(function() { this.disabled = true; }).end(). filter("img").css({opacity: "0.5", cursor: "default"}); } else if (nodeName === "div" || nodeName === "span") { inline = $target.children("." + this._inlineClass); inline.children().addClass("ui-state-disabled"); inline.find("select.ui-datepicker-month, select.ui-datepicker-year"). prop("disabled", true); } this._disabledInputs = $.map(this._disabledInputs, function(value) { return (value === target ? null : value); }); // delete entry this._disabledInputs[this._disabledInputs.length] = target; }, /* Is the first field in a jQuery collection disabled as a datepicker? * @param target element - the target input field or division or span * @return boolean - true if disabled, false if enabled */ _isDisabledDatepicker: function(target) { if (!target) { return false; } for (var i = 0; i < this._disabledInputs.length; i++) { if (this._disabledInputs[i] === target) { return true; } } return false; }, /* Retrieve the instance data for the target control. * @param target element - the target input field or division or span * @return object - the associated instance data * @throws error if a jQuery problem getting data */ _getInst: function(target) { try { return $.data(target, PROP_NAME); } catch (err) { throw "Missing instance data for this datepicker"; } }, /* Update or retrieve the settings for a date picker attached to an input field or division. * @param target element - the target input field or division or span * @param name object - the new settings to update or * string - the name of the setting to change or retrieve, * when retrieving also "all" for all instance settings or * "defaults" for all global defaults * @param value any - the new value for the setting * (omit if above is an object or to retrieve a value) */ _optionDatepicker: function(target, name, value) { var settings, date, minDate, maxDate, inst = this._getInst(target); if (arguments.length === 2 && typeof name === "string") { return (name === "defaults" ? $.extend({}, $.datepicker._defaults) : (inst ? (name === "all" ? $.extend({}, inst.settings) : this._get(inst, name)) : null)); } settings = name || {}; if (typeof name === "string") { settings = {}; settings[name] = value; } if (inst) { if (this._curInst === inst) { this._hideDatepicker(); } date = this._getDateDatepicker(target, true); minDate = this._getMinMaxDate(inst, "min"); maxDate = this._getMinMaxDate(inst, "max"); extendRemove(inst.settings, settings); // reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided if (minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined) { inst.settings.minDate = this._formatDate(inst, minDate); } if (maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined) { inst.settings.maxDate = this._formatDate(inst, maxDate); } if ( "disabled" in settings ) { if ( settings.disabled ) { this._disableDatepicker(target); } else { this._enableDatepicker(target); } } this._attachments($(target), inst); this._autoSize(inst); this._setDate(inst, date); this._updateAlternate(inst); this._updateDatepicker(inst); } }, // change method deprecated _changeDatepicker: function(target, name, value) { this._optionDatepicker(target, name, value); }, /* Redraw the date picker attached to an input field or division. * @param target element - the target input field or division or span */ _refreshDatepicker: function(target) { var inst = this._getInst(target); if (inst) { this._updateDatepicker(inst); } }, /* Set the dates for a jQuery selection. * @param target element - the target input field or division or span * @param date Date - the new date */ _setDateDatepicker: function(target, date) { var inst = this._getInst(target); if (inst) { this._setDate(inst, date); this._updateDatepicker(inst); this._updateAlternate(inst); } }, /* Get the date(s) for the first entry in a jQuery selection. * @param target element - the target input field or division or span * @param noDefault boolean - true if no default date is to be used * @return Date - the current date */ _getDateDatepicker: function(target, noDefault) { var inst = this._getInst(target); if (inst && !inst.inline) { this._setDateFromField(inst, noDefault); } return (inst ? this._getDate(inst) : null); }, /* Handle keystrokes. */ _doKeyDown: function(event) { var onSelect, dateStr, sel, inst = $.datepicker._getInst(event.target), handled = true, isRTL = inst.dpDiv.is(".ui-datepicker-rtl"); inst._keyEvent = true; if ($.datepicker._datepickerShowing) { switch (event.keyCode) { case 9: $.datepicker._hideDatepicker(); handled = false; break; // hide on tab out case 13: sel = $("td." + $.datepicker._dayOverClass + ":not(." + $.datepicker._currentClass + ")", inst.dpDiv); if (sel[0]) { $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); } onSelect = $.datepicker._get(inst, "onSelect"); if (onSelect) { dateStr = $.datepicker._formatDate(inst); // trigger custom callback onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); } else { $.datepicker._hideDatepicker(); } return false; // don't submit the form case 27: $.datepicker._hideDatepicker(); break; // hide on escape case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, "stepBigMonths") : -$.datepicker._get(inst, "stepMonths")), "M"); break; // previous month/year on page up/+ ctrl case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, "stepBigMonths") : +$.datepicker._get(inst, "stepMonths")), "M"); break; // next month/year on page down/+ ctrl case 35: if (event.ctrlKey || event.metaKey) { $.datepicker._clearDate(event.target); } handled = event.ctrlKey || event.metaKey; break; // clear on ctrl or command +end case 36: if (event.ctrlKey || event.metaKey) { $.datepicker._gotoToday(event.target); } handled = event.ctrlKey || event.metaKey; break; // current on ctrl or command +home case 37: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), "D"); } handled = event.ctrlKey || event.metaKey; // -1 day on ctrl or command +left if (event.originalEvent.altKey) { $.datepicker._adjustDate(event.target, (event.ctrlKey ? -$.datepicker._get(inst, "stepBigMonths") : -$.datepicker._get(inst, "stepMonths")), "M"); } // next month/year on alt +left on Mac break; case 38: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, -7, "D"); } handled = event.ctrlKey || event.metaKey; break; // -1 week on ctrl or command +up case 39: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), "D"); } handled = event.ctrlKey || event.metaKey; // +1 day on ctrl or command +right if (event.originalEvent.altKey) { $.datepicker._adjustDate(event.target, (event.ctrlKey ? +$.datepicker._get(inst, "stepBigMonths") : +$.datepicker._get(inst, "stepMonths")), "M"); } // next month/year on alt +right break; case 40: if (event.ctrlKey || event.metaKey) { $.datepicker._adjustDate(event.target, +7, "D"); } handled = event.ctrlKey || event.metaKey; break; // +1 week on ctrl or command +down default: handled = false; } } else if (event.keyCode === 36 && event.ctrlKey) { // display the date picker on ctrl+home $.datepicker._showDatepicker(this); } else { handled = false; } if (handled) { event.preventDefault(); event.stopPropagation(); } }, /* Filter entered characters - based on date format. */ _doKeyPress: function(event) { var chars, chr, inst = $.datepicker._getInst(event.target); if ($.datepicker._get(inst, "constrainInput")) { chars = $.datepicker._possibleChars($.datepicker._get(inst, "dateFormat")); chr = String.fromCharCode(event.charCode == null ? event.keyCode : event.charCode); return event.ctrlKey || event.metaKey || (chr < " " || !chars || chars.indexOf(chr) > -1); } }, /* Synchronise manual entry and field/alternate field. */ _doKeyUp: function(event) { var date, inst = $.datepicker._getInst(event.target); if (inst.input.val() !== inst.lastVal) { try { date = $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), (inst.input ? inst.input.val() : null), $.datepicker._getFormatConfig(inst)); if (date) { // only if valid $.datepicker._setDateFromField(inst); $.datepicker._updateAlternate(inst); $.datepicker._updateDatepicker(inst); } } catch (err) { } } return true; }, /* Pop-up the date picker for a given input field. * If false returned from beforeShow event handler do not show. * @param input element - the input field attached to the date picker or * event - if triggered by focus */ _showDatepicker: function(input) { input = input.target || input; if (input.nodeName.toLowerCase() !== "input") { // find from button/image trigger input = $("input", input.parentNode)[0]; } if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput === input) { // already here return; } var inst, beforeShow, beforeShowSettings, isFixed, offset, showAnim, duration; inst = $.datepicker._getInst(input); if ($.datepicker._curInst && $.datepicker._curInst !== inst) { $.datepicker._curInst.dpDiv.stop(true, true); if ( inst && $.datepicker._datepickerShowing ) { $.datepicker._hideDatepicker( $.datepicker._curInst.input[0] ); } } beforeShow = $.datepicker._get(inst, "beforeShow"); beforeShowSettings = beforeShow ? beforeShow.apply(input, [input, inst]) : {}; if(beforeShowSettings === false){ return; } extendRemove(inst.settings, beforeShowSettings); inst.lastVal = null; $.datepicker._lastInput = input; $.datepicker._setDateFromField(inst); if ($.datepicker._inDialog) { // hide cursor input.value = ""; } if (!$.datepicker._pos) { // position below input $.datepicker._pos = $.datepicker._findPos(input); $.datepicker._pos[1] += input.offsetHeight; // add the height } isFixed = false; $(input).parents().each(function() { isFixed |= $(this).css("position") === "fixed"; return !isFixed; }); offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; $.datepicker._pos = null; //to avoid flashes on Firefox inst.dpDiv.empty(); // determine sizing offscreen inst.dpDiv.css({position: "absolute", display: "block", top: "-1000px"}); $.datepicker._updateDatepicker(inst); // fix width for dynamic number of date pickers // and adjust position before showing offset = $.datepicker._checkOffset(inst, offset, isFixed); inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? "static" : (isFixed ? "fixed" : "absolute")), display: "none", left: offset.left + "px", top: offset.top + "px"}); if (!inst.inline) { showAnim = $.datepicker._get(inst, "showAnim"); duration = $.datepicker._get(inst, "duration"); inst.dpDiv.zIndex($(input).zIndex()+1); $.datepicker._datepickerShowing = true; if ( $.effects && $.effects.effect[ showAnim ] ) { inst.dpDiv.show(showAnim, $.datepicker._get(inst, "showOptions"), duration); } else { inst.dpDiv[showAnim || "show"](showAnim ? duration : null); } if (inst.input.is(":visible") && !inst.input.is(":disabled")) { inst.input.focus(); } $.datepicker._curInst = inst; } }, /* Generate the date picker content. */ _updateDatepicker: function(inst) { this.maxRows = 4; //Reset the max number of rows being displayed (see #7043) instActive = inst; // for delegate hover events inst.dpDiv.empty().append(this._generateHTML(inst)); this._attachHandlers(inst); inst.dpDiv.find("." + this._dayOverClass + " a").mouseover(); var origyearshtml, numMonths = this._getNumberOfMonths(inst), cols = numMonths[1], width = 17; inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); if (cols > 1) { inst.dpDiv.addClass("ui-datepicker-multi-" + cols).css("width", (width * cols) + "em"); } inst.dpDiv[(numMonths[0] !== 1 || numMonths[1] !== 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); inst.dpDiv[(this._get(inst, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); // #6694 - don't focus the input if it's already focused // this breaks the change event in IE if (inst === $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input && inst.input.is(":visible") && !inst.input.is(":disabled") && inst.input[0] !== document.activeElement) { inst.input.focus(); } // deffered render of the years select (to avoid flashes on Firefox) if( inst.yearshtml ){ origyearshtml = inst.yearshtml; setTimeout(function(){ //assure that inst.yearshtml didn't change. if( origyearshtml === inst.yearshtml && inst.yearshtml ){ inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml); } origyearshtml = inst.yearshtml = null; }, 0); } }, /* Retrieve the size of left and top borders for an element. * @param elem (jQuery object) the element of interest * @return (number[2]) the left and top borders */ _getBorders: function(elem) { var convert = function(value) { return {thin: 1, medium: 2, thick: 3}[value] || value; }; return [parseFloat(convert(elem.css("border-left-width"))), parseFloat(convert(elem.css("border-top-width")))]; }, /* Check positioning to remain on screen. */ _checkOffset: function(inst, offset, isFixed) { var dpWidth = inst.dpDiv.outerWidth(), dpHeight = inst.dpDiv.outerHeight(), inputWidth = inst.input ? inst.input.outerWidth() : 0, inputHeight = inst.input ? inst.input.outerHeight() : 0, viewWidth = document.documentElement.clientWidth + (isFixed ? 0 : $(document).scrollLeft()), viewHeight = document.documentElement.clientHeight + (isFixed ? 0 : $(document).scrollTop()); offset.left -= (this._get(inst, "isRTL") ? (dpWidth - inputWidth) : 0); offset.left -= (isFixed && offset.left === inst.input.offset().left) ? $(document).scrollLeft() : 0; offset.top -= (isFixed && offset.top === (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; // now check if datepicker is showing outside window viewport - move to a better place if so. offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? Math.abs(offset.left + dpWidth - viewWidth) : 0); offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? Math.abs(dpHeight + inputHeight) : 0); return offset; }, /* Find an object's position on the screen. */ _findPos: function(obj) { var position, inst = this._getInst(obj), isRTL = this._get(inst, "isRTL"); while (obj && (obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden(obj))) { obj = obj[isRTL ? "previousSibling" : "nextSibling"]; } position = $(obj).offset(); return [position.left, position.top]; }, /* Hide the date picker from view. * @param input element - the input field attached to the date picker */ _hideDatepicker: function(input) { var showAnim, duration, postProcess, onClose, inst = this._curInst; if (!inst || (input && inst !== $.data(input, PROP_NAME))) { return; } if (this._datepickerShowing) { showAnim = this._get(inst, "showAnim"); duration = this._get(inst, "duration"); postProcess = function() { $.datepicker._tidyDialog(inst); }; // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) { inst.dpDiv.hide(showAnim, $.datepicker._get(inst, "showOptions"), duration, postProcess); } else { inst.dpDiv[(showAnim === "slideDown" ? "slideUp" : (showAnim === "fadeIn" ? "fadeOut" : "hide"))]((showAnim ? duration : null), postProcess); } if (!showAnim) { postProcess(); } this._datepickerShowing = false; onClose = this._get(inst, "onClose"); if (onClose) { onClose.apply((inst.input ? inst.input[0] : null), [(inst.input ? inst.input.val() : ""), inst]); } this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if ($.blockUI) { $.unblockUI(); $("body").append(this.dpDiv); } } this._inDialog = false; } }, /* Tidy up after a dialog display. */ _tidyDialog: function(inst) { inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar"); }, /* Close date picker if clicked elsewhere. */ _checkExternalClick: function(event) { if (!$.datepicker._curInst) { return; } var $target = $(event.target), inst = $.datepicker._getInst($target[0]); if ( ( ( $target[0].id !== $.datepicker._mainDivId && $target.parents("#" + $.datepicker._mainDivId).length === 0 && !$target.hasClass($.datepicker.markerClassName) && !$target.closest("." + $.datepicker._triggerClass).length && $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI) ) ) || ( $target.hasClass($.datepicker.markerClassName) && $.datepicker._curInst !== inst ) ) { $.datepicker._hideDatepicker(); } }, /* Adjust one of the date sub-fields. */ _adjustDate: function(id, offset, period) { var target = $(id), inst = this._getInst(target[0]); if (this._isDisabledDatepicker(target[0])) { return; } this._adjustInstDate(inst, offset + (period === "M" ? this._get(inst, "showCurrentAtPos") : 0), // undo positioning period); this._updateDatepicker(inst); }, /* Action for current link. */ _gotoToday: function(id) { var date, target = $(id), inst = this._getInst(target[0]); if (this._get(inst, "gotoCurrent") && inst.currentDay) { inst.selectedDay = inst.currentDay; inst.drawMonth = inst.selectedMonth = inst.currentMonth; inst.drawYear = inst.selectedYear = inst.currentYear; } else { date = new Date(); inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); } this._notifyChange(inst); this._adjustDate(target); }, /* Action for selecting a new month/year. */ _selectMonthYear: function(id, select, period) { var target = $(id), inst = this._getInst(target[0]); inst["selected" + (period === "M" ? "Month" : "Year")] = inst["draw" + (period === "M" ? "Month" : "Year")] = parseInt(select.options[select.selectedIndex].value,10); this._notifyChange(inst); this._adjustDate(target); }, /* Action for selecting a day. */ _selectDay: function(id, month, year, td) { var inst, target = $(id); if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { return; } inst = this._getInst(target[0]); inst.selectedDay = inst.currentDay = $("a", td).html(); inst.selectedMonth = inst.currentMonth = month; inst.selectedYear = inst.currentYear = year; this._selectDate(id, this._formatDate(inst, inst.currentDay, inst.currentMonth, inst.currentYear)); }, /* Erase the input field and hide the date picker. */ _clearDate: function(id) { var target = $(id); this._selectDate(target, ""); }, /* Update the input field with the selected date. */ _selectDate: function(id, dateStr) { var onSelect, target = $(id), inst = this._getInst(target[0]); dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); if (inst.input) { inst.input.val(dateStr); } this._updateAlternate(inst); onSelect = this._get(inst, "onSelect"); if (onSelect) { onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback } else if (inst.input) { inst.input.trigger("change"); // fire the change event } if (inst.inline){ this._updateDatepicker(inst); } else { this._hideDatepicker(); this._lastInput = inst.input[0]; if (typeof(inst.input[0]) !== "object") { inst.input.focus(); // restore focus } this._lastInput = null; } }, /* Update any alternate field to synchronise with the main field. */ _updateAlternate: function(inst) { var altFormat, date, dateStr, altField = this._get(inst, "altField"); if (altField) { // update alternate field too altFormat = this._get(inst, "altFormat") || this._get(inst, "dateFormat"); date = this._getDate(inst); dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); $(altField).each(function() { $(this).val(dateStr); }); } }, /* Set as beforeShowDay function to prevent selection of weekends. * @param date Date - the date to customise * @return [boolean, string] - is this date selectable?, what is its CSS class? */ noWeekends: function(date) { var day = date.getDay(); return [(day > 0 && day < 6), ""]; }, /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. * @param date Date - the date to get the week for * @return number - the number of the week within the year that contains this date */ iso8601Week: function(date) { var time, checkDate = new Date(date.getTime()); // Find Thursday of this week starting on Monday checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); time = checkDate.getTime(); checkDate.setMonth(0); // Compare with Jan 1 checkDate.setDate(1); return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; }, /* Parse a string value into a date object. * See formatDate below for the possible formats. * * @param format string - the expected format of the date * @param value string - the date in the above format * @param settings Object - attributes include: * shortYearCutoff number - the cutoff year for determining the century (optional) * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) * dayNames string[7] - names of the days from Sunday (optional) * monthNamesShort string[12] - abbreviated names of the months (optional) * monthNames string[12] - names of the months (optional) * @return Date - the extracted date value or null if value is blank */ parseDate: function (format, value, settings) { if (format == null || value == null) { throw "Invalid arguments"; } value = (typeof value === "object" ? value.toString() : value + ""); if (value === "") { return null; } var iFormat, dim, extra, iValue = 0, shortYearCutoffTemp = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff, shortYearCutoff = (typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp : new Date().getFullYear() % 100 + parseInt(shortYearCutoffTemp, 10)), dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, year = -1, month = -1, day = -1, doy = -1, literal = false, date, // Check whether a format character is doubled lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); if (matches) { iFormat++; } return matches; }, // Extract a number from the string value getNumber = function(match) { var isDoubled = lookAhead(match), size = (match === "@" ? 14 : (match === "!" ? 20 : (match === "y" && isDoubled ? 4 : (match === "o" ? 3 : 2)))), digits = new RegExp("^\\d{1," + size + "}"), num = value.substring(iValue).match(digits); if (!num) { throw "Missing number at position " + iValue; } iValue += num[0].length; return parseInt(num[0], 10); }, // Extract a name from the string value and convert to an index getName = function(match, shortNames, longNames) { var index = -1, names = $.map(lookAhead(match) ? longNames : shortNames, function (v, k) { return [ [k, v] ]; }).sort(function (a, b) { return -(a[1].length - b[1].length); }); $.each(names, function (i, pair) { var name = pair[1]; if (value.substr(iValue, name.length).toLowerCase() === name.toLowerCase()) { index = pair[0]; iValue += name.length; return false; } }); if (index !== -1) { return index + 1; } else { throw "Unknown name at position " + iValue; } }, // Confirm that a literal character matches the string value checkLiteral = function() { if (value.charAt(iValue) !== format.charAt(iFormat)) { throw "Unexpected literal at position " + iValue; } iValue++; }; for (iFormat = 0; iFormat < format.length; iFormat++) { if (literal) { if (format.charAt(iFormat) === "'" && !lookAhead("'")) { literal = false; } else { checkLiteral(); } } else { switch (format.charAt(iFormat)) { case "d": day = getNumber("d"); break; case "D": getName("D", dayNamesShort, dayNames); break; case "o": doy = getNumber("o"); break; case "m": month = getNumber("m"); break; case "M": month = getName("M", monthNamesShort, monthNames); break; case "y": year = getNumber("y"); break; case "@": date = new Date(getNumber("@")); year = date.getFullYear(); month = date.getMonth() + 1; day = date.getDate(); break; case "!": date = new Date((getNumber("!") - this._ticksTo1970) / 10000); year = date.getFullYear(); month = date.getMonth() + 1; day = date.getDate(); break; case "'": if (lookAhead("'")){ checkLiteral(); } else { literal = true; } break; default: checkLiteral(); } } } if (iValue < value.length){ extra = value.substr(iValue); if (!/^\s+/.test(extra)) { throw "Extra/unparsed characters found in date: " + extra; } } if (year === -1) { year = new Date().getFullYear(); } else if (year < 100) { year += new Date().getFullYear() - new Date().getFullYear() % 100 + (year <= shortYearCutoff ? 0 : -100); } if (doy > -1) { month = 1; day = doy; do { dim = this._getDaysInMonth(year, month - 1); if (day <= dim) { break; } month++; day -= dim; } while (true); } date = this._daylightSavingAdjust(new Date(year, month - 1, day)); if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day) { throw "Invalid date"; // E.g. 31/02/00 } return date; }, /* Standard date formats. */ ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601) COOKIE: "D, dd M yy", ISO_8601: "yy-mm-dd", RFC_822: "D, d M y", RFC_850: "DD, dd-M-y", RFC_1036: "D, d M y", RFC_1123: "D, d M yy", RFC_2822: "D, d M yy", RSS: "D, d M y", // RFC 822 TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", // ISO 8601 _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), /* Format a date object into a string value. * The format can be combinations of the following: * d - day of month (no leading zero) * dd - day of month (two digit) * o - day of year (no leading zeros) * oo - day of year (three digit) * D - day name short * DD - day name long * m - month of year (no leading zero) * mm - month of year (two digit) * M - month name short * MM - month name long * y - year (two digit) * yy - year (four digit) * @ - Unix timestamp (ms since 01/01/1970) * ! - Windows ticks (100ns since 01/01/0001) * "..." - literal text * '' - single quote * * @param format string - the desired format of the date * @param date Date - the date value to format * @param settings Object - attributes include: * dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) * dayNames string[7] - names of the days from Sunday (optional) * monthNamesShort string[12] - abbreviated names of the months (optional) * monthNames string[12] - names of the months (optional) * @return string - the date in the above format */ formatDate: function (format, date, settings) { if (!date) { return ""; } var iFormat, dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort, dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames, monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort, monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames, // Check whether a format character is doubled lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); if (matches) { iFormat++; } return matches; }, // Format a number, with leading zero if necessary formatNumber = function(match, value, len) { var num = "" + value; if (lookAhead(match)) { while (num.length < len) { num = "0" + num; } } return num; }, // Format a name, short or long as requested formatName = function(match, value, shortNames, longNames) { return (lookAhead(match) ? longNames[value] : shortNames[value]); }, output = "", literal = false; if (date) { for (iFormat = 0; iFormat < format.length; iFormat++) { if (literal) { if (format.charAt(iFormat) === "'" && !lookAhead("'")) { literal = false; } else { output += format.charAt(iFormat); } } else { switch (format.charAt(iFormat)) { case "d": output += formatNumber("d", date.getDate(), 2); break; case "D": output += formatName("D", date.getDay(), dayNamesShort, dayNames); break; case "o": output += formatNumber("o", Math.round((new Date(date.getFullYear(), date.getMonth(), date.getDate()).getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000), 3); break; case "m": output += formatNumber("m", date.getMonth() + 1, 2); break; case "M": output += formatName("M", date.getMonth(), monthNamesShort, monthNames); break; case "y": output += (lookAhead("y") ? date.getFullYear() : (date.getYear() % 100 < 10 ? "0" : "") + date.getYear() % 100); break; case "@": output += date.getTime(); break; case "!": output += date.getTime() * 10000 + this._ticksTo1970; break; case "'": if (lookAhead("'")) { output += "'"; } else { literal = true; } break; default: output += format.charAt(iFormat); } } } } return output; }, /* Extract all possible characters from the date format. */ _possibleChars: function (format) { var iFormat, chars = "", literal = false, // Check whether a format character is doubled lookAhead = function(match) { var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) === match); if (matches) { iFormat++; } return matches; }; for (iFormat = 0; iFormat < format.length; iFormat++) { if (literal) { if (format.charAt(iFormat) === "'" && !lookAhead("'")) { literal = false; } else { chars += format.charAt(iFormat); } } else { switch (format.charAt(iFormat)) { case "d": case "m": case "y": case "@": chars += "0123456789"; break; case "D": case "M": return null; // Accept anything case "'": if (lookAhead("'")) { chars += "'"; } else { literal = true; } break; default: chars += format.charAt(iFormat); } } } return chars; }, /* Get a setting value, defaulting if necessary. */ _get: function(inst, name) { return inst.settings[name] !== undefined ? inst.settings[name] : this._defaults[name]; }, /* Parse existing date and initialise date picker. */ _setDateFromField: function(inst, noDefault) { if (inst.input.val() === inst.lastVal) { return; } var dateFormat = this._get(inst, "dateFormat"), dates = inst.lastVal = inst.input ? inst.input.val() : null, defaultDate = this._getDefaultDate(inst), date = defaultDate, settings = this._getFormatConfig(inst); try { date = this.parseDate(dateFormat, dates, settings) || defaultDate; } catch (event) { dates = (noDefault ? "" : dates); } inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); inst.currentDay = (dates ? date.getDate() : 0); inst.currentMonth = (dates ? date.getMonth() : 0); inst.currentYear = (dates ? date.getFullYear() : 0); this._adjustInstDate(inst); }, /* Retrieve the default date shown on opening. */ _getDefaultDate: function(inst) { return this._restrictMinMax(inst, this._determineDate(inst, this._get(inst, "defaultDate"), new Date())); }, /* A date may be specified as an exact value or a relative one. */ _determineDate: function(inst, date, defaultDate) { var offsetNumeric = function(offset) { var date = new Date(); date.setDate(date.getDate() + offset); return date; }, offsetString = function(offset) { try { return $.datepicker.parseDate($.datepicker._get(inst, "dateFormat"), offset, $.datepicker._getFormatConfig(inst)); } catch (e) { // Ignore } var date = (offset.toLowerCase().match(/^c/) ? $.datepicker._getDate(inst) : null) || new Date(), year = date.getFullYear(), month = date.getMonth(), day = date.getDate(), pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, matches = pattern.exec(offset); while (matches) { switch (matches[2] || "d") { case "d" : case "D" : day += parseInt(matches[1],10); break; case "w" : case "W" : day += parseInt(matches[1],10) * 7; break; case "m" : case "M" : month += parseInt(matches[1],10); day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); break; case "y": case "Y" : year += parseInt(matches[1],10); day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); break; } matches = pattern.exec(offset); } return new Date(year, month, day); }, newDate = (date == null || date === "" ? defaultDate : (typeof date === "string" ? offsetString(date) : (typeof date === "number" ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); newDate = (newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate); if (newDate) { newDate.setHours(0); newDate.setMinutes(0); newDate.setSeconds(0); newDate.setMilliseconds(0); } return this._daylightSavingAdjust(newDate); }, /* Handle switch to/from daylight saving. * Hours may be non-zero on daylight saving cut-over: * > 12 when midnight changeover, but then cannot generate * midnight datetime, so jump to 1AM, otherwise reset. * @param date (Date) the date to check * @return (Date) the corrected date */ _daylightSavingAdjust: function(date) { if (!date) { return null; } date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); return date; }, /* Set the date(s) directly. */ _setDate: function(inst, date, noChange) { var clear = !date, origMonth = inst.selectedMonth, origYear = inst.selectedYear, newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); inst.selectedDay = inst.currentDay = newDate.getDate(); inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); if ((origMonth !== inst.selectedMonth || origYear !== inst.selectedYear) && !noChange) { this._notifyChange(inst); } this._adjustInstDate(inst); if (inst.input) { inst.input.val(clear ? "" : this._formatDate(inst)); } }, /* Retrieve the date(s) directly. */ _getDate: function(inst) { var startDate = (!inst.currentYear || (inst.input && inst.input.val() === "") ? null : this._daylightSavingAdjust(new Date( inst.currentYear, inst.currentMonth, inst.currentDay))); return startDate; }, /* Attach the onxxx handlers. These are declared statically so * they work with static code transformers like Caja. */ _attachHandlers: function(inst) { var stepMonths = this._get(inst, "stepMonths"), id = "#" + inst.id.replace( /\\\\/g, "\\" ); inst.dpDiv.find("[data-handler]").map(function () { var handler = { prev: function () { window["DP_jQuery_" + dpuuid].datepicker._adjustDate(id, -stepMonths, "M"); }, next: function () { window["DP_jQuery_" + dpuuid].datepicker._adjustDate(id, +stepMonths, "M"); }, hide: function () { window["DP_jQuery_" + dpuuid].datepicker._hideDatepicker(); }, today: function () { window["DP_jQuery_" + dpuuid].datepicker._gotoToday(id); }, selectDay: function () { window["DP_jQuery_" + dpuuid].datepicker._selectDay(id, +this.getAttribute("data-month"), +this.getAttribute("data-year"), this); return false; }, selectMonth: function () { window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(id, this, "M"); return false; }, selectYear: function () { window["DP_jQuery_" + dpuuid].datepicker._selectMonthYear(id, this, "Y"); return false; } }; $(this).bind(this.getAttribute("data-event"), handler[this.getAttribute("data-handler")]); }); }, /* Generate the HTML for the current state of the date picker. */ _generateHTML: function(inst) { var maxDraw, prevText, prev, nextText, next, currentText, gotoDate, controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin, monthNames, monthNamesShort, beforeShowDay, showOtherMonths, selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate, cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows, printDate, dRow, tbody, daySettings, otherMonth, unselectable, tempDate = new Date(), today = this._daylightSavingAdjust( new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate())), // clear time isRTL = this._get(inst, "isRTL"), showButtonPanel = this._get(inst, "showButtonPanel"), hideIfNoPrevNext = this._get(inst, "hideIfNoPrevNext"), navigationAsDateFormat = this._get(inst, "navigationAsDateFormat"), numMonths = this._getNumberOfMonths(inst), showCurrentAtPos = this._get(inst, "showCurrentAtPos"), stepMonths = this._get(inst, "stepMonths"), isMultiMonth = (numMonths[0] !== 1 || numMonths[1] !== 1), currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : new Date(inst.currentYear, inst.currentMonth, inst.currentDay))), minDate = this._getMinMaxDate(inst, "min"), maxDate = this._getMinMaxDate(inst, "max"), drawMonth = inst.drawMonth - showCurrentAtPos, drawYear = inst.drawYear; if (drawMonth < 0) { drawMonth += 12; drawYear--; } if (maxDate) { maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { drawMonth--; if (drawMonth < 0) { drawMonth = 11; drawYear--; } } } inst.drawMonth = drawMonth; inst.drawYear = drawYear; prevText = this._get(inst, "prevText"); prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), this._getFormatConfig(inst))); prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? "" + prevText + "" : (hideIfNoPrevNext ? "" : "
    " + prevText + "")); nextText = this._get(inst, "nextText"); nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), this._getFormatConfig(inst))); next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? "" + nextText + "" : (hideIfNoPrevNext ? "" : "" + nextText + "")); currentText = this._get(inst, "currentText"); gotoDate = (this._get(inst, "gotoCurrent") && inst.currentDay ? currentDate : today); currentText = (!navigationAsDateFormat ? currentText : this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); controls = (!inst.inline ? "" : ""); buttonPanel = (showButtonPanel) ? "
    " + (isRTL ? controls : "") + (this._isInRange(inst, gotoDate) ? "" : "") + (isRTL ? "" : controls) + "
    " : ""; firstDay = parseInt(this._get(inst, "firstDay"),10); firstDay = (isNaN(firstDay) ? 0 : firstDay); showWeek = this._get(inst, "showWeek"); dayNames = this._get(inst, "dayNames"); dayNamesMin = this._get(inst, "dayNamesMin"); monthNames = this._get(inst, "monthNames"); monthNamesShort = this._get(inst, "monthNamesShort"); beforeShowDay = this._get(inst, "beforeShowDay"); showOtherMonths = this._get(inst, "showOtherMonths"); selectOtherMonths = this._get(inst, "selectOtherMonths"); defaultDate = this._getDefaultDate(inst); html = ""; dow; for (row = 0; row < numMonths[0]; row++) { group = ""; this.maxRows = 4; for (col = 0; col < numMonths[1]; col++) { selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); cornerClass = " ui-corner-all"; calender = ""; if (isMultiMonth) { calender += "
    "; } calender += "
    " + (/all|left/.test(cornerClass) && row === 0 ? (isRTL ? next : prev) : "") + (/all|right/.test(cornerClass) && row === 0 ? (isRTL ? prev : next) : "") + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers "
    " + ""; thead = (showWeek ? "" : ""); for (dow = 0; dow < 7; dow++) { // days of the week day = (dow + firstDay) % 7; thead += "= 5 ? " class='ui-datepicker-week-end'" : "") + ">" + "" + dayNamesMin[day] + ""; } calender += thead + ""; daysInMonth = this._getDaysInMonth(drawYear, drawMonth); if (drawYear === inst.selectedYear && drawMonth === inst.selectedMonth) { inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); } leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; curRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate numRows = (isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows); //If multiple months, use the higher number of rows (see #7043) this.maxRows = numRows; printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); for (dRow = 0; dRow < numRows; dRow++) { // create date picker rows calender += ""; tbody = (!showWeek ? "" : ""); for (dow = 0; dow < 7; dow++) { // create date picker days daySettings = (beforeShowDay ? beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, ""]); otherMonth = (printDate.getMonth() !== drawMonth); unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || (minDate && printDate < minDate) || (maxDate && printDate > maxDate); tbody += ""; // display selectable date printDate.setDate(printDate.getDate() + 1); printDate = this._daylightSavingAdjust(printDate); } calender += tbody + ""; } drawMonth++; if (drawMonth > 11) { drawMonth = 0; drawYear++; } calender += "
    " + this._get(inst, "weekHeader") + "
    " + this._get(inst, "calculateWeek")(printDate) + "" + // actions (otherMonth && !showOtherMonths ? " " : // display for other months (unselectable ? "" + printDate.getDate() + "" : "" + printDate.getDate() + "")) + "
    " + (isMultiMonth ? "
    " + ((numMonths[0] > 0 && col === numMonths[1]-1) ? "
    " : "") : ""); group += calender; } html += group; } html += buttonPanel; inst._keyEvent = false; return html; }, /* Generate the month and year header. */ _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, secondary, monthNames, monthNamesShort) { var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear, changeMonth = this._get(inst, "changeMonth"), changeYear = this._get(inst, "changeYear"), showMonthAfterYear = this._get(inst, "showMonthAfterYear"), html = "
    ", monthHtml = ""; // month selection if (secondary || !changeMonth) { monthHtml += "" + monthNames[drawMonth] + ""; } else { inMinYear = (minDate && minDate.getFullYear() === drawYear); inMaxYear = (maxDate && maxDate.getFullYear() === drawYear); monthHtml += ""; } if (!showMonthAfterYear) { html += monthHtml + (secondary || !(changeMonth && changeYear) ? " " : ""); } // year selection if ( !inst.yearshtml ) { inst.yearshtml = ""; if (secondary || !changeYear) { html += "" + drawYear + ""; } else { // determine range of years to display years = this._get(inst, "yearRange").split(":"); thisYear = new Date().getFullYear(); determineYear = function(value) { var year = (value.match(/c[+\-].*/) ? drawYear + parseInt(value.substring(1), 10) : (value.match(/[+\-].*/) ? thisYear + parseInt(value, 10) : parseInt(value, 10))); return (isNaN(year) ? thisYear : year); }; year = determineYear(years[0]); endYear = Math.max(year, determineYear(years[1] || "")); year = (minDate ? Math.max(year, minDate.getFullYear()) : year); endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); inst.yearshtml += ""; html += inst.yearshtml; inst.yearshtml = null; } } html += this._get(inst, "yearSuffix"); if (showMonthAfterYear) { html += (secondary || !(changeMonth && changeYear) ? " " : "") + monthHtml; } html += "
    "; // Close datepicker_header return html; }, /* Adjust one of the date sub-fields. */ _adjustInstDate: function(inst, offset, period) { var year = inst.drawYear + (period === "Y" ? offset : 0), month = inst.drawMonth + (period === "M" ? offset : 0), day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + (period === "D" ? offset : 0), date = this._restrictMinMax(inst, this._daylightSavingAdjust(new Date(year, month, day))); inst.selectedDay = date.getDate(); inst.drawMonth = inst.selectedMonth = date.getMonth(); inst.drawYear = inst.selectedYear = date.getFullYear(); if (period === "M" || period === "Y") { this._notifyChange(inst); } }, /* Ensure a date is within any min/max bounds. */ _restrictMinMax: function(inst, date) { var minDate = this._getMinMaxDate(inst, "min"), maxDate = this._getMinMaxDate(inst, "max"), newDate = (minDate && date < minDate ? minDate : date); return (maxDate && newDate > maxDate ? maxDate : newDate); }, /* Notify change of month/year. */ _notifyChange: function(inst) { var onChange = this._get(inst, "onChangeMonthYear"); if (onChange) { onChange.apply((inst.input ? inst.input[0] : null), [inst.selectedYear, inst.selectedMonth + 1, inst]); } }, /* Determine the number of months to show. */ _getNumberOfMonths: function(inst) { var numMonths = this._get(inst, "numberOfMonths"); return (numMonths == null ? [1, 1] : (typeof numMonths === "number" ? [1, numMonths] : numMonths)); }, /* Determine the current maximum date - ensure no time components are set. */ _getMinMaxDate: function(inst, minMax) { return this._determineDate(inst, this._get(inst, minMax + "Date"), null); }, /* Find the number of days in a given month. */ _getDaysInMonth: function(year, month) { return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); }, /* Find the day of the week of the first of a month. */ _getFirstDayOfMonth: function(year, month) { return new Date(year, month, 1).getDay(); }, /* Determines if we should allow a "next/prev" month display change. */ _canAdjustMonth: function(inst, offset, curYear, curMonth) { var numMonths = this._getNumberOfMonths(inst), date = this._daylightSavingAdjust(new Date(curYear, curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); if (offset < 0) { date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); } return this._isInRange(inst, date); }, /* Is the given date in the accepted range? */ _isInRange: function(inst, date) { var yearSplit, currentYear, minDate = this._getMinMaxDate(inst, "min"), maxDate = this._getMinMaxDate(inst, "max"), minYear = null, maxYear = null, years = this._get(inst, "yearRange"); if (years){ yearSplit = years.split(":"); currentYear = new Date().getFullYear(); minYear = parseInt(yearSplit[0], 10); maxYear = parseInt(yearSplit[1], 10); if ( yearSplit[0].match(/[+\-].*/) ) { minYear += currentYear; } if ( yearSplit[1].match(/[+\-].*/) ) { maxYear += currentYear; } } return ((!minDate || date.getTime() >= minDate.getTime()) && (!maxDate || date.getTime() <= maxDate.getTime()) && (!minYear || date.getFullYear() >= minYear) && (!maxYear || date.getFullYear() <= maxYear)); }, /* Provide the configuration settings for formatting/parsing. */ _getFormatConfig: function(inst) { var shortYearCutoff = this._get(inst, "shortYearCutoff"); shortYearCutoff = (typeof shortYearCutoff !== "string" ? shortYearCutoff : new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); return {shortYearCutoff: shortYearCutoff, dayNamesShort: this._get(inst, "dayNamesShort"), dayNames: this._get(inst, "dayNames"), monthNamesShort: this._get(inst, "monthNamesShort"), monthNames: this._get(inst, "monthNames")}; }, /* Format the given date for display. */ _formatDate: function(inst, day, month, year) { if (!day) { inst.currentDay = inst.selectedDay; inst.currentMonth = inst.selectedMonth; inst.currentYear = inst.selectedYear; } var date = (day ? (typeof day === "object" ? day : this._daylightSavingAdjust(new Date(year, month, day))) : this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); return this.formatDate(this._get(inst, "dateFormat"), date, this._getFormatConfig(inst)); } }); /* * Bind hover events for datepicker elements. * Done via delegate so the binding only occurs once in the lifetime of the parent div. * Global instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker. */ function bindHover(dpDiv) { var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; return dpDiv.delegate(selector, "mouseout", function() { $(this).removeClass("ui-state-hover"); if (this.className.indexOf("ui-datepicker-prev") !== -1) { $(this).removeClass("ui-datepicker-prev-hover"); } if (this.className.indexOf("ui-datepicker-next") !== -1) { $(this).removeClass("ui-datepicker-next-hover"); } }) .delegate(selector, "mouseover", function(){ if (!$.datepicker._isDisabledDatepicker( instActive.inline ? dpDiv.parent()[0] : instActive.input[0])) { $(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); $(this).addClass("ui-state-hover"); if (this.className.indexOf("ui-datepicker-prev") !== -1) { $(this).addClass("ui-datepicker-prev-hover"); } if (this.className.indexOf("ui-datepicker-next") !== -1) { $(this).addClass("ui-datepicker-next-hover"); } } }); } /* jQuery extend now ignores nulls! */ function extendRemove(target, props) { $.extend(target, props); for (var name in props) { if (props[name] == null) { target[name] = props[name]; } } return target; } /* Invoke the datepicker functionality. @param options string - a command, optionally followed by additional parameters or Object - settings for attaching new datepicker functionality @return jQuery object */ $.fn.datepicker = function(options){ /* Verify an empty collection wasn't passed - Fixes #6976 */ if ( !this.length ) { return this; } /* Initialise the date picker. */ if (!$.datepicker.initialized) { $(document).mousedown($.datepicker._checkExternalClick); $.datepicker.initialized = true; } /* Append datepicker main container to body if not exist. */ if ($("#"+$.datepicker._mainDivId).length === 0) { $("body").append($.datepicker.dpDiv); } var otherArgs = Array.prototype.slice.call(arguments, 1); if (typeof options === "string" && (options === "isDisabled" || options === "getDate" || options === "widget")) { return $.datepicker["_" + options + "Datepicker"]. apply($.datepicker, [this[0]].concat(otherArgs)); } if (options === "option" && arguments.length === 2 && typeof arguments[1] === "string") { return $.datepicker["_" + options + "Datepicker"]. apply($.datepicker, [this[0]].concat(otherArgs)); } return this.each(function() { typeof options === "string" ? $.datepicker["_" + options + "Datepicker"]. apply($.datepicker, [this].concat(otherArgs)) : $.datepicker._attachDatepicker(this, options); }); }; $.datepicker = new Datepicker(); // singleton instance $.datepicker.initialized = false; $.datepicker.uuid = new Date().getTime(); $.datepicker.version = "1.10.1"; // Workaround for #4055 // Add another global to avoid noConflict issues with inline event handlers window["DP_jQuery_" + dpuuid] = $; })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.slider.js0000644000175000017500000004332712107500066022423 0ustar metalmetal/*! * jQuery UI Slider 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/slider/ * * Depends: * jquery.ui.core.js * jquery.ui.mouse.js * jquery.ui.widget.js */ (function( $, undefined ) { // number of pages in a slider // (how many times can you page up/down to go through the whole range) var numPages = 5; $.widget( "ui.slider", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "slide", options: { animate: false, distance: 0, max: 100, min: 0, orientation: "horizontal", range: false, step: 1, value: 0, values: null, // callbacks change: null, slide: null, start: null, stop: null }, _create: function() { this._keySliding = false; this._mouseSliding = false; this._animateOff = true; this._handleIndex = null; this._detectOrientation(); this._mouseInit(); this.element .addClass( "ui-slider" + " ui-slider-" + this.orientation + " ui-widget" + " ui-widget-content" + " ui-corner-all"); this._refresh(); this._setOption( "disabled", this.options.disabled ); this._animateOff = false; }, _refresh: function() { this._createRange(); this._createHandles(); this._setupEvents(); this._refreshValue(); }, _createHandles: function() { var i, handleCount, options = this.options, existingHandles = this.element.find( ".ui-slider-handle" ).addClass( "ui-state-default ui-corner-all" ), handle = "", handles = []; handleCount = ( options.values && options.values.length ) || 1; if ( existingHandles.length > handleCount ) { existingHandles.slice( handleCount ).remove(); existingHandles = existingHandles.slice( 0, handleCount ); } for ( i = existingHandles.length; i < handleCount; i++ ) { handles.push( handle ); } this.handles = existingHandles.add( $( handles.join( "" ) ).appendTo( this.element ) ); this.handle = this.handles.eq( 0 ); this.handles.each(function( i ) { $( this ).data( "ui-slider-handle-index", i ); }); }, _createRange: function() { var options = this.options, classes = ""; if ( options.range ) { if ( options.range === true ) { if ( !options.values ) { options.values = [ this._valueMin(), this._valueMin() ]; } else if ( options.values.length && options.values.length !== 2 ) { options.values = [ options.values[0], options.values[0] ]; } else if ( $.isArray( options.values ) ) { options.values = options.values.slice(0); } } if ( !this.range || !this.range.length ) { this.range = $( "
    " ) .appendTo( this.element ); classes = "ui-slider-range" + // note: this isn't the most fittingly semantic framework class for this element, // but worked best visually with a variety of themes " ui-widget-header ui-corner-all"; } else { this.range.removeClass( "ui-slider-range-min ui-slider-range-max" ) // Handle range switching from true to min/max .css({ "left": "", "bottom": "" }); } this.range.addClass( classes + ( ( options.range === "min" || options.range === "max" ) ? " ui-slider-range-" + options.range : "" ) ); } else { this.range = $([]); } }, _setupEvents: function() { var elements = this.handles.add( this.range ).filter( "a" ); this._off( elements ); this._on( elements, this._handleEvents ); this._hoverable( elements ); this._focusable( elements ); }, _destroy: function() { this.handles.remove(); this.range.remove(); this.element .removeClass( "ui-slider" + " ui-slider-horizontal" + " ui-slider-vertical" + " ui-widget" + " ui-widget-content" + " ui-corner-all" ); this._mouseDestroy(); }, _mouseCapture: function( event ) { var position, normValue, distance, closestHandle, index, allowed, offset, mouseOverHandle, that = this, o = this.options; if ( o.disabled ) { return false; } this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }; this.elementOffset = this.element.offset(); position = { x: event.pageX, y: event.pageY }; normValue = this._normValueFromMouse( position ); distance = this._valueMax() - this._valueMin() + 1; this.handles.each(function( i ) { var thisDistance = Math.abs( normValue - that.values(i) ); if (( distance > thisDistance ) || ( distance === thisDistance && (i === that._lastChangedValue || that.values(i) === o.min ))) { distance = thisDistance; closestHandle = $( this ); index = i; } }); allowed = this._start( event, index ); if ( allowed === false ) { return false; } this._mouseSliding = true; this._handleIndex = index; closestHandle .addClass( "ui-state-active" ) .focus(); offset = closestHandle.offset(); mouseOverHandle = !$( event.target ).parents().addBack().is( ".ui-slider-handle" ); this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { left: event.pageX - offset.left - ( closestHandle.width() / 2 ), top: event.pageY - offset.top - ( closestHandle.height() / 2 ) - ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) }; if ( !this.handles.hasClass( "ui-state-hover" ) ) { this._slide( event, index, normValue ); } this._animateOff = true; return true; }, _mouseStart: function() { return true; }, _mouseDrag: function( event ) { var position = { x: event.pageX, y: event.pageY }, normValue = this._normValueFromMouse( position ); this._slide( event, this._handleIndex, normValue ); return false; }, _mouseStop: function( event ) { this.handles.removeClass( "ui-state-active" ); this._mouseSliding = false; this._stop( event, this._handleIndex ); this._change( event, this._handleIndex ); this._handleIndex = null; this._clickOffset = null; this._animateOff = false; return false; }, _detectOrientation: function() { this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; }, _normValueFromMouse: function( position ) { var pixelTotal, pixelMouse, percentMouse, valueTotal, valueMouse; if ( this.orientation === "horizontal" ) { pixelTotal = this.elementSize.width; pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); } else { pixelTotal = this.elementSize.height; pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); } percentMouse = ( pixelMouse / pixelTotal ); if ( percentMouse > 1 ) { percentMouse = 1; } if ( percentMouse < 0 ) { percentMouse = 0; } if ( this.orientation === "vertical" ) { percentMouse = 1 - percentMouse; } valueTotal = this._valueMax() - this._valueMin(); valueMouse = this._valueMin() + percentMouse * valueTotal; return this._trimAlignValue( valueMouse ); }, _start: function( event, index ) { var uiHash = { handle: this.handles[ index ], value: this.value() }; if ( this.options.values && this.options.values.length ) { uiHash.value = this.values( index ); uiHash.values = this.values(); } return this._trigger( "start", event, uiHash ); }, _slide: function( event, index, newVal ) { var otherVal, newValues, allowed; if ( this.options.values && this.options.values.length ) { otherVal = this.values( index ? 0 : 1 ); if ( ( this.options.values.length === 2 && this.options.range === true ) && ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) ) { newVal = otherVal; } if ( newVal !== this.values( index ) ) { newValues = this.values(); newValues[ index ] = newVal; // A slide can be canceled by returning false from the slide callback allowed = this._trigger( "slide", event, { handle: this.handles[ index ], value: newVal, values: newValues } ); otherVal = this.values( index ? 0 : 1 ); if ( allowed !== false ) { this.values( index, newVal, true ); } } } else { if ( newVal !== this.value() ) { // A slide can be canceled by returning false from the slide callback allowed = this._trigger( "slide", event, { handle: this.handles[ index ], value: newVal } ); if ( allowed !== false ) { this.value( newVal ); } } } }, _stop: function( event, index ) { var uiHash = { handle: this.handles[ index ], value: this.value() }; if ( this.options.values && this.options.values.length ) { uiHash.value = this.values( index ); uiHash.values = this.values(); } this._trigger( "stop", event, uiHash ); }, _change: function( event, index ) { if ( !this._keySliding && !this._mouseSliding ) { var uiHash = { handle: this.handles[ index ], value: this.value() }; if ( this.options.values && this.options.values.length ) { uiHash.value = this.values( index ); uiHash.values = this.values(); } //store the last changed value index for reference when handles overlap this._lastChangedValue = index; this._trigger( "change", event, uiHash ); } }, value: function( newValue ) { if ( arguments.length ) { this.options.value = this._trimAlignValue( newValue ); this._refreshValue(); this._change( null, 0 ); return; } return this._value(); }, values: function( index, newValue ) { var vals, newValues, i; if ( arguments.length > 1 ) { this.options.values[ index ] = this._trimAlignValue( newValue ); this._refreshValue(); this._change( null, index ); return; } if ( arguments.length ) { if ( $.isArray( arguments[ 0 ] ) ) { vals = this.options.values; newValues = arguments[ 0 ]; for ( i = 0; i < vals.length; i += 1 ) { vals[ i ] = this._trimAlignValue( newValues[ i ] ); this._change( null, i ); } this._refreshValue(); } else { if ( this.options.values && this.options.values.length ) { return this._values( index ); } else { return this.value(); } } } else { return this._values(); } }, _setOption: function( key, value ) { var i, valsLength = 0; if ( key === "range" && this.options.range === true ) { if ( value === "min" ) { this.options.value = this._values( 0 ); this.options.values = null; } else if ( value === "max" ) { this.options.value = this._values( this.options.values.length-1 ); this.options.values = null; } } if ( $.isArray( this.options.values ) ) { valsLength = this.options.values.length; } $.Widget.prototype._setOption.apply( this, arguments ); switch ( key ) { case "orientation": this._detectOrientation(); this.element .removeClass( "ui-slider-horizontal ui-slider-vertical" ) .addClass( "ui-slider-" + this.orientation ); this._refreshValue(); break; case "value": this._animateOff = true; this._refreshValue(); this._change( null, 0 ); this._animateOff = false; break; case "values": this._animateOff = true; this._refreshValue(); for ( i = 0; i < valsLength; i += 1 ) { this._change( null, i ); } this._animateOff = false; break; case "min": case "max": this._animateOff = true; this._refreshValue(); this._animateOff = false; break; case "range": this._animateOff = true; this._refresh(); this._animateOff = false; break; } }, //internal value getter // _value() returns value trimmed by min and max, aligned by step _value: function() { var val = this.options.value; val = this._trimAlignValue( val ); return val; }, //internal values getter // _values() returns array of values trimmed by min and max, aligned by step // _values( index ) returns single value trimmed by min and max, aligned by step _values: function( index ) { var val, vals, i; if ( arguments.length ) { val = this.options.values[ index ]; val = this._trimAlignValue( val ); return val; } else if ( this.options.values && this.options.values.length ) { // .slice() creates a copy of the array // this copy gets trimmed by min and max and then returned vals = this.options.values.slice(); for ( i = 0; i < vals.length; i+= 1) { vals[ i ] = this._trimAlignValue( vals[ i ] ); } return vals; } else { return []; } }, // returns the step-aligned value that val is closest to, between (inclusive) min and max _trimAlignValue: function( val ) { if ( val <= this._valueMin() ) { return this._valueMin(); } if ( val >= this._valueMax() ) { return this._valueMax(); } var step = ( this.options.step > 0 ) ? this.options.step : 1, valModStep = (val - this._valueMin()) % step, alignValue = val - valModStep; if ( Math.abs(valModStep) * 2 >= step ) { alignValue += ( valModStep > 0 ) ? step : ( -step ); } // Since JavaScript has problems with large floats, round // the final value to 5 digits after the decimal point (see #4124) return parseFloat( alignValue.toFixed(5) ); }, _valueMin: function() { return this.options.min; }, _valueMax: function() { return this.options.max; }, _refreshValue: function() { var lastValPercent, valPercent, value, valueMin, valueMax, oRange = this.options.range, o = this.options, that = this, animate = ( !this._animateOff ) ? o.animate : false, _set = {}; if ( this.options.values && this.options.values.length ) { this.handles.each(function( i ) { valPercent = ( that.values(i) - that._valueMin() ) / ( that._valueMax() - that._valueMin() ) * 100; _set[ that.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); if ( that.options.range === true ) { if ( that.orientation === "horizontal" ) { if ( i === 0 ) { that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); } if ( i === 1 ) { that.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); } } else { if ( i === 0 ) { that.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); } if ( i === 1 ) { that.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); } } } lastValPercent = valPercent; }); } else { value = this.value(); valueMin = this._valueMin(); valueMax = this._valueMax(); valPercent = ( valueMax !== valueMin ) ? ( value - valueMin ) / ( valueMax - valueMin ) * 100 : 0; _set[ this.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); if ( oRange === "min" && this.orientation === "horizontal" ) { this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); } if ( oRange === "max" && this.orientation === "horizontal" ) { this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); } if ( oRange === "min" && this.orientation === "vertical" ) { this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); } if ( oRange === "max" && this.orientation === "vertical" ) { this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); } } }, _handleEvents: { keydown: function( event ) { /*jshint maxcomplexity:25*/ var allowed, curVal, newVal, step, index = $( event.target ).data( "ui-slider-handle-index" ); switch ( event.keyCode ) { case $.ui.keyCode.HOME: case $.ui.keyCode.END: case $.ui.keyCode.PAGE_UP: case $.ui.keyCode.PAGE_DOWN: case $.ui.keyCode.UP: case $.ui.keyCode.RIGHT: case $.ui.keyCode.DOWN: case $.ui.keyCode.LEFT: event.preventDefault(); if ( !this._keySliding ) { this._keySliding = true; $( event.target ).addClass( "ui-state-active" ); allowed = this._start( event, index ); if ( allowed === false ) { return; } } break; } step = this.options.step; if ( this.options.values && this.options.values.length ) { curVal = newVal = this.values( index ); } else { curVal = newVal = this.value(); } switch ( event.keyCode ) { case $.ui.keyCode.HOME: newVal = this._valueMin(); break; case $.ui.keyCode.END: newVal = this._valueMax(); break; case $.ui.keyCode.PAGE_UP: newVal = this._trimAlignValue( curVal + ( (this._valueMax() - this._valueMin()) / numPages ) ); break; case $.ui.keyCode.PAGE_DOWN: newVal = this._trimAlignValue( curVal - ( (this._valueMax() - this._valueMin()) / numPages ) ); break; case $.ui.keyCode.UP: case $.ui.keyCode.RIGHT: if ( curVal === this._valueMax() ) { return; } newVal = this._trimAlignValue( curVal + step ); break; case $.ui.keyCode.DOWN: case $.ui.keyCode.LEFT: if ( curVal === this._valueMin() ) { return; } newVal = this._trimAlignValue( curVal - step ); break; } this._slide( event, index, newVal ); }, click: function( event ) { event.preventDefault(); }, keyup: function( event ) { var index = $( event.target ).data( "ui-slider-handle-index" ); if ( this._keySliding ) { this._keySliding = false; this._stop( event, index ); this._change( event, index ); $( event.target ).removeClass( "ui-state-active" ); } } } }); }(jQuery)); jqueryui-1.10.1/development-bundle/ui/jquery.ui.accordion.js0000644000175000017500000003516312107500066023101 0ustar metalmetal/*! * jQuery UI Accordion 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/accordion/ * * Depends: * jquery.ui.core.js * jquery.ui.widget.js */ (function( $, undefined ) { var uid = 0, hideProps = {}, showProps = {}; hideProps.height = hideProps.paddingTop = hideProps.paddingBottom = hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide"; showProps.height = showProps.paddingTop = showProps.paddingBottom = showProps.borderTopWidth = showProps.borderBottomWidth = "show"; $.widget( "ui.accordion", { version: "1.10.1", options: { active: 0, animate: {}, collapsible: false, event: "click", header: "> li > :first-child,> :not(li):even", heightStyle: "auto", icons: { activeHeader: "ui-icon-triangle-1-s", header: "ui-icon-triangle-1-e" }, // callbacks activate: null, beforeActivate: null }, _create: function() { var options = this.options; this.prevShow = this.prevHide = $(); this.element.addClass( "ui-accordion ui-widget ui-helper-reset" ) // ARIA .attr( "role", "tablist" ); // don't allow collapsible: false and active: false / null if ( !options.collapsible && (options.active === false || options.active == null) ) { options.active = 0; } this._processPanels(); // handle negative values if ( options.active < 0 ) { options.active += this.headers.length; } this._refresh(); }, _getCreateEventData: function() { return { header: this.active, panel: !this.active.length ? $() : this.active.next(), content: !this.active.length ? $() : this.active.next() }; }, _createIcons: function() { var icons = this.options.icons; if ( icons ) { $( "" ) .addClass( "ui-accordion-header-icon ui-icon " + icons.header ) .prependTo( this.headers ); this.active.children( ".ui-accordion-header-icon" ) .removeClass( icons.header ) .addClass( icons.activeHeader ); this.headers.addClass( "ui-accordion-icons" ); } }, _destroyIcons: function() { this.headers .removeClass( "ui-accordion-icons" ) .children( ".ui-accordion-header-icon" ) .remove(); }, _destroy: function() { var contents; // clean up main element this.element .removeClass( "ui-accordion ui-widget ui-helper-reset" ) .removeAttr( "role" ); // clean up headers this.headers .removeClass( "ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" ) .removeAttr( "role" ) .removeAttr( "aria-selected" ) .removeAttr( "aria-controls" ) .removeAttr( "tabIndex" ) .each(function() { if ( /^ui-accordion/.test( this.id ) ) { this.removeAttribute( "id" ); } }); this._destroyIcons(); // clean up content panels contents = this.headers.next() .css( "display", "" ) .removeAttr( "role" ) .removeAttr( "aria-expanded" ) .removeAttr( "aria-hidden" ) .removeAttr( "aria-labelledby" ) .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled" ) .each(function() { if ( /^ui-accordion/.test( this.id ) ) { this.removeAttribute( "id" ); } }); if ( this.options.heightStyle !== "content" ) { contents.css( "height", "" ); } }, _setOption: function( key, value ) { if ( key === "active" ) { // _activate() will handle invalid values and update this.options this._activate( value ); return; } if ( key === "event" ) { if ( this.options.event ) { this._off( this.headers, this.options.event ); } this._setupEvents( value ); } this._super( key, value ); // setting collapsible: false while collapsed; open first panel if ( key === "collapsible" && !value && this.options.active === false ) { this._activate( 0 ); } if ( key === "icons" ) { this._destroyIcons(); if ( value ) { this._createIcons(); } } // #5332 - opacity doesn't cascade to positioned elements in IE // so we need to add the disabled class to the headers and panels if ( key === "disabled" ) { this.headers.add( this.headers.next() ) .toggleClass( "ui-state-disabled", !!value ); } }, _keydown: function( event ) { /*jshint maxcomplexity:15*/ if ( event.altKey || event.ctrlKey ) { return; } var keyCode = $.ui.keyCode, length = this.headers.length, currentIndex = this.headers.index( event.target ), toFocus = false; switch ( event.keyCode ) { case keyCode.RIGHT: case keyCode.DOWN: toFocus = this.headers[ ( currentIndex + 1 ) % length ]; break; case keyCode.LEFT: case keyCode.UP: toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; break; case keyCode.SPACE: case keyCode.ENTER: this._eventHandler( event ); break; case keyCode.HOME: toFocus = this.headers[ 0 ]; break; case keyCode.END: toFocus = this.headers[ length - 1 ]; break; } if ( toFocus ) { $( event.target ).attr( "tabIndex", -1 ); $( toFocus ).attr( "tabIndex", 0 ); toFocus.focus(); event.preventDefault(); } }, _panelKeyDown : function( event ) { if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) { $( event.currentTarget ).prev().focus(); } }, refresh: function() { var options = this.options; this._processPanels(); // was collapsed or no panel if ( ( options.active === false && options.collapsible === true ) || !this.headers.length ) { options.active = false; this.active = $(); // active false only when collapsible is true } if ( options.active === false ) { this._activate( 0 ); // was active, but active panel is gone } else if ( this.active.length && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { // all remaining panel are disabled if ( this.headers.length === this.headers.find(".ui-state-disabled").length ) { options.active = false; this.active = $(); // activate previous panel } else { this._activate( Math.max( 0, options.active - 1 ) ); } // was active, active panel still exists } else { // make sure active index is correct options.active = this.headers.index( this.active ); } this._destroyIcons(); this._refresh(); }, _processPanels: function() { this.headers = this.element.find( this.options.header ) .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" ); this.headers.next() .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ) .filter(":not(.ui-accordion-content-active)") .hide(); }, _refresh: function() { var maxHeight, options = this.options, heightStyle = options.heightStyle, parent = this.element.parent(), accordionId = this.accordionId = "ui-accordion-" + (this.element.attr( "id" ) || ++uid); this.active = this._findActive( options.active ) .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" ) .removeClass( "ui-corner-all" ); this.active.next() .addClass( "ui-accordion-content-active" ) .show(); this.headers .attr( "role", "tab" ) .each(function( i ) { var header = $( this ), headerId = header.attr( "id" ), panel = header.next(), panelId = panel.attr( "id" ); if ( !headerId ) { headerId = accordionId + "-header-" + i; header.attr( "id", headerId ); } if ( !panelId ) { panelId = accordionId + "-panel-" + i; panel.attr( "id", panelId ); } header.attr( "aria-controls", panelId ); panel.attr( "aria-labelledby", headerId ); }) .next() .attr( "role", "tabpanel" ); this.headers .not( this.active ) .attr({ "aria-selected": "false", tabIndex: -1 }) .next() .attr({ "aria-expanded": "false", "aria-hidden": "true" }) .hide(); // make sure at least one header is in the tab order if ( !this.active.length ) { this.headers.eq( 0 ).attr( "tabIndex", 0 ); } else { this.active.attr({ "aria-selected": "true", tabIndex: 0 }) .next() .attr({ "aria-expanded": "true", "aria-hidden": "false" }); } this._createIcons(); this._setupEvents( options.event ); if ( heightStyle === "fill" ) { maxHeight = parent.height(); this.element.siblings( ":visible" ).each(function() { var elem = $( this ), position = elem.css( "position" ); if ( position === "absolute" || position === "fixed" ) { return; } maxHeight -= elem.outerHeight( true ); }); this.headers.each(function() { maxHeight -= $( this ).outerHeight( true ); }); this.headers.next() .each(function() { $( this ).height( Math.max( 0, maxHeight - $( this ).innerHeight() + $( this ).height() ) ); }) .css( "overflow", "auto" ); } else if ( heightStyle === "auto" ) { maxHeight = 0; this.headers.next() .each(function() { maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() ); }) .height( maxHeight ); } }, _activate: function( index ) { var active = this._findActive( index )[ 0 ]; // trying to activate the already active panel if ( active === this.active[ 0 ] ) { return; } // trying to collapse, simulate a click on the currently active header active = active || this.active[ 0 ]; this._eventHandler({ target: active, currentTarget: active, preventDefault: $.noop }); }, _findActive: function( selector ) { return typeof selector === "number" ? this.headers.eq( selector ) : $(); }, _setupEvents: function( event ) { var events = { keydown: "_keydown" }; if ( event ) { $.each( event.split(" "), function( index, eventName ) { events[ eventName ] = "_eventHandler"; }); } this._off( this.headers.add( this.headers.next() ) ); this._on( this.headers, events ); this._on( this.headers.next(), { keydown: "_panelKeyDown" }); this._hoverable( this.headers ); this._focusable( this.headers ); }, _eventHandler: function( event ) { var options = this.options, active = this.active, clicked = $( event.currentTarget ), clickedIsActive = clicked[ 0 ] === active[ 0 ], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : clicked.next(), toHide = active.next(), eventData = { oldHeader: active, oldPanel: toHide, newHeader: collapsing ? $() : clicked, newPanel: toShow }; event.preventDefault(); if ( // click on active header, but not collapsible ( clickedIsActive && !options.collapsible ) || // allow canceling activation ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { return; } options.active = collapsing ? false : this.headers.index( clicked ); // when the call to ._toggle() comes after the class changes // it causes a very odd bug in IE 8 (see #6720) this.active = clickedIsActive ? $() : clicked; this._toggle( eventData ); // switch classes // corner classes on the previously active header stay after the animation active.removeClass( "ui-accordion-header-active ui-state-active" ); if ( options.icons ) { active.children( ".ui-accordion-header-icon" ) .removeClass( options.icons.activeHeader ) .addClass( options.icons.header ); } if ( !clickedIsActive ) { clicked .removeClass( "ui-corner-all" ) .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" ); if ( options.icons ) { clicked.children( ".ui-accordion-header-icon" ) .removeClass( options.icons.header ) .addClass( options.icons.activeHeader ); } clicked .next() .addClass( "ui-accordion-content-active" ); } }, _toggle: function( data ) { var toShow = data.newPanel, toHide = this.prevShow.length ? this.prevShow : data.oldPanel; // handle activating a panel during the animation for another activation this.prevShow.add( this.prevHide ).stop( true, true ); this.prevShow = toShow; this.prevHide = toHide; if ( this.options.animate ) { this._animate( toShow, toHide, data ); } else { toHide.hide(); toShow.show(); this._toggleComplete( data ); } toHide.attr({ "aria-expanded": "false", "aria-hidden": "true" }); toHide.prev().attr( "aria-selected", "false" ); // if we're switching panels, remove the old header from the tab order // if we're opening from collapsed state, remove the previous header from the tab order // if we're collapsing, then keep the collapsing header in the tab order if ( toShow.length && toHide.length ) { toHide.prev().attr( "tabIndex", -1 ); } else if ( toShow.length ) { this.headers.filter(function() { return $( this ).attr( "tabIndex" ) === 0; }) .attr( "tabIndex", -1 ); } toShow .attr({ "aria-expanded": "true", "aria-hidden": "false" }) .prev() .attr({ "aria-selected": "true", tabIndex: 0 }); }, _animate: function( toShow, toHide, data ) { var total, easing, duration, that = this, adjust = 0, down = toShow.length && ( !toHide.length || ( toShow.index() < toHide.index() ) ), animate = this.options.animate || {}, options = down && animate.down || animate, complete = function() { that._toggleComplete( data ); }; if ( typeof options === "number" ) { duration = options; } if ( typeof options === "string" ) { easing = options; } // fall back from options to animation in case of partial down settings easing = easing || options.easing || animate.easing; duration = duration || options.duration || animate.duration; if ( !toHide.length ) { return toShow.animate( showProps, duration, easing, complete ); } if ( !toShow.length ) { return toHide.animate( hideProps, duration, easing, complete ); } total = toShow.show().outerHeight(); toHide.animate( hideProps, { duration: duration, easing: easing, step: function( now, fx ) { fx.now = Math.round( now ); } }); toShow .hide() .animate( showProps, { duration: duration, easing: easing, complete: complete, step: function( now, fx ) { fx.now = Math.round( now ); if ( fx.prop !== "height" ) { adjust += fx.now; } else if ( that.options.heightStyle !== "content" ) { fx.now = Math.round( total - toHide.outerHeight() - adjust ); adjust = 0; } } }); }, _toggleComplete: function( data ) { var toHide = data.oldPanel; toHide .removeClass( "ui-accordion-content-active" ) .prev() .removeClass( "ui-corner-top" ) .addClass( "ui-corner-all" ); // Work around for rendering bug in IE (#5421) if ( toHide.length ) { toHide.parent()[0].className = toHide.parent()[0].className; } this._trigger( "activate", null, data ); } }); })( jQuery ); jqueryui-1.10.1/development-bundle/ui/jquery.ui.tabs.js0000644000175000017500000005272012107500066022067 0ustar metalmetal/*! * jQuery UI Tabs 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/tabs/ * * Depends: * jquery.ui.core.js * jquery.ui.widget.js */ (function( $, undefined ) { var tabId = 0, rhash = /#.*$/; function getNextTabId() { return ++tabId; } function isLocal( anchor ) { return anchor.hash.length > 1 && decodeURIComponent( anchor.href.replace( rhash, "" ) ) === decodeURIComponent( location.href.replace( rhash, "" ) ); } $.widget( "ui.tabs", { version: "1.10.1", delay: 300, options: { active: null, collapsible: false, event: "click", heightStyle: "content", hide: null, show: null, // callbacks activate: null, beforeActivate: null, beforeLoad: null, load: null }, _create: function() { var that = this, options = this.options; this.running = false; this.element .addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ) .toggleClass( "ui-tabs-collapsible", options.collapsible ) // Prevent users from focusing disabled tabs via click .delegate( ".ui-tabs-nav > li", "mousedown" + this.eventNamespace, function( event ) { if ( $( this ).is( ".ui-state-disabled" ) ) { event.preventDefault(); } }) // support: IE <9 // Preventing the default action in mousedown doesn't prevent IE // from focusing the element, so if the anchor gets focused, blur. // We don't have to worry about focusing the previously focused // element since clicking on a non-focusable element should focus // the body anyway. .delegate( ".ui-tabs-anchor", "focus" + this.eventNamespace, function() { if ( $( this ).closest( "li" ).is( ".ui-state-disabled" ) ) { this.blur(); } }); this._processTabs(); options.active = this._initialActive(); // Take disabling tabs via class attribute from HTML // into account and update option properly. if ( $.isArray( options.disabled ) ) { options.disabled = $.unique( options.disabled.concat( $.map( this.tabs.filter( ".ui-state-disabled" ), function( li ) { return that.tabs.index( li ); }) ) ).sort(); } // check for length avoids error when initializing empty list if ( this.options.active !== false && this.anchors.length ) { this.active = this._findActive( options.active ); } else { this.active = $(); } this._refresh(); if ( this.active.length ) { this.load( options.active ); } }, _initialActive: function() { var active = this.options.active, collapsible = this.options.collapsible, locationHash = location.hash.substring( 1 ); if ( active === null ) { // check the fragment identifier in the URL if ( locationHash ) { this.tabs.each(function( i, tab ) { if ( $( tab ).attr( "aria-controls" ) === locationHash ) { active = i; return false; } }); } // check for a tab marked active via a class if ( active === null ) { active = this.tabs.index( this.tabs.filter( ".ui-tabs-active" ) ); } // no active tab, set to false if ( active === null || active === -1 ) { active = this.tabs.length ? 0 : false; } } // handle numbers: negative, out of range if ( active !== false ) { active = this.tabs.index( this.tabs.eq( active ) ); if ( active === -1 ) { active = collapsible ? false : 0; } } // don't allow collapsible: false and active: false if ( !collapsible && active === false && this.anchors.length ) { active = 0; } return active; }, _getCreateEventData: function() { return { tab: this.active, panel: !this.active.length ? $() : this._getPanelForTab( this.active ) }; }, _tabKeydown: function( event ) { /*jshint maxcomplexity:15*/ var focusedTab = $( this.document[0].activeElement ).closest( "li" ), selectedIndex = this.tabs.index( focusedTab ), goingForward = true; if ( this._handlePageNav( event ) ) { return; } switch ( event.keyCode ) { case $.ui.keyCode.RIGHT: case $.ui.keyCode.DOWN: selectedIndex++; break; case $.ui.keyCode.UP: case $.ui.keyCode.LEFT: goingForward = false; selectedIndex--; break; case $.ui.keyCode.END: selectedIndex = this.anchors.length - 1; break; case $.ui.keyCode.HOME: selectedIndex = 0; break; case $.ui.keyCode.SPACE: // Activate only, no collapsing event.preventDefault(); clearTimeout( this.activating ); this._activate( selectedIndex ); return; case $.ui.keyCode.ENTER: // Toggle (cancel delayed activation, allow collapsing) event.preventDefault(); clearTimeout( this.activating ); // Determine if we should collapse or activate this._activate( selectedIndex === this.options.active ? false : selectedIndex ); return; default: return; } // Focus the appropriate tab, based on which key was pressed event.preventDefault(); clearTimeout( this.activating ); selectedIndex = this._focusNextTab( selectedIndex, goingForward ); // Navigating with control key will prevent automatic activation if ( !event.ctrlKey ) { // Update aria-selected immediately so that AT think the tab is already selected. // Otherwise AT may confuse the user by stating that they need to activate the tab, // but the tab will already be activated by the time the announcement finishes. focusedTab.attr( "aria-selected", "false" ); this.tabs.eq( selectedIndex ).attr( "aria-selected", "true" ); this.activating = this._delay(function() { this.option( "active", selectedIndex ); }, this.delay ); } }, _panelKeydown: function( event ) { if ( this._handlePageNav( event ) ) { return; } // Ctrl+up moves focus to the current tab if ( event.ctrlKey && event.keyCode === $.ui.keyCode.UP ) { event.preventDefault(); this.active.focus(); } }, // Alt+page up/down moves focus to the previous/next tab (and activates) _handlePageNav: function( event ) { if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_UP ) { this._activate( this._focusNextTab( this.options.active - 1, false ) ); return true; } if ( event.altKey && event.keyCode === $.ui.keyCode.PAGE_DOWN ) { this._activate( this._focusNextTab( this.options.active + 1, true ) ); return true; } }, _findNextTab: function( index, goingForward ) { var lastTabIndex = this.tabs.length - 1; function constrain() { if ( index > lastTabIndex ) { index = 0; } if ( index < 0 ) { index = lastTabIndex; } return index; } while ( $.inArray( constrain(), this.options.disabled ) !== -1 ) { index = goingForward ? index + 1 : index - 1; } return index; }, _focusNextTab: function( index, goingForward ) { index = this._findNextTab( index, goingForward ); this.tabs.eq( index ).focus(); return index; }, _setOption: function( key, value ) { if ( key === "active" ) { // _activate() will handle invalid values and update this.options this._activate( value ); return; } if ( key === "disabled" ) { // don't use the widget factory's disabled handling this._setupDisabled( value ); return; } this._super( key, value); if ( key === "collapsible" ) { this.element.toggleClass( "ui-tabs-collapsible", value ); // Setting collapsible: false while collapsed; open first panel if ( !value && this.options.active === false ) { this._activate( 0 ); } } if ( key === "event" ) { this._setupEvents( value ); } if ( key === "heightStyle" ) { this._setupHeightStyle( value ); } }, _tabId: function( tab ) { return tab.attr( "aria-controls" ) || "ui-tabs-" + getNextTabId(); }, _sanitizeSelector: function( hash ) { return hash ? hash.replace( /[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g, "\\$&" ) : ""; }, refresh: function() { var options = this.options, lis = this.tablist.children( ":has(a[href])" ); // get disabled tabs from class attribute from HTML // this will get converted to a boolean if needed in _refresh() options.disabled = $.map( lis.filter( ".ui-state-disabled" ), function( tab ) { return lis.index( tab ); }); this._processTabs(); // was collapsed or no tabs if ( options.active === false || !this.anchors.length ) { options.active = false; this.active = $(); // was active, but active tab is gone } else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) { // all remaining tabs are disabled if ( this.tabs.length === options.disabled.length ) { options.active = false; this.active = $(); // activate previous tab } else { this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) ); } // was active, active tab still exists } else { // make sure active index is correct options.active = this.tabs.index( this.active ); } this._refresh(); }, _refresh: function() { this._setupDisabled( this.options.disabled ); this._setupEvents( this.options.event ); this._setupHeightStyle( this.options.heightStyle ); this.tabs.not( this.active ).attr({ "aria-selected": "false", tabIndex: -1 }); this.panels.not( this._getPanelForTab( this.active ) ) .hide() .attr({ "aria-expanded": "false", "aria-hidden": "true" }); // Make sure one tab is in the tab order if ( !this.active.length ) { this.tabs.eq( 0 ).attr( "tabIndex", 0 ); } else { this.active .addClass( "ui-tabs-active ui-state-active" ) .attr({ "aria-selected": "true", tabIndex: 0 }); this._getPanelForTab( this.active ) .show() .attr({ "aria-expanded": "true", "aria-hidden": "false" }); } }, _processTabs: function() { var that = this; this.tablist = this._getList() .addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) .attr( "role", "tablist" ); this.tabs = this.tablist.find( "> li:has(a[href])" ) .addClass( "ui-state-default ui-corner-top" ) .attr({ role: "tab", tabIndex: -1 }); this.anchors = this.tabs.map(function() { return $( "a", this )[ 0 ]; }) .addClass( "ui-tabs-anchor" ) .attr({ role: "presentation", tabIndex: -1 }); this.panels = $(); this.anchors.each(function( i, anchor ) { var selector, panel, panelId, anchorId = $( anchor ).uniqueId().attr( "id" ), tab = $( anchor ).closest( "li" ), originalAriaControls = tab.attr( "aria-controls" ); // inline tab if ( isLocal( anchor ) ) { selector = anchor.hash; panel = that.element.find( that._sanitizeSelector( selector ) ); // remote tab } else { panelId = that._tabId( tab ); selector = "#" + panelId; panel = that.element.find( selector ); if ( !panel.length ) { panel = that._createPanel( panelId ); panel.insertAfter( that.panels[ i - 1 ] || that.tablist ); } panel.attr( "aria-live", "polite" ); } if ( panel.length) { that.panels = that.panels.add( panel ); } if ( originalAriaControls ) { tab.data( "ui-tabs-aria-controls", originalAriaControls ); } tab.attr({ "aria-controls": selector.substring( 1 ), "aria-labelledby": anchorId }); panel.attr( "aria-labelledby", anchorId ); }); this.panels .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) .attr( "role", "tabpanel" ); }, // allow overriding how to find the list for rare usage scenarios (#7715) _getList: function() { return this.element.find( "ol,ul" ).eq( 0 ); }, _createPanel: function( id ) { return $( "
    " ) .attr( "id", id ) .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) .data( "ui-tabs-destroy", true ); }, _setupDisabled: function( disabled ) { if ( $.isArray( disabled ) ) { if ( !disabled.length ) { disabled = false; } else if ( disabled.length === this.anchors.length ) { disabled = true; } } // disable tabs for ( var i = 0, li; ( li = this.tabs[ i ] ); i++ ) { if ( disabled === true || $.inArray( i, disabled ) !== -1 ) { $( li ) .addClass( "ui-state-disabled" ) .attr( "aria-disabled", "true" ); } else { $( li ) .removeClass( "ui-state-disabled" ) .removeAttr( "aria-disabled" ); } } this.options.disabled = disabled; }, _setupEvents: function( event ) { var events = { click: function( event ) { event.preventDefault(); } }; if ( event ) { $.each( event.split(" "), function( index, eventName ) { events[ eventName ] = "_eventHandler"; }); } this._off( this.anchors.add( this.tabs ).add( this.panels ) ); this._on( this.anchors, events ); this._on( this.tabs, { keydown: "_tabKeydown" } ); this._on( this.panels, { keydown: "_panelKeydown" } ); this._focusable( this.tabs ); this._hoverable( this.tabs ); }, _setupHeightStyle: function( heightStyle ) { var maxHeight, parent = this.element.parent(); if ( heightStyle === "fill" ) { maxHeight = parent.height(); maxHeight -= this.element.outerHeight() - this.element.height(); this.element.siblings( ":visible" ).each(function() { var elem = $( this ), position = elem.css( "position" ); if ( position === "absolute" || position === "fixed" ) { return; } maxHeight -= elem.outerHeight( true ); }); this.element.children().not( this.panels ).each(function() { maxHeight -= $( this ).outerHeight( true ); }); this.panels.each(function() { $( this ).height( Math.max( 0, maxHeight - $( this ).innerHeight() + $( this ).height() ) ); }) .css( "overflow", "auto" ); } else if ( heightStyle === "auto" ) { maxHeight = 0; this.panels.each(function() { maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); }).height( maxHeight ); } }, _eventHandler: function( event ) { var options = this.options, active = this.active, anchor = $( event.currentTarget ), tab = anchor.closest( "li" ), clickedIsActive = tab[ 0 ] === active[ 0 ], collapsing = clickedIsActive && options.collapsible, toShow = collapsing ? $() : this._getPanelForTab( tab ), toHide = !active.length ? $() : this._getPanelForTab( active ), eventData = { oldTab: active, oldPanel: toHide, newTab: collapsing ? $() : tab, newPanel: toShow }; event.preventDefault(); if ( tab.hasClass( "ui-state-disabled" ) || // tab is already loading tab.hasClass( "ui-tabs-loading" ) || // can't switch durning an animation this.running || // click on active header, but not collapsible ( clickedIsActive && !options.collapsible ) || // allow canceling activation ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { return; } options.active = collapsing ? false : this.tabs.index( tab ); this.active = clickedIsActive ? $() : tab; if ( this.xhr ) { this.xhr.abort(); } if ( !toHide.length && !toShow.length ) { $.error( "jQuery UI Tabs: Mismatching fragment identifier." ); } if ( toShow.length ) { this.load( this.tabs.index( tab ), event ); } this._toggle( event, eventData ); }, // handles show/hide for selecting tabs _toggle: function( event, eventData ) { var that = this, toShow = eventData.newPanel, toHide = eventData.oldPanel; this.running = true; function complete() { that.running = false; that._trigger( "activate", event, eventData ); } function show() { eventData.newTab.closest( "li" ).addClass( "ui-tabs-active ui-state-active" ); if ( toShow.length && that.options.show ) { that._show( toShow, that.options.show, complete ); } else { toShow.show(); complete(); } } // start out by hiding, then showing, then completing if ( toHide.length && this.options.hide ) { this._hide( toHide, this.options.hide, function() { eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); show(); }); } else { eventData.oldTab.closest( "li" ).removeClass( "ui-tabs-active ui-state-active" ); toHide.hide(); show(); } toHide.attr({ "aria-expanded": "false", "aria-hidden": "true" }); eventData.oldTab.attr( "aria-selected", "false" ); // If we're switching tabs, remove the old tab from the tab order. // If we're opening from collapsed state, remove the previous tab from the tab order. // If we're collapsing, then keep the collapsing tab in the tab order. if ( toShow.length && toHide.length ) { eventData.oldTab.attr( "tabIndex", -1 ); } else if ( toShow.length ) { this.tabs.filter(function() { return $( this ).attr( "tabIndex" ) === 0; }) .attr( "tabIndex", -1 ); } toShow.attr({ "aria-expanded": "true", "aria-hidden": "false" }); eventData.newTab.attr({ "aria-selected": "true", tabIndex: 0 }); }, _activate: function( index ) { var anchor, active = this._findActive( index ); // trying to activate the already active panel if ( active[ 0 ] === this.active[ 0 ] ) { return; } // trying to collapse, simulate a click on the current active header if ( !active.length ) { active = this.active; } anchor = active.find( ".ui-tabs-anchor" )[ 0 ]; this._eventHandler({ target: anchor, currentTarget: anchor, preventDefault: $.noop }); }, _findActive: function( index ) { return index === false ? $() : this.tabs.eq( index ); }, _getIndex: function( index ) { // meta-function to give users option to provide a href string instead of a numerical index. if ( typeof index === "string" ) { index = this.anchors.index( this.anchors.filter( "[href$='" + index + "']" ) ); } return index; }, _destroy: function() { if ( this.xhr ) { this.xhr.abort(); } this.element.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ); this.tablist .removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ) .removeAttr( "role" ); this.anchors .removeClass( "ui-tabs-anchor" ) .removeAttr( "role" ) .removeAttr( "tabIndex" ) .removeUniqueId(); this.tabs.add( this.panels ).each(function() { if ( $.data( this, "ui-tabs-destroy" ) ) { $( this ).remove(); } else { $( this ) .removeClass( "ui-state-default ui-state-active ui-state-disabled " + "ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel" ) .removeAttr( "tabIndex" ) .removeAttr( "aria-live" ) .removeAttr( "aria-busy" ) .removeAttr( "aria-selected" ) .removeAttr( "aria-labelledby" ) .removeAttr( "aria-hidden" ) .removeAttr( "aria-expanded" ) .removeAttr( "role" ); } }); this.tabs.each(function() { var li = $( this ), prev = li.data( "ui-tabs-aria-controls" ); if ( prev ) { li .attr( "aria-controls", prev ) .removeData( "ui-tabs-aria-controls" ); } else { li.removeAttr( "aria-controls" ); } }); this.panels.show(); if ( this.options.heightStyle !== "content" ) { this.panels.css( "height", "" ); } }, enable: function( index ) { var disabled = this.options.disabled; if ( disabled === false ) { return; } if ( index === undefined ) { disabled = false; } else { index = this._getIndex( index ); if ( $.isArray( disabled ) ) { disabled = $.map( disabled, function( num ) { return num !== index ? num : null; }); } else { disabled = $.map( this.tabs, function( li, num ) { return num !== index ? num : null; }); } } this._setupDisabled( disabled ); }, disable: function( index ) { var disabled = this.options.disabled; if ( disabled === true ) { return; } if ( index === undefined ) { disabled = true; } else { index = this._getIndex( index ); if ( $.inArray( index, disabled ) !== -1 ) { return; } if ( $.isArray( disabled ) ) { disabled = $.merge( [ index ], disabled ).sort(); } else { disabled = [ index ]; } } this._setupDisabled( disabled ); }, load: function( index, event ) { index = this._getIndex( index ); var that = this, tab = this.tabs.eq( index ), anchor = tab.find( ".ui-tabs-anchor" ), panel = this._getPanelForTab( tab ), eventData = { tab: tab, panel: panel }; // not remote if ( isLocal( anchor[ 0 ] ) ) { return; } this.xhr = $.ajax( this._ajaxSettings( anchor, event, eventData ) ); // support: jQuery <1.8 // jQuery <1.8 returns false if the request is canceled in beforeSend, // but as of 1.8, $.ajax() always returns a jqXHR object. if ( this.xhr && this.xhr.statusText !== "canceled" ) { tab.addClass( "ui-tabs-loading" ); panel.attr( "aria-busy", "true" ); this.xhr .success(function( response ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { panel.html( response ); that._trigger( "load", event, eventData ); }, 1 ); }) .complete(function( jqXHR, status ) { // support: jQuery <1.8 // http://bugs.jquery.com/ticket/11778 setTimeout(function() { if ( status === "abort" ) { that.panels.stop( false, true ); } tab.removeClass( "ui-tabs-loading" ); panel.removeAttr( "aria-busy" ); if ( jqXHR === that.xhr ) { delete that.xhr; } }, 1 ); }); } }, _ajaxSettings: function( anchor, event, eventData ) { var that = this; return { url: anchor.attr( "href" ), beforeSend: function( jqXHR, settings ) { return that._trigger( "beforeLoad", event, $.extend( { jqXHR : jqXHR, ajaxSettings: settings }, eventData ) ); } }; }, _getPanelForTab: function( tab ) { var id = $( tab ).attr( "aria-controls" ); return this.element.find( this._sanitizeSelector( "#" + id ) ); } }); })( jQuery ); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-clip.js0000644000175000017500000000267412107500066023322 0ustar metalmetal/*! * jQuery UI Effects Clip 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/clip-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.clip = function( o, done ) { // Create element var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "height", "width" ], mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", direction = o.direction || "vertical", vert = direction === "vertical", size = vert ? "height" : "width", position = vert ? "top" : "left", animation = {}, wrapper, animate, distance; // Save & Show $.effects.save( el, props ); el.show(); // Create Wrapper wrapper = $.effects.createWrapper( el ).css({ overflow: "hidden" }); animate = ( el[0].tagName === "IMG" ) ? wrapper : el; distance = animate[ size ](); // Shift if ( show ) { animate.css( size, 0 ); animate.css( position, distance / 2 ); } // Create Animation Object: animation[ size ] = show ? distance : 0; animation[ position ] = show ? 0 : distance / 2; // Animate animate.animate( animation, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( !show ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); jqueryui-1.10.1/development-bundle/ui/i18n/0000755000175000017500000000000012111026004017405 5ustar metalmetaljqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-hy.js0000644000175000017500000000222612107500066024442 0ustar metalmetal/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/ jQuery(function($){ $.datepicker.regional['hy'] = { closeText: 'Փակել', prevText: '<Նախ.', nextText: 'Հաջ.>', currentText: 'Այսօր', monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], weekHeader: 'ՇԲՏ', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hy']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js0000644000175000017500000000162512107500066024437 0ustar metalmetal/* Polish initialisation for the jQuery UI date picker plugin. */ /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ jQuery(function($){ $.datepicker.regional['pl'] = { closeText: 'Zamknij', prevText: '<Poprzedni', nextText: 'Następny>', currentText: 'Dziś', monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec', 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'], monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', 'Lip','Sie','Wrz','Pa','Lis','Gru'], dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'], dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'], dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'], weekHeader: 'Tydz', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['pl']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-eu.js0000644000175000017500000000162112107500066024431 0ustar metalmetal/* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */ /* Karrikas-ek itzulia (karrikas@karrikas.com) */ jQuery(function($){ $.datepicker.regional['eu'] = { closeText: 'Egina', prevText: '<Aur', nextText: 'Hur>', currentText: 'Gaur', monthNames: ['urtarrila','otsaila','martxoa','apirila','maiatza','ekaina', 'uztaila','abuztua','iraila','urria','azaroa','abendua'], monthNamesShort: ['urt.','ots.','mar.','api.','mai.','eka.', 'uzt.','abu.','ira.','urr.','aza.','abe.'], dayNames: ['igandea','astelehena','asteartea','asteazkena','osteguna','ostirala','larunbata'], dayNamesShort: ['ig.','al.','ar.','az.','og.','ol.','lr.'], dayNamesMin: ['ig','al','ar','az','og','ol','lr'], weekHeader: 'As', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['eu']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-sr.js0000644000175000017500000000201512107500066024442 0ustar metalmetal/* Serbian i18n for the jQuery UI date picker plugin. */ /* Written by Dejan Dimić. */ jQuery(function($){ $.datepicker.regional['sr'] = { closeText: 'Затвори', prevText: '<', nextText: '>', currentText: 'Данас', monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун', 'Јул','Авг','Сеп','Окт','Нов','Дец'], dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'], dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], weekHeader: 'Сед', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sr']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-el.js0000644000175000017500000000225712107500066024426 0ustar metalmetal/* Greek (el) initialisation for the jQuery UI date picker plugin. */ /* Written by Alex Cicovic (http://www.alexcicovic.com) */ jQuery(function($){ $.datepicker.regional['el'] = { closeText: 'Κλείσιμο', prevText: 'Προηγούμενος', nextText: 'Επόμενος', currentText: 'Τρέχων Μήνας', monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], weekHeader: 'Εβδ', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['el']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-no.js0000644000175000017500000000157012107500066024437 0ustar metalmetal/* Norwegian initialisation for the jQuery UI date picker plugin. */ /* Written by Naimdjon Takhirov (naimdjon@gmail.com). */ jQuery(function($){ $.datepicker.regional['no'] = { closeText: 'Lukk', prevText: '«Forrige', nextText: 'Neste»', currentText: 'I dag', monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'], dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'], dayNamesMin: ['sø','ma','ti','on','to','fr','lø'], weekHeader: 'Uke', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['no']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-tr.js0000644000175000017500000000156312107500066024452 0ustar metalmetal/* Turkish initialisation for the jQuery UI date picker plugin. */ /* Written by Izzet Emre Erkan (kara@karalamalar.net). */ jQuery(function($){ $.datepicker.regional['tr'] = { closeText: 'kapat', prevText: '<geri', nextText: 'ileri>', currentText: 'bugün', monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran', 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'], monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', 'Tem','Ağu','Eyl','Eki','Kas','Ara'], dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'], dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], weekHeader: 'Hf', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['tr']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-is.js0000644000175000017500000000166212107500066024440 0ustar metalmetal/* Icelandic initialisation for the jQuery UI date picker plugin. */ /* Written by Haukur H. Thorsson (haukur@eskill.is). */ jQuery(function($){ $.datepicker.regional['is'] = { closeText: 'Loka', prevText: '< Fyrri', nextText: 'Næsti >', currentText: 'Í dag', monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', 'Júlí','Ágúst','September','Október','Nóvember','Desember'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', 'Júl','Ágú','Sep','Okt','Nóv','Des'], dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], weekHeader: 'Vika', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['is']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js0000644000175000017500000000176012107500066024433 0ustar metalmetal/* French initialisation for the jQuery UI date picker plugin. */ /* Written by Keith Wood (kbwood{at}iinet.com.au), Stéphane Nahmani (sholby@sholby.net), Stéphane Raimbault */ jQuery(function($){ $.datepicker.regional['fr'] = { closeText: 'Fermer', prevText: 'Précédent', nextText: 'Suivant', currentText: 'Aujourd\'hui', monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin', 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'], dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'], dayNamesMin: ['D','L','M','M','J','V','S'], weekHeader: 'Sem.', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fr']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js0000644000175000017500000000213512107500066024447 0ustar metalmetal/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Andrew Stromnov (stromnov@gmail.com). */ jQuery(function($){ $.datepicker.regional['ru'] = { closeText: 'Закрыть', prevText: '<Пред', nextText: 'След>', currentText: 'Сегодня', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'], dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], weekHeader: 'Нед', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ru']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-sv.js0000644000175000017500000000157212107500066024455 0ustar metalmetal/* Swedish initialisation for the jQuery UI date picker plugin. */ /* Written by Anders Ekdahl ( anders@nomadiz.se). */ jQuery(function($){ $.datepicker.regional['sv'] = { closeText: 'Stäng', prevText: '«Förra', nextText: 'Nästa»', currentText: 'Idag', monthNames: ['Januari','Februari','Mars','April','Maj','Juni', 'Juli','Augusti','September','Oktober','November','December'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aug','Sep','Okt','Nov','Dec'], dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'], weekHeader: 'Ve', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sv']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js0000644000175000017500000000226712107500066024744 0ustar metalmetal/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/ /* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ jQuery(function($){ $.datepicker.regional['ar-DZ'] = { closeText: 'إغلاق', prevText: '<السابق', nextText: 'التالي>', currentText: 'اليوم', monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], weekHeader: 'أسبوع', dateFormat: 'dd/mm/yy', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ar-DZ']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js0000644000175000017500000000160512107500066024721 0ustar metalmetal/* Swiss-French initialisation for the jQuery UI date picker plugin. */ /* Written Martin Voelkle (martin.voelkle@e-tc.ch). */ jQuery(function($){ $.datepicker.regional['fr-CH'] = { closeText: 'Fermer', prevText: '<Préc', nextText: 'Suiv>', currentText: 'Courant', monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', 'Jul','Aoû','Sep','Oct','Nov','Déc'], dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], weekHeader: 'Sm', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fr-CH']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js0000644000175000017500000000160312107500066024747 0ustar metalmetal/* English/New Zealand initialisation for the jQuery UI date picker plugin. */ /* Based on the en-GB initialisation. */ jQuery(function($){ $.datepicker.regional['en-NZ'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['January','February','March','April','May','June', 'July','August','September','October','November','December'], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['en-NZ']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-hr.js0000644000175000017500000000154512107500066024436 0ustar metalmetal/* Croatian i18n for the jQuery UI date picker plugin. */ /* Written by Vjekoslav Nesek. */ jQuery(function($){ $.datepicker.regional['hr'] = { closeText: 'Zatvori', prevText: '<', nextText: '>', currentText: 'Danas', monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj', 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', 'Srp','Kol','Ruj','Lis','Stu','Pro'], dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], weekHeader: 'Tje', dateFormat: 'dd.mm.yy.', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hr']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-bs.js0000644000175000017500000000151412107500066024425 0ustar metalmetal/* Bosnian i18n for the jQuery UI date picker plugin. */ /* Written by Kenan Konjo. */ jQuery(function($){ $.datepicker.regional['bs'] = { closeText: 'Zatvori', prevText: '<', nextText: '>', currentText: 'Danas', monthNames: ['Januar','Februar','Mart','April','Maj','Juni', 'Juli','August','Septembar','Oktobar','Novembar','Decembar'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aug','Sep','Okt','Nov','Dec'], dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], weekHeader: 'Wk', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['bs']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-th.js0000644000175000017500000000237212107500066024437 0ustar metalmetal/* Thai initialisation for the jQuery UI date picker plugin. */ /* Written by pipo (pipo@sixhead.com). */ jQuery(function($){ $.datepicker.regional['th'] = { closeText: 'ปิด', prevText: '« ย้อน', nextText: 'ถัดไป »', currentText: 'วันนี้', monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['th']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-sr-SR.js0000644000175000017500000000152012107500066024764 0ustar metalmetal/* Serbian i18n for the jQuery UI date picker plugin. */ /* Written by Dejan Dimić. */ jQuery(function($){ $.datepicker.regional['sr-SR'] = { closeText: 'Zatvori', prevText: '<', nextText: '>', currentText: 'Danas', monthNames: ['Januar','Februar','Mart','April','Maj','Jun', 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Avg','Sep','Okt','Nov','Dec'], dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'], dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'], dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], weekHeader: 'Sed', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sr-SR']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery-ui-i18n.js0000644000175000017500000022276412107500070022474 0ustar metalmetal/*! jQuery UI - v1.10.1 - 2013-02-15 * http://jqueryui.com * Includes: jquery.ui.datepicker-af.js, jquery.ui.datepicker-ar-DZ.js, jquery.ui.datepicker-ar.js, jquery.ui.datepicker-az.js, jquery.ui.datepicker-be.js, jquery.ui.datepicker-bg.js, jquery.ui.datepicker-bs.js, jquery.ui.datepicker-ca.js, jquery.ui.datepicker-cs.js, jquery.ui.datepicker-cy-GB.js, jquery.ui.datepicker-da.js, jquery.ui.datepicker-de.js, jquery.ui.datepicker-el.js, jquery.ui.datepicker-en-AU.js, jquery.ui.datepicker-en-GB.js, jquery.ui.datepicker-en-NZ.js, jquery.ui.datepicker-eo.js, jquery.ui.datepicker-es.js, jquery.ui.datepicker-et.js, jquery.ui.datepicker-eu.js, jquery.ui.datepicker-fa.js, jquery.ui.datepicker-fi.js, jquery.ui.datepicker-fo.js, jquery.ui.datepicker-fr-CA.js, jquery.ui.datepicker-fr-CH.js, jquery.ui.datepicker-fr.js, jquery.ui.datepicker-gl.js, jquery.ui.datepicker-he.js, jquery.ui.datepicker-hi.js, jquery.ui.datepicker-hr.js, jquery.ui.datepicker-hu.js, jquery.ui.datepicker-hy.js, jquery.ui.datepicker-id.js, jquery.ui.datepicker-is.js, jquery.ui.datepicker-it.js, jquery.ui.datepicker-ja.js, jquery.ui.datepicker-ka.js, jquery.ui.datepicker-kk.js, jquery.ui.datepicker-km.js, jquery.ui.datepicker-ko.js, jquery.ui.datepicker-ky.js, jquery.ui.datepicker-lb.js, jquery.ui.datepicker-lt.js, jquery.ui.datepicker-lv.js, jquery.ui.datepicker-mk.js, jquery.ui.datepicker-ml.js, jquery.ui.datepicker-ms.js, jquery.ui.datepicker-nb.js, jquery.ui.datepicker-nl-BE.js, jquery.ui.datepicker-nl.js, jquery.ui.datepicker-nn.js, jquery.ui.datepicker-no.js, jquery.ui.datepicker-pl.js, jquery.ui.datepicker-pt-BR.js, jquery.ui.datepicker-pt.js, jquery.ui.datepicker-rm.js, jquery.ui.datepicker-ro.js, jquery.ui.datepicker-ru.js, jquery.ui.datepicker-sk.js, jquery.ui.datepicker-sl.js, jquery.ui.datepicker-sq.js, jquery.ui.datepicker-sr-SR.js, jquery.ui.datepicker-sr.js, jquery.ui.datepicker-sv.js, jquery.ui.datepicker-ta.js, jquery.ui.datepicker-th.js, jquery.ui.datepicker-tj.js, jquery.ui.datepicker-tr.js, jquery.ui.datepicker-uk.js, jquery.ui.datepicker-vi.js, jquery.ui.datepicker-zh-CN.js, jquery.ui.datepicker-zh-HK.js, jquery.ui.datepicker-zh-TW.js * Copyright 2013 jQuery Foundation and other contributors; Licensed MIT */ /* Afrikaans initialisation for the jQuery UI date picker plugin. */ /* Written by Renier Pretorius. */ jQuery(function($){ $.datepicker.regional['af'] = { closeText: 'Selekteer', prevText: 'Vorige', nextText: 'Volgende', currentText: 'Vandag', monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie', 'Julie','Augustus','September','Oktober','November','Desember'], monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'], dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['af']); }); /* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/ /* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ jQuery(function($){ $.datepicker.regional['ar-DZ'] = { closeText: 'إغلاق', prevText: '<السابق', nextText: 'التالي>', currentText: 'اليوم', monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], weekHeader: 'أسبوع', dateFormat: 'dd/mm/yy', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ar-DZ']); }); /* Arabic Translation for jQuery UI date picker plugin. */ /* Khaled Alhourani -- me@khaledalhourani.com */ /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ jQuery(function($){ $.datepicker.regional['ar'] = { closeText: 'إغلاق', prevText: '<السابق', nextText: 'التالي>', currentText: 'اليوم', monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], weekHeader: 'أسبوع', dateFormat: 'dd/mm/yy', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ar']); }); /* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Jamil Najafov (necefov33@gmail.com). */ jQuery(function($) { $.datepicker.regional['az'] = { closeText: 'Bağla', prevText: '<Geri', nextText: 'İrəli>', currentText: 'Bugün', monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun', 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'], monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun', 'İyul','Avq','Sen','Okt','Noy','Dek'], dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'], dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'], dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'], weekHeader: 'Hf', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['az']); }); /* Belarusian initialisation for the jQuery UI date picker plugin. */ /* Written by Pavel Selitskas */ jQuery(function($){ $.datepicker.regional['be'] = { closeText: 'Зачыніць', prevText: '←Папяр.', nextText: 'Наст.→', currentText: 'Сёньня', monthNames: ['Студзень','Люты','Сакавік','Красавік','Травень','Чэрвень', 'Ліпень','Жнівень','Верасень','Кастрычнік','Лістапад','Сьнежань'], monthNamesShort: ['Сту','Лют','Сак','Кра','Тра','Чэр', 'Ліп','Жні','Вер','Кас','Ліс','Сьн'], dayNames: ['нядзеля','панядзелак','аўторак','серада','чацьвер','пятніца','субота'], dayNamesShort: ['ндз','пнд','аўт','срд','чцв','птн','сбт'], dayNamesMin: ['Нд','Пн','Аў','Ср','Чц','Пт','Сб'], weekHeader: 'Тд', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['be']); }); /* Bulgarian initialisation for the jQuery UI date picker plugin. */ /* Written by Stoyan Kyosev (http://svest.org). */ jQuery(function($){ $.datepicker.regional['bg'] = { closeText: 'затвори', prevText: '<назад', nextText: 'напред>', nextBigText: '>>', currentText: 'днес', monthNames: ['Януари','Февруари','Март','Април','Май','Юни', 'Юли','Август','Септември','Октомври','Ноември','Декември'], monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', 'Юли','Авг','Сеп','Окт','Нов','Дек'], dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], weekHeader: 'Wk', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['bg']); }); /* Bosnian i18n for the jQuery UI date picker plugin. */ /* Written by Kenan Konjo. */ jQuery(function($){ $.datepicker.regional['bs'] = { closeText: 'Zatvori', prevText: '<', nextText: '>', currentText: 'Danas', monthNames: ['Januar','Februar','Mart','April','Maj','Juni', 'Juli','August','Septembar','Oktobar','Novembar','Decembar'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aug','Sep','Okt','Nov','Dec'], dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], weekHeader: 'Wk', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['bs']); }); /* Inicialització en català per a l'extensió 'UI date picker' per jQuery. */ /* Writers: (joan.leon@gmail.com). */ jQuery(function($){ $.datepicker.regional['ca'] = { closeText: 'Tanca', prevText: 'Anterior', nextText: 'Següent', currentText: 'Avui', monthNames: ['gener','febrer','març','abril','maig','juny', 'juliol','agost','setembre','octubre','novembre','desembre'], monthNamesShort: ['gen','feb','març','abr','maig','juny', 'jul','ag','set','oct','nov','des'], dayNames: ['diumenge','dilluns','dimarts','dimecres','dijous','divendres','dissabte'], dayNamesShort: ['dg','dl','dt','dc','dj','dv','ds'], dayNamesMin: ['dg','dl','dt','dc','dj','dv','ds'], weekHeader: 'Set', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ca']); }); /* Czech initialisation for the jQuery UI date picker plugin. */ /* Written by Tomas Muller (tomas@tomas-muller.net). */ jQuery(function($){ $.datepicker.regional['cs'] = { closeText: 'Zavřít', prevText: '<Dříve', nextText: 'Později>', currentText: 'Nyní', monthNames: ['leden','únor','březen','duben','květen','červen', 'červenec','srpen','září','říjen','listopad','prosinec'], monthNamesShort: ['led','úno','bře','dub','kvě','čer', 'čvc','srp','zář','říj','lis','pro'], dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], dayNamesMin: ['ne','po','út','st','čt','pá','so'], weekHeader: 'Týd', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['cs']); }); /* Welsh/UK initialisation for the jQuery UI date picker plugin. */ /* Written by William Griffiths. */ jQuery(function($){ $.datepicker.regional['cy-GB'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['Ionawr','Chwefror','Mawrth','Ebrill','Mai','Mehefin', 'Gorffennaf','Awst','Medi','Hydref','Tachwedd','Rhagfyr'], monthNamesShort: ['Ion', 'Chw', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', 'Aws', 'Med', 'Hyd', 'Tac', 'Rha'], dayNames: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'], dayNamesShort: ['Sul', 'Llu', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'], dayNamesMin: ['Su','Ll','Ma','Me','Ia','Gw','Sa'], weekHeader: 'Wy', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['cy-GB']); }); /* Danish initialisation for the jQuery UI date picker plugin. */ /* Written by Jan Christensen ( deletestuff@gmail.com). */ jQuery(function($){ $.datepicker.regional['da'] = { closeText: 'Luk', prevText: '<Forrige', nextText: 'Næste>', currentText: 'Idag', monthNames: ['Januar','Februar','Marts','April','Maj','Juni', 'Juli','August','September','Oktober','November','December'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aug','Sep','Okt','Nov','Dec'], dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], weekHeader: 'Uge', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['da']); }); /* German initialisation for the jQuery UI date picker plugin. */ /* Written by Milian Wolff (mail@milianw.de). */ jQuery(function($){ $.datepicker.regional['de'] = { closeText: 'schließen', prevText: '<zurück', nextText: 'Vor>', currentText: 'heute', monthNames: ['Januar','Februar','März','April','Mai','Juni', 'Juli','August','September','Oktober','November','Dezember'], monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', 'Jul','Aug','Sep','Okt','Nov','Dez'], dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], weekHeader: 'KW', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['de']); }); /* Greek (el) initialisation for the jQuery UI date picker plugin. */ /* Written by Alex Cicovic (http://www.alexcicovic.com) */ jQuery(function($){ $.datepicker.regional['el'] = { closeText: 'Κλείσιμο', prevText: 'Προηγούμενος', nextText: 'Επόμενος', currentText: 'Τρέχων Μήνας', monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], weekHeader: 'Εβδ', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['el']); }); /* English/Australia initialisation for the jQuery UI date picker plugin. */ /* Based on the en-GB initialisation. */ jQuery(function($){ $.datepicker.regional['en-AU'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['January','February','March','April','May','June', 'July','August','September','October','November','December'], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['en-AU']); }); /* English/UK initialisation for the jQuery UI date picker plugin. */ /* Written by Stuart. */ jQuery(function($){ $.datepicker.regional['en-GB'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['January','February','March','April','May','June', 'July','August','September','October','November','December'], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['en-GB']); }); /* English/New Zealand initialisation for the jQuery UI date picker plugin. */ /* Based on the en-GB initialisation. */ jQuery(function($){ $.datepicker.regional['en-NZ'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['January','February','March','April','May','June', 'July','August','September','October','November','December'], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['en-NZ']); }); /* Esperanto initialisation for the jQuery UI date picker plugin. */ /* Written by Olivier M. (olivierweb@ifrance.com). */ jQuery(function($){ $.datepicker.regional['eo'] = { closeText: 'Fermi', prevText: '<Anta', nextText: 'Sekv>', currentText: 'Nuna', monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aŭg','Sep','Okt','Nov','Dec'], dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], weekHeader: 'Sb', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['eo']); }); /* Inicialización en español para la extensión 'UI date picker' para jQuery. */ /* Traducido por Vester (xvester@gmail.com). */ jQuery(function($){ $.datepicker.regional['es'] = { closeText: 'Cerrar', prevText: '<Ant', nextText: 'Sig>', currentText: 'Hoy', monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', 'Jul','Ago','Sep','Oct','Nov','Dic'], dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['es']); }); /* Estonian initialisation for the jQuery UI date picker plugin. */ /* Written by Mart Sõmermaa (mrts.pydev at gmail com). */ jQuery(function($){ $.datepicker.regional['et'] = { closeText: 'Sulge', prevText: 'Eelnev', nextText: 'Järgnev', currentText: 'Täna', monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni', 'Juuli','August','September','Oktoober','November','Detsember'], monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni', 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'], dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'], dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'], dayNamesMin: ['P','E','T','K','N','R','L'], weekHeader: 'näd', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['et']); }); /* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */ /* Karrikas-ek itzulia (karrikas@karrikas.com) */ jQuery(function($){ $.datepicker.regional['eu'] = { closeText: 'Egina', prevText: '<Aur', nextText: 'Hur>', currentText: 'Gaur', monthNames: ['urtarrila','otsaila','martxoa','apirila','maiatza','ekaina', 'uztaila','abuztua','iraila','urria','azaroa','abendua'], monthNamesShort: ['urt.','ots.','mar.','api.','mai.','eka.', 'uzt.','abu.','ira.','urr.','aza.','abe.'], dayNames: ['igandea','astelehena','asteartea','asteazkena','osteguna','ostirala','larunbata'], dayNamesShort: ['ig.','al.','ar.','az.','og.','ol.','lr.'], dayNamesMin: ['ig','al','ar','az','og','ol','lr'], weekHeader: 'As', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['eu']); }); /* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ /* Javad Mowlanezhad -- jmowla@gmail.com */ /* Jalali calendar should supported soon! (Its implemented but I have to test it) */ jQuery(function($) { $.datepicker.regional['fa'] = { closeText: 'بستن', prevText: '<قبلی', nextText: 'بعدی>', currentText: 'امروز', monthNames: [ 'فروردين', 'ارديبهشت', 'خرداد', 'تير', 'مرداد', 'شهريور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند' ], monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], dayNames: [ 'يکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه' ], dayNamesShort: [ 'ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش' ], dayNamesMin: [ 'ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش' ], weekHeader: 'هف', dateFormat: 'yy/mm/dd', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fa']); }); /* Finnish initialisation for the jQuery UI date picker plugin. */ /* Written by Harri Kilpiö (harrikilpio@gmail.com). */ jQuery(function($){ $.datepicker.regional['fi'] = { closeText: 'Sulje', prevText: '«Edellinen', nextText: 'Seuraava»', currentText: 'Tänään', monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', 'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', 'Heinä','Elo','Syys','Loka','Marras','Joulu'], dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','La'], dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], weekHeader: 'Vk', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fi']); }); /* Faroese initialisation for the jQuery UI date picker plugin */ /* Written by Sverri Mohr Olsen, sverrimo@gmail.com */ jQuery(function($){ $.datepicker.regional['fo'] = { closeText: 'Lat aftur', prevText: '<Fyrra', nextText: 'Næsta>', currentText: 'Í dag', monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni', 'Juli','August','September','Oktober','November','Desember'], monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', 'Jul','Aug','Sep','Okt','Nov','Des'], dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'], dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'], dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'], weekHeader: 'Vk', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fo']); }); /* Canadian-French initialisation for the jQuery UI date picker plugin. */ jQuery(function ($) { $.datepicker.regional['fr-CA'] = { closeText: 'Fermer', prevText: 'Précédent', nextText: 'Suivant', currentText: 'Aujourd\'hui', monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'], dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], weekHeader: 'Sem.', dateFormat: 'yy-mm-dd', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['fr-CA']); }); /* Swiss-French initialisation for the jQuery UI date picker plugin. */ /* Written Martin Voelkle (martin.voelkle@e-tc.ch). */ jQuery(function($){ $.datepicker.regional['fr-CH'] = { closeText: 'Fermer', prevText: '<Préc', nextText: 'Suiv>', currentText: 'Courant', monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', 'Jul','Aoû','Sep','Oct','Nov','Déc'], dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], weekHeader: 'Sm', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fr-CH']); }); /* French initialisation for the jQuery UI date picker plugin. */ /* Written by Keith Wood (kbwood{at}iinet.com.au), Stéphane Nahmani (sholby@sholby.net), Stéphane Raimbault */ jQuery(function($){ $.datepicker.regional['fr'] = { closeText: 'Fermer', prevText: 'Précédent', nextText: 'Suivant', currentText: 'Aujourd\'hui', monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin', 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'], dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'], dayNamesMin: ['D','L','M','M','J','V','S'], weekHeader: 'Sem.', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fr']); }); /* Galician localization for 'UI date picker' jQuery extension. */ /* Translated by Jorge Barreiro . */ jQuery(function($){ $.datepicker.regional['gl'] = { closeText: 'Pechar', prevText: '<Ant', nextText: 'Seg>', currentText: 'Hoxe', monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño', 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'], monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ', 'Xul','Ago','Set','Out','Nov','Dec'], dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'], dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'], dayNamesMin: ['Do','Lu','Ma','Mé','Xo','Ve','Sá'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['gl']); }); /* Hebrew initialisation for the UI Datepicker extension. */ /* Written by Amir Hardon (ahardon at gmail dot com). */ jQuery(function($){ $.datepicker.regional['he'] = { closeText: 'סגור', prevText: '<הקודם', nextText: 'הבא>', currentText: 'היום', monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], monthNamesShort: ['ינו','פבר','מרץ','אפר','מאי','יוני', 'יולי','אוג','ספט','אוק','נוב','דצמ'], dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['he']); }); /* Hindi initialisation for the jQuery UI date picker plugin. */ /* Written by Michael Dawart. */ jQuery(function($){ $.datepicker.regional['hi'] = { closeText: 'बंद', prevText: 'पिछला', nextText: 'अगला', currentText: 'आज', monthNames: ['जनवरी ','फरवरी','मार्च','अप्रेल','मई','जून', 'जूलाई','अगस्त ','सितम्बर','अक्टूबर','नवम्बर','दिसम्बर'], monthNamesShort: ['जन', 'फर', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जूलाई', 'अग', 'सित', 'अक्ट', 'नव', 'दि'], dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'], dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], dayNamesMin: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], weekHeader: 'हफ्ता', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hi']); }); /* Croatian i18n for the jQuery UI date picker plugin. */ /* Written by Vjekoslav Nesek. */ jQuery(function($){ $.datepicker.regional['hr'] = { closeText: 'Zatvori', prevText: '<', nextText: '>', currentText: 'Danas', monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj', 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', 'Srp','Kol','Ruj','Lis','Stu','Pro'], dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], weekHeader: 'Tje', dateFormat: 'dd.mm.yy.', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hr']); }); /* Hungarian initialisation for the jQuery UI date picker plugin. */ /* Written by Istvan Karaszi (jquery@spam.raszi.hu). */ jQuery(function($){ $.datepicker.regional['hu'] = { closeText: 'bezár', prevText: 'vissza', nextText: 'előre', currentText: 'ma', monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], dayNames: ['Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], weekHeader: 'Hét', dateFormat: 'yy.mm.dd.', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hu']); }); /* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/ jQuery(function($){ $.datepicker.regional['hy'] = { closeText: 'Փակել', prevText: '<Նախ.', nextText: 'Հաջ.>', currentText: 'Այսօր', monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], weekHeader: 'ՇԲՏ', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hy']); }); /* Indonesian initialisation for the jQuery UI date picker plugin. */ /* Written by Deden Fathurahman (dedenf@gmail.com). */ jQuery(function($){ $.datepicker.regional['id'] = { closeText: 'Tutup', prevText: '<mundur', nextText: 'maju>', currentText: 'hari ini', monthNames: ['Januari','Februari','Maret','April','Mei','Juni', 'Juli','Agustus','September','Oktober','Nopember','Desember'], monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', 'Jul','Agus','Sep','Okt','Nop','Des'], dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], weekHeader: 'Mg', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['id']); }); /* Icelandic initialisation for the jQuery UI date picker plugin. */ /* Written by Haukur H. Thorsson (haukur@eskill.is). */ jQuery(function($){ $.datepicker.regional['is'] = { closeText: 'Loka', prevText: '< Fyrri', nextText: 'Næsti >', currentText: 'Í dag', monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', 'Júlí','Ágúst','September','Október','Nóvember','Desember'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', 'Júl','Ágú','Sep','Okt','Nóv','Des'], dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], weekHeader: 'Vika', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['is']); }); /* Italian initialisation for the jQuery UI date picker plugin. */ /* Written by Antonello Pasella (antonello.pasella@gmail.com). */ jQuery(function($){ $.datepicker.regional['it'] = { closeText: 'Chiudi', prevText: '<Prec', nextText: 'Succ>', currentText: 'Oggi', monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', 'Lug','Ago','Set','Ott','Nov','Dic'], dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['it']); }); /* Japanese initialisation for the jQuery UI date picker plugin. */ /* Written by Kentaro SATO (kentaro@ranvis.com). */ jQuery(function($){ $.datepicker.regional['ja'] = { closeText: '閉じる', prevText: '<前', nextText: '次>', currentText: '今日', monthNames: ['1月','2月','3月','4月','5月','6月', '7月','8月','9月','10月','11月','12月'], monthNamesShort: ['1月','2月','3月','4月','5月','6月', '7月','8月','9月','10月','11月','12月'], dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], dayNamesShort: ['日','月','火','水','木','金','土'], dayNamesMin: ['日','月','火','水','木','金','土'], weekHeader: '週', dateFormat: 'yy/mm/dd', firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['ja']); }); /* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Lado Lomidze (lado.lomidze@gmail.com). */ jQuery(function($){ $.datepicker.regional['ka'] = { closeText: 'დახურვა', prevText: '< წინა', nextText: 'შემდეგი >', currentText: 'დღეს', monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'], monthNamesShort: ['იან','თებ','მარ','აპრ','მაი','ივნ', 'ივლ','აგვ','სექ','ოქტ','ნოე','დეკ'], dayNames: ['კვირა','ორშაბათი','სამშაბათი','ოთხშაბათი','ხუთშაბათი','პარასკევი','შაბათი'], dayNamesShort: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'], dayNamesMin: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'], weekHeader: 'კვირა', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ka']); }); /* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */ jQuery(function($){ $.datepicker.regional['kk'] = { closeText: 'Жабу', prevText: '<Алдыңғы', nextText: 'Келесі>', currentText: 'Бүгін', monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым', 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'], monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау', 'Шіл','Там','Қыр','Қаз','Қар','Жел'], dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'], dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'], dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'], weekHeader: 'Не', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['kk']); }); /* Khmer initialisation for the jQuery calendar extension. */ /* Written by Chandara Om (chandara.teacher@gmail.com). */ jQuery(function($){ $.datepicker.regional['km'] = { closeText: 'ធ្វើ​រួច', prevText: 'មុន', nextText: 'បន្ទាប់', currentText: 'ថ្ងៃ​នេះ', monthNames: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា', 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'], monthNamesShort: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា', 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'], dayNames: ['អាទិត្យ', 'ចន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'], dayNamesShort: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'], dayNamesMin: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'], weekHeader: 'សប្ដាហ៍', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['km']); }); /* Korean initialisation for the jQuery calendar extension. */ /* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */ jQuery(function($){ $.datepicker.regional['ko'] = { closeText: '닫기', prevText: '이전달', nextText: '다음달', currentText: '오늘', monthNames: ['1월','2월','3월','4월','5월','6월', '7월','8월','9월','10월','11월','12월'], monthNamesShort: ['1월','2월','3월','4월','5월','6월', '7월','8월','9월','10월','11월','12월'], dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'], dayNamesShort: ['일','월','화','수','목','금','토'], dayNamesMin: ['일','월','화','수','목','금','토'], weekHeader: 'Wk', dateFormat: 'yy-mm-dd', firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: '년'}; $.datepicker.setDefaults($.datepicker.regional['ko']); }); /* Kyrgyz (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Sergey Kartashov (ebishkek@yandex.ru). */ jQuery(function($){ $.datepicker.regional['ky'] = { closeText: 'Жабуу', prevText: '<Мур', nextText: 'Кий>', currentText: 'Бүгүн', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'], dayNames: ['жекшемби', 'дүйшөмбү', 'шейшемби', 'шаршемби', 'бейшемби', 'жума', 'ишемби'], dayNamesShort: ['жек', 'дүй', 'шей', 'шар', 'бей', 'жум', 'ише'], dayNamesMin: ['Жк','Дш','Шш','Шр','Бш','Жм','Иш'], weekHeader: 'Жум', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['ky']); }); /* Luxembourgish initialisation for the jQuery UI date picker plugin. */ /* Written by Michel Weimerskirch */ jQuery(function($){ $.datepicker.regional['lb'] = { closeText: 'Fäerdeg', prevText: 'Zréck', nextText: 'Weider', currentText: 'Haut', monthNames: ['Januar','Februar','Mäerz','Abrëll','Mee','Juni', 'Juli','August','September','Oktober','November','Dezember'], monthNamesShort: ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], dayNames: ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'], dayNamesShort: ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'], dayNamesMin: ['So','Mé','Dë','Më','Do','Fr','Sa'], weekHeader: 'W', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['lb']); }); /* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* @author Arturas Paleicikas */ jQuery(function($){ $.datepicker.regional['lt'] = { closeText: 'Uždaryti', prevText: '<Atgal', nextText: 'Pirmyn>', currentText: 'Šiandien', monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'], monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', 'Lie','Rugp','Rugs','Spa','Lap','Gru'], dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'], dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'], dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'], weekHeader: 'Wk', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['lt']); }); /* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* @author Arturas Paleicikas */ jQuery(function($){ $.datepicker.regional['lv'] = { closeText: 'Aizvērt', prevText: 'Iepr', nextText: 'Nāka', currentText: 'Šodien', monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs', 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn', 'Jūl','Aug','Sep','Okt','Nov','Dec'], dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'], dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], weekHeader: 'Nav', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['lv']); }); /* Macedonian i18n for the jQuery UI date picker plugin. */ /* Written by Stojce Slavkovski. */ jQuery(function($){ $.datepicker.regional['mk'] = { closeText: 'Затвори', prevText: '<', nextText: '>', currentText: 'Денес', monthNames: ['Јануари','Февруари','Март','Април','Мај','Јуни', 'Јули','Август','Септември','Октомври','Ноември','Декември'], monthNamesShort: ['Јан','Фев','Мар','Апр','Мај','Јун', 'Јул','Авг','Сеп','Окт','Ное','Дек'], dayNames: ['Недела','Понеделник','Вторник','Среда','Четврток','Петок','Сабота'], dayNamesShort: ['Нед','Пон','Вто','Сре','Чет','Пет','Саб'], dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Са'], weekHeader: 'Сед', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['mk']); }); /* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Saji Nediyanchath (saji89@gmail.com). */ jQuery(function($){ $.datepicker.regional['ml'] = { closeText: 'ശരി', prevText: 'മുന്നത്തെ', nextText: 'അടുത്തത് ', currentText: 'ഇന്ന്', monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍', 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'], monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'], dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'], weekHeader: 'ആ', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ml']); }); /* Malaysian initialisation for the jQuery UI date picker plugin. */ /* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ jQuery(function($){ $.datepicker.regional['ms'] = { closeText: 'Tutup', prevText: '<Sebelum', nextText: 'Selepas>', currentText: 'hari ini', monthNames: ['Januari','Februari','Mac','April','Mei','Jun', 'Julai','Ogos','September','Oktober','November','Disember'], monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', 'Jul','Ogo','Sep','Okt','Nov','Dis'], dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'], dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], weekHeader: 'Mg', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ms']); }); /* Norwegian Bokmål initialisation for the jQuery UI date picker plugin. */ /* Written by Bjørn Johansen (post@bjornjohansen.no). */ jQuery(function($){ $.datepicker.regional['nb'] = { closeText: 'Lukk', prevText: '«Forrige', nextText: 'Neste»', currentText: 'I dag', monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'], dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'], dayNamesMin: ['sø','ma','ti','on','to','fr','lø'], weekHeader: 'Uke', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['nb']); }); /* Dutch (Belgium) initialisation for the jQuery UI date picker plugin. */ /* David De Sloovere @DavidDeSloovere */ jQuery(function($){ $.datepicker.regional['nl-BE'] = { closeText: 'Sluiten', prevText: '←', nextText: '→', currentText: 'Vandaag', monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['nl-BE']); }); /* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Mathias Bynens */ jQuery(function($){ $.datepicker.regional.nl = { closeText: 'Sluiten', prevText: '←', nextText: '→', currentText: 'Vandaag', monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], weekHeader: 'Wk', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional.nl); }); /* Norwegian Nynorsk initialisation for the jQuery UI date picker plugin. */ /* Written by Bjørn Johansen (post@bjornjohansen.no). */ jQuery(function($){ $.datepicker.regional['nn'] = { closeText: 'Lukk', prevText: '«Førre', nextText: 'Neste»', currentText: 'I dag', monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], dayNamesShort: ['sun','mån','tys','ons','tor','fre','lau'], dayNames: ['sundag','måndag','tysdag','onsdag','torsdag','fredag','laurdag'], dayNamesMin: ['su','må','ty','on','to','fr','la'], weekHeader: 'Veke', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['nn']); }); /* Norwegian initialisation for the jQuery UI date picker plugin. */ /* Written by Naimdjon Takhirov (naimdjon@gmail.com). */ jQuery(function($){ $.datepicker.regional['no'] = { closeText: 'Lukk', prevText: '«Forrige', nextText: 'Neste»', currentText: 'I dag', monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'], dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'], dayNamesMin: ['sø','ma','ti','on','to','fr','lø'], weekHeader: 'Uke', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['no']); }); /* Polish initialisation for the jQuery UI date picker plugin. */ /* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ jQuery(function($){ $.datepicker.regional['pl'] = { closeText: 'Zamknij', prevText: '<Poprzedni', nextText: 'Następny>', currentText: 'Dziś', monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec', 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'], monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', 'Lip','Sie','Wrz','Pa','Lis','Gru'], dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'], dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'], dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'], weekHeader: 'Tydz', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['pl']); }); /* Brazilian initialisation for the jQuery UI date picker plugin. */ /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */ jQuery(function($){ $.datepicker.regional['pt-BR'] = { closeText: 'Fechar', prevText: '<Anterior', nextText: 'Próximo>', currentText: 'Hoje', monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['pt-BR']); }); /* Portuguese initialisation for the jQuery UI date picker plugin. */ jQuery(function($){ $.datepicker.regional['pt'] = { closeText: 'Fechar', prevText: '<Anterior', nextText: 'Seguinte', currentText: 'Hoje', monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], weekHeader: 'Sem', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['pt']); }); /* Romansh initialisation for the jQuery UI date picker plugin. */ /* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */ jQuery(function($){ $.datepicker.regional['rm'] = { closeText: 'Serrar', prevText: '<Suandant', nextText: 'Precedent>', currentText: 'Actual', monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'], monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'], dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'], dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'], dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'], weekHeader: 'emna', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['rm']); }); /* Romanian initialisation for the jQuery UI date picker plugin. * * Written by Edmond L. (ll_edmond@walla.com) * and Ionut G. Stan (ionut.g.stan@gmail.com) */ jQuery(function($){ $.datepicker.regional['ro'] = { closeText: 'Închide', prevText: '« Luna precedentă', nextText: 'Luna următoare »', currentText: 'Azi', monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie', 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'], monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'], dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'], dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'], weekHeader: 'Săpt', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ro']); }); /* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Andrew Stromnov (stromnov@gmail.com). */ jQuery(function($){ $.datepicker.regional['ru'] = { closeText: 'Закрыть', prevText: '<Пред', nextText: 'След>', currentText: 'Сегодня', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'], dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], weekHeader: 'Нед', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ru']); }); /* Slovak initialisation for the jQuery UI date picker plugin. */ /* Written by Vojtech Rinik (vojto@hmm.sk). */ jQuery(function($){ $.datepicker.regional['sk'] = { closeText: 'Zavrieť', prevText: '<Predchádzajúci', nextText: 'Nasledujúci>', currentText: 'Dnes', monthNames: ['január','február','marec','apríl','máj','jún', 'júl','august','september','október','november','december'], monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', 'Júl','Aug','Sep','Okt','Nov','Dec'], dayNames: ['nedeľa','pondelok','utorok','streda','štvrtok','piatok','sobota'], dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'], dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'], weekHeader: 'Ty', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sk']); }); /* Slovenian initialisation for the jQuery UI date picker plugin. */ /* Written by Jaka Jancar (jaka@kubje.org). */ /* c = č, s = š z = ž C = Č S = Š Z = Ž */ jQuery(function($){ $.datepicker.regional['sl'] = { closeText: 'Zapri', prevText: '<Prejšnji', nextText: 'Naslednji>', currentText: 'Trenutni', monthNames: ['Januar','Februar','Marec','April','Maj','Junij', 'Julij','Avgust','September','Oktober','November','December'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Avg','Sep','Okt','Nov','Dec'], dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'], dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'], dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'], weekHeader: 'Teden', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sl']); }); /* Albanian initialisation for the jQuery UI date picker plugin. */ /* Written by Flakron Bytyqi (flakron@gmail.com). */ jQuery(function($){ $.datepicker.regional['sq'] = { closeText: 'mbylle', prevText: '<mbrapa', nextText: 'Përpara>', currentText: 'sot', monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor', 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', 'Kor','Gus','Sht','Tet','Nën','Dhj'], dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], weekHeader: 'Ja', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sq']); }); /* Serbian i18n for the jQuery UI date picker plugin. */ /* Written by Dejan Dimić. */ jQuery(function($){ $.datepicker.regional['sr-SR'] = { closeText: 'Zatvori', prevText: '<', nextText: '>', currentText: 'Danas', monthNames: ['Januar','Februar','Mart','April','Maj','Jun', 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Avg','Sep','Okt','Nov','Dec'], dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'], dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'], dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], weekHeader: 'Sed', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sr-SR']); }); /* Serbian i18n for the jQuery UI date picker plugin. */ /* Written by Dejan Dimić. */ jQuery(function($){ $.datepicker.regional['sr'] = { closeText: 'Затвори', prevText: '<', nextText: '>', currentText: 'Данас', monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун', 'Јул','Авг','Сеп','Окт','Нов','Дец'], dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'], dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], weekHeader: 'Сед', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sr']); }); /* Swedish initialisation for the jQuery UI date picker plugin. */ /* Written by Anders Ekdahl ( anders@nomadiz.se). */ jQuery(function($){ $.datepicker.regional['sv'] = { closeText: 'Stäng', prevText: '«Förra', nextText: 'Nästa»', currentText: 'Idag', monthNames: ['Januari','Februari','Mars','April','Maj','Juni', 'Juli','Augusti','September','Oktober','November','December'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aug','Sep','Okt','Nov','Dec'], dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'], weekHeader: 'Ve', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sv']); }); /* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by S A Sureshkumar (saskumar@live.com). */ jQuery(function($){ $.datepicker.regional['ta'] = { closeText: 'மூடு', prevText: 'முன்னையது', nextText: 'அடுத்தது', currentText: 'இன்று', monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி', 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'], monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி', 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'], dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'], dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'], dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'], weekHeader: 'Не', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ta']); }); /* Thai initialisation for the jQuery UI date picker plugin. */ /* Written by pipo (pipo@sixhead.com). */ jQuery(function($){ $.datepicker.regional['th'] = { closeText: 'ปิด', prevText: '« ย้อน', nextText: 'ถัดไป »', currentText: 'วันนี้', monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['th']); }); /* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Abdurahmon Saidov (saidovab@gmail.com). */ jQuery(function($){ $.datepicker.regional['tj'] = { closeText: 'Идома', prevText: '<Қафо', nextText: 'Пеш>', currentText: 'Имрӯз', monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн', 'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'], monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'], dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'], dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'], dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'], weekHeader: 'Хф', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['tj']); }); /* Turkish initialisation for the jQuery UI date picker plugin. */ /* Written by Izzet Emre Erkan (kara@karalamalar.net). */ jQuery(function($){ $.datepicker.regional['tr'] = { closeText: 'kapat', prevText: '<geri', nextText: 'ileri>', currentText: 'bugün', monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran', 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'], monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', 'Tem','Ağu','Eyl','Eki','Kas','Ara'], dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'], dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], weekHeader: 'Hf', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['tr']); }); /* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Maxim Drogobitskiy (maxdao@gmail.com). */ /* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */ jQuery(function($){ $.datepicker.regional['uk'] = { closeText: 'Закрити', prevText: '<', nextText: '>', currentText: 'Сьогодні', monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'], monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', 'Лип','Сер','Вер','Жов','Лис','Гру'], dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'], dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'], dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'], weekHeader: 'Тиж', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['uk']); }); /* Vietnamese initialisation for the jQuery UI date picker plugin. */ /* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ jQuery(function($){ $.datepicker.regional['vi'] = { closeText: 'Đóng', prevText: '<Trước', nextText: 'Tiếp>', currentText: 'Hôm nay', monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'], monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'], dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'], dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], weekHeader: 'Tu', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['vi']); }); /* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Cloudream (cloudream@gmail.com). */ jQuery(function($){ $.datepicker.regional['zh-CN'] = { closeText: '关闭', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], weekHeader: '周', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['zh-CN']); }); /* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by SCCY (samuelcychan@gmail.com). */ jQuery(function($){ $.datepicker.regional['zh-HK'] = { closeText: '關閉', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], weekHeader: '周', dateFormat: 'dd-mm-yy', firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['zh-HK']); }); /* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Ressol (ressol@gmail.com). */ jQuery(function($){ $.datepicker.regional['zh-TW'] = { closeText: '關閉', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], weekHeader: '周', dateFormat: 'yy/mm/dd', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['zh-TW']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-nl-BE.js0000644000175000017500000000162612107500066024722 0ustar metalmetal/* Dutch (Belgium) initialisation for the jQuery UI date picker plugin. */ /* David De Sloovere @DavidDeSloovere */ jQuery(function($){ $.datepicker.regional['nl-BE'] = { closeText: 'Sluiten', prevText: '←', nextText: '→', currentText: 'Vandaag', monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['nl-BE']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ka.js0000644000175000017500000000260612107500066024417 0ustar metalmetal/* Georgian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Lado Lomidze (lado.lomidze@gmail.com). */ jQuery(function($){ $.datepicker.regional['ka'] = { closeText: 'დახურვა', prevText: '< წინა', nextText: 'შემდეგი >', currentText: 'დღეს', monthNames: ['იანვარი','თებერვალი','მარტი','აპრილი','მაისი','ივნისი', 'ივლისი','აგვისტო','სექტემბერი','ოქტომბერი','ნოემბერი','დეკემბერი'], monthNamesShort: ['იან','თებ','მარ','აპრ','მაი','ივნ', 'ივლ','აგვ','სექ','ოქტ','ნოე','დეკ'], dayNames: ['კვირა','ორშაბათი','სამშაბათი','ოთხშაბათი','ხუთშაბათი','პარასკევი','შაბათი'], dayNamesShort: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'], dayNamesMin: ['კვ','ორშ','სამ','ოთხ','ხუთ','პარ','შაბ'], weekHeader: 'კვირა', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ka']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-az.js0000644000175000017500000000163112107500066024433 0ustar metalmetal/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Jamil Najafov (necefov33@gmail.com). */ jQuery(function($) { $.datepicker.regional['az'] = { closeText: 'Bağla', prevText: '<Geri', nextText: 'İrəli>', currentText: 'Bugün', monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun', 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'], monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun', 'İyul','Avq','Sen','Okt','Noy','Dek'], dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'], dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'], dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'], weekHeader: 'Hf', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['az']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-he.js0000644000175000017500000000177012107500066024421 0ustar metalmetal/* Hebrew initialisation for the UI Datepicker extension. */ /* Written by Amir Hardon (ahardon at gmail dot com). */ jQuery(function($){ $.datepicker.regional['he'] = { closeText: 'סגור', prevText: '<הקודם', nextText: 'הבא>', currentText: 'היום', monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], monthNamesShort: ['ינו','פבר','מרץ','אפר','מאי','יוני', 'יולי','אוג','ספט','אוק','נוב','דצמ'], dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['he']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js0000644000175000017500000000157212107500066024427 0ustar metalmetal/* Galician localization for 'UI date picker' jQuery extension. */ /* Translated by Jorge Barreiro . */ jQuery(function($){ $.datepicker.regional['gl'] = { closeText: 'Pechar', prevText: '<Ant', nextText: 'Seg>', currentText: 'Hoxe', monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño', 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'], monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ', 'Xul','Ago','Set','Out','Nov','Dec'], dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'], dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'], dayNamesMin: ['Do','Lu','Ma','Mé','Xo','Ve','Sá'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['gl']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-lt.js0000644000175000017500000000170112107500066024436 0ustar metalmetal/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* @author Arturas Paleicikas */ jQuery(function($){ $.datepicker.regional['lt'] = { closeText: 'Uždaryti', prevText: '<Atgal', nextText: 'Pirmyn>', currentText: 'Šiandien', monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'], monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', 'Lie','Rugp','Rugs','Spa','Lap','Gru'], dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'], dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'], dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'], weekHeader: 'Wk', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['lt']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js0000644000175000017500000000263412107500066024435 0ustar metalmetal/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Saji Nediyanchath (saji89@gmail.com). */ jQuery(function($){ $.datepicker.regional['ml'] = { closeText: 'ശരി', prevText: 'മുന്നത്തെ', nextText: 'അടുത്തത് ', currentText: 'ഇന്ന്', monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍', 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'], monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'], dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'], weekHeader: 'ആ', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ml']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-fo.js0000644000175000017500000000162612107500066024431 0ustar metalmetal/* Faroese initialisation for the jQuery UI date picker plugin */ /* Written by Sverri Mohr Olsen, sverrimo@gmail.com */ jQuery(function($){ $.datepicker.regional['fo'] = { closeText: 'Lat aftur', prevText: '<Fyrra', nextText: 'Næsta>', currentText: 'Í dag', monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni', 'Juli','August','September','Oktober','November','Desember'], monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', 'Jul','Aug','Sep','Okt','Nov','Des'], dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'], dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'], dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'], weekHeader: 'Vk', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fo']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js0000644000175000017500000000161112107500066024434 0ustar metalmetal/* Slovak initialisation for the jQuery UI date picker plugin. */ /* Written by Vojtech Rinik (vojto@hmm.sk). */ jQuery(function($){ $.datepicker.regional['sk'] = { closeText: 'Zavrieť', prevText: '<Predchádzajúci', nextText: 'Nasledujúci>', currentText: 'Dnes', monthNames: ['január','február','marec','apríl','máj','jún', 'júl','august','september','október','november','december'], monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', 'Júl','Aug','Sep','Okt','Nov','Dec'], dayNames: ['nedeľa','pondelok','utorok','streda','štvrtok','piatok','sobota'], dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'], dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'], weekHeader: 'Ty', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sk']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ja.js0000644000175000017500000000160612107500066024415 0ustar metalmetal/* Japanese initialisation for the jQuery UI date picker plugin. */ /* Written by Kentaro SATO (kentaro@ranvis.com). */ jQuery(function($){ $.datepicker.regional['ja'] = { closeText: '閉じる', prevText: '<前', nextText: '次>', currentText: '今日', monthNames: ['1月','2月','3月','4月','5月','6月', '7月','8月','9月','10月','11月','12月'], monthNamesShort: ['1月','2月','3月','4月','5月','6月', '7月','8月','9月','10月','11月','12月'], dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], dayNamesShort: ['日','月','火','水','木','金','土'], dayNamesMin: ['日','月','火','水','木','金','土'], weekHeader: '週', dateFormat: 'yy/mm/dd', firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['ja']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js0000644000175000017500000000242112107500066024421 0ustar metalmetal/* Arabic Translation for jQuery UI date picker plugin. */ /* Khaled Alhourani -- me@khaledalhourani.com */ /* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ jQuery(function($){ $.datepicker.regional['ar'] = { closeText: 'إغلاق', prevText: '<السابق', nextText: 'التالي>', currentText: 'اليوم', monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], dayNamesMin: ['ح', 'ن', 'ث', 'ر', 'خ', 'ج', 'س'], weekHeader: 'أسبوع', dateFormat: 'dd/mm/yy', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ar']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-kk.js0000644000175000017500000000213512107500066024426 0ustar metalmetal/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */ jQuery(function($){ $.datepicker.regional['kk'] = { closeText: 'Жабу', prevText: '<Алдыңғы', nextText: 'Келесі>', currentText: 'Бүгін', monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым', 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'], monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау', 'Шіл','Там','Қыр','Қаз','Қар','Жел'], dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'], dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'], dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'], weekHeader: 'Не', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['kk']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-km.js0000644000175000017500000000246212107500066024433 0ustar metalmetal/* Khmer initialisation for the jQuery calendar extension. */ /* Written by Chandara Om (chandara.teacher@gmail.com). */ jQuery(function($){ $.datepicker.regional['km'] = { closeText: 'ធ្វើ​រួច', prevText: 'មុន', nextText: 'បន្ទាប់', currentText: 'ថ្ងៃ​នេះ', monthNames: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា', 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'], monthNamesShort: ['មករា','កុម្ភៈ','មីនា','មេសា','ឧសភា','មិថុនា', 'កក្កដា','សីហា','កញ្ញា','តុលា','វិច្ឆិកា','ធ្នូ'], dayNames: ['អាទិត្យ', 'ចន្ទ', 'អង្គារ', 'ពុធ', 'ព្រហស្បតិ៍', 'សុក្រ', 'សៅរ៍'], dayNamesShort: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'], dayNamesMin: ['អា', 'ច', 'អ', 'ពុ', 'ព្រហ', 'សុ', 'សៅ'], weekHeader: 'សប្ដាហ៍', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['km']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-lv.js0000644000175000017500000000165412107500066024447 0ustar metalmetal/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* @author Arturas Paleicikas */ jQuery(function($){ $.datepicker.regional['lv'] = { closeText: 'Aizvērt', prevText: 'Iepr', nextText: 'Nāka', currentText: 'Šodien', monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs', 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn', 'Jūl','Aug','Sep','Okt','Nov','Dec'], dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'], dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], weekHeader: 'Nav', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['lv']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-zh-CN.js0000644000175000017500000000172712107500066024746 0ustar metalmetal/* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Cloudream (cloudream@gmail.com). */ jQuery(function($){ $.datepicker.regional['zh-CN'] = { closeText: '关闭', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], weekHeader: '周', dateFormat: 'yy-mm-dd', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['zh-CN']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js0000644000175000017500000000166112107500066024750 0ustar metalmetal/* Brazilian initialisation for the jQuery UI date picker plugin. */ /* Written by Leonildo Costa Silva (leocsilva@gmail.com). */ jQuery(function($){ $.datepicker.regional['pt-BR'] = { closeText: 'Fechar', prevText: '<Anterior', nextText: 'Próximo>', currentText: 'Hoje', monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['pt-BR']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ro.js0000644000175000017500000000173512107500066024446 0ustar metalmetal/* Romanian initialisation for the jQuery UI date picker plugin. * * Written by Edmond L. (ll_edmond@walla.com) * and Ionut G. Stan (ionut.g.stan@gmail.com) */ jQuery(function($){ $.datepicker.regional['ro'] = { closeText: 'Închide', prevText: '« Luna precedentă', nextText: 'Luna următoare »', currentText: 'Azi', monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie', 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'], monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'], dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'], dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'], weekHeader: 'Săpt', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ro']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-lb.js0000644000175000017500000000164612107500066024424 0ustar metalmetal/* Luxembourgish initialisation for the jQuery UI date picker plugin. */ /* Written by Michel Weimerskirch */ jQuery(function($){ $.datepicker.regional['lb'] = { closeText: 'Fäerdeg', prevText: 'Zréck', nextText: 'Weider', currentText: 'Haut', monthNames: ['Januar','Februar','Mäerz','Abrëll','Mee','Juni', 'Juli','August','September','Oktober','November','Dezember'], monthNamesShort: ['Jan', 'Feb', 'Mäe', 'Abr', 'Mee', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'], dayNames: ['Sonndeg', 'Méindeg', 'Dënschdeg', 'Mëttwoch', 'Donneschdeg', 'Freideg', 'Samschdeg'], dayNamesShort: ['Son', 'Méi', 'Dën', 'Mët', 'Don', 'Fre', 'Sam'], dayNamesMin: ['So','Mé','Dë','Më','Do','Fr','Sa'], weekHeader: 'W', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['lb']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-fi.js0000644000175000017500000000166312107500066024424 0ustar metalmetal/* Finnish initialisation for the jQuery UI date picker plugin. */ /* Written by Harri Kilpiö (harrikilpio@gmail.com). */ jQuery(function($){ $.datepicker.regional['fi'] = { closeText: 'Sulje', prevText: '«Edellinen', nextText: 'Seuraava»', currentText: 'Tänään', monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', 'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', 'Heinä','Elo','Syys','Loka','Marras','Joulu'], dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','La'], dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], weekHeader: 'Vk', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fi']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ca.js0000644000175000017500000000155212107500066024406 0ustar metalmetal/* Inicialització en català per a l'extensió 'UI date picker' per jQuery. */ /* Writers: (joan.leon@gmail.com). */ jQuery(function($){ $.datepicker.regional['ca'] = { closeText: 'Tanca', prevText: 'Anterior', nextText: 'Següent', currentText: 'Avui', monthNames: ['gener','febrer','març','abril','maig','juny', 'juliol','agost','setembre','octubre','novembre','desembre'], monthNamesShort: ['gen','feb','març','abr','maig','juny', 'jul','ag','set','oct','nov','des'], dayNames: ['diumenge','dilluns','dimarts','dimecres','dijous','divendres','dissabte'], dayNamesShort: ['dg','dl','dt','dc','dj','dv','ds'], dayNamesMin: ['dg','dl','dt','dc','dj','dv','ds'], weekHeader: 'Set', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ca']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-nl.js0000644000175000017500000000163212107500066024433 0ustar metalmetal/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Mathias Bynens */ jQuery(function($){ $.datepicker.regional.nl = { closeText: 'Sluiten', prevText: '←', nextText: '→', currentText: 'Vandaag', monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], monthNamesShort: ['jan', 'feb', 'mrt', 'apr', 'mei', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], weekHeader: 'Wk', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional.nl); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ms.js0000644000175000017500000000157312107500066024445 0ustar metalmetal/* Malaysian initialisation for the jQuery UI date picker plugin. */ /* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ jQuery(function($){ $.datepicker.regional['ms'] = { closeText: 'Tutup', prevText: '<Sebelum', nextText: 'Selepas>', currentText: 'hari ini', monthNames: ['Januari','Februari','Mac','April','Mei','Jun', 'Julai','Ogos','September','Oktober','November','Disember'], monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', 'Jul','Ogo','Sep','Okt','Nov','Dis'], dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'], dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], weekHeader: 'Mg', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ms']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-cy-GB.js0000644000175000017500000000161012107500066024717 0ustar metalmetal/* Welsh/UK initialisation for the jQuery UI date picker plugin. */ /* Written by William Griffiths. */ jQuery(function($){ $.datepicker.regional['cy-GB'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['Ionawr','Chwefror','Mawrth','Ebrill','Mai','Mehefin', 'Gorffennaf','Awst','Medi','Hydref','Tachwedd','Rhagfyr'], monthNamesShort: ['Ion', 'Chw', 'Maw', 'Ebr', 'Mai', 'Meh', 'Gor', 'Aws', 'Med', 'Hyd', 'Tac', 'Rha'], dayNames: ['Dydd Sul', 'Dydd Llun', 'Dydd Mawrth', 'Dydd Mercher', 'Dydd Iau', 'Dydd Gwener', 'Dydd Sadwrn'], dayNamesShort: ['Sul', 'Llu', 'Maw', 'Mer', 'Iau', 'Gwe', 'Sad'], dayNamesMin: ['Su','Ll','Ma','Me','Ia','Gw','Sa'], weekHeader: 'Wy', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['cy-GB']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-da.js0000644000175000017500000000157212107500066024411 0ustar metalmetal/* Danish initialisation for the jQuery UI date picker plugin. */ /* Written by Jan Christensen ( deletestuff@gmail.com). */ jQuery(function($){ $.datepicker.regional['da'] = { closeText: 'Luk', prevText: '<Forrige', nextText: 'Næste>', currentText: 'Idag', monthNames: ['Januar','Februar','Marts','April','Maj','Juni', 'Juli','August','September','Oktober','November','December'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aug','Sep','Okt','Nov','Dec'], dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], weekHeader: 'Uge', dateFormat: 'dd-mm-yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['da']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ko.js0000644000175000017500000000161712107500066024436 0ustar metalmetal/* Korean initialisation for the jQuery calendar extension. */ /* Written by DaeKwon Kang (ncrash.dk@gmail.com), Edited by Genie. */ jQuery(function($){ $.datepicker.regional['ko'] = { closeText: '닫기', prevText: '이전달', nextText: '다음달', currentText: '오늘', monthNames: ['1월','2월','3월','4월','5월','6월', '7월','8월','9월','10월','11월','12월'], monthNamesShort: ['1월','2월','3월','4월','5월','6월', '7월','8월','9월','10월','11월','12월'], dayNames: ['일요일','월요일','화요일','수요일','목요일','금요일','토요일'], dayNamesShort: ['일','월','화','수','목','금','토'], dayNamesMin: ['일','월','화','수','목','금','토'], weekHeader: 'Wk', dateFormat: 'yy-mm-dd', firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: '년'}; $.datepicker.setDefaults($.datepicker.regional['ko']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-zh-HK.js0000644000175000017500000000172512107500066024746 0ustar metalmetal/* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by SCCY (samuelcychan@gmail.com). */ jQuery(function($){ $.datepicker.regional['zh-HK'] = { closeText: '關閉', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], weekHeader: '周', dateFormat: 'dd-mm-yy', firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['zh-HK']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-de.js0000644000175000017500000000156112107500066024413 0ustar metalmetal/* German initialisation for the jQuery UI date picker plugin. */ /* Written by Milian Wolff (mail@milianw.de). */ jQuery(function($){ $.datepicker.regional['de'] = { closeText: 'schließen', prevText: '<zurück', nextText: 'Vor>', currentText: 'heute', monthNames: ['Januar','Februar','März','April','Mai','Juni', 'Juli','August','September','Oktober','November','Dezember'], monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', 'Jul','Aug','Sep','Okt','Nov','Dez'], dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], weekHeader: 'KW', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['de']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js0000644000175000017500000000155212107500066024446 0ustar metalmetal/* Portuguese initialisation for the jQuery UI date picker plugin. */ jQuery(function($){ $.datepicker.regional['pt'] = { closeText: 'Fechar', prevText: '<Anterior', nextText: 'Seguinte', currentText: 'Hoje', monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], weekHeader: 'Sem', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['pt']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-mk.js0000644000175000017500000000204112107500066024424 0ustar metalmetal/* Macedonian i18n for the jQuery UI date picker plugin. */ /* Written by Stojce Slavkovski. */ jQuery(function($){ $.datepicker.regional['mk'] = { closeText: 'Затвори', prevText: '<', nextText: '>', currentText: 'Денес', monthNames: ['Јануари','Февруари','Март','Април','Мај','Јуни', 'Јули','Август','Септември','Октомври','Ноември','Декември'], monthNamesShort: ['Јан','Фев','Мар','Апр','Мај','Јун', 'Јул','Авг','Сеп','Окт','Ное','Дек'], dayNames: ['Недела','Понеделник','Вторник','Среда','Четврток','Петок','Сабота'], dayNamesShort: ['Нед','Пон','Вто','Сре','Чет','Пет','Саб'], dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Са'], weekHeader: 'Сед', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['mk']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-it.js0000644000175000017500000000162012107500066024433 0ustar metalmetal/* Italian initialisation for the jQuery UI date picker plugin. */ /* Written by Antonello Pasella (antonello.pasella@gmail.com). */ jQuery(function($){ $.datepicker.regional['it'] = { closeText: 'Chiudi', prevText: '<Prec', nextText: 'Succ>', currentText: 'Oggi', monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', 'Lug','Ago','Set','Ott','Nov','Dic'], dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['it']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js0000644000175000017500000000160112107500066024723 0ustar metalmetal/* English/Australia initialisation for the jQuery UI date picker plugin. */ /* Based on the en-GB initialisation. */ jQuery(function($){ $.datepicker.regional['en-AU'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['January','February','March','April','May','June', 'July','August','September','October','November','December'], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['en-AU']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-nb.js0000644000175000017500000000160012107500066024414 0ustar metalmetal/* Norwegian Bokmål initialisation for the jQuery UI date picker plugin. */ /* Written by Bjørn Johansen (post@bjornjohansen.no). */ jQuery(function($){ $.datepicker.regional['nb'] = { closeText: 'Lukk', prevText: '«Forrige', nextText: 'Neste»', currentText: 'I dag', monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'], dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'], dayNamesMin: ['sø','ma','ti','on','to','fr','lø'], weekHeader: 'Uke', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['nb']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-et.js0000644000175000017500000000166712107500066024442 0ustar metalmetal/* Estonian initialisation for the jQuery UI date picker plugin. */ /* Written by Mart Sõmermaa (mrts.pydev at gmail com). */ jQuery(function($){ $.datepicker.regional['et'] = { closeText: 'Sulge', prevText: 'Eelnev', nextText: 'Järgnev', currentText: 'Täna', monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni', 'Juuli','August','September','Oktoober','November','Detsember'], monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni', 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'], dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'], dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'], dayNamesMin: ['P','E','T','K','N','R','L'], weekHeader: 'näd', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['et']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-nn.js0000644000175000017500000000157512107500066024443 0ustar metalmetal/* Norwegian Nynorsk initialisation for the jQuery UI date picker plugin. */ /* Written by Bjørn Johansen (post@bjornjohansen.no). */ jQuery(function($){ $.datepicker.regional['nn'] = { closeText: 'Lukk', prevText: '«Førre', nextText: 'Neste»', currentText: 'I dag', monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], dayNamesShort: ['sun','mån','tys','ons','tor','fre','lau'], dayNames: ['sundag','måndag','tysdag','onsdag','torsdag','fredag','laurdag'], dayNamesMin: ['su','må','ty','on','to','fr','la'], weekHeader: 'Veke', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['nn']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ta.js0000644000175000017500000000273012107500066024426 0ustar metalmetal/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by S A Sureshkumar (saskumar@live.com). */ jQuery(function($){ $.datepicker.regional['ta'] = { closeText: 'மூடு', prevText: 'முன்னையது', nextText: 'அடுத்தது', currentText: 'இன்று', monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி', 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'], monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி', 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'], dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'], dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'], dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'], weekHeader: 'Не', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['ta']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js0000644000175000017500000000155212107500066024713 0ustar metalmetal/* English/UK initialisation for the jQuery UI date picker plugin. */ /* Written by Stuart. */ jQuery(function($){ $.datepicker.regional['en-GB'] = { closeText: 'Done', prevText: 'Prev', nextText: 'Next', currentText: 'Today', monthNames: ['January','February','March','April','May','June', 'July','August','September','October','November','December'], monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['en-GB']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-zh-TW.js0000644000175000017500000000172112107500066024772 0ustar metalmetal/* Chinese initialisation for the jQuery UI date picker plugin. */ /* Written by Ressol (ressol@gmail.com). */ jQuery(function($){ $.datepicker.regional['zh-TW'] = { closeText: '關閉', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], monthNamesShort: ['一月','二月','三月','四月','五月','六月', '七月','八月','九月','十月','十一月','十二月'], dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], dayNamesMin: ['日','一','二','三','四','五','六'], weekHeader: '周', dateFormat: 'yy/mm/dd', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: '年'}; $.datepicker.setDefaults($.datepicker.regional['zh-TW']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-vi.js0000644000175000017500000000210612107500066024435 0ustar metalmetal/* Vietnamese initialisation for the jQuery UI date picker plugin. */ /* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ jQuery(function($){ $.datepicker.regional['vi'] = { closeText: 'Đóng', prevText: '<Trước', nextText: 'Tiếp>', currentText: 'Hôm nay', monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'], monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'], dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'], dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], weekHeader: 'Tu', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['vi']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-eo.js0000644000175000017500000000157512107500066024433 0ustar metalmetal/* Esperanto initialisation for the jQuery UI date picker plugin. */ /* Written by Olivier M. (olivierweb@ifrance.com). */ jQuery(function($){ $.datepicker.regional['eo'] = { closeText: 'Fermi', prevText: '<Anta', nextText: 'Sekv>', currentText: 'Nuna', monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Aŭg','Sep','Okt','Nov','Dec'], dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], weekHeader: 'Sb', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['eo']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js0000644000175000017500000000206212107500066024435 0ustar metalmetal/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Abdurahmon Saidov (saidovab@gmail.com). */ jQuery(function($){ $.datepicker.regional['tj'] = { closeText: 'Идома', prevText: '<Қафо', nextText: 'Пеш>', currentText: 'Имрӯз', monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн', 'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'], monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'], dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'], dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'], dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'], weekHeader: 'Хф', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['tj']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-af.js0000644000175000017500000000160012107500066024403 0ustar metalmetal/* Afrikaans initialisation for the jQuery UI date picker plugin. */ /* Written by Renier Pretorius. */ jQuery(function($){ $.datepicker.regional['af'] = { closeText: 'Selekteer', prevText: 'Vorige', nextText: 'Volgende', currentText: 'Vandag', monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie', 'Julie','Augustus','September','Oktober','November','Desember'], monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'], dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'], weekHeader: 'Wk', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['af']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-es.js0000644000175000017500000000160012107500066024424 0ustar metalmetal/* Inicialización en español para la extensión 'UI date picker' para jQuery. */ /* Traducido por Vester (xvester@gmail.com). */ jQuery(function($){ $.datepicker.regional['es'] = { closeText: 'Cerrar', prevText: '<Ant', nextText: 'Sig>', currentText: 'Hoy', monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', 'Jul','Ago','Sep','Oct','Nov','Dic'], dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], weekHeader: 'Sm', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['es']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-bg.js0000644000175000017500000000214412107500066024411 0ustar metalmetal/* Bulgarian initialisation for the jQuery UI date picker plugin. */ /* Written by Stoyan Kyosev (http://svest.org). */ jQuery(function($){ $.datepicker.regional['bg'] = { closeText: 'затвори', prevText: '<назад', nextText: 'напред>', nextBigText: '>>', currentText: 'днес', monthNames: ['Януари','Февруари','Март','Април','Май','Юни', 'Юли','Август','Септември','Октомври','Ноември','Декември'], monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', 'Юли','Авг','Сеп','Окт','Нов','Дек'], dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], weekHeader: 'Wk', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['bg']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-sq.js0000644000175000017500000000156712107500066024454 0ustar metalmetal/* Albanian initialisation for the jQuery UI date picker plugin. */ /* Written by Flakron Bytyqi (flakron@gmail.com). */ jQuery(function($){ $.datepicker.regional['sq'] = { closeText: 'mbylle', prevText: '<mbrapa', nextText: 'Përpara>', currentText: 'sot', monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor', 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', 'Kor','Gus','Sht','Tet','Nën','Dhj'], dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], weekHeader: 'Ja', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sq']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-fa.js0000644000175000017500000000221412107500066024405 0ustar metalmetal/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ /* Javad Mowlanezhad -- jmowla@gmail.com */ /* Jalali calendar should supported soon! (Its implemented but I have to test it) */ jQuery(function($) { $.datepicker.regional['fa'] = { closeText: 'بستن', prevText: '<قبلی', nextText: 'بعدی>', currentText: 'امروز', monthNames: [ 'فروردين', 'ارديبهشت', 'خرداد', 'تير', 'مرداد', 'شهريور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند' ], monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], dayNames: [ 'يکشنبه', 'دوشنبه', 'سه‌شنبه', 'چهارشنبه', 'پنجشنبه', 'جمعه', 'شنبه' ], dayNamesShort: [ 'ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش' ], dayNamesMin: [ 'ی', 'د', 'س', 'چ', 'پ', 'ج', 'ش' ], weekHeader: 'هف', dateFormat: 'yy/mm/dd', firstDay: 6, isRTL: true, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['fa']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-id.js0000644000175000017500000000156212107500066024420 0ustar metalmetal/* Indonesian initialisation for the jQuery UI date picker plugin. */ /* Written by Deden Fathurahman (dedenf@gmail.com). */ jQuery(function($){ $.datepicker.regional['id'] = { closeText: 'Tutup', prevText: '<mundur', nextText: 'maju>', currentText: 'hari ini', monthNames: ['Januari','Februari','Maret','April','Mei','Juni', 'Juli','Agustus','September','Oktober','Nopember','Desember'], monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', 'Jul','Agus','Sep','Okt','Nop','Des'], dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], weekHeader: 'Mg', dateFormat: 'dd/mm/yy', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['id']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CA.js0000644000175000017500000000162112107500066024710 0ustar metalmetal/* Canadian-French initialisation for the jQuery UI date picker plugin. */ jQuery(function ($) { $.datepicker.regional['fr-CA'] = { closeText: 'Fermer', prevText: 'Précédent', nextText: 'Suivant', currentText: 'Aujourd\'hui', monthNames: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'], monthNamesShort: ['janv.', 'févr.', 'mars', 'avril', 'mai', 'juin', 'juil.', 'août', 'sept.', 'oct.', 'nov.', 'déc.'], dayNames: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'], dayNamesShort: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'], dayNamesMin: ['D', 'L', 'M', 'M', 'J', 'V', 'S'], weekHeader: 'Sem.', dateFormat: 'yy-mm-dd', firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['fr-CA']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-sl.js0000644000175000017500000000165712107500066024447 0ustar metalmetal/* Slovenian initialisation for the jQuery UI date picker plugin. */ /* Written by Jaka Jancar (jaka@kubje.org). */ /* c = č, s = š z = ž C = Č S = Š Z = Ž */ jQuery(function($){ $.datepicker.regional['sl'] = { closeText: 'Zapri', prevText: '<Prejšnji', nextText: 'Naslednji>', currentText: 'Trenutni', monthNames: ['Januar','Februar','Marec','April','Maj','Junij', 'Julij','Avgust','September','Oktober','November','December'], monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', 'Jul','Avg','Sep','Okt','Nov','Dec'], dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'], dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'], dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'], weekHeader: 'Teden', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['sl']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-ky.js0000644000175000017500000000212512107500066024443 0ustar metalmetal/* Kyrgyz (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Sergey Kartashov (ebishkek@yandex.ru). */ jQuery(function($){ $.datepicker.regional['ky'] = { closeText: 'Жабуу', prevText: '<Мур', nextText: 'Кий>', currentText: 'Бүгүн', monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', 'Июл','Авг','Сен','Окт','Ноя','Дек'], dayNames: ['жекшемби', 'дүйшөмбү', 'шейшемби', 'шаршемби', 'бейшемби', 'жума', 'ишемби'], dayNamesShort: ['жек', 'дүй', 'шей', 'шар', 'бей', 'жум', 'ише'], dayNamesMin: ['Жк','Дш','Шш','Шр','Бш','Жм','Иш'], weekHeader: 'Жум', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: '' }; $.datepicker.setDefaults($.datepicker.regional['ky']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-hi.js0000644000175000017500000000244112107500066024421 0ustar metalmetal/* Hindi initialisation for the jQuery UI date picker plugin. */ /* Written by Michael Dawart. */ jQuery(function($){ $.datepicker.regional['hi'] = { closeText: 'बंद', prevText: 'पिछला', nextText: 'अगला', currentText: 'आज', monthNames: ['जनवरी ','फरवरी','मार्च','अप्रेल','मई','जून', 'जूलाई','अगस्त ','सितम्बर','अक्टूबर','नवम्बर','दिसम्बर'], monthNamesShort: ['जन', 'फर', 'मार्च', 'अप्रेल', 'मई', 'जून', 'जूलाई', 'अग', 'सित', 'अक्ट', 'नव', 'दि'], dayNames: ['रविवार', 'सोमवार', 'मंगलवार', 'बुधवार', 'गुरुवार', 'शुक्रवार', 'शनिवार'], dayNamesShort: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], dayNamesMin: ['रवि', 'सोम', 'मंगल', 'बुध', 'गुरु', 'शुक्र', 'शनि'], weekHeader: 'हफ्ता', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hi']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-cs.js0000644000175000017500000000163312107500066024430 0ustar metalmetal/* Czech initialisation for the jQuery UI date picker plugin. */ /* Written by Tomas Muller (tomas@tomas-muller.net). */ jQuery(function($){ $.datepicker.regional['cs'] = { closeText: 'Zavřít', prevText: '<Dříve', nextText: 'Později>', currentText: 'Nyní', monthNames: ['leden','únor','březen','duben','květen','červen', 'červenec','srpen','září','říjen','listopad','prosinec'], monthNamesShort: ['led','úno','bře','dub','kvě','čer', 'čvc','srp','zář','říj','lis','pro'], dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], dayNamesMin: ['ne','po','út','st','čt','pá','so'], weekHeader: 'Týd', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['cs']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js0000644000175000017500000000166412107500066024443 0ustar metalmetal/* Hungarian initialisation for the jQuery UI date picker plugin. */ /* Written by Istvan Karaszi (jquery@spam.raszi.hu). */ jQuery(function($){ $.datepicker.regional['hu'] = { closeText: 'bezár', prevText: 'vissza', nextText: 'előre', currentText: 'ma', monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], dayNames: ['Vasárnap', 'Hétfő', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], weekHeader: 'Hét', dateFormat: 'yy.mm.dd.', firstDay: 1, isRTL: false, showMonthAfterYear: true, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['hu']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js0000644000175000017500000000161112107500066024435 0ustar metalmetal/* Romansh initialisation for the jQuery UI date picker plugin. */ /* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */ jQuery(function($){ $.datepicker.regional['rm'] = { closeText: 'Serrar', prevText: '<Suandant', nextText: 'Precedent>', currentText: 'Actual', monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'], monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'], dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'], dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'], dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'], weekHeader: 'emna', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['rm']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-uk.js0000644000175000017500000000223712107500066024443 0ustar metalmetal/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */ /* Written by Maxim Drogobitskiy (maxdao@gmail.com). */ /* Corrected by Igor Milla (igor.fsp.milla@gmail.com). */ jQuery(function($){ $.datepicker.regional['uk'] = { closeText: 'Закрити', prevText: '<', nextText: '>', currentText: 'Сьогодні', monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'], monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', 'Лип','Сер','Вер','Жов','Лис','Гру'], dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'], dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'], dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'], weekHeader: 'Тиж', dateFormat: 'dd/mm/yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['uk']); }); jqueryui-1.10.1/development-bundle/ui/i18n/jquery.ui.datepicker-be.js0000644000175000017500000000217212107500066024410 0ustar metalmetal/* Belarusian initialisation for the jQuery UI date picker plugin. */ /* Written by Pavel Selitskas */ jQuery(function($){ $.datepicker.regional['be'] = { closeText: 'Зачыніць', prevText: '←Папяр.', nextText: 'Наст.→', currentText: 'Сёньня', monthNames: ['Студзень','Люты','Сакавік','Красавік','Травень','Чэрвень', 'Ліпень','Жнівень','Верасень','Кастрычнік','Лістапад','Сьнежань'], monthNamesShort: ['Сту','Лют','Сак','Кра','Тра','Чэр', 'Ліп','Жні','Вер','Кас','Ліс','Сьн'], dayNames: ['нядзеля','панядзелак','аўторак','серада','чацьвер','пятніца','субота'], dayNamesShort: ['ндз','пнд','аўт','срд','чцв','птн','сбт'], dayNamesMin: ['Нд','Пн','Аў','Ср','Чц','Пт','Сб'], weekHeader: 'Тд', dateFormat: 'dd.mm.yy', firstDay: 1, isRTL: false, showMonthAfterYear: false, yearSuffix: ''}; $.datepicker.setDefaults($.datepicker.regional['be']); }); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect.js0000644000175000017500000007533412107500066022400 0ustar metalmetal/*! * jQuery UI Effects 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/category/effects-core/ */ ;(jQuery.effects || (function($, undefined) { var dataSpace = "ui-effects-"; $.effects = { effect: {} }; /*! * jQuery Color Animations v2.1.2 * https://github.com/jquery/jquery-color * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * Date: Wed Jan 16 08:47:09 2013 -0600 */ (function( jQuery, undefined ) { var stepHooks = "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor", // plusequals test for += 100 -= 100 rplusequals = /^([\-+])=\s*(\d+\.?\d*)/, // a set of RE's that can match strings and generate color tuples. stringParsers = [{ re: /rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function( execResult ) { return [ execResult[ 1 ], execResult[ 2 ], execResult[ 3 ], execResult[ 4 ] ]; } }, { re: /rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, parse: function( execResult ) { return [ execResult[ 1 ] * 2.55, execResult[ 2 ] * 2.55, execResult[ 3 ] * 2.55, execResult[ 4 ] ]; } }, { // this regex ignores A-F because it's compared against an already lowercased string re: /#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/, parse: function( execResult ) { return [ parseInt( execResult[ 1 ], 16 ), parseInt( execResult[ 2 ], 16 ), parseInt( execResult[ 3 ], 16 ) ]; } }, { // this regex ignores A-F because it's compared against an already lowercased string re: /#([a-f0-9])([a-f0-9])([a-f0-9])/, parse: function( execResult ) { return [ parseInt( execResult[ 1 ] + execResult[ 1 ], 16 ), parseInt( execResult[ 2 ] + execResult[ 2 ], 16 ), parseInt( execResult[ 3 ] + execResult[ 3 ], 16 ) ]; } }, { re: /hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/, space: "hsla", parse: function( execResult ) { return [ execResult[ 1 ], execResult[ 2 ] / 100, execResult[ 3 ] / 100, execResult[ 4 ] ]; } }], // jQuery.Color( ) color = jQuery.Color = function( color, green, blue, alpha ) { return new jQuery.Color.fn.parse( color, green, blue, alpha ); }, spaces = { rgba: { props: { red: { idx: 0, type: "byte" }, green: { idx: 1, type: "byte" }, blue: { idx: 2, type: "byte" } } }, hsla: { props: { hue: { idx: 0, type: "degrees" }, saturation: { idx: 1, type: "percent" }, lightness: { idx: 2, type: "percent" } } } }, propTypes = { "byte": { floor: true, max: 255 }, "percent": { max: 1 }, "degrees": { mod: 360, floor: true } }, support = color.support = {}, // element for support tests supportElem = jQuery( "

    " )[ 0 ], // colors = jQuery.Color.names colors, // local aliases of functions called often each = jQuery.each; // determine rgba support immediately supportElem.style.cssText = "background-color:rgba(1,1,1,.5)"; support.rgba = supportElem.style.backgroundColor.indexOf( "rgba" ) > -1; // define cache name and alpha properties // for rgba and hsla spaces each( spaces, function( spaceName, space ) { space.cache = "_" + spaceName; space.props.alpha = { idx: 3, type: "percent", def: 1 }; }); function clamp( value, prop, allowEmpty ) { var type = propTypes[ prop.type ] || {}; if ( value == null ) { return (allowEmpty || !prop.def) ? null : prop.def; } // ~~ is an short way of doing floor for positive numbers value = type.floor ? ~~value : parseFloat( value ); // IE will pass in empty strings as value for alpha, // which will hit this case if ( isNaN( value ) ) { return prop.def; } if ( type.mod ) { // we add mod before modding to make sure that negatives values // get converted properly: -10 -> 350 return (value + type.mod) % type.mod; } // for now all property types without mod have min and max return 0 > value ? 0 : type.max < value ? type.max : value; } function stringParse( string ) { var inst = color(), rgba = inst._rgba = []; string = string.toLowerCase(); each( stringParsers, function( i, parser ) { var parsed, match = parser.re.exec( string ), values = match && parser.parse( match ), spaceName = parser.space || "rgba"; if ( values ) { parsed = inst[ spaceName ]( values ); // if this was an rgba parse the assignment might happen twice // oh well.... inst[ spaces[ spaceName ].cache ] = parsed[ spaces[ spaceName ].cache ]; rgba = inst._rgba = parsed._rgba; // exit each( stringParsers ) here because we matched return false; } }); // Found a stringParser that handled it if ( rgba.length ) { // if this came from a parsed string, force "transparent" when alpha is 0 // chrome, (and maybe others) return "transparent" as rgba(0,0,0,0) if ( rgba.join() === "0,0,0,0" ) { jQuery.extend( rgba, colors.transparent ); } return inst; } // named colors return colors[ string ]; } color.fn = jQuery.extend( color.prototype, { parse: function( red, green, blue, alpha ) { if ( red === undefined ) { this._rgba = [ null, null, null, null ]; return this; } if ( red.jquery || red.nodeType ) { red = jQuery( red ).css( green ); green = undefined; } var inst = this, type = jQuery.type( red ), rgba = this._rgba = []; // more than 1 argument specified - assume ( red, green, blue, alpha ) if ( green !== undefined ) { red = [ red, green, blue, alpha ]; type = "array"; } if ( type === "string" ) { return this.parse( stringParse( red ) || colors._default ); } if ( type === "array" ) { each( spaces.rgba.props, function( key, prop ) { rgba[ prop.idx ] = clamp( red[ prop.idx ], prop ); }); return this; } if ( type === "object" ) { if ( red instanceof color ) { each( spaces, function( spaceName, space ) { if ( red[ space.cache ] ) { inst[ space.cache ] = red[ space.cache ].slice(); } }); } else { each( spaces, function( spaceName, space ) { var cache = space.cache; each( space.props, function( key, prop ) { // if the cache doesn't exist, and we know how to convert if ( !inst[ cache ] && space.to ) { // if the value was null, we don't need to copy it // if the key was alpha, we don't need to copy it either if ( key === "alpha" || red[ key ] == null ) { return; } inst[ cache ] = space.to( inst._rgba ); } // this is the only case where we allow nulls for ALL properties. // call clamp with alwaysAllowEmpty inst[ cache ][ prop.idx ] = clamp( red[ key ], prop, true ); }); // everything defined but alpha? if ( inst[ cache ] && jQuery.inArray( null, inst[ cache ].slice( 0, 3 ) ) < 0 ) { // use the default of 1 inst[ cache ][ 3 ] = 1; if ( space.from ) { inst._rgba = space.from( inst[ cache ] ); } } }); } return this; } }, is: function( compare ) { var is = color( compare ), same = true, inst = this; each( spaces, function( _, space ) { var localCache, isCache = is[ space.cache ]; if (isCache) { localCache = inst[ space.cache ] || space.to && space.to( inst._rgba ) || []; each( space.props, function( _, prop ) { if ( isCache[ prop.idx ] != null ) { same = ( isCache[ prop.idx ] === localCache[ prop.idx ] ); return same; } }); } return same; }); return same; }, _space: function() { var used = [], inst = this; each( spaces, function( spaceName, space ) { if ( inst[ space.cache ] ) { used.push( spaceName ); } }); return used.pop(); }, transition: function( other, distance ) { var end = color( other ), spaceName = end._space(), space = spaces[ spaceName ], startColor = this.alpha() === 0 ? color( "transparent" ) : this, start = startColor[ space.cache ] || space.to( startColor._rgba ), result = start.slice(); end = end[ space.cache ]; each( space.props, function( key, prop ) { var index = prop.idx, startValue = start[ index ], endValue = end[ index ], type = propTypes[ prop.type ] || {}; // if null, don't override start value if ( endValue === null ) { return; } // if null - use end if ( startValue === null ) { result[ index ] = endValue; } else { if ( type.mod ) { if ( endValue - startValue > type.mod / 2 ) { startValue += type.mod; } else if ( startValue - endValue > type.mod / 2 ) { startValue -= type.mod; } } result[ index ] = clamp( ( endValue - startValue ) * distance + startValue, prop ); } }); return this[ spaceName ]( result ); }, blend: function( opaque ) { // if we are already opaque - return ourself if ( this._rgba[ 3 ] === 1 ) { return this; } var rgb = this._rgba.slice(), a = rgb.pop(), blend = color( opaque )._rgba; return color( jQuery.map( rgb, function( v, i ) { return ( 1 - a ) * blend[ i ] + a * v; })); }, toRgbaString: function() { var prefix = "rgba(", rgba = jQuery.map( this._rgba, function( v, i ) { return v == null ? ( i > 2 ? 1 : 0 ) : v; }); if ( rgba[ 3 ] === 1 ) { rgba.pop(); prefix = "rgb("; } return prefix + rgba.join() + ")"; }, toHslaString: function() { var prefix = "hsla(", hsla = jQuery.map( this.hsla(), function( v, i ) { if ( v == null ) { v = i > 2 ? 1 : 0; } // catch 1 and 2 if ( i && i < 3 ) { v = Math.round( v * 100 ) + "%"; } return v; }); if ( hsla[ 3 ] === 1 ) { hsla.pop(); prefix = "hsl("; } return prefix + hsla.join() + ")"; }, toHexString: function( includeAlpha ) { var rgba = this._rgba.slice(), alpha = rgba.pop(); if ( includeAlpha ) { rgba.push( ~~( alpha * 255 ) ); } return "#" + jQuery.map( rgba, function( v ) { // default to 0 when nulls exist v = ( v || 0 ).toString( 16 ); return v.length === 1 ? "0" + v : v; }).join(""); }, toString: function() { return this._rgba[ 3 ] === 0 ? "transparent" : this.toRgbaString(); } }); color.fn.parse.prototype = color.fn; // hsla conversions adapted from: // https://code.google.com/p/maashaack/source/browse/packages/graphics/trunk/src/graphics/colors/HUE2RGB.as?r=5021 function hue2rgb( p, q, h ) { h = ( h + 1 ) % 1; if ( h * 6 < 1 ) { return p + (q - p) * h * 6; } if ( h * 2 < 1) { return q; } if ( h * 3 < 2 ) { return p + (q - p) * ((2/3) - h) * 6; } return p; } spaces.hsla.to = function ( rgba ) { if ( rgba[ 0 ] == null || rgba[ 1 ] == null || rgba[ 2 ] == null ) { return [ null, null, null, rgba[ 3 ] ]; } var r = rgba[ 0 ] / 255, g = rgba[ 1 ] / 255, b = rgba[ 2 ] / 255, a = rgba[ 3 ], max = Math.max( r, g, b ), min = Math.min( r, g, b ), diff = max - min, add = max + min, l = add * 0.5, h, s; if ( min === max ) { h = 0; } else if ( r === max ) { h = ( 60 * ( g - b ) / diff ) + 360; } else if ( g === max ) { h = ( 60 * ( b - r ) / diff ) + 120; } else { h = ( 60 * ( r - g ) / diff ) + 240; } // chroma (diff) == 0 means greyscale which, by definition, saturation = 0% // otherwise, saturation is based on the ratio of chroma (diff) to lightness (add) if ( diff === 0 ) { s = 0; } else if ( l <= 0.5 ) { s = diff / add; } else { s = diff / ( 2 - add ); } return [ Math.round(h) % 360, s, l, a == null ? 1 : a ]; }; spaces.hsla.from = function ( hsla ) { if ( hsla[ 0 ] == null || hsla[ 1 ] == null || hsla[ 2 ] == null ) { return [ null, null, null, hsla[ 3 ] ]; } var h = hsla[ 0 ] / 360, s = hsla[ 1 ], l = hsla[ 2 ], a = hsla[ 3 ], q = l <= 0.5 ? l * ( 1 + s ) : l + s - l * s, p = 2 * l - q; return [ Math.round( hue2rgb( p, q, h + ( 1 / 3 ) ) * 255 ), Math.round( hue2rgb( p, q, h ) * 255 ), Math.round( hue2rgb( p, q, h - ( 1 / 3 ) ) * 255 ), a ]; }; each( spaces, function( spaceName, space ) { var props = space.props, cache = space.cache, to = space.to, from = space.from; // makes rgba() and hsla() color.fn[ spaceName ] = function( value ) { // generate a cache for this space if it doesn't exist if ( to && !this[ cache ] ) { this[ cache ] = to( this._rgba ); } if ( value === undefined ) { return this[ cache ].slice(); } var ret, type = jQuery.type( value ), arr = ( type === "array" || type === "object" ) ? value : arguments, local = this[ cache ].slice(); each( props, function( key, prop ) { var val = arr[ type === "object" ? key : prop.idx ]; if ( val == null ) { val = local[ prop.idx ]; } local[ prop.idx ] = clamp( val, prop ); }); if ( from ) { ret = color( from( local ) ); ret[ cache ] = local; return ret; } else { return color( local ); } }; // makes red() green() blue() alpha() hue() saturation() lightness() each( props, function( key, prop ) { // alpha is included in more than one space if ( color.fn[ key ] ) { return; } color.fn[ key ] = function( value ) { var vtype = jQuery.type( value ), fn = ( key === "alpha" ? ( this._hsla ? "hsla" : "rgba" ) : spaceName ), local = this[ fn ](), cur = local[ prop.idx ], match; if ( vtype === "undefined" ) { return cur; } if ( vtype === "function" ) { value = value.call( this, cur ); vtype = jQuery.type( value ); } if ( value == null && prop.empty ) { return this; } if ( vtype === "string" ) { match = rplusequals.exec( value ); if ( match ) { value = cur + parseFloat( match[ 2 ] ) * ( match[ 1 ] === "+" ? 1 : -1 ); } } local[ prop.idx ] = value; return this[ fn ]( local ); }; }); }); // add cssHook and .fx.step function for each named hook. // accept a space separated string of properties color.hook = function( hook ) { var hooks = hook.split( " " ); each( hooks, function( i, hook ) { jQuery.cssHooks[ hook ] = { set: function( elem, value ) { var parsed, curElem, backgroundColor = ""; if ( value !== "transparent" && ( jQuery.type( value ) !== "string" || ( parsed = stringParse( value ) ) ) ) { value = color( parsed || value ); if ( !support.rgba && value._rgba[ 3 ] !== 1 ) { curElem = hook === "backgroundColor" ? elem.parentNode : elem; while ( (backgroundColor === "" || backgroundColor === "transparent") && curElem && curElem.style ) { try { backgroundColor = jQuery.css( curElem, "backgroundColor" ); curElem = curElem.parentNode; } catch ( e ) { } } value = value.blend( backgroundColor && backgroundColor !== "transparent" ? backgroundColor : "_default" ); } value = value.toRgbaString(); } try { elem.style[ hook ] = value; } catch( e ) { // wrapped to prevent IE from throwing errors on "invalid" values like 'auto' or 'inherit' } } }; jQuery.fx.step[ hook ] = function( fx ) { if ( !fx.colorInit ) { fx.start = color( fx.elem, hook ); fx.end = color( fx.end ); fx.colorInit = true; } jQuery.cssHooks[ hook ].set( fx.elem, fx.start.transition( fx.end, fx.pos ) ); }; }); }; color.hook( stepHooks ); jQuery.cssHooks.borderColor = { expand: function( value ) { var expanded = {}; each( [ "Top", "Right", "Bottom", "Left" ], function( i, part ) { expanded[ "border" + part + "Color" ] = value; }); return expanded; } }; // Basic color names only. // Usage of any of the other color names requires adding yourself or including // jquery.color.svg-names.js. colors = jQuery.Color.names = { // 4.1. Basic color keywords aqua: "#00ffff", black: "#000000", blue: "#0000ff", fuchsia: "#ff00ff", gray: "#808080", green: "#008000", lime: "#00ff00", maroon: "#800000", navy: "#000080", olive: "#808000", purple: "#800080", red: "#ff0000", silver: "#c0c0c0", teal: "#008080", white: "#ffffff", yellow: "#ffff00", // 4.2.3. "transparent" color keyword transparent: [ null, null, null, 0 ], _default: "#ffffff" }; })( jQuery ); /******************************************************************************/ /****************************** CLASS ANIMATIONS ******************************/ /******************************************************************************/ (function() { var classAnimationActions = [ "add", "remove", "toggle" ], shorthandStyles = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; $.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle" ], function( _, prop ) { $.fx.step[ prop ] = function( fx ) { if ( fx.end !== "none" && !fx.setAttr || fx.pos === 1 && !fx.setAttr ) { jQuery.style( fx.elem, prop, fx.end ); fx.setAttr = true; } }; }); function getElementStyles( elem ) { var key, len, style = elem.ownerDocument.defaultView ? elem.ownerDocument.defaultView.getComputedStyle( elem, null ) : elem.currentStyle, styles = {}; if ( style && style.length && style[ 0 ] && style[ style[ 0 ] ] ) { len = style.length; while ( len-- ) { key = style[ len ]; if ( typeof style[ key ] === "string" ) { styles[ $.camelCase( key ) ] = style[ key ]; } } // support: Opera, IE <9 } else { for ( key in style ) { if ( typeof style[ key ] === "string" ) { styles[ key ] = style[ key ]; } } } return styles; } function styleDifference( oldStyle, newStyle ) { var diff = {}, name, value; for ( name in newStyle ) { value = newStyle[ name ]; if ( oldStyle[ name ] !== value ) { if ( !shorthandStyles[ name ] ) { if ( $.fx.step[ name ] || !isNaN( parseFloat( value ) ) ) { diff[ name ] = value; } } } } return diff; } // support: jQuery <1.8 if ( !$.fn.addBack ) { $.fn.addBack = function( selector ) { return this.add( selector == null ? this.prevObject : this.prevObject.filter( selector ) ); }; } $.effects.animateClass = function( value, duration, easing, callback ) { var o = $.speed( duration, easing, callback ); return this.queue( function() { var animated = $( this ), baseClass = animated.attr( "class" ) || "", applyClassChange, allAnimations = o.children ? animated.find( "*" ).addBack() : animated; // map the animated objects to store the original styles. allAnimations = allAnimations.map(function() { var el = $( this ); return { el: el, start: getElementStyles( this ) }; }); // apply class change applyClassChange = function() { $.each( classAnimationActions, function(i, action) { if ( value[ action ] ) { animated[ action + "Class" ]( value[ action ] ); } }); }; applyClassChange(); // map all animated objects again - calculate new styles and diff allAnimations = allAnimations.map(function() { this.end = getElementStyles( this.el[ 0 ] ); this.diff = styleDifference( this.start, this.end ); return this; }); // apply original class animated.attr( "class", baseClass ); // map all animated objects again - this time collecting a promise allAnimations = allAnimations.map(function() { var styleInfo = this, dfd = $.Deferred(), opts = $.extend({}, o, { queue: false, complete: function() { dfd.resolve( styleInfo ); } }); this.el.animate( this.diff, opts ); return dfd.promise(); }); // once all animations have completed: $.when.apply( $, allAnimations.get() ).done(function() { // set the final class applyClassChange(); // for each animated element, // clear all css properties that were animated $.each( arguments, function() { var el = this.el; $.each( this.diff, function(key) { el.css( key, "" ); }); }); // this is guarnteed to be there if you use jQuery.speed() // it also handles dequeuing the next anim... o.complete.call( animated[ 0 ] ); }); }); }; $.fn.extend({ _addClass: $.fn.addClass, addClass: function( classNames, speed, easing, callback ) { return speed ? $.effects.animateClass.call( this, { add: classNames }, speed, easing, callback ) : this._addClass( classNames ); }, _removeClass: $.fn.removeClass, removeClass: function( classNames, speed, easing, callback ) { return arguments.length > 1 ? $.effects.animateClass.call( this, { remove: classNames }, speed, easing, callback ) : this._removeClass.apply( this, arguments ); }, _toggleClass: $.fn.toggleClass, toggleClass: function( classNames, force, speed, easing, callback ) { if ( typeof force === "boolean" || force === undefined ) { if ( !speed ) { // without speed parameter return this._toggleClass( classNames, force ); } else { return $.effects.animateClass.call( this, (force ? { add: classNames } : { remove: classNames }), speed, easing, callback ); } } else { // without force parameter return $.effects.animateClass.call( this, { toggle: classNames }, force, speed, easing ); } }, switchClass: function( remove, add, speed, easing, callback) { return $.effects.animateClass.call( this, { add: add, remove: remove }, speed, easing, callback ); } }); })(); /******************************************************************************/ /*********************************** EFFECTS **********************************/ /******************************************************************************/ (function() { $.extend( $.effects, { version: "1.10.1", // Saves a set of properties in a data storage save: function( element, set ) { for( var i=0; i < set.length; i++ ) { if ( set[ i ] !== null ) { element.data( dataSpace + set[ i ], element[ 0 ].style[ set[ i ] ] ); } } }, // Restores a set of previously saved properties from a data storage restore: function( element, set ) { var val, i; for( i=0; i < set.length; i++ ) { if ( set[ i ] !== null ) { val = element.data( dataSpace + set[ i ] ); // support: jQuery 1.6.2 // http://bugs.jquery.com/ticket/9917 // jQuery 1.6.2 incorrectly returns undefined for any falsy value. // We can't differentiate between "" and 0 here, so we just assume // empty string since it's likely to be a more common value... if ( val === undefined ) { val = ""; } element.css( set[ i ], val ); } } }, setMode: function( el, mode ) { if (mode === "toggle") { mode = el.is( ":hidden" ) ? "show" : "hide"; } return mode; }, // Translates a [top,left] array into a baseline value // this should be a little more flexible in the future to handle a string & hash getBaseline: function( origin, original ) { var y, x; switch ( origin[ 0 ] ) { case "top": y = 0; break; case "middle": y = 0.5; break; case "bottom": y = 1; break; default: y = origin[ 0 ] / original.height; } switch ( origin[ 1 ] ) { case "left": x = 0; break; case "center": x = 0.5; break; case "right": x = 1; break; default: x = origin[ 1 ] / original.width; } return { x: x, y: y }; }, // Wraps the element around a wrapper that copies position properties createWrapper: function( element ) { // if the element is already wrapped, return it if ( element.parent().is( ".ui-effects-wrapper" )) { return element.parent(); } // wrap the element var props = { width: element.outerWidth(true), height: element.outerHeight(true), "float": element.css( "float" ) }, wrapper = $( "

    " ) .addClass( "ui-effects-wrapper" ) .css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }), // Store the size in case width/height are defined in % - Fixes #5245 size = { width: element.width(), height: element.height() }, active = document.activeElement; // support: Firefox // Firefox incorrectly exposes anonymous content // https://bugzilla.mozilla.org/show_bug.cgi?id=561664 try { active.id; } catch( e ) { active = document.body; } element.wrap( wrapper ); // Fixes #7595 - Elements lose focus when wrapped. if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { $( active ).focus(); } wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually lose the reference to the wrapped element // transfer positioning properties to the wrapper if ( element.css( "position" ) === "static" ) { wrapper.css({ position: "relative" }); element.css({ position: "relative" }); } else { $.extend( props, { position: element.css( "position" ), zIndex: element.css( "z-index" ) }); $.each([ "top", "left", "bottom", "right" ], function(i, pos) { props[ pos ] = element.css( pos ); if ( isNaN( parseInt( props[ pos ], 10 ) ) ) { props[ pos ] = "auto"; } }); element.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" }); } element.css(size); return wrapper.css( props ).show(); }, removeWrapper: function( element ) { var active = document.activeElement; if ( element.parent().is( ".ui-effects-wrapper" ) ) { element.parent().replaceWith( element ); // Fixes #7595 - Elements lose focus when wrapped. if ( element[ 0 ] === active || $.contains( element[ 0 ], active ) ) { $( active ).focus(); } } return element; }, setTransition: function( element, list, factor, value ) { value = value || {}; $.each( list, function( i, x ) { var unit = element.cssUnit( x ); if ( unit[ 0 ] > 0 ) { value[ x ] = unit[ 0 ] * factor + unit[ 1 ]; } }); return value; } }); // return an effect options object for the given parameters: function _normalizeArguments( effect, options, speed, callback ) { // allow passing all options as the first parameter if ( $.isPlainObject( effect ) ) { options = effect; effect = effect.effect; } // convert to an object effect = { effect: effect }; // catch (effect, null, ...) if ( options == null ) { options = {}; } // catch (effect, callback) if ( $.isFunction( options ) ) { callback = options; speed = null; options = {}; } // catch (effect, speed, ?) if ( typeof options === "number" || $.fx.speeds[ options ] ) { callback = speed; speed = options; options = {}; } // catch (effect, options, callback) if ( $.isFunction( speed ) ) { callback = speed; speed = null; } // add options to effect if ( options ) { $.extend( effect, options ); } speed = speed || options.duration; effect.duration = $.fx.off ? 0 : typeof speed === "number" ? speed : speed in $.fx.speeds ? $.fx.speeds[ speed ] : $.fx.speeds._default; effect.complete = callback || options.complete; return effect; } function standardSpeed( speed ) { // valid standard speeds if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { return true; } // invalid strings - treat as "normal" speed return typeof speed === "string" && !$.effects.effect[ speed ]; } $.fn.extend({ effect: function( /* effect, options, speed, callback */ ) { var args = _normalizeArguments.apply( this, arguments ), mode = args.mode, queue = args.queue, effectMethod = $.effects.effect[ args.effect ]; if ( $.fx.off || !effectMethod ) { // delegate to the original method (e.g., .show()) if possible if ( mode ) { return this[ mode ]( args.duration, args.complete ); } else { return this.each( function() { if ( args.complete ) { args.complete.call( this ); } }); } } function run( next ) { var elem = $( this ), complete = args.complete, mode = args.mode; function done() { if ( $.isFunction( complete ) ) { complete.call( elem[0] ); } if ( $.isFunction( next ) ) { next(); } } // if the element is hiddden and mode is hide, // or element is visible and mode is show if ( elem.is( ":hidden" ) ? mode === "hide" : mode === "show" ) { done(); } else { effectMethod.call( elem[0], args, done ); } } return queue === false ? this.each( run ) : this.queue( queue || "fx", run ); }, _show: $.fn.show, show: function( speed ) { if ( standardSpeed( speed ) ) { return this._show.apply( this, arguments ); } else { var args = _normalizeArguments.apply( this, arguments ); args.mode = "show"; return this.effect.call( this, args ); } }, _hide: $.fn.hide, hide: function( speed ) { if ( standardSpeed( speed ) ) { return this._hide.apply( this, arguments ); } else { var args = _normalizeArguments.apply( this, arguments ); args.mode = "hide"; return this.effect.call( this, args ); } }, // jQuery core overloads toggle and creates _toggle __toggle: $.fn.toggle, toggle: function( speed ) { if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { return this.__toggle.apply( this, arguments ); } else { var args = _normalizeArguments.apply( this, arguments ); args.mode = "toggle"; return this.effect.call( this, args ); } }, // helper functions cssUnit: function(key) { var style = this.css( key ), val = []; $.each( [ "em", "px", "%", "pt" ], function( i, unit ) { if ( style.indexOf( unit ) > 0 ) { val = [ parseFloat( style ), unit ]; } }); return val; } }); })(); /******************************************************************************/ /*********************************** EASING ***********************************/ /******************************************************************************/ (function() { // based on easing equations from Robert Penner (http://www.robertpenner.com/easing) var baseEasings = {}; $.each( [ "Quad", "Cubic", "Quart", "Quint", "Expo" ], function( i, name ) { baseEasings[ name ] = function( p ) { return Math.pow( p, i + 2 ); }; }); $.extend( baseEasings, { Sine: function ( p ) { return 1 - Math.cos( p * Math.PI / 2 ); }, Circ: function ( p ) { return 1 - Math.sqrt( 1 - p * p ); }, Elastic: function( p ) { return p === 0 || p === 1 ? p : -Math.pow( 2, 8 * (p - 1) ) * Math.sin( ( (p - 1) * 80 - 7.5 ) * Math.PI / 15 ); }, Back: function( p ) { return p * p * ( 3 * p - 2 ); }, Bounce: function ( p ) { var pow2, bounce = 4; while ( p < ( ( pow2 = Math.pow( 2, --bounce ) ) - 1 ) / 11 ) {} return 1 / Math.pow( 4, 3 - bounce ) - 7.5625 * Math.pow( ( pow2 * 3 - 2 ) / 22 - p, 2 ); } }); $.each( baseEasings, function( name, easeIn ) { $.easing[ "easeIn" + name ] = easeIn; $.easing[ "easeOut" + name ] = function( p ) { return 1 - easeIn( 1 - p ); }; $.easing[ "easeInOut" + name ] = function( p ) { return p < 0.5 ? easeIn( p * 2 ) / 2 : 1 - easeIn( p * -2 + 2 ) / 2; }; }); })(); })(jQuery)); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-explode.js0000644000175000017500000000454212107500066024027 0ustar metalmetal/*! * jQuery UI Effects Explode 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/explode-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.explode = function( o, done ) { var rows = o.pieces ? Math.round( Math.sqrt( o.pieces ) ) : 3, cells = rows, el = $( this ), mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", // show and then visibility:hidden the element before calculating offset offset = el.show().css( "visibility", "hidden" ).offset(), // width and height of a piece width = Math.ceil( el.outerWidth() / cells ), height = Math.ceil( el.outerHeight() / rows ), pieces = [], // loop i, j, left, top, mx, my; // children animate complete: function childComplete() { pieces.push( this ); if ( pieces.length === rows * cells ) { animComplete(); } } // clone the element for each row and cell. for( i = 0; i < rows ; i++ ) { // ===> top = offset.top + i * height; my = i - ( rows - 1 ) / 2 ; for( j = 0; j < cells ; j++ ) { // ||| left = offset.left + j * width; mx = j - ( cells - 1 ) / 2 ; // Create a clone of the now hidden main element that will be absolute positioned // within a wrapper div off the -left and -top equal to size of our pieces el .clone() .appendTo( "body" ) .wrap( "
    " ) .css({ position: "absolute", visibility: "visible", left: -j * width, top: -i * height }) // select the wrapper - make it overflow: hidden and absolute positioned based on // where the original was located +left and +top equal to the size of pieces .parent() .addClass( "ui-effects-explode" ) .css({ position: "absolute", overflow: "hidden", width: width, height: height, left: left + ( show ? mx * width : 0 ), top: top + ( show ? my * height : 0 ), opacity: show ? 0 : 1 }).animate({ left: left + ( show ? 0 : mx * width ), top: top + ( show ? 0 : my * height ), opacity: show ? 1 : 0 }, o.duration || 500, o.easing, childComplete ); } } function animComplete() { el.css({ visibility: "visible" }); $( pieces ).remove(); if ( !show ) { el.hide(); } done(); } }; })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-transfer.js0000644000175000017500000000232512107500066024210 0ustar metalmetal/*! * jQuery UI Effects Transfer 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/transfer-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.transfer = function( o, done ) { var elem = $( this ), target = $( o.to ), targetFixed = target.css( "position" ) === "fixed", body = $("body"), fixTop = targetFixed ? body.scrollTop() : 0, fixLeft = targetFixed ? body.scrollLeft() : 0, endPosition = target.offset(), animation = { top: endPosition.top - fixTop , left: endPosition.left - fixLeft , height: target.innerHeight(), width: target.innerWidth() }, startPosition = elem.offset(), transfer = $( "
    " ) .appendTo( document.body ) .addClass( o.className ) .css({ top: startPosition.top - fixTop , left: startPosition.left - fixLeft , height: elem.innerHeight(), width: elem.innerWidth(), position: targetFixed ? "fixed" : "absolute" }) .animate( animation, o.duration, o.easing, function() { transfer.remove(); done(); }); }; })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.draggable.js0000644000175000017500000007503512107500066023052 0ustar metalmetal/*! * jQuery UI Draggable 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/draggable/ * * Depends: * jquery.ui.core.js * jquery.ui.mouse.js * jquery.ui.widget.js */ (function( $, undefined ) { $.widget("ui.draggable", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "drag", options: { addClasses: true, appendTo: "parent", axis: false, connectToSortable: false, containment: false, cursor: "auto", cursorAt: false, grid: false, handle: false, helper: "original", iframeFix: false, opacity: false, refreshPositions: false, revert: false, revertDuration: 500, scope: "default", scroll: true, scrollSensitivity: 20, scrollSpeed: 20, snap: false, snapMode: "both", snapTolerance: 20, stack: false, zIndex: false, // callbacks drag: null, start: null, stop: null }, _create: function() { if (this.options.helper === "original" && !(/^(?:r|a|f)/).test(this.element.css("position"))) { this.element[0].style.position = "relative"; } if (this.options.addClasses){ this.element.addClass("ui-draggable"); } if (this.options.disabled){ this.element.addClass("ui-draggable-disabled"); } this._mouseInit(); }, _destroy: function() { this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ); this._mouseDestroy(); }, _mouseCapture: function(event) { var o = this.options; // among others, prevent a drag on a resizable-handle if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { return false; } //Quit if we're not on a valid handle this.handle = this._getHandle(event); if (!this.handle) { return false; } $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { $("
    ") .css({ width: this.offsetWidth+"px", height: this.offsetHeight+"px", position: "absolute", opacity: "0.001", zIndex: 1000 }) .css($(this).offset()) .appendTo("body"); }); return true; }, _mouseStart: function(event) { var o = this.options; //Create and append the visible helper this.helper = this._createHelper(event); this.helper.addClass("ui-draggable-dragging"); //Cache the helper size this._cacheHelperProportions(); //If ddmanager is used for droppables, set the global draggable if($.ui.ddmanager) { $.ui.ddmanager.current = this; } /* * - Position generation - * This block generates everything position related - it's the core of draggables. */ //Cache the margins of the original element this._cacheMargins(); //Store the helper's css position this.cssPosition = this.helper.css("position"); this.scrollParent = this.helper.scrollParent(); //The element's absolute position on the page minus margins this.offset = this.positionAbs = this.element.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; $.extend(this.offset, { click: { //Where the click happened, relative to the element left: event.pageX - this.offset.left, top: event.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper }); //Generate the original position this.originalPosition = this.position = this._generatePosition(event); this.originalPageX = event.pageX; this.originalPageY = event.pageY; //Adjust the mouse offset relative to the helper if "cursorAt" is supplied (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); //Set a containment if given in the options if(o.containment) { this._setContainment(); } //Trigger event + callbacks if(this._trigger("start", event) === false) { this._clear(); return false; } //Recache the helper size this._cacheHelperProportions(); //Prepare the droppable offsets if ($.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(this, event); } this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position //If the ddmanager is used for droppables, inform the manager that dragging has started (see #5003) if ( $.ui.ddmanager ) { $.ui.ddmanager.dragStart(this, event); } return true; }, _mouseDrag: function(event, noPropagation) { //Compute the helpers position this.position = this._generatePosition(event); this.positionAbs = this._convertPositionTo("absolute"); //Call plugins and callbacks and use the resulting position if something is returned if (!noPropagation) { var ui = this._uiHash(); if(this._trigger("drag", event, ui) === false) { this._mouseUp({}); return false; } this.position = ui.position; } if(!this.options.axis || this.options.axis !== "y") { this.helper[0].style.left = this.position.left+"px"; } if(!this.options.axis || this.options.axis !== "x") { this.helper[0].style.top = this.position.top+"px"; } if($.ui.ddmanager) { $.ui.ddmanager.drag(this, event); } return false; }, _mouseStop: function(event) { //If we are using droppables, inform the manager about the drop var element, that = this, elementInDom = false, dropped = false; if ($.ui.ddmanager && !this.options.dropBehaviour) { dropped = $.ui.ddmanager.drop(this, event); } //if a drop comes from outside (a sortable) if(this.dropped) { dropped = this.dropped; this.dropped = false; } //if the original element is no longer in the DOM don't bother to continue (see #8269) element = this.element[0]; while ( element && (element = element.parentNode) ) { if (element === document ) { elementInDom = true; } } if ( !elementInDom && this.options.helper === "original" ) { return false; } if((this.options.revert === "invalid" && !dropped) || (this.options.revert === "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { if(that._trigger("stop", event) !== false) { that._clear(); } }); } else { if(this._trigger("stop", event) !== false) { this._clear(); } } return false; }, _mouseUp: function(event) { //Remove frame helpers $("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //If the ddmanager is used for droppables, inform the manager that dragging has stopped (see #5003) if( $.ui.ddmanager ) { $.ui.ddmanager.dragStop(this, event); } return $.ui.mouse.prototype._mouseUp.call(this, event); }, cancel: function() { if(this.helper.is(".ui-draggable-dragging")) { this._mouseUp({}); } else { this._clear(); } return this; }, _getHandle: function(event) { var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; $(this.options.handle, this.element) .find("*") .addBack() .each(function() { if(this === event.target) { handle = true; } }); return handle; }, _createHelper: function(event) { var o = this.options, helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper === "clone" ? this.element.clone().removeAttr("id") : this.element); if(!helper.parents("body").length) { helper.appendTo((o.appendTo === "parent" ? this.element[0].parentNode : o.appendTo)); } if(helper[0] !== this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) { helper.css("position", "absolute"); } return helper; }, _adjustOffsetFromHelper: function(obj) { if (typeof obj === "string") { obj = obj.split(" "); } if ($.isArray(obj)) { obj = {left: +obj[0], top: +obj[1] || 0}; } if ("left" in obj) { this.offset.click.left = obj.left + this.margins.left; } if ("right" in obj) { this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; } if ("top" in obj) { this.offset.click.top = obj.top + this.margins.top; } if ("bottom" in obj) { this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; } }, _getParentOffset: function() { //Get the offsetParent and cache its position this.offsetParent = this.helper.offsetParent(); var po = this.offsetParent.offset(); // This is a special case where we need to modify a offset calculated on start, since the following happened: // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag if(this.cssPosition === "absolute" && this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) { po.left += this.scrollParent.scrollLeft(); po.top += this.scrollParent.scrollTop(); } //This needs to be actually done for all browsers, since pageX/pageY includes this information //Ugly IE fix if((this.offsetParent[0] === document.body) || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() === "html" && $.ui.ie)) { po = { top: 0, left: 0 }; } return { top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) }; }, _getRelativeOffset: function() { if(this.cssPosition === "relative") { var p = this.element.position(); return { top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() }; } else { return { top: 0, left: 0 }; } }, _cacheMargins: function() { this.margins = { left: (parseInt(this.element.css("marginLeft"),10) || 0), top: (parseInt(this.element.css("marginTop"),10) || 0), right: (parseInt(this.element.css("marginRight"),10) || 0), bottom: (parseInt(this.element.css("marginBottom"),10) || 0) }; }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight() }; }, _setContainment: function() { var over, c, ce, o = this.options; if(o.containment === "parent") { o.containment = this.helper[0].parentNode; } if(o.containment === "document" || o.containment === "window") { this.containment = [ o.containment === "document" ? 0 : $(window).scrollLeft() - this.offset.relative.left - this.offset.parent.left, o.containment === "document" ? 0 : $(window).scrollTop() - this.offset.relative.top - this.offset.parent.top, (o.containment === "document" ? 0 : $(window).scrollLeft()) + $(o.containment === "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (o.containment === "document" ? 0 : $(window).scrollTop()) + ($(o.containment === "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top ]; } if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor !== Array) { c = $(o.containment); ce = c[0]; if(!ce) { return; } over = ($(ce).css("overflow") !== "hidden"); this.containment = [ (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0), (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0), (over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left - this.margins.right, (over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top - this.margins.bottom ]; this.relative_container = c; } else if(o.containment.constructor === Array) { this.containment = o.containment; } }, _convertPositionTo: function(d, pos) { if(!pos) { pos = this.position; } var mod = d === "absolute" ? 1 : -1, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); return { top: ( pos.top + // The absolute mouse position this.offset.relative.top * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) ), left: ( pos.left + // The absolute mouse position this.offset.relative.left * mod + // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left * mod - // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) ) }; }, _generatePosition: function(event) { var containment, co, top, left, o = this.options, scroll = this.cssPosition === "absolute" && !(this.scrollParent[0] !== document && $.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName), pageX = event.pageX, pageY = event.pageY; /* * - Position constraining - * Constrain the position to a mix of grid, containment. */ if(this.originalPosition) { //If we are not dragging yet, we won't check for options if(this.containment) { if (this.relative_container){ co = this.relative_container.offset(); containment = [ this.containment[0] + co.left, this.containment[1] + co.top, this.containment[2] + co.left, this.containment[3] + co.top ]; } else { containment = this.containment; } if(event.pageX - this.offset.click.left < containment[0]) { pageX = containment[0] + this.offset.click.left; } if(event.pageY - this.offset.click.top < containment[1]) { pageY = containment[1] + this.offset.click.top; } if(event.pageX - this.offset.click.left > containment[2]) { pageX = containment[2] + this.offset.click.left; } if(event.pageY - this.offset.click.top > containment[3]) { pageY = containment[3] + this.offset.click.top; } } if(o.grid) { //Check for grid elements set to 0 to prevent divide by 0 error causing invalid argument errors in IE (see ticket #6950) top = o.grid[1] ? this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1] : this.originalPageY; pageY = containment ? ((top - this.offset.click.top >= containment[1] || top - this.offset.click.top > containment[3]) ? top : ((top - this.offset.click.top >= containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; left = o.grid[0] ? this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0] : this.originalPageX; pageX = containment ? ((left - this.offset.click.left >= containment[0] || left - this.offset.click.left > containment[2]) ? left : ((left - this.offset.click.left >= containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; } } return { top: ( pageY - // The absolute mouse position this.offset.click.top - // Click offset (relative to the element) this.offset.relative.top - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.top + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) ), left: ( pageX - // The absolute mouse position this.offset.click.left - // Click offset (relative to the element) this.offset.relative.left - // Only for relative positioned nodes: Relative offset from element to offset parent this.offset.parent.left + // The offsetParent's offset without borders (offset + border) ( ( this.cssPosition === "fixed" ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) ) }; }, _clear: function() { this.helper.removeClass("ui-draggable-dragging"); if(this.helper[0] !== this.element[0] && !this.cancelHelperRemoval) { this.helper.remove(); } this.helper = null; this.cancelHelperRemoval = false; }, // From now on bulk stuff - mainly helpers _trigger: function(type, event, ui) { ui = ui || this._uiHash(); $.ui.plugin.call(this, type, [event, ui]); //The absolute position has to be recalculated after plugins if(type === "drag") { this.positionAbs = this._convertPositionTo("absolute"); } return $.Widget.prototype._trigger.call(this, type, event, ui); }, plugins: {}, _uiHash: function() { return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs }; } }); $.ui.plugin.add("draggable", "connectToSortable", { start: function(event, ui) { var inst = $(this).data("ui-draggable"), o = inst.options, uiSortable = $.extend({}, ui, { item: inst.element }); inst.sortables = []; $(o.connectToSortable).each(function() { var sortable = $.data(this, "ui-sortable"); if (sortable && !sortable.options.disabled) { inst.sortables.push({ instance: sortable, shouldRevert: sortable.options.revert }); sortable.refreshPositions(); // Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page). sortable._trigger("activate", event, uiSortable); } }); }, stop: function(event, ui) { //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper var inst = $(this).data("ui-draggable"), uiSortable = $.extend({}, ui, { item: inst.element }); $.each(inst.sortables, function() { if(this.instance.isOver) { this.instance.isOver = 0; inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: "valid/invalid" if(this.shouldRevert) { this.instance.options.revert = true; } //Trigger the stop of the sortable this.instance._mouseStop(event); this.instance.options.helper = this.instance.options._helper; //If the helper has been the original item, restore properties in the sortable if(inst.options.helper === "original") { this.instance.currentItem.css({ top: "auto", left: "auto" }); } } else { this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance this.instance._trigger("deactivate", event, uiSortable); } }); }, drag: function(event, ui) { var inst = $(this).data("ui-draggable"), that = this; $.each(inst.sortables, function() { var innermostIntersecting = false, thisSortable = this; //Copy over some variables to allow calling the sortable's native _intersectsWith this.instance.positionAbs = inst.positionAbs; this.instance.helperProportions = inst.helperProportions; this.instance.offset.click = inst.offset.click; if(this.instance._intersectsWith(this.instance.containerCache)) { innermostIntersecting = true; $.each(inst.sortables, function () { this.instance.positionAbs = inst.positionAbs; this.instance.helperProportions = inst.helperProportions; this.instance.offset.click = inst.offset.click; if (this !== thisSortable && this.instance._intersectsWith(this.instance.containerCache) && $.contains(thisSortable.instance.element[0], this.instance.element[0]) ) { innermostIntersecting = false; } return innermostIntersecting; }); } if(innermostIntersecting) { //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once if(!this.instance.isOver) { this.instance.isOver = 1; //Now we fake the start of dragging for the sortable instance, //by cloning the list group item, appending it to the sortable and using it as inst.currentItem //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) this.instance.currentItem = $(that).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item", true); this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it this.instance.options.helper = function() { return ui.helper[0]; }; event.target = this.instance.currentItem[0]; this.instance._mouseCapture(event, true); this.instance._mouseStart(event, true, true); //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes this.instance.offset.click.top = inst.offset.click.top; this.instance.offset.click.left = inst.offset.click.left; this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; inst._trigger("toSortable", event); inst.dropped = this.instance.element; //draggable revert needs that //hack so receive/update callbacks work (mostly) inst.currentItem = inst.element; this.instance.fromOutside = inst; } //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable if(this.instance.currentItem) { this.instance._mouseDrag(event); } } else { //If it doesn't intersect with the sortable, and it intersected before, //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval if(this.instance.isOver) { this.instance.isOver = 0; this.instance.cancelHelperRemoval = true; //Prevent reverting on this forced stop this.instance.options.revert = false; // The out event needs to be triggered independently this.instance._trigger("out", event, this.instance._uiHash(this.instance)); this.instance._mouseStop(event, true); this.instance.options.helper = this.instance.options._helper; //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size this.instance.currentItem.remove(); if(this.instance.placeholder) { this.instance.placeholder.remove(); } inst._trigger("fromSortable", event); inst.dropped = false; //draggable revert needs that } } }); } }); $.ui.plugin.add("draggable", "cursor", { start: function() { var t = $("body"), o = $(this).data("ui-draggable").options; if (t.css("cursor")) { o._cursor = t.css("cursor"); } t.css("cursor", o.cursor); }, stop: function() { var o = $(this).data("ui-draggable").options; if (o._cursor) { $("body").css("cursor", o._cursor); } } }); $.ui.plugin.add("draggable", "opacity", { start: function(event, ui) { var t = $(ui.helper), o = $(this).data("ui-draggable").options; if(t.css("opacity")) { o._opacity = t.css("opacity"); } t.css("opacity", o.opacity); }, stop: function(event, ui) { var o = $(this).data("ui-draggable").options; if(o._opacity) { $(ui.helper).css("opacity", o._opacity); } } }); $.ui.plugin.add("draggable", "scroll", { start: function() { var i = $(this).data("ui-draggable"); if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") { i.overflowOffset = i.scrollParent.offset(); } }, drag: function( event ) { var i = $(this).data("ui-draggable"), o = i.options, scrolled = false; if(i.scrollParent[0] !== document && i.scrollParent[0].tagName !== "HTML") { if(!o.axis || o.axis !== "x") { if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) { i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; } else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) { i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; } } if(!o.axis || o.axis !== "y") { if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) { i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; } else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) { i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; } } } else { if(!o.axis || o.axis !== "x") { if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); } else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) { scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); } } if(!o.axis || o.axis !== "y") { if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); } else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) { scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); } } } if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) { $.ui.ddmanager.prepareOffsets(i, event); } } }); $.ui.plugin.add("draggable", "snap", { start: function() { var i = $(this).data("ui-draggable"), o = i.options; i.snapElements = []; $(o.snap.constructor !== String ? ( o.snap.items || ":data(ui-draggable)" ) : o.snap).each(function() { var $t = $(this), $o = $t.offset(); if(this !== i.element[0]) { i.snapElements.push({ item: this, width: $t.outerWidth(), height: $t.outerHeight(), top: $o.top, left: $o.left }); } }); }, drag: function(event, ui) { var ts, bs, ls, rs, l, r, t, b, i, first, inst = $(this).data("ui-draggable"), o = inst.options, d = o.snapTolerance, x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; for (i = inst.snapElements.length - 1; i >= 0; i--){ l = inst.snapElements[i].left; r = l + inst.snapElements[i].width; t = inst.snapElements[i].top; b = t + inst.snapElements[i].height; //Yes, I know, this is insane ;) if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) { if(inst.snapElements[i].snapping) { (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); } inst.snapElements[i].snapping = false; continue; } if(o.snapMode !== "inner") { ts = Math.abs(t - y2) <= d; bs = Math.abs(b - y1) <= d; ls = Math.abs(l - x2) <= d; rs = Math.abs(r - x1) <= d; if(ts) { ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; } if(bs) { ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; } if(ls) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; } if(rs) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; } } first = (ts || bs || ls || rs); if(o.snapMode !== "outer") { ts = Math.abs(t - y1) <= d; bs = Math.abs(b - y2) <= d; ls = Math.abs(l - x1) <= d; rs = Math.abs(r - x2) <= d; if(ts) { ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; } if(bs) { ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; } if(ls) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; } if(rs) { ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; } } if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) { (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); } inst.snapElements[i].snapping = (ts || bs || ls || rs || first); } } }); $.ui.plugin.add("draggable", "stack", { start: function() { var min, o = this.data("ui-draggable").options, group = $.makeArray($(o.stack)).sort(function(a,b) { return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); }); if (!group.length) { return; } min = parseInt($(group[0]).css("zIndex"), 10) || 0; $(group).each(function(i) { $(this).css("zIndex", min + i); }); this.css("zIndex", (min + group.length)); } }); $.ui.plugin.add("draggable", "zIndex", { start: function(event, ui) { var t = $(ui.helper), o = $(this).data("ui-draggable").options; if(t.css("zIndex")) { o._zIndex = t.css("zIndex"); } t.css("zIndex", o.zIndex); }, stop: function(event, ui) { var o = $(this).data("ui-draggable").options; if(o._zIndex) { $(ui.helper).css("zIndex", o._zIndex); } } }); })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.spinner.js0000644000175000017500000003011012107500066022601 0ustar metalmetal/*! * jQuery UI Spinner 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/spinner/ * * Depends: * jquery.ui.core.js * jquery.ui.widget.js * jquery.ui.button.js */ (function( $ ) { function modifier( fn ) { return function() { var previous = this.element.val(); fn.apply( this, arguments ); this._refresh(); if ( previous !== this.element.val() ) { this._trigger( "change" ); } }; } $.widget( "ui.spinner", { version: "1.10.1", defaultElement: "", widgetEventPrefix: "spin", options: { culture: null, icons: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n" }, incremental: true, max: null, min: null, numberFormat: null, page: 10, step: 1, change: null, spin: null, start: null, stop: null }, _create: function() { // handle string values that need to be parsed this._setOption( "max", this.options.max ); this._setOption( "min", this.options.min ); this._setOption( "step", this.options.step ); // format the value, but don't constrain this._value( this.element.val(), true ); this._draw(); this._on( this._events ); this._refresh(); // turning off autocomplete prevents the browser from remembering the // value when navigating through history, so we re-enable autocomplete // if the page is unloaded before the widget is destroyed. #7790 this._on( this.window, { beforeunload: function() { this.element.removeAttr( "autocomplete" ); } }); }, _getCreateOptions: function() { var options = {}, element = this.element; $.each( [ "min", "max", "step" ], function( i, option ) { var value = element.attr( option ); if ( value !== undefined && value.length ) { options[ option ] = value; } }); return options; }, _events: { keydown: function( event ) { if ( this._start( event ) && this._keydown( event ) ) { event.preventDefault(); } }, keyup: "_stop", focus: function() { this.previous = this.element.val(); }, blur: function( event ) { if ( this.cancelBlur ) { delete this.cancelBlur; return; } this._refresh(); if ( this.previous !== this.element.val() ) { this._trigger( "change", event ); } }, mousewheel: function( event, delta ) { if ( !delta ) { return; } if ( !this.spinning && !this._start( event ) ) { return false; } this._spin( (delta > 0 ? 1 : -1) * this.options.step, event ); clearTimeout( this.mousewheelTimer ); this.mousewheelTimer = this._delay(function() { if ( this.spinning ) { this._stop( event ); } }, 100 ); event.preventDefault(); }, "mousedown .ui-spinner-button": function( event ) { var previous; // We never want the buttons to have focus; whenever the user is // interacting with the spinner, the focus should be on the input. // If the input is focused then this.previous is properly set from // when the input first received focus. If the input is not focused // then we need to set this.previous based on the value before spinning. previous = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(); function checkFocus() { var isActive = this.element[0] === this.document[0].activeElement; if ( !isActive ) { this.element.focus(); this.previous = previous; // support: IE // IE sets focus asynchronously, so we need to check if focus // moved off of the input because the user clicked on the button. this._delay(function() { this.previous = previous; }); } } // ensure focus is on (or stays on) the text field event.preventDefault(); checkFocus.call( this ); // support: IE // IE doesn't prevent moving focus even with event.preventDefault() // so we set a flag to know when we should ignore the blur event // and check (again) if focus moved off of the input. this.cancelBlur = true; this._delay(function() { delete this.cancelBlur; checkFocus.call( this ); }); if ( this._start( event ) === false ) { return; } this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); }, "mouseup .ui-spinner-button": "_stop", "mouseenter .ui-spinner-button": function( event ) { // button will add ui-state-active if mouse was down while mouseleave and kept down if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) { return; } if ( this._start( event ) === false ) { return false; } this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); }, // TODO: do we really want to consider this a stop? // shouldn't we just stop the repeater and wait until mouseup before // we trigger the stop event? "mouseleave .ui-spinner-button": "_stop" }, _draw: function() { var uiSpinner = this.uiSpinner = this.element .addClass( "ui-spinner-input" ) .attr( "autocomplete", "off" ) .wrap( this._uiSpinnerHtml() ) .parent() // add buttons .append( this._buttonHtml() ); this.element.attr( "role", "spinbutton" ); // button bindings this.buttons = uiSpinner.find( ".ui-spinner-button" ) .attr( "tabIndex", -1 ) .button() .removeClass( "ui-corner-all" ); // IE 6 doesn't understand height: 50% for the buttons // unless the wrapper has an explicit height if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) && uiSpinner.height() > 0 ) { uiSpinner.height( uiSpinner.height() ); } // disable spinner if element was already disabled if ( this.options.disabled ) { this.disable(); } }, _keydown: function( event ) { var options = this.options, keyCode = $.ui.keyCode; switch ( event.keyCode ) { case keyCode.UP: this._repeat( null, 1, event ); return true; case keyCode.DOWN: this._repeat( null, -1, event ); return true; case keyCode.PAGE_UP: this._repeat( null, options.page, event ); return true; case keyCode.PAGE_DOWN: this._repeat( null, -options.page, event ); return true; } return false; }, _uiSpinnerHtml: function() { return ""; }, _buttonHtml: function() { return "" + "" + "" + "" + "" + "" + ""; }, _start: function( event ) { if ( !this.spinning && this._trigger( "start", event ) === false ) { return false; } if ( !this.counter ) { this.counter = 1; } this.spinning = true; return true; }, _repeat: function( i, steps, event ) { i = i || 500; clearTimeout( this.timer ); this.timer = this._delay(function() { this._repeat( 40, steps, event ); }, i ); this._spin( steps * this.options.step, event ); }, _spin: function( step, event ) { var value = this.value() || 0; if ( !this.counter ) { this.counter = 1; } value = this._adjustValue( value + step * this._increment( this.counter ) ); if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) { this._value( value ); this.counter++; } }, _increment: function( i ) { var incremental = this.options.incremental; if ( incremental ) { return $.isFunction( incremental ) ? incremental( i ) : Math.floor( i*i*i/50000 - i*i/500 + 17*i/200 + 1 ); } return 1; }, _precision: function() { var precision = this._precisionOf( this.options.step ); if ( this.options.min !== null ) { precision = Math.max( precision, this._precisionOf( this.options.min ) ); } return precision; }, _precisionOf: function( num ) { var str = num.toString(), decimal = str.indexOf( "." ); return decimal === -1 ? 0 : str.length - decimal - 1; }, _adjustValue: function( value ) { var base, aboveMin, options = this.options; // make sure we're at a valid step // - find out where we are relative to the base (min or 0) base = options.min !== null ? options.min : 0; aboveMin = value - base; // - round to the nearest step aboveMin = Math.round(aboveMin / options.step) * options.step; // - rounding is based on 0, so adjust back to our base value = base + aboveMin; // fix precision from bad JS floating point math value = parseFloat( value.toFixed( this._precision() ) ); // clamp the value if ( options.max !== null && value > options.max) { return options.max; } if ( options.min !== null && value < options.min ) { return options.min; } return value; }, _stop: function( event ) { if ( !this.spinning ) { return; } clearTimeout( this.timer ); clearTimeout( this.mousewheelTimer ); this.counter = 0; this.spinning = false; this._trigger( "stop", event ); }, _setOption: function( key, value ) { if ( key === "culture" || key === "numberFormat" ) { var prevValue = this._parse( this.element.val() ); this.options[ key ] = value; this.element.val( this._format( prevValue ) ); return; } if ( key === "max" || key === "min" || key === "step" ) { if ( typeof value === "string" ) { value = this._parse( value ); } } if ( key === "icons" ) { this.buttons.first().find( ".ui-icon" ) .removeClass( this.options.icons.up ) .addClass( value.up ); this.buttons.last().find( ".ui-icon" ) .removeClass( this.options.icons.down ) .addClass( value.down ); } this._super( key, value ); if ( key === "disabled" ) { if ( value ) { this.element.prop( "disabled", true ); this.buttons.button( "disable" ); } else { this.element.prop( "disabled", false ); this.buttons.button( "enable" ); } } }, _setOptions: modifier(function( options ) { this._super( options ); this._value( this.element.val() ); }), _parse: function( val ) { if ( typeof val === "string" && val !== "" ) { val = window.Globalize && this.options.numberFormat ? Globalize.parseFloat( val, 10, this.options.culture ) : +val; } return val === "" || isNaN( val ) ? null : val; }, _format: function( value ) { if ( value === "" ) { return ""; } return window.Globalize && this.options.numberFormat ? Globalize.format( value, this.options.numberFormat, this.options.culture ) : value; }, _refresh: function() { this.element.attr({ "aria-valuemin": this.options.min, "aria-valuemax": this.options.max, // TODO: what should we do with values that can't be parsed? "aria-valuenow": this._parse( this.element.val() ) }); }, // update the value without triggering change _value: function( value, allowAny ) { var parsed; if ( value !== "" ) { parsed = this._parse( value ); if ( parsed !== null ) { if ( !allowAny ) { parsed = this._adjustValue( parsed ); } value = this._format( parsed ); } } this.element.val( value ); this._refresh(); }, _destroy: function() { this.element .removeClass( "ui-spinner-input" ) .prop( "disabled", false ) .removeAttr( "autocomplete" ) .removeAttr( "role" ) .removeAttr( "aria-valuemin" ) .removeAttr( "aria-valuemax" ) .removeAttr( "aria-valuenow" ); this.uiSpinner.replaceWith( this.element ); }, stepUp: modifier(function( steps ) { this._stepUp( steps ); }), _stepUp: function( steps ) { if ( this._start() ) { this._spin( (steps || 1) * this.options.step ); this._stop(); } }, stepDown: modifier(function( steps ) { this._stepDown( steps ); }), _stepDown: function( steps ) { if ( this._start() ) { this._spin( (steps || 1) * -this.options.step ); this._stop(); } }, pageUp: modifier(function( pages ) { this._stepUp( (pages || 1) * this.options.page ); }), pageDown: modifier(function( pages ) { this._stepDown( (pages || 1) * this.options.page ); }), value: function( newVal ) { if ( !arguments.length ) { return this._parse( this.element.val() ); } modifier( this._value ).call( this, newVal ); }, widget: function() { return this.uiSpinner; } }); }( jQuery ) ); jqueryui-1.10.1/development-bundle/ui/jquery.ui.resizable.js0000644000175000017500000006541012107500066023116 0ustar metalmetal/*! * jQuery UI Resizable 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/resizable/ * * Depends: * jquery.ui.core.js * jquery.ui.mouse.js * jquery.ui.widget.js */ (function( $, undefined ) { function num(v) { return parseInt(v, 10) || 0; } function isNumber(value) { return !isNaN(parseInt(value, 10)); } $.widget("ui.resizable", $.ui.mouse, { version: "1.10.1", widgetEventPrefix: "resize", options: { alsoResize: false, animate: false, animateDuration: "slow", animateEasing: "swing", aspectRatio: false, autoHide: false, containment: false, ghost: false, grid: false, handles: "e,s,se", helper: false, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, // See #7960 zIndex: 90, // callbacks resize: null, start: null, stop: null }, _create: function() { var n, i, handle, axis, hname, that = this, o = this.options; this.element.addClass("ui-resizable"); $.extend(this, { _aspectRatio: !!(o.aspectRatio), aspectRatio: o.aspectRatio, originalElement: this.element, _proportionallyResizeElements: [], _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null }); //Wrap the element if it cannot hold child nodes if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { //Create a wrapper element and set the wrapper to the new current internal element this.element.wrap( $("
    ").css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(), top: this.element.css("top"), left: this.element.css("left") }) ); //Overwrite the original this.element this.element = this.element.parent().data( "ui-resizable", this.element.data("ui-resizable") ); this.elementIsWrapper = true; //Move margins to the wrapper this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0}); //Prevent Safari textarea resize this.originalResizeStyle = this.originalElement.css("resize"); this.originalElement.css("resize", "none"); //Push the actual element to our proportionallyResize internal array this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); // avoid IE jump (hard set the margin) this.originalElement.css({ margin: this.originalElement.css("margin") }); // fix handlers offset this._proportionallyResize(); } this.handles = o.handles || (!$(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne", nw: ".ui-resizable-nw" }); if(this.handles.constructor === String) { if ( this.handles === "all") { this.handles = "n,e,s,w,se,sw,ne,nw"; } n = this.handles.split(","); this.handles = {}; for(i = 0; i < n.length; i++) { handle = $.trim(n[i]); hname = "ui-resizable-"+handle; axis = $("
    "); // Apply zIndex to all handles - see #7960 axis.css({ zIndex: o.zIndex }); //TODO : What's going on here? if ("se" === handle) { axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); } //Insert into internal handles object and append to element this.handles[handle] = ".ui-resizable-"+handle; this.element.append(axis); } } this._renderAxis = function(target) { var i, axis, padPos, padWrapper; target = target || this.element; for(i in this.handles) { if(this.handles[i].constructor === String) { this.handles[i] = $(this.handles[i], this.element).show(); } //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls) if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { axis = $(this.handles[i], this.element); //Checking the correct pad and border padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); //The padding type i have to apply... padPos = [ "padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left" ].join(""); target.css(padPos, padWrapper); this._proportionallyResize(); } //TODO: What's that good for? There's not anything to be executed left if(!$(this.handles[i]).length) { continue; } } }; //TODO: make renderAxis a prototype function this._renderAxis(this.element); this._handles = $(".ui-resizable-handle", this.element) .disableSelection(); //Matching axis name this._handles.mouseover(function() { if (!that.resizing) { if (this.className) { axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); } //Axis, default = se that.axis = axis && axis[1] ? axis[1] : "se"; } }); //If we want to auto hide the elements if (o.autoHide) { this._handles.hide(); $(this.element) .addClass("ui-resizable-autohide") .mouseenter(function() { if (o.disabled) { return; } $(this).removeClass("ui-resizable-autohide"); that._handles.show(); }) .mouseleave(function(){ if (o.disabled) { return; } if (!that.resizing) { $(this).addClass("ui-resizable-autohide"); that._handles.hide(); } }); } //Initialize the mouse interaction this._mouseInit(); }, _destroy: function() { this._mouseDestroy(); var wrapper, _destroy = function(exp) { $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") .removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove(); }; //TODO: Unwrap at same DOM position if (this.elementIsWrapper) { _destroy(this.element); wrapper = this.element; this.originalElement.css({ position: wrapper.css("position"), width: wrapper.outerWidth(), height: wrapper.outerHeight(), top: wrapper.css("top"), left: wrapper.css("left") }).insertAfter( wrapper ); wrapper.remove(); } this.originalElement.css("resize", this.originalResizeStyle); _destroy(this.originalElement); return this; }, _mouseCapture: function(event) { var i, handle, capture = false; for (i in this.handles) { handle = $(this.handles[i])[0]; if (handle === event.target || $.contains(handle, event.target)) { capture = true; } } return !this.options.disabled && capture; }, _mouseStart: function(event) { var curleft, curtop, cursor, o = this.options, iniPos = this.element.position(), el = this.element; this.resizing = true; // bugfix for http://dev.jquery.com/ticket/1749 if ( (/absolute/).test( el.css("position") ) ) { el.css({ position: "absolute", top: el.css("top"), left: el.css("left") }); } else if (el.is(".ui-draggable")) { el.css({ position: "absolute", top: iniPos.top, left: iniPos.left }); } this._renderProxy(); curleft = num(this.helper.css("left")); curtop = num(this.helper.css("top")); if (o.containment) { curleft += $(o.containment).scrollLeft() || 0; curtop += $(o.containment).scrollTop() || 0; } //Store needed variables this.offset = this.helper.offset(); this.position = { left: curleft, top: curtop }; this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; this.originalPosition = { left: curleft, top: curtop }; this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; this.originalMousePosition = { left: event.pageX, top: event.pageY }; //Aspect Ratio this.aspectRatio = (typeof o.aspectRatio === "number") ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); cursor = $(".ui-resizable-" + this.axis).css("cursor"); $("body").css("cursor", cursor === "auto" ? this.axis + "-resize" : cursor); el.addClass("ui-resizable-resizing"); this._propagate("start", event); return true; }, _mouseDrag: function(event) { //Increase performance, avoid regex var data, el = this.helper, props = {}, smp = this.originalMousePosition, a = this.axis, prevTop = this.position.top, prevLeft = this.position.left, prevWidth = this.size.width, prevHeight = this.size.height, dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0, trigger = this._change[a]; if (!trigger) { return false; } // Calculate the attrs that will be change data = trigger.apply(this, [event, dx, dy]); // Put this in the mouseDrag handler since the user can start pressing shift while resizing this._updateVirtualBoundaries(event.shiftKey); if (this._aspectRatio || event.shiftKey) { data = this._updateRatio(data, event); } data = this._respectSize(data, event); this._updateCache(data); // plugins callbacks need to be called first this._propagate("resize", event); if (this.position.top !== prevTop) { props.top = this.position.top + "px"; } if (this.position.left !== prevLeft) { props.left = this.position.left + "px"; } if (this.size.width !== prevWidth) { props.width = this.size.width + "px"; } if (this.size.height !== prevHeight) { props.height = this.size.height + "px"; } el.css(props); if (!this._helper && this._proportionallyResizeElements.length) { this._proportionallyResize(); } // Call the user callback if the element was resized if ( ! $.isEmptyObject(props) ) { this._trigger("resize", event, this.ui()); } return false; }, _mouseStop: function(event) { this.resizing = false; var pr, ista, soffseth, soffsetw, s, left, top, o = this.options, that = this; if(this._helper) { pr = this._proportionallyResizeElements; ista = pr.length && (/textarea/i).test(pr[0].nodeName); soffseth = ista && $.ui.hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height; soffsetw = ista ? 0 : that.sizeDiff.width; s = { width: (that.helper.width() - soffsetw), height: (that.helper.height() - soffseth) }; left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null; top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; if (!o.animate) { this.element.css($.extend(s, { top: top, left: left })); } that.helper.height(that.size.height); that.helper.width(that.size.width); if (this._helper && !o.animate) { this._proportionallyResize(); } } $("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing"); this._propagate("stop", event); if (this._helper) { this.helper.remove(); } return false; }, _updateVirtualBoundaries: function(forceAspectRatio) { var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b, o = this.options; b = { minWidth: isNumber(o.minWidth) ? o.minWidth : 0, maxWidth: isNumber(o.maxWidth) ? o.maxWidth : Infinity, minHeight: isNumber(o.minHeight) ? o.minHeight : 0, maxHeight: isNumber(o.maxHeight) ? o.maxHeight : Infinity }; if(this._aspectRatio || forceAspectRatio) { // We want to create an enclosing box whose aspect ration is the requested one // First, compute the "projected" size for each dimension based on the aspect ratio and other dimension pMinWidth = b.minHeight * this.aspectRatio; pMinHeight = b.minWidth / this.aspectRatio; pMaxWidth = b.maxHeight * this.aspectRatio; pMaxHeight = b.maxWidth / this.aspectRatio; if(pMinWidth > b.minWidth) { b.minWidth = pMinWidth; } if(pMinHeight > b.minHeight) { b.minHeight = pMinHeight; } if(pMaxWidth < b.maxWidth) { b.maxWidth = pMaxWidth; } if(pMaxHeight < b.maxHeight) { b.maxHeight = pMaxHeight; } } this._vBoundaries = b; }, _updateCache: function(data) { this.offset = this.helper.offset(); if (isNumber(data.left)) { this.position.left = data.left; } if (isNumber(data.top)) { this.position.top = data.top; } if (isNumber(data.height)) { this.size.height = data.height; } if (isNumber(data.width)) { this.size.width = data.width; } }, _updateRatio: function( data ) { var cpos = this.position, csize = this.size, a = this.axis; if (isNumber(data.height)) { data.width = (data.height * this.aspectRatio); } else if (isNumber(data.width)) { data.height = (data.width / this.aspectRatio); } if (a === "sw") { data.left = cpos.left + (csize.width - data.width); data.top = null; } if (a === "nw") { data.top = cpos.top + (csize.height - data.height); data.left = cpos.left + (csize.width - data.width); } return data; }, _respectSize: function( data ) { var o = this._vBoundaries, a = this.axis, ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height), dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height, cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); if (isminw) { data.width = o.minWidth; } if (isminh) { data.height = o.minHeight; } if (ismaxw) { data.width = o.maxWidth; } if (ismaxh) { data.height = o.maxHeight; } if (isminw && cw) { data.left = dw - o.minWidth; } if (ismaxw && cw) { data.left = dw - o.maxWidth; } if (isminh && ch) { data.top = dh - o.minHeight; } if (ismaxh && ch) { data.top = dh - o.maxHeight; } // fixing jump error on top/left - bug #2330 if (!data.width && !data.height && !data.left && data.top) { data.top = null; } else if (!data.width && !data.height && !data.top && data.left) { data.left = null; } return data; }, _proportionallyResize: function() { if (!this._proportionallyResizeElements.length) { return; } var i, j, borders, paddings, prel, element = this.helper || this.element; for ( i=0; i < this._proportionallyResizeElements.length; i++) { prel = this._proportionallyResizeElements[i]; if (!this.borderDif) { this.borderDif = []; borders = [prel.css("borderTopWidth"), prel.css("borderRightWidth"), prel.css("borderBottomWidth"), prel.css("borderLeftWidth")]; paddings = [prel.css("paddingTop"), prel.css("paddingRight"), prel.css("paddingBottom"), prel.css("paddingLeft")]; for ( j = 0; j < borders.length; j++ ) { this.borderDif[ j ] = ( parseInt( borders[ j ], 10 ) || 0 ) + ( parseInt( paddings[ j ], 10 ) || 0 ); } } prel.css({ height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 }); } }, _renderProxy: function() { var el = this.element, o = this.options; this.elementOffset = el.offset(); if(this._helper) { this.helper = this.helper || $("
    "); this.helper.addClass(this._helper).css({ width: this.element.outerWidth() - 1, height: this.element.outerHeight() - 1, position: "absolute", left: this.elementOffset.left +"px", top: this.elementOffset.top +"px", zIndex: ++o.zIndex //TODO: Don't modify option }); this.helper .appendTo("body") .disableSelection(); } else { this.helper = this.element; } }, _change: { e: function(event, dx) { return { width: this.originalSize.width + dx }; }, w: function(event, dx) { var cs = this.originalSize, sp = this.originalPosition; return { left: sp.left + dx, width: cs.width - dx }; }, n: function(event, dx, dy) { var cs = this.originalSize, sp = this.originalPosition; return { top: sp.top + dy, height: cs.height - dy }; }, s: function(event, dx, dy) { return { height: this.originalSize.height + dy }; }, se: function(event, dx, dy) { return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); }, sw: function(event, dx, dy) { return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); }, ne: function(event, dx, dy) { return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); }, nw: function(event, dx, dy) { return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); } }, _propagate: function(n, event) { $.ui.plugin.call(this, n, [event, this.ui()]); (n !== "resize" && this._trigger(n, event, this.ui())); }, plugins: {}, ui: function() { return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition }; } }); /* * Resizable Extensions */ $.ui.plugin.add("resizable", "animate", { stop: function( event ) { var that = $(this).data("ui-resizable"), o = that.options, pr = that._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), soffseth = ista && $.ui.hasScroll(pr[0], "left") /* TODO - jump height */ ? 0 : that.sizeDiff.height, soffsetw = ista ? 0 : that.sizeDiff.width, style = { width: (that.size.width - soffsetw), height: (that.size.height - soffseth) }, left = (parseInt(that.element.css("left"), 10) + (that.position.left - that.originalPosition.left)) || null, top = (parseInt(that.element.css("top"), 10) + (that.position.top - that.originalPosition.top)) || null; that.element.animate( $.extend(style, top && left ? { top: top, left: left } : {}), { duration: o.animateDuration, easing: o.animateEasing, step: function() { var data = { width: parseInt(that.element.css("width"), 10), height: parseInt(that.element.css("height"), 10), top: parseInt(that.element.css("top"), 10), left: parseInt(that.element.css("left"), 10) }; if (pr && pr.length) { $(pr[0]).css({ width: data.width, height: data.height }); } // propagating resize, and updating values for each animation step that._updateCache(data); that._propagate("resize", event); } } ); } }); $.ui.plugin.add("resizable", "containment", { start: function() { var element, p, co, ch, cw, width, height, that = $(this).data("ui-resizable"), o = that.options, el = that.element, oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc; if (!ce) { return; } that.containerElement = $(ce); if (/document/.test(oc) || oc === document) { that.containerOffset = { left: 0, top: 0 }; that.containerPosition = { left: 0, top: 0 }; that.parentData = { element: $(document), left: 0, top: 0, width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight }; } // i'm a node, so compute top, left, right, bottom else { element = $(ce); p = []; $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); }); that.containerOffset = element.offset(); that.containerPosition = element.position(); that.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) }; co = that.containerOffset; ch = that.containerSize.height; cw = that.containerSize.width; width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ); height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch); that.parentData = { element: ce, left: co.left, top: co.top, width: width, height: height }; } }, resize: function( event ) { var woset, hoset, isParent, isOffsetRelative, that = $(this).data("ui-resizable"), o = that.options, co = that.containerOffset, cp = that.position, pRatio = that._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = that.containerElement; if (ce[0] !== document && (/static/).test(ce.css("position"))) { cop = co; } if (cp.left < (that._helper ? co.left : 0)) { that.size.width = that.size.width + (that._helper ? (that.position.left - co.left) : (that.position.left - cop.left)); if (pRatio) { that.size.height = that.size.width / that.aspectRatio; } that.position.left = o.helper ? co.left : 0; } if (cp.top < (that._helper ? co.top : 0)) { that.size.height = that.size.height + (that._helper ? (that.position.top - co.top) : that.position.top); if (pRatio) { that.size.width = that.size.height * that.aspectRatio; } that.position.top = that._helper ? co.top : 0; } that.offset.left = that.parentData.left+that.position.left; that.offset.top = that.parentData.top+that.position.top; woset = Math.abs( (that._helper ? that.offset.left - cop.left : (that.offset.left - cop.left)) + that.sizeDiff.width ); hoset = Math.abs( (that._helper ? that.offset.top - cop.top : (that.offset.top - co.top)) + that.sizeDiff.height ); isParent = that.containerElement.get(0) === that.element.parent().get(0); isOffsetRelative = /relative|absolute/.test(that.containerElement.css("position")); if(isParent && isOffsetRelative) { woset -= that.parentData.left; } if (woset + that.size.width >= that.parentData.width) { that.size.width = that.parentData.width - woset; if (pRatio) { that.size.height = that.size.width / that.aspectRatio; } } if (hoset + that.size.height >= that.parentData.height) { that.size.height = that.parentData.height - hoset; if (pRatio) { that.size.width = that.size.height * that.aspectRatio; } } }, stop: function(){ var that = $(this).data("ui-resizable"), o = that.options, co = that.containerOffset, cop = that.containerPosition, ce = that.containerElement, helper = $(that.helper), ho = helper.offset(), w = helper.outerWidth() - that.sizeDiff.width, h = helper.outerHeight() - that.sizeDiff.height; if (that._helper && !o.animate && (/relative/).test(ce.css("position"))) { $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); } if (that._helper && !o.animate && (/static/).test(ce.css("position"))) { $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); } } }); $.ui.plugin.add("resizable", "alsoResize", { start: function () { var that = $(this).data("ui-resizable"), o = that.options, _store = function (exp) { $(exp).each(function() { var el = $(this); el.data("ui-resizable-alsoresize", { width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), left: parseInt(el.css("left"), 10), top: parseInt(el.css("top"), 10) }); }); }; if (typeof(o.alsoResize) === "object" && !o.alsoResize.parentNode) { if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } else { $.each(o.alsoResize, function (exp) { _store(exp); }); } }else{ _store(o.alsoResize); } }, resize: function (event, ui) { var that = $(this).data("ui-resizable"), o = that.options, os = that.originalSize, op = that.originalPosition, delta = { height: (that.size.height - os.height) || 0, width: (that.size.width - os.width) || 0, top: (that.position.top - op.top) || 0, left: (that.position.left - op.left) || 0 }, _alsoResize = function (exp, c) { $(exp).each(function() { var el = $(this), start = $(this).data("ui-resizable-alsoresize"), style = {}, css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; $.each(css, function (i, prop) { var sum = (start[prop]||0) + (delta[prop]||0); if (sum && sum >= 0) { style[prop] = sum || null; } }); el.css(style); }); }; if (typeof(o.alsoResize) === "object" && !o.alsoResize.nodeType) { $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); }else{ _alsoResize(o.alsoResize); } }, stop: function () { $(this).removeData("resizable-alsoresize"); } }); $.ui.plugin.add("resizable", "ghost", { start: function() { var that = $(this).data("ui-resizable"), o = that.options, cs = that.size; that.ghost = that.originalElement.clone(); that.ghost .css({ opacity: 0.25, display: "block", position: "relative", height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) .addClass("ui-resizable-ghost") .addClass(typeof o.ghost === "string" ? o.ghost : ""); that.ghost.appendTo(that.helper); }, resize: function(){ var that = $(this).data("ui-resizable"); if (that.ghost) { that.ghost.css({ position: "relative", height: that.size.height, width: that.size.width }); } }, stop: function() { var that = $(this).data("ui-resizable"); if (that.ghost && that.helper) { that.helper.get(0).removeChild(that.ghost.get(0)); } } }); $.ui.plugin.add("resizable", "grid", { resize: function() { var that = $(this).data("ui-resizable"), o = that.options, cs = that.size, os = that.originalSize, op = that.originalPosition, a = that.axis, grid = typeof o.grid === "number" ? [o.grid, o.grid] : o.grid, gridX = (grid[0]||1), gridY = (grid[1]||1), ox = Math.round((cs.width - os.width) / gridX) * gridX, oy = Math.round((cs.height - os.height) / gridY) * gridY, newWidth = os.width + ox, newHeight = os.height + oy, isMaxWidth = o.maxWidth && (o.maxWidth < newWidth), isMaxHeight = o.maxHeight && (o.maxHeight < newHeight), isMinWidth = o.minWidth && (o.minWidth > newWidth), isMinHeight = o.minHeight && (o.minHeight > newHeight); o.grid = grid; if (isMinWidth) { newWidth = newWidth + gridX; } if (isMinHeight) { newHeight = newHeight + gridY; } if (isMaxWidth) { newWidth = newWidth - gridX; } if (isMaxHeight) { newHeight = newHeight - gridY; } if (/^(se|s|e)$/.test(a)) { that.size.width = newWidth; that.size.height = newHeight; } else if (/^(ne)$/.test(a)) { that.size.width = newWidth; that.size.height = newHeight; that.position.top = op.top - oy; } else if (/^(sw)$/.test(a)) { that.size.width = newWidth; that.size.height = newHeight; that.position.left = op.left - ox; } else { that.size.width = newWidth; that.size.height = newHeight; that.position.top = op.top - oy; that.position.left = op.left - ox; } } }); })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.selectable.js0000644000175000017500000001546712107500066023250 0ustar metalmetal/*! * jQuery UI Selectable 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/selectable/ * * Depends: * jquery.ui.core.js * jquery.ui.mouse.js * jquery.ui.widget.js */ (function( $, undefined ) { $.widget("ui.selectable", $.ui.mouse, { version: "1.10.1", options: { appendTo: "body", autoRefresh: true, distance: 0, filter: "*", tolerance: "touch", // callbacks selected: null, selecting: null, start: null, stop: null, unselected: null, unselecting: null }, _create: function() { var selectees, that = this; this.element.addClass("ui-selectable"); this.dragged = false; // cache selectee children based on filter this.refresh = function() { selectees = $(that.options.filter, that.element[0]); selectees.addClass("ui-selectee"); selectees.each(function() { var $this = $(this), pos = $this.offset(); $.data(this, "selectable-item", { element: this, $element: $this, left: pos.left, top: pos.top, right: pos.left + $this.outerWidth(), bottom: pos.top + $this.outerHeight(), startselected: false, selected: $this.hasClass("ui-selected"), selecting: $this.hasClass("ui-selecting"), unselecting: $this.hasClass("ui-unselecting") }); }); }; this.refresh(); this.selectees = selectees.addClass("ui-selectee"); this._mouseInit(); this.helper = $("
    "); }, _destroy: function() { this.selectees .removeClass("ui-selectee") .removeData("selectable-item"); this.element .removeClass("ui-selectable ui-selectable-disabled"); this._mouseDestroy(); }, _mouseStart: function(event) { var that = this, options = this.options; this.opos = [event.pageX, event.pageY]; if (this.options.disabled) { return; } this.selectees = $(options.filter, this.element[0]); this._trigger("start", event); $(options.appendTo).append(this.helper); // position helper (lasso) this.helper.css({ "left": event.pageX, "top": event.pageY, "width": 0, "height": 0 }); if (options.autoRefresh) { this.refresh(); } this.selectees.filter(".ui-selected").each(function() { var selectee = $.data(this, "selectable-item"); selectee.startselected = true; if (!event.metaKey && !event.ctrlKey) { selectee.$element.removeClass("ui-selected"); selectee.selected = false; selectee.$element.addClass("ui-unselecting"); selectee.unselecting = true; // selectable UNSELECTING callback that._trigger("unselecting", event, { unselecting: selectee.element }); } }); $(event.target).parents().addBack().each(function() { var doSelect, selectee = $.data(this, "selectable-item"); if (selectee) { doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass("ui-selected"); selectee.$element .removeClass(doSelect ? "ui-unselecting" : "ui-selected") .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); selectee.unselecting = !doSelect; selectee.selecting = doSelect; selectee.selected = doSelect; // selectable (UN)SELECTING callback if (doSelect) { that._trigger("selecting", event, { selecting: selectee.element }); } else { that._trigger("unselecting", event, { unselecting: selectee.element }); } return false; } }); }, _mouseDrag: function(event) { this.dragged = true; if (this.options.disabled) { return; } var tmp, that = this, options = this.options, x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY; if (x1 > x2) { tmp = x2; x2 = x1; x1 = tmp; } if (y1 > y2) { tmp = y2; y2 = y1; y1 = tmp; } this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); this.selectees.each(function() { var selectee = $.data(this, "selectable-item"), hit = false; //prevent helper from being selected if appendTo: selectable if (!selectee || selectee.element === that.element[0]) { return; } if (options.tolerance === "touch") { hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); } else if (options.tolerance === "fit") { hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); } if (hit) { // SELECT if (selectee.selected) { selectee.$element.removeClass("ui-selected"); selectee.selected = false; } if (selectee.unselecting) { selectee.$element.removeClass("ui-unselecting"); selectee.unselecting = false; } if (!selectee.selecting) { selectee.$element.addClass("ui-selecting"); selectee.selecting = true; // selectable SELECTING callback that._trigger("selecting", event, { selecting: selectee.element }); } } else { // UNSELECT if (selectee.selecting) { if ((event.metaKey || event.ctrlKey) && selectee.startselected) { selectee.$element.removeClass("ui-selecting"); selectee.selecting = false; selectee.$element.addClass("ui-selected"); selectee.selected = true; } else { selectee.$element.removeClass("ui-selecting"); selectee.selecting = false; if (selectee.startselected) { selectee.$element.addClass("ui-unselecting"); selectee.unselecting = true; } // selectable UNSELECTING callback that._trigger("unselecting", event, { unselecting: selectee.element }); } } if (selectee.selected) { if (!event.metaKey && !event.ctrlKey && !selectee.startselected) { selectee.$element.removeClass("ui-selected"); selectee.selected = false; selectee.$element.addClass("ui-unselecting"); selectee.unselecting = true; // selectable UNSELECTING callback that._trigger("unselecting", event, { unselecting: selectee.element }); } } } }); return false; }, _mouseStop: function(event) { var that = this; this.dragged = false; $(".ui-unselecting", this.element[0]).each(function() { var selectee = $.data(this, "selectable-item"); selectee.$element.removeClass("ui-unselecting"); selectee.unselecting = false; selectee.startselected = false; that._trigger("unselected", event, { unselected: selectee.element }); }); $(".ui-selecting", this.element[0]).each(function() { var selectee = $.data(this, "selectable-item"); selectee.$element.removeClass("ui-selecting").addClass("ui-selected"); selectee.selecting = false; selectee.selected = true; selectee.startselected = true; that._trigger("selected", event, { selected: selectee.element }); }); this._trigger("stop", event); this.helper.remove(); return false; } }); })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-drop.js0000644000175000017500000000270112107500066023326 0ustar metalmetal/*! * jQuery UI Effects Drop 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/drop-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.drop = function( o, done ) { var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "opacity", "height", "width" ], mode = $.effects.setMode( el, o.mode || "hide" ), show = mode === "show", direction = o.direction || "left", ref = ( direction === "up" || direction === "down" ) ? "top" : "left", motion = ( direction === "up" || direction === "left" ) ? "pos" : "neg", animation = { opacity: show ? 1 : 0 }, distance; // Adjust $.effects.save( el, props ); el.show(); $.effects.createWrapper( el ); distance = o.distance || el[ ref === "top" ? "outerHeight": "outerWidth" ]( true ) / 2; if ( show ) { el .css( "opacity", 0 ) .css( ref, motion === "pos" ? -distance : distance ); } // Animation animation[ ref ] = ( show ? ( motion === "pos" ? "+=" : "-=" ) : ( motion === "pos" ? "-=" : "+=" ) ) + distance; // Animate el.animate( animation, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( mode === "hide" ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.effect-slide.js0000644000175000017500000000270012107500066023461 0ustar metalmetal/*! * jQuery UI Effects Slide 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/slide-effect/ * * Depends: * jquery.ui.effect.js */ (function( $, undefined ) { $.effects.effect.slide = function( o, done ) { // Create element var el = $( this ), props = [ "position", "top", "bottom", "left", "right", "width", "height" ], mode = $.effects.setMode( el, o.mode || "show" ), show = mode === "show", direction = o.direction || "left", ref = (direction === "up" || direction === "down") ? "top" : "left", positiveMotion = (direction === "up" || direction === "left"), distance, animation = {}; // Adjust $.effects.save( el, props ); el.show(); distance = o.distance || el[ ref === "top" ? "outerHeight" : "outerWidth" ]( true ); $.effects.createWrapper( el ).css({ overflow: "hidden" }); if ( show ) { el.css( ref, positiveMotion ? (isNaN(distance) ? "-" + distance : -distance) : distance ); } // Animation animation[ ref ] = ( show ? ( positiveMotion ? "+=" : "-=") : ( positiveMotion ? "-=" : "+=")) + distance; // Animate el.animate( animation, { queue: false, duration: o.duration, easing: o.easing, complete: function() { if ( mode === "hide" ) { el.hide(); } $.effects.restore( el, props ); $.effects.removeWrapper( el ); done(); } }); }; })(jQuery); jqueryui-1.10.1/development-bundle/ui/jquery.ui.menu.js0000644000175000017500000004026512107500066022103 0ustar metalmetal/*! * jQuery UI Menu 1.10.1 * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/menu/ * * Depends: * jquery.ui.core.js * jquery.ui.widget.js * jquery.ui.position.js */ (function( $, undefined ) { $.widget( "ui.menu", { version: "1.10.1", defaultElement: "
      ", delay: 300, options: { icons: { submenu: "ui-icon-carat-1-e" }, menus: "ul", position: { my: "left top", at: "right top" }, role: "menu", // callbacks blur: null, focus: null, select: null }, _create: function() { this.activeMenu = this.element; // flag used to prevent firing of the click handler // as the event bubbles up through nested menus this.mouseHandled = false; this.element .uniqueId() .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) .toggleClass( "ui-menu-icons", !!this.element.find( ".ui-icon" ).length ) .attr({ role: this.options.role, tabIndex: 0 }) // need to catch all clicks on disabled menu // not possible through _on .bind( "click" + this.eventNamespace, $.proxy(function( event ) { if ( this.options.disabled ) { event.preventDefault(); } }, this )); if ( this.options.disabled ) { this.element .addClass( "ui-state-disabled" ) .attr( "aria-disabled", "true" ); } this._on({ // Prevent focus from sticking to links inside menu after clicking // them (focus should always stay on UL during navigation). "mousedown .ui-menu-item > a": function( event ) { event.preventDefault(); }, "click .ui-state-disabled > a": function( event ) { event.preventDefault(); }, "click .ui-menu-item:has(a)": function( event ) { var target = $( event.target ).closest( ".ui-menu-item" ); if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) { this.mouseHandled = true; this.select( event ); // Open submenu on click if ( target.has( ".ui-menu" ).length ) { this.expand( event ); } else if ( !this.element.is( ":focus" ) ) { // Redirect focus to the menu this.element.trigger( "focus", [ true ] ); // If the active item is on the top level, let it stay active. // Otherwise, blur the active item since it is no longer visible. if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) { clearTimeout( this.timer ); } } } }, "mouseenter .ui-menu-item": function( event ) { var target = $( event.currentTarget ); // Remove ui-state-active class from siblings of the newly focused menu item // to avoid a jump caused by adjacent elements both having a class with a border target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" ); this.focus( event, target ); }, mouseleave: "collapseAll", "mouseleave .ui-menu": "collapseAll", focus: function( event, keepActiveItem ) { // If there's already an active item, keep it active // If not, activate the first item var item = this.active || this.element.children( ".ui-menu-item" ).eq( 0 ); if ( !keepActiveItem ) { this.focus( event, item ); } }, blur: function( event ) { this._delay(function() { if ( !$.contains( this.element[0], this.document[0].activeElement ) ) { this.collapseAll( event ); } }); }, keydown: "_keydown" }); this.refresh(); // Clicks outside of a menu collapse any open menus this._on( this.document, { click: function( event ) { if ( !$( event.target ).closest( ".ui-menu" ).length ) { this.collapseAll( event ); } // Reset the mouseHandled flag this.mouseHandled = false; } }); }, _destroy: function() { // Destroy (sub)menus this.element .removeAttr( "aria-activedescendant" ) .find( ".ui-menu" ).addBack() .removeClass( "ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons" ) .removeAttr( "role" ) .removeAttr( "tabIndex" ) .removeAttr( "aria-labelledby" ) .removeAttr( "aria-expanded" ) .removeAttr( "aria-hidden" ) .removeAttr( "aria-disabled" ) .removeUniqueId() .show(); // Destroy menu items this.element.find( ".ui-menu-item" ) .removeClass( "ui-menu-item" ) .removeAttr( "role" ) .removeAttr( "aria-disabled" ) .children( "a" ) .removeUniqueId() .removeClass( "ui-corner-all ui-state-hover" ) .removeAttr( "tabIndex" ) .removeAttr( "role" ) .removeAttr( "aria-haspopup" ) .children().each( function() { var elem = $( this ); if ( elem.data( "ui-menu-submenu-carat" ) ) { elem.remove(); } }); // Destroy menu dividers this.element.find( ".ui-menu-divider" ).removeClass( "ui-menu-divider ui-widget-content" ); }, _keydown: function( event ) { /*jshint maxcomplexity:20*/ var match, prev, character, skip, regex, preventDefault = true; function escape( value ) { return value.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ); } switch ( event.keyCode ) { case $.ui.keyCode.PAGE_UP: this.previousPage( event ); break; case $.ui.keyCode.PAGE_DOWN: this.nextPage( event ); break; case $.ui.keyCode.HOME: this._move( "first", "first", event ); break; case $.ui.keyCode.END: this._move( "last", "last", event ); break; case $.ui.keyCode.UP: this.previous( event ); break; case $.ui.keyCode.DOWN: this.next( event ); break; case $.ui.keyCode.LEFT: this.collapse( event ); break; case $.ui.keyCode.RIGHT: if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { this.expand( event ); } break; case $.ui.keyCode.ENTER: case $.ui.keyCode.SPACE: this._activate( event ); break; case $.ui.keyCode.ESCAPE: this.collapse( event ); break; default: preventDefault = false; prev = this.previousFilter || ""; character = String.fromCharCode( event.keyCode ); skip = false; clearTimeout( this.filterTimer ); if ( character === prev ) { skip = true; } else { character = prev + character; } regex = new RegExp( "^" + escape( character ), "i" ); match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { return regex.test( $( this ).children( "a" ).text() ); }); match = skip && match.index( this.active.next() ) !== -1 ? this.active.nextAll( ".ui-menu-item" ) : match; // If no matches on the current filter, reset to the last character pressed // to move down the menu to the first item that starts with that character if ( !match.length ) { character = String.fromCharCode( event.keyCode ); regex = new RegExp( "^" + escape( character ), "i" ); match = this.activeMenu.children( ".ui-menu-item" ).filter(function() { return regex.test( $( this ).children( "a" ).text() ); }); } if ( match.length ) { this.focus( event, match ); if ( match.length > 1 ) { this.previousFilter = character; this.filterTimer = this._delay(function() { delete this.previousFilter; }, 1000 ); } else { delete this.previousFilter; } } else { delete this.previousFilter; } } if ( preventDefault ) { event.preventDefault(); } }, _activate: function( event ) { if ( !this.active.is( ".ui-state-disabled" ) ) { if ( this.active.children( "a[aria-haspopup='true']" ).length ) { this.expand( event ); } else { this.select( event ); } } }, refresh: function() { var menus, icon = this.options.icons.submenu, submenus = this.element.find( this.options.menus ); // Initialize nested menus submenus.filter( ":not(.ui-menu)" ) .addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" ) .hide() .attr({ role: this.options.role, "aria-hidden": "true", "aria-expanded": "false" }) .each(function() { var menu = $( this ), item = menu.prev( "a" ), submenuCarat = $( "" ) .addClass( "ui-menu-icon ui-icon " + icon ) .data( "ui-menu-submenu-carat", true ); item .attr( "aria-haspopup", "true" ) .prepend( submenuCarat ); menu.attr( "aria-labelledby", item.attr( "id" ) ); }); menus = submenus.add( this.element ); // Don't refresh list items that are already adapted menus.children( ":not(.ui-menu-item):has(a)" ) .addClass( "ui-menu-item" ) .attr( "role", "presentation" ) .children( "a" ) .uniqueId() .addClass( "ui-corner-all" ) .attr({ tabIndex: -1, role: this._itemRole() }); // Initialize unlinked menu-items containing spaces and/or dashes only as dividers menus.children( ":not(.ui-menu-item)" ).each(function() { var item = $( this ); // hyphen, em dash, en dash if ( !/[^\-\u2014\u2013\s]/.test( item.text() ) ) { item.addClass( "ui-widget-content ui-menu-divider" ); } }); // Add aria-disabled attribute to any disabled menu item menus.children( ".ui-state-disabled" ).attr( "aria-disabled", "true" ); // If the active item has been removed, blur the menu if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) { this.blur(); } }, _itemRole: function() { return { menu: "menuitem", listbox: "option" }[ this.options.role ]; }, _setOption: function( key, value ) { if ( key === "icons" ) { this.element.find( ".ui-menu-icon" ) .removeClass( this.options.icons.submenu ) .addClass( value.submenu ); } this._super( key, value ); }, focus: function( event, item ) { var nested, focused; this.blur( event, event && event.type === "focus" ); this._scrollIntoView( item ); this.active = item.first(); focused = this.active.children( "a" ).addClass( "ui-state-focus" ); // Only update aria-activedescendant if there's a role // otherwise we assume focus is managed elsewhere if ( this.options.role ) { this.element.attr( "aria-activedescendant", focused.attr( "id" ) ); } // Highlight active parent menu item, if any this.active .parent() .closest( ".ui-menu-item" ) .children( "a:first" ) .addClass( "ui-state-active" ); if ( event && event.type === "keydown" ) { this._close(); } else { this.timer = this._delay(function() { this._close(); }, this.delay ); } nested = item.children( ".ui-menu" ); if ( nested.length && ( /^mouse/.test( event.type ) ) ) { this._startOpening(nested); } this.activeMenu = item.parent(); this._trigger( "focus", event, { item: item } ); }, _scrollIntoView: function( item ) { var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight; if ( this._hasScroll() ) { borderTop = parseFloat( $.css( this.activeMenu[0], "borderTopWidth" ) ) || 0; paddingTop = parseFloat( $.css( this.activeMenu[0], "paddingTop" ) ) || 0; offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop; scroll = this.activeMenu.scrollTop(); elementHeight = this.activeMenu.height(); itemHeight = item.height(); if ( offset < 0 ) { this.activeMenu.scrollTop( scroll + offset ); } else if ( offset + itemHeight > elementHeight ) { this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight ); } } }, blur: function( event, fromFocus ) { if ( !fromFocus ) { clearTimeout( this.timer ); } if ( !this.active ) { return; } this.active.children( "a" ).removeClass( "ui-state-focus" ); this.active = null; this._trigger( "blur", event, { item: this.active } ); }, _startOpening: function( submenu ) { clearTimeout( this.timer ); // Don't open if already open fixes a Firefox bug that caused a .5 pixel // shift in the submenu position when mousing over the carat icon if ( submenu.attr( "aria-hidden" ) !== "true" ) { return; } this.timer = this._delay(function() { this._close(); this._open( submenu ); }, this.delay ); }, _open: function( submenu ) { var position = $.extend({ of: this.active }, this.options.position ); clearTimeout( this.timer ); this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) ) .hide() .attr( "aria-hidden", "true" ); submenu .show() .removeAttr( "aria-hidden" ) .attr( "aria-expanded", "true" ) .position( position ); }, collapseAll: function( event, all ) { clearTimeout( this.timer ); this.timer = this._delay(function() { // If we were passed an event, look for the submenu that contains the event var currentMenu = all ? this.element : $( event && event.target ).closest( this.element.find( ".ui-menu" ) ); // If we found no valid submenu ancestor, use the main menu to close all sub menus anyway if ( !currentMenu.length ) { currentMenu = this.element; } this._close( currentMenu ); this.blur( event ); this.activeMenu = currentMenu; }, this.delay ); }, // With no arguments, closes the currently active menu - if nothing is active // it closes all menus. If passed an argument, it will search for menus BELOW _close: function( startMenu ) { if ( !startMenu ) { startMenu = this.active ? this.active.parent() : this.element; } startMenu .find( ".ui-menu" ) .hide() .attr( "aria-hidden", "true" ) .attr( "aria-expanded", "false" ) .end() .find( "a.ui-state-active" ) .removeClass( "ui-state-active" ); }, collapse: function( event ) { var newItem = this.active && this.active.parent().closest( ".ui-menu-item", this.element ); if ( newItem && newItem.length ) { this._close(); this.focus( event, newItem ); } }, expand: function( event ) { var newItem = this.active && this.active .children( ".ui-menu " ) .children( ".ui-menu-item" ) .first(); if ( newItem && newItem.length ) { this._open( newItem.parent() ); // Delay so Firefox will not hide activedescendant change in expanding submenu from AT this._delay(function() { this.focus( event, newItem ); }); } }, next: function( event ) { this._move( "next", "first", event ); }, previous: function( event ) { this._move( "prev", "last", event ); }, isFirstItem: function() { return this.active && !this.active.prevAll( ".ui-menu-item" ).length; }, isLastItem: function() { return this.active && !this.active.nextAll( ".ui-menu-item" ).length; }, _move: function( direction, filter, event ) { var next; if ( this.active ) { if ( direction === "first" || direction === "last" ) { next = this.active [ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" ) .eq( -1 ); } else { next = this.active [ direction + "All" ]( ".ui-menu-item" ) .eq( 0 ); } } if ( !next || !next.length || !this.active ) { next = this.activeMenu.children( ".ui-menu-item" )[ filter ](); } this.focus( event, next ); }, nextPage: function( event ) { var item, base, height; if ( !this.active ) { this.next( event ); return; } if ( this.isLastItem() ) { return; } if ( this._hasScroll() ) { base = this.active.offset().top; height = this.element.height(); this.active.nextAll( ".ui-menu-item" ).each(function() { item = $( this ); return item.offset().top - base - height < 0; }); this.focus( event, item ); } else { this.focus( event, this.activeMenu.children( ".ui-menu-item" ) [ !this.active ? "first" : "last" ]() ); } }, previousPage: function( event ) { var item, base, height; if ( !this.active ) { this.next( event ); return; } if ( this.isFirstItem() ) { return; } if ( this._hasScroll() ) { base = this.active.offset().top; height = this.element.height(); this.active.prevAll( ".ui-menu-item" ).each(function() { item = $( this ); return item.offset().top - base + height > 0; }); this.focus( event, item ); } else { this.focus( event, this.activeMenu.children( ".ui-menu-item" ).first() ); } }, _hasScroll: function() { return this.element.outerHeight() < this.element.prop( "scrollHeight" ); }, select: function( event ) { // TODO: It should never be possible to not have an active item at this // point, but the tests don't trigger mouseenter before click. this.active = this.active || $( event.target ).closest( ".ui-menu-item" ); var ui = { item: this.active }; if ( !this.active.has( ".ui-menu" ).length ) { this.collapseAll( event, true ); } this._trigger( "select", event, ui ); } }); }( jQuery )); jqueryui-1.10.1/development-bundle/AUTHORS.txt0000644000175000017500000002146412107500066020120 0ustar metalmetalAuthors ordered by first contribution A list of current team members is available at http://jqueryui.com/about Paul Bakaus Richard Worth Yehuda Katz Sean Catchpole John Resig Tane Piper Dmitri Gaskin Klaus Hartl Stefan Petre Gilles van den Hoven Micheil Bryan Smith Jörn Zaefferer Marc Grabanski Keith Wood Brandon Aaron Scott González Eduardo Lundgren Aaron Eisenberger Joan Piedra Bruno Basto Remy Sharp Bohdan Ganicky David Bolter Chi Cheng Ca-Phun Ung Ariel Flesler Maggie Costello Wachs Scott Jehl Todd Parker Andrew Powell Brant Burnett Douglas Neiner Paul Irish Ralph Whitbeck Thibault Duplessis Dominique Vincent Jack Hsu Adam Sontag Carl Fürstenberg Kevin Dalman Alberto Fernández Capel Jacek Jędrzejewski (http://jacek.jedrzejewski.name) Ting Kuei Samuel Cormier-Iijima Jon Palmer Ben Hollis Justin MacCarthy Eyal Kobrigo Tiago Freire Diego Tres Holger Rüprich Ziling Zhao Mike Alsup Robson Braga Araujo Pierre-Henri Ausseil Christopher McCulloh Andrew Newcomb Lim Chee Aun Jorge Barreiro Daniel Steigerwald John Firebaugh John Enters Andrey Kapitcyn Dmitry Petrov Eric Hynds Chairat Sunthornwiphat Josh Varner Stéphane Raimbault Jay Merrifield J. Ryan Stinnett Peter Heiberg Alex Dovenmuehle Jamie Gegerson Raymond Schwartz Phillip Barnes Kyle Wilkinson Khaled AlHourani Marian Rudzynski Jean-Francois Remy Doug Blood Filippo Cavallarin Heiko Henning Aliaksandr Rahalevich Mario Visic Xavi Ramirez Max Schnur Saji Nediyanchath Corey Frang Aaron Peterson Ivan Peters Mohamed Cherif Bouchelaghem Marcos Sousa Michael DellaNoce George Marshall Tobias Brunner Martin Solli David Petersen Dan Heberden William Kevin Manire Gilmore Davidson Michael Wu Adam Parod Guillaume Gautreau Marcel Toele Dan Streetman Matt Hoskins Giovanni Giacobbi Kyle Florence Pavol Hluchý Hans Hillen Mark Johnson Trey Hunner Shane Whittet Edward A Faulkner Adam Baratz Kato Kazuyoshi Eike Send Kris Borchers Eddie Monge Israel Tsadok Carson McDonald Jason Davies Garrison Locke David Murdoch Benjamin Scott Boyle Jesse Baird Jonathan Vingiano Dylan Just Hiroshi Tomita Glenn Goodrich Tarafder Ashek-E-Elahi Ryan Neufeld Marc Neuwirth Philip Graham Benjamin Sterling Wesley Walser Kouhei Sutou Karl Kirch Chris Kelly Jay Oster Alexander Polomoshnov David Leal Igor Milla Dave Methvin Florian Gutmann Marwan Al Jubeh Milan Broum Sebastian Sauer Gaëtan Muller Michel Weimerskirch William Griffiths Stojce Slavkovski David Soms David De Sloovere Michael P. Jung Shannon Pekary Matthew Edward Hutton James Khoury Rob Loach Alberto Monteiro Alex Rhea Krzysztof Rosiński Ryan Olton Genie <386@mail.com> Rick Waldron Ian Simpson Lev Kitsis Ted VanToll Justin Domnitz Douglas Cerna Bert ter Heide Jasvir Nagra Petr Hromadko Harri Kilpiö Lado Lomidze Amir E. Aharoni Simon Sattes Jo Liss Guntupalli Karunakar Shahyar Ghobadpour Lukasz Lipinski Timo Tijhof Jason Moon Martin Frost Eneko Illarramendi EungJun Yi Courtland Allen Viktar Varvanovich Danny Trunk Pavel Stetina Michael Stay Steven Roussey Michael Hollis Lee Rowlands Timmy Willison Karl Swedberg Baoju Yuan Maciej Mroziński Luis Dalmolin Mark Aaron Shirley Martin Hoch Jiayi Yang Philipp Benjamin Köppchen Sindre Sorhus Bernhard Sirlinger Jared A. Scheel Rafael Xavier de Souza John Chen Dale Kocian Mike Sherov Andrew Couch Marc-Andre Lafortune Nate Eagle David Souther Mathias Stenbom Avinash R Sergey Kartashov Ethan Romba Cory Gackenheimer Juan Pablo Kaniefsky Roman Salnikov Anika Henke Samuel Bovée Fabrício Matté Viktor Kojouharov Pawel Maruszczyk Pavel Selitskas Bjørn Johansen Matthieu Penant Dominic Barnes David Sullivan Thomas Jaggi Vahid Sohrabloo Travis Carden Bruno M. Custódio jqueryui-1.10.1/development-bundle/ui.effect-fade.jquery.json0000644000175000017500000000264312107500066023206 0ustar metalmetal{ "name": "ui.effect-fade", "title": "jQuery UI Fade Effect", "description": "Fades an element.", "keywords": [ "ui", "fade", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/fade-effect/", "demo": "http://jqueryui.com/fade-effect/", "docs": "http://api.jqueryui.com/fade-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/MIT-LICENSE.txt0000644000175000017500000000247012107500066020500 0ustar metalmetalCopyright 2013 jQuery Foundation and other contributors, http://jqueryui.com/ This software consists of voluntary contributions made by many individuals (AUTHORS.txt, http://jqueryui.com/about) For exact contribution history, see the revision history and logs, available at http://jquery-ui.googlecode.com/svn/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. jqueryui-1.10.1/development-bundle/README.md0000644000175000017500000000657512107500066017517 0ustar metalmetal[jQuery UI](http://jqueryui.com/) - Interactions and Widgets for the web ================================ jQuery UI provides interactions like Drag and Drop and widgets like Autocomplete, Tabs and Slider and makes these as easy to use as jQuery itself. If you want to use jQuery UI, go to [jqueryui.com](http://jqueryui.com) to get started. Or visit the [Using jQuery UI Forum](http://forum.jquery.com/using-jquery-ui) for discussions and questions. If you are interested in helping develop jQuery UI, you are in the right place. To discuss development with team members and the community, visit the [Developing jQuery UI Forum](http://forum.jquery.com/developing-jquery-ui) or in #jquery on irc.freednode.net. For contributors --- If you want to help and provide a patch for a bugfix or new feature, please take a few minutes and look at [our Getting Involved guide](http://wiki.jqueryui.com/w/page/35263114/Getting-Involved). In particular check out the [Coding standards](http://wiki.jqueryui.com/w/page/12137737/Coding-standards) and [Commit Message Style Guide](http://wiki.jqueryui.com/w/page/25941597/Commit-Message-Style-Guide). In general, fork the project, create a branch for a specific change and send a pull request for that branch. Don't mix unrelated changes. You can use the commit message as the description for the pull request. Running the Unit Tests --- Run the unit tests with a local server that supports PHP. No database is required. Pre-configured php local servers are available for Windows and Mac. Here are some options: - Windows: [WAMP download](http://www.wampserver.com/en/) - Mac: [MAMP download](http://www.mamp.info/en/index.html) - Linux: [Setting up LAMP](https://www.linux.com/learn/tutorials/288158-easy-lamp-server-installation) - [Mongoose (most platforms)](http://code.google.com/p/mongoose/) Building jQuery UI --- jQuery UI uses the [grunt](http://github.com/cowboy/grunt) build system. Building jQuery UI requires node.js and a command line zip program. Install grunt. `npm install grunt -g` Clone the jQuery UI git repo. `git clone git://github.com/jquery/jquery-ui.git` `cd jquery-ui` Install node modules. `npm install` Run grunt. `grunt build` There are many other tasks that can be run through grunt. For a list of all tasks: `grunt --help` For committers --- When looking at pull requests, first check for [proper commit messages](http://wiki.jqueryui.com/w/page/12137724/Bug-Fixing-Guide). Do not merge pull requests directly through GitHub's interface. Most pull requests are a single commit; cherry-picking will avoid creating a merge commit. It's also common for contributors to make minor fixes in an additional one or two commits. These should be squashed before landing in master. **Make sure the author has a valid name and email address associated with the commit.** Fetch the remote first: git fetch [their-fork.git] [their-branch] Then cherry-pick the commit(s): git cherry-pick [sha-of-commit] If you need to edit the commit message: git cherry-pick -e [sha-of-commit] If you need to edit the changes: git cherry-pick -n [sha-of-commit] # make changes git commit --author="[author-name-and-email]" If it should go to the stable brach, cherry-pick it to stable: git checkout 1-8-stable git cherry-pick -x [sha-of-commit-from-master] *NOTE: Do not cherry-pick into 1-8-stable until you have pushed the commit from master upstream.* jqueryui-1.10.1/development-bundle/ui.sortable.jquery.json0000644000175000017500000000274412107500066022672 0ustar metalmetal{ "name": "ui.sortable", "title": "jQuery UI Sortable", "description": "Enables items in a list to be sorted using the mouse.", "keywords": [ "ui", "sortable", "sort", "list" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/sortable/", "demo": "http://jqueryui.com/sortable/", "docs": "http://api.jqueryui.com/sortable/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.mouse": "1.10.1" }, "category": "interaction" } jqueryui-1.10.1/development-bundle/ui.slider.jquery.json0000644000175000017500000000276112107500066022340 0ustar metalmetal{ "name": "ui.slider", "title": "jQuery UI Slider", "description": "Displays a flexible slider with ranges and accessibility via keyboard.", "keywords": [ "ui", "slider", "form", "number", "range" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/slider/", "demo": "http://jqueryui.com/slider/", "docs": "http://api.jqueryui.com/slider/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1", "ui.mouse": "1.10.1" }, "category": "widget" } jqueryui-1.10.1/development-bundle/ui.effect-clip.jquery.json0000644000175000017500000000267612107500066023244 0ustar metalmetal{ "name": "ui.effect-clip", "title": "jQuery UI Clip Effect", "description": "Clips the element on and off like an old TV.", "keywords": [ "ui", "clip", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/clip-effect/", "demo": "http://jqueryui.com/clip-effect/", "docs": "http://api.jqueryui.com/clip-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.effect-slide.jquery.json0000644000175000017500000000270512107500066023406 0ustar metalmetal{ "name": "ui.effect-slide", "title": "jQuery UI Slide Effect", "description": "Slides an element in and out of the viewport.", "keywords": [ "ui", "slide", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/slide-effect/", "demo": "http://jqueryui.com/slide-effect/", "docs": "http://api.jqueryui.com/slide-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.effect-scale.jquery.json0000644000175000017500000000275512107500066023402 0ustar metalmetal{ "name": "ui.effect-scale", "title": "jQuery UI Scale Effect", "description": "Grows or shrinks an element and its content. Restores an elemnt to its original size.", "keywords": [ "ui", "scale", "effect", "show", "hide" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/scale-effect/", "demo": "http://jqueryui.com/scale-effect/", "docs": "http://api.jqueryui.com/scale-effect/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.effect": "1.10.1" }, "category": "effect" } jqueryui-1.10.1/development-bundle/ui.tabs.jquery.json0000644000175000017500000000272712107500066022011 0ustar metalmetal{ "name": "ui.tabs", "title": "jQuery UI Tabs", "description": "Transforms a set of container elements into a tab structure.", "keywords": [ "ui", "tabs", "navigation", "panel", "collapse", "expand" ], "version": "1.10.1", "author": { "name": "jQuery Foundation and other contributors", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/AUTHORS.txt" }, "maintainers": [ { "name": "Scott González", "email": "scott.gonzalez@gmail.com", "url": "http://scottgonzalez.com" }, { "name": "Jörn Zaefferer", "email": "joern.zaefferer@gmail.com", "url": "http://bassistance.de" }, { "name": "Kris Borchers", "email": "kris.borchers@gmail.com", "url": "http://krisborchers.com" }, { "name": "Corey Frang", "email": "gnarf37@gmail.com", "url": "http://gnarf.net" }, { "name": "Mike Sherov", "email": "mike.sherov@gmail.com", "url": "http://mike.sherov.com" }, { "name": "TJ VanToll", "email": "tj.vantoll@gmail.com", "url": "http://tjvantoll.com" } ], "licenses": [ { "type": "MIT", "url": "https://github.com/jquery/jquery-ui/blob/1.10.1/MIT-LICENSE.txt" } ], "bugs": "http://bugs.jqueryui.com/", "homepage": "http://jqueryui.com/tabs/", "demo": "http://jqueryui.com/tabs/", "docs": "http://api.jqueryui.com/tabs/", "download": "http://jqueryui.com/download/", "dependencies": { "jquery": ">=1.6", "ui.core": "1.10.1", "ui.widget": "1.10.1" }, "category": "widget" }