[Pkg-javascript-commits] [SCM] jqueryui branch, master, updated. debian/1.7.1-1-38-gaaa5774

Marcelo Jorge Vieira metal at alucinados.com
Mon May 9 22:21:04 UTC 2011


The following commit has been merged in the master branch:
commit d3e821747b89c079a8f323e42f16be68f8f1ca14
Author: Marcelo Jorge Vieira <metal at alucinados.com>
Date:   Mon May 9 16:11:26 2011 -0300

    Imported Upstream version 1.8.12+dfsg

diff --git a/css/smoothness/jquery-ui-1.8.custom.css b/css/smoothness/jquery-ui-1.8.12.custom.css
similarity index 74%
rename from css/smoothness/jquery-ui-1.8.custom.css
rename to css/smoothness/jquery-ui-1.8.12.custom.css
index a5e31ab..c85aaba 100644
--- a/css/smoothness/jquery-ui-1.8.custom.css
+++ b/css/smoothness/jquery-ui-1.8.12.custom.css
@@ -1,13 +1,17 @@
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
 
 /* Layout helpers
 ----------------------------------*/
 .ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,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:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
 .ui-helper-clearfix { display: inline-block; }
@@ -38,11 +42,16 @@
 
 
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
 
 
 /* Component containers
@@ -57,24 +66,24 @@
 
 /* Interaction states
 ----------------------------------*/
-.ui-state-default, .ui-widget-content .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, .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-state-focus, .ui-widget-content .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, .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 { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .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, .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; }
 .ui-widget :active { outline: none; }
 
 /* Interaction Cues
 ----------------------------------*/
-.ui-state-highlight, .ui-widget-content .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 { color: #363636; }
-.ui-state-error, .ui-widget-content .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 { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.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; }
 
 /* Icons
 ----------------------------------*/
@@ -283,10 +292,22 @@
 
 /* Overlays */
 .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;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: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable
-----------------------------------*/
+.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: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
 .ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;
+	/* http://bugs.jqueryui.com/ticket/7233
+	 - Resizable: resizable handles fail to work in IE if transparent and content overlaps
+	*/
+	background-image:url(data:);
+}
 .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; }
@@ -295,8 +316,27 @@
 .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;}/* Accordion
-----------------------------------*/
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
 .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
 .ui-accordion .ui-accordion-li-fix { display: inline; }
 .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
@@ -304,21 +344,36 @@
 .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete
-----------------------------------*/
+.ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
 .ui-autocomplete { position: absolute; cursor: default; }	
-.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
 
-/* Menu
-----------------------------------*/
+/*
+ * jQuery UI Menu 1.8.12
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
 .ui-menu {
 	list-style:none;
 	padding: 2px;
 	margin: 0;
 	display:block;
+	float: left;
 }
 .ui-menu .ui-menu {
 	margin-top: -3px;
@@ -326,6 +381,9 @@
 .ui-menu .ui-menu-item {
 	margin:0;
 	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
 	width: 100%;
 }
 .ui-menu .ui-menu-item a {
@@ -337,11 +395,18 @@
 }
 .ui-menu .ui-menu-item a.ui-state-hover,
 .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
 	margin: -1px;
 }
-/* Button
-----------------------------------*/
-
+/*
+ * jQuery UI Button 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
 .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
@@ -352,15 +417,17 @@ button.ui-button-icons-only { width: 3.7em; }
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
 .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 .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.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 .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, .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 .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-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; }
 .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
 
 /*button sets*/
@@ -369,26 +436,36 @@ input.ui-button { padding: .4em 1em; }
 
 /* workarounds */
 button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-
-
-
-
-
-/* Dialog
-----------------------------------*/
+/*
+ * jQuery UI Dialog 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
 .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
 .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
 .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
 .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
 .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.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: 14px; height: 14px; right: 3px; bottom: 3px; }
 .ui-draggable .ui-dialog-titlebar { cursor: move; }
-/* Slider
-----------------------------------*/
+/*
+ * jQuery UI Slider 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/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; }
@@ -403,8 +480,15 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .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; }/* Tabs
-----------------------------------*/
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
 .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
 .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: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
@@ -412,11 +496,18 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
 .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
 .ui-tabs .ui-tabs-hide { display: none !important; }
-/* Datepicker
-----------------------------------*/
-.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+/*
+ * jQuery UI Datepicker 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.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; }
@@ -474,7 +565,14 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
     left: -4px; /*must have*/
     width: 200px; /*must have*/
     height: 200px; /*must have*/
-}/* Progressbar
-----------------------------------*/
+}/*
+ * jQuery UI Progressbar 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
 .ui-progressbar { height:2em; text-align: left; }
 .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/development-bundle/AUTHORS.txt b/development-bundle/AUTHORS.txt
index 637175b..b216865 100644
--- a/development-bundle/AUTHORS.txt
+++ b/development-bundle/AUTHORS.txt
@@ -1,8 +1,8 @@
-jQuery UI Authors (http://ui.jquery.com/about)
+jQuery UI Authors (http://jqueryui.com/about)
 
 This software consists of voluntary contributions made by many
 individuals. For exact contribution history, see the revision history
-and logs, available at http://jquery-ui.googlecode.com/svn/
+and logs, available at http://github.com/jquery/jquery-ui
 
 Brandon Aaron
 Paul Bakaus (paulbakaus.com)
diff --git a/development-bundle/MIT-LICENSE.txt b/development-bundle/MIT-LICENSE.txt
index 2585de2..be22680 100644
--- a/development-bundle/MIT-LICENSE.txt
+++ b/development-bundle/MIT-LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright (c) 2010 Paul Bakaus, http://jqueryui.com/
+Copyright (c) 2011 Paul Bakaus, http://jqueryui.com/
 
 This software consists of voluntary contributions made by many
 individuals (AUTHORS.txt, http://jqueryui.com/about) For exact
diff --git a/development-bundle/demos/accordion/collapsible.html b/development-bundle/demos/accordion/collapsible.html
index 6618baf..f77fdc0 100644
--- a/development-bundle/demos/accordion/collapsible.html
+++ b/development-bundle/demos/accordion/collapsible.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Accordion - Collapse content</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#accordion").accordion({
+		$( "#accordion" ).accordion({
 			collapsible: true
 		});
 	});
@@ -50,10 +50,7 @@
 
 
 <div class="demo-description">
-
 <p>By default, accordions always keep one section open. To allow for all sections to be be collapsible, set the <code>collapsible</code> option to true. Click on the currently open section to collapse its content pane.</p>
-
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/accordion/custom-icons.html b/development-bundle/demos/accordion/custom-icons.html
index c81fb31..390b5dd 100644
--- a/development-bundle/demos/accordion/custom-icons.html
+++ b/development-bundle/demos/accordion/custom-icons.html
@@ -1,28 +1,28 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Accordion - Customize icons</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
 		var icons = {
 			header: "ui-icon-circle-arrow-e",
 			headerSelected: "ui-icon-circle-arrow-s"
 		};
-		$("#accordion").accordion({
+		$( "#accordion" ).accordion({
 			icons: icons
 		});
-		$("#toggle").button().toggle(function() {
-			$("#accordion").accordion("option", "icons", false);
+		$( "#toggle" ).button().toggle(function() {
+			$( "#accordion" ).accordion( "option", "icons", false );
 		}, function() {
-			$("#accordion").accordion("option", "icons", icons);
+			$( "#accordion" ).accordion( "option", "icons", icons );
 		});
 	});
 	</script>
@@ -62,9 +62,7 @@
 
 
 <div class="demo-description">
-
 <p>Customize the header icons with the <code>icons</code> option, which accepts classes for the header's default and selected (open) state.  Use any class from the UI CSS framework, or create custom classes with background images.</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/accordion/default.html b/development-bundle/demos/accordion/default.html
index 2eb93dd..e24a586 100644
--- a/development-bundle/demos/accordion/default.html
+++ b/development-bundle/demos/accordion/default.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Accordion - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#accordion").accordion();
+		$( "#accordion" ).accordion();
 	});
 	</script>
 </head>
diff --git a/development-bundle/demos/accordion/fillspace.html b/development-bundle/demos/accordion/fillspace.html
index 7750782..ffbf829 100644
--- a/development-bundle/demos/accordion/fillspace.html
+++ b/development-bundle/demos/accordion/fillspace.html
@@ -1,28 +1,28 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Accordion - Fill space</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#accordion").accordion({
+		$( "#accordion" ).accordion({
 			fillSpace: true
 		});
 	});
 	$(function() {
-		$("#accordionResizer").resizable({
+		$( "#accordionResizer" ).resizable({
+			minHeight: 140,
 			resize: function() {
-				$("#accordion").accordion("resize");
-			},
-			minHeight: 140
+				$( "#accordion" ).accordion( "resize" );
+			}
 		});
 	});
 	</script>
@@ -69,11 +69,8 @@
 
 
 <div class="demo-description">
-
 <p>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 boolean <code>fillSpace</code> option to true, and the script will automatically set the dimensions of the accordion to the height of its parent container.  The accordion will also resize with its container if the container is <code>resizable</code>.</p>
-
 </div><!-- End demo-description -->
 
-
 </body>
 </html>
diff --git a/development-bundle/demos/accordion/default.html b/development-bundle/demos/accordion/hoverintent.html
similarity index 57%
copy from development-bundle/demos/accordion/default.html
copy to development-bundle/demos/accordion/hoverintent.html
index 2eb93dd..570be75 100644
--- a/development-bundle/demos/accordion/default.html
+++ b/development-bundle/demos/accordion/hoverintent.html
@@ -1,18 +1,67 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Accordion - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Accordion - Open on hoverintent</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#accordion").accordion();
+		$("#accordion").accordion({
+			event: "click hoverintent"
+		});
 	});
+	
+	var cfg = ($.hoverintent = {
+		sensitivity: 7,
+		interval: 100
+	});
+
+	$.event.special.hoverintent = {
+		setup: function() {
+			$( this ).bind( "mouseover", jQuery.event.special.hoverintent.handler );
+		},
+		teardown: function() {
+			$( this ).unbind( "mouseover", jQuery.event.special.hoverintent.handler );
+		},
+		handler: function( event ) {
+			event.type = "hoverintent";
+			var self = this,
+				args = arguments,
+				target = $( event.target ),
+				cX, cY, pX, pY;
+			
+			function track( event ) {
+				cX = event.pageX;
+				cY = event.pageY;
+			};
+			pX = event.pageX;
+			pY = event.pageY;
+			function clear() {
+				target
+					.unbind( "mousemove", track )
+					.unbind( "mouseout", arguments.callee );
+				clearTimeout( timeout );
+			}
+			function handler() {
+				if ( ( Math.abs( pX - cX ) + Math.abs( pY - cY ) ) < cfg.sensitivity ) {
+					clear();
+					jQuery.event.handle.apply( self, args );
+				} else {
+					pX = cX;
+					pY = cY;
+					timeout = setTimeout( handler, cfg.interval );
+				}
+			}
+			var timeout = setTimeout( handler, cfg.interval );
+			target.mousemove( track ).mouseout( clear );
+			return true;
+		}
+	};
 	</script>
 </head>
 <body>
diff --git a/development-bundle/demos/accordion/index.html b/development-bundle/demos/accordion/index.html
index de37511..d107dd8 100644
--- a/development-bundle/demos/accordion/index.html
+++ b/development-bundle/demos/accordion/index.html
@@ -1,22 +1,25 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Accordion Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
-	<div class="demos-nav">
-		<h4>Examples</h4>
-		<ul>
-			<li class="demo-config-on"><a href="default.html">Default functionality</a></li>
-			<li><a href="fillspace.html">Fill space</a></li>
-			<li><a href="no-auto-height.html">No auto height</a></li>
-			<li><a href="collapsible.html">Collapse content</a></li>
-			<li><a href="mouseover.html">Open on mouseover</a></li>
-			<li><a href="custom-icons.html">Customize icons</a></li>
-			<li><a href="sortable.html">Sortable</a></li>
-		</ul>
-	</div>
+
+<div class="demos-nav">
+	<h4>Examples</h4>
+	<ul>
+		<li class="demo-config-on"><a href="default.html">Default functionality</a></li>
+		<li><a href="fillspace.html">Fill space</a></li>
+		<li><a href="no-auto-height.html">No auto height</a></li>
+		<li><a href="collapsible.html">Collapse content</a></li>
+		<li><a href="mouseover.html">Open on mouseover</a></li>
+		<li><a href="hoverintent.html">Open on hoverintent</a></li>
+		<li><a href="custom-icons.html">Customize icons</a></li>
+		<li><a href="sortable.html">Sortable</a></li>
+	</ul>
+</div>
+
 </body>
 </html>
diff --git a/development-bundle/demos/accordion/mouseover.html b/development-bundle/demos/accordion/mouseover.html
index 374fc75..d2cc7db 100644
--- a/development-bundle/demos/accordion/mouseover.html
+++ b/development-bundle/demos/accordion/mouseover.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Accordion - Open on mouseover</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#accordion").accordion({
+		$( "#accordion" ).accordion({
 			event: "mouseover"
 		});
 	});
@@ -50,9 +50,7 @@
 
 
 <div class="demo-description">
-
 <p>Toggle sections open/closed on mouseover with the <code>event</code> option. The default value for event is "click."</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/accordion/no-auto-height.html b/development-bundle/demos/accordion/no-auto-height.html
index 5cd89c6..2048692 100644
--- a/development-bundle/demos/accordion/no-auto-height.html
+++ b/development-bundle/demos/accordion/no-auto-height.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Accordion - No Auto Height</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Accordion - No auto height</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#accordion").accordion({
+		$( "#accordion" ).accordion({
 			autoHeight: false,
 			navigation: true
 		});
@@ -52,11 +52,8 @@
 
 
 <div class="demo-description">
-
 <p>Setting <code>autoHeight: false</code> allows to accordion panels to keep their native height.</p>
-
 <p>In addition, the <code>navigation</code> option is enabled, opening the panel based on the current location, eg. no-auto-height.html#panel2 would open the second panel on page load. It also finds anchors within the content, so #othercontent will open the third section, as it contains a link with that href.</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/accordion/sortable.html b/development-bundle/demos/accordion/sortable.html
index 8048729..1bfce6f 100644
--- a/development-bundle/demos/accordion/sortable.html
+++ b/development-bundle/demos/accordion/sortable.html
@@ -1,35 +1,37 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Accordion - Sortable</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.accordion.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
 		var stop = false;
-		$("#accordion h3").click(function(event) {
-			if (stop) {
+		$( "#accordion h3" ).click(function( event ) {
+			if ( stop ) {
 				event.stopImmediatePropagation();
 				event.preventDefault();
 				stop = false;
 			}
 		});
-		$("#accordion").accordion({
-			header: "> div > h3"
-		}).sortable({
-			axis: "y",
-			handle: "h3",
-			stop: function(event, ui) {
-				stop = true;
-			}
-		});
+		$( "#accordion" )
+			.accordion({
+				header: "> div > h3"
+			})
+			.sortable({
+				axis: "y",
+				handle: "h3",
+				stop: function() {
+					stop = true;
+				}
+			});
 	});
 	</script>
 </head>
@@ -74,9 +76,7 @@
 
 
 <div class="demo-description">
-
 <p>Drag the header to re-order panels.</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/addClass/default.html b/development-bundle/demos/addClass/default.html
index 1bb33b3..73502d6 100644
--- a/development-bundle/demos/addClass/default.html
+++ b/development-bundle/demos/addClass/default.html
@@ -1,29 +1,29 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Effects - addClass Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; position: relative;}
+	<meta charset="utf-8">
+	<title>jQuery UI Effects - addClass demo</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+		.toggler { width: 500px; height: 200px; position: relative; }
 		#button { padding: .5em 1em; text-decoration: none; }
 		#effect { width: 240px;  padding: 1em;  font-size: 1.2em; border: 1px solid #000; background: #eee; color: #333; }
-		#effect.newClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
+		.newClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#button").click(function() {
-			$('#effect').addClass('newClass', 1000, callback);
+		$( "#button" ).click(function() {
+			$( "#effect" ).addClass( "newClass", 1000, callback );
 			return false;
 		});
-		
-		function callback(){
-			setTimeout(function(){
-				$('#effect').removeClass('newClass');
-			}, 1500);
+
+		function callback() {
+			setTimeout(function() {
+				$( "#effect" ).removeClass( "newClass" );
+			}, 1500 );
 		}
 	});
 	</script>
@@ -42,10 +42,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>This demo adds a class which animates: text-indent, letter-spacing, width, height, padding, margin, and font-size.</p>
 
+<div class="demo-description">
+<p>This demo adds a class which animates: text-indent, letter-spacing, width, height, padding, margin, and font-size.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/addClass/index.html b/development-bundle/demos/addClass/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/addClass/index.html
+++ b/development-bundle/demos/addClass/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/animate/default.html b/development-bundle/demos/animate/default.html
index 21afff7..284f0fe 100644
--- a/development-bundle/demos/animate/default.html
+++ b/development-bundle/demos/animate/default.html
@@ -1,26 +1,34 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Effects - Animate Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; position: relative;}
+	<meta charset="utf-8">
+	<title>jQuery UI Effects - Animate demo</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+		.toggler { width: 500px; height: 200px; position: relative; }
 		#button { padding: .5em 1em; text-decoration: none; }
 		#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; background: #fff; }
 		#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#button").toggle(
+		$( "#button" ).toggle(
 			function() {
-				$("#effect").animate({backgroundColor: '#aa0000', color: '#fff', width: 500}, 1000);
+				$( "#effect" ).animate({
+					backgroundColor: "#aa0000",
+					color: "#fff",
+					width: 500
+				}, 1000 );
 			},
 			function() {
-				$("#effect").animate({backgroundColor: '#fff', color: '#000', width: 240}, 1000);
+				$( "#effect" ).animate({
+					backgroundColor: "#fff",
+					color: "#000",
+					width: 240
+				}, 1000 );
 			}
 		);
 	});
@@ -43,10 +51,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to preview the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to preview the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/animate/index.html b/development-bundle/demos/animate/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/animate/index.html
+++ b/development-bundle/demos/animate/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/autocomplete/categories.html b/development-bundle/demos/autocomplete/categories.html
index 2340b32..28f3ef1 100644
--- a/development-bundle/demos/autocomplete/categories.html
+++ b/development-bundle/demos/autocomplete/categories.html
@@ -1,48 +1,25 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Custom Data Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Categories</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	.ui-autocomplete-category {
-		font-weight:bold;
-		padding:.2em .4em;
-		margin:.8em 0 .2em;
-		line-height:1.5;
+		font-weight: bold;
+		padding: .2em .4em;
+		margin: .8em 0 .2em;
+		line-height: 1.5;
 	}
 	</style>
-	<script type="text/javascript">
-	$.extend( $.ui.menu.prototype, {
-		next: function() {
-			this.move("next", ".ui-menu-item:first");
-		},
-
-		previous: function() {
-			this.move("prev", ".ui-menu-item:last");
-		},
-
-		move: function(direction, edge) {
-			if (!this.active) {
-				this.activate(this.element.children(edge));
-				return;
-			}
-			var next = this.active[direction + "All"]('.ui-menu-item').eq( 0 );
-			if (next.length) {
-				this.activate(next);
-			} else {
-				this.activate(this.element.children(edge));
-			}
-		}
-	});
-
-	$.widget("custom.catcomplete", $.ui.autocomplete, {
+	<script>
+	$.widget( "custom.catcomplete", $.ui.autocomplete, {
 		_renderMenu: function( ul, items ) {
 			var self = this,
 				currentCategory = "";
@@ -56,7 +33,7 @@
 		}
 	});
 	</script>
-	<script type="text/javascript">
+	<script>
 	$(function() {
 		var data = [
 			{ label: "anders", category: "" },
@@ -70,7 +47,7 @@
 			{ label: "andreas johnson", category: "People" }
 		];
 		
-		$('#search').catcomplete({
+		$( "#search" ).catcomplete({
 			delay: 0,
 			source: data
 		});
@@ -84,10 +61,10 @@
 	<input id="search" />
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-	A categorized search result. Try typing "a" or "n".
-</p>
+<p>A categorized search result. Try typing "a" or "n".</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/autocomplete/combobox.html b/development-bundle/demos/autocomplete/combobox.html
index 6e403dd..5bef5b1 100644
--- a/development-bundle/demos/autocomplete/combobox.html
+++ b/development-bundle/demos/autocomplete/combobox.html
@@ -1,93 +1,131 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Combobox Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
-	(function($) {
-		$.widget("ui.combobox", {
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Combobox</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-button { margin-left: -1px; }
+	.ui-button-icon-only .ui-button-text { padding: 0.35em; } 
+	.ui-autocomplete-input { margin: 0; padding: 0.48em 0 0.47em 0.45em; }
+	</style>
+	<script>
+	(function( $ ) {
+		$.widget( "ui.combobox", {
 			_create: function() {
-				var self = this;
-				var select = this.element.hide();
-				var input = $("<input>")
-					.insertAfter(select)
+				var self = this,
+					select = this.element.hide(),
+					selected = select.children( ":selected" ),
+					value = selected.val() ? selected.text() : "";
+				var input = this.input = $( "<input>" )
+					.insertAfter( select )
+					.val( value )
 					.autocomplete({
-						source: function(request, response) {
-							var matcher = new RegExp(request.term, "i");
-							response(select.children("option").map(function() {
-								var text = $(this).text();
-								if (!request.term || matcher.test(text))
+						delay: 0,
+						minLength: 0,
+						source: function( request, response ) {
+							var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
+							response( select.children( "option" ).map(function() {
+								var text = $( this ).text();
+								if ( this.value && ( !request.term || matcher.test(text) ) )
 									return {
-										id: $(this).val(),
-										label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>"),
-										value: text
+										label: text.replace(
+											new RegExp(
+												"(?![^&;]+;)(?!<[^<>]*)(" +
+												$.ui.autocomplete.escapeRegex(request.term) +
+												")(?![^<>]*>)(?![^&;]+;)", "gi"
+											), "<strong>$1</strong>" ),
+										value: text,
+										option: this
 									};
-							}));
+							}) );
 						},
-						delay: 0,
-						select: function(e, ui) {
-							if (!ui.item) {
-								// remove invalid value, as it didn't match anything
-								$(this).val("");
-								return false;
-							}
-							$(this).focus();
-							select.val(ui.item.id);
-							self._trigger("selected", null, {
-								item: select.find("[value='" + ui.item.id + "']")
+						select: function( event, ui ) {
+							ui.item.option.selected = true;
+							self._trigger( "selected", event, {
+								item: ui.item.option
 							});
-							
 						},
-						minLength: 0
+						change: function( event, ui ) {
+							if ( !ui.item ) {
+								var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" ),
+									valid = false;
+								select.children( "option" ).each(function() {
+									if ( $( this ).text().match( matcher ) ) {
+										this.selected = valid = true;
+										return false;
+									}
+								});
+								if ( !valid ) {
+									// remove invalid value, as it didn't match anything
+									$( this ).val( "" );
+									select.val( "" );
+									input.data( "autocomplete" ).term = "";
+									return false;
+								}
+							}
+						}
+					})
+					.addClass( "ui-widget ui-widget-content ui-corner-left" );
+
+				input.data( "autocomplete" )._renderItem = function( ul, item ) {
+					return $( "<li></li>" )
+						.data( "item.autocomplete", item )
+						.append( "<a>" + item.label + "</a>" )
+						.appendTo( ul );
+				};
+
+				this.button = $( "<button type='button'> </button>" )
+					.attr( "tabIndex", -1 )
+					.attr( "title", "Show All Items" )
+					.insertAfter( input )
+					.button({
+						icons: {
+							primary: "ui-icon-triangle-1-s"
+						},
+						text: false
 					})
-					.addClass("ui-widget ui-widget-content ui-corner-left");
-				$("<button> </button>")
-				.insertAfter(input)
-				.button({
-					icons: {
-						primary: "ui-icon-triangle-1-s"
-					},
-					text: false
-				}).removeClass("ui-corner-all")
-				.addClass("ui-corner-right ui-button-icon")
-				.position({
-					my: "left center",
-					at: "right center",
-					of: input,
-					offset: "-1 0"
-				}).css("top", "")
-				.click(function() {
-					// close if already visible
-					if (input.autocomplete("widget").is(":visible")) {
-						input.autocomplete("close");
-						return;
-					}
-					// pass empty string as value to search for, displaying all results
-					input.autocomplete("search", "");
-					input.focus();
-				});
+					.removeClass( "ui-corner-all" )
+					.addClass( "ui-corner-right ui-button-icon" )
+					.click(function() {
+						// close if already visible
+						if ( input.autocomplete( "widget" ).is( ":visible" ) ) {
+							input.autocomplete( "close" );
+							return;
+						}
+
+						// work around a bug (likely same cause as #5265)
+						$( this ).blur();
+
+						// pass empty string as value to search for, displaying all results
+						input.autocomplete( "search", "" );
+						input.focus();
+					});
+			},
+
+			destroy: function() {
+				this.input.remove();
+				this.button.remove();
+				this.element.show();
+				$.Widget.prototype.destroy.call( this );
 			}
 		});
+	})( jQuery );
 
-	})(jQuery);
-		
 	$(function() {
-		$("select").combobox();
+		$( "#combobox" ).combobox();
+		$( "#toggle" ).click(function() {
+			$( "#combobox" ).toggle();
+		});
 	});
 	</script>
-	<style>
-		/* TODO shouldn't be necessary */
-		.ui-button-icon-only .ui-button-text { padding: 0.35em; } 
-		.ui-autocomplete-input { padding: 0.48em 0 0.47em 0.45em; }
-	</style>
 </head>
 <body>
 	
@@ -95,32 +133,41 @@
 
 <div class="ui-widget">
 	<label>Your preferred programming language: </label>
-	<select>
-		<option value="a">asp</option>
-        <option value="c">c</option>
-        <option value="cpp">c++</option>
-        <option value="cf">coldfusion</option>
-        <option value="g">groovy</option>
-        <option value="h">haskell</option>
-        <option value="j">java</option>
-        <option value="js">javascript</option>
-        <option value="p1">perl</option>
-        <option value="p2">php</option>
-        <option value="p3">python</option>
-        <option value="r">ruby</option>
-        <option value="s">scala</option>
+	<select id="combobox">
+		<option value="">Select one...</option>
+		<option value="ActionScript">ActionScript</option>
+		<option value="AppleScript">AppleScript</option>
+		<option value="Asp">Asp</option>
+		<option value="BASIC">BASIC</option>
+		<option value="C">C</option>
+		<option value="C++">C++</option>
+		<option value="Clojure">Clojure</option>
+		<option value="COBOL">COBOL</option>
+		<option value="ColdFusion">ColdFusion</option>
+		<option value="Erlang">Erlang</option>
+		<option value="Fortran">Fortran</option>
+		<option value="Groovy">Groovy</option>
+		<option value="Haskell">Haskell</option>
+		<option value="Java">Java</option>
+		<option value="JavaScript">JavaScript</option>
+		<option value="Lisp">Lisp</option>
+		<option value="Perl">Perl</option>
+		<option value="PHP">PHP</option>
+		<option value="Python">Python</option>
+		<option value="Ruby">Ruby</option>
+		<option value="Scala">Scala</option>
+		<option value="Scheme">Scheme</option>
 	</select>
 </div>
+<button id="toggle">Show underlying select</button>
 
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-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.
-</p>
-<p>
-The input is read from an existing select-element for progressive enhancement, passed to Autocomplete with a customized source-option.
-</p>
+<p>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.</p>
+<p>The input is read from an existing select-element for progressive enhancement, passed to Autocomplete with a customized source-option.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/autocomplete/custom-data.html b/development-bundle/demos/autocomplete/custom-data.html
index 57598fa..d619a4f 100644
--- a/development-bundle/demos/autocomplete/custom-data.html
+++ b/development-bundle/demos/autocomplete/custom-data.html
@@ -1,16 +1,16 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Custom Data Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Custom data and display</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#project-label {
 		display: block;
 		font-weight: bold;
@@ -26,45 +26,51 @@
 		padding: 0;
 	}
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
 		var projects = [
 			{
-				value: 'jquery',
-				label: 'jQuery',
-				desc: 'the write less, do more, JavaScript library',
-				icon: 'jquery_32x32.png'
+				value: "jquery",
+				label: "jQuery",
+				desc: "the write less, do more, JavaScript library",
+				icon: "jquery_32x32.png"
 			},
 			{
-				value: 'jquery-ui',
-				label: 'jQuery UI',
-				desc: 'the official user interface library for jQuery',
-				icon: 'jqueryui_32x32.png'
+				value: "jquery-ui",
+				label: "jQuery UI",
+				desc: "the official user interface library for jQuery",
+				icon: "jqueryui_32x32.png"
 			},
 			{
-				value: 'sizzlejs',
-				label: 'Sizzle JS',
-				desc: 'a pure-JavaScript CSS selector engine',
-				icon: 'sizzlejs_32x32.png'
+				value: "sizzlejs",
+				label: "Sizzle JS",
+				desc: "a pure-JavaScript CSS selector engine",
+				icon: "sizzlejs_32x32.png"
 			}
 		];
-		
-		$('#project').autocomplete({
+
+		$( "#project" ).autocomplete({
 			minLength: 0,
 			source: projects,
-			focus: function(event, ui) {
-				$('#project').val(ui.item.label);
+			focus: function( event, ui ) {
+				$( "#project" ).val( ui.item.label );
 				return false;
 			},
-			select: function(event, ui) {
-				$('#project').val(ui.item.label);
-				$('#project-id').val(ui.item.value);
-				$('#project-description').html(ui.item.desc);
-				$('#project-icon').attr('src', '../images/' + ui.item.icon);
-				
+			select: function( event, ui ) {
+				$( "#project" ).val( ui.item.label );
+				$( "#project-id" ).val( ui.item.value );
+				$( "#project-description" ).html( ui.item.desc );
+				$( "#project-icon" ).attr( "src", "images/" + ui.item.icon );
+
 				return false;
 			}
-		});
+		})
+		.data( "autocomplete" )._renderItem = function( ul, item ) {
+			return $( "<li></li>" )
+				.data( "item.autocomplete", item )
+				.append( "<a>" + item.label + "<br>" + item.desc + "</a>" )
+				.appendTo( ul );
+		};
 	});
 	</script>
 </head>
@@ -72,19 +78,17 @@
 
 <div class="demo">
 	<div id="project-label">Select a project (type "j" for a start):</div>
-	<img id="project-icon" src="../images/transparent_1x1.png" class="ui-state-default"/>
+	<img id="project-icon" src="images/transparent_1x1.png" class="ui-state-default"/>
 	<input id="project"/>
 	<input type="hidden" id="project-id"/>
 	<p id="project-description"></p>
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-You can use your own custom data formats and displays by simply overriding the default focus and select actions.
-</p>
-<p>
-Try typing "j" to get a list of projects or just press the down arrow.
-</p>
+<p>You can use your own custom data formats and displays by simply overriding the default focus and select actions.</p>
+<p>Try typing "j" to get a list of projects or just press the down arrow.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/autocomplete/default.html b/development-bundle/demos/autocomplete/default.html
index d78b057..16ec893 100644
--- a/development-bundle/demos/autocomplete/default.html
+++ b/development-bundle/demos/autocomplete/default.html
@@ -1,19 +1,42 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Default Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Default functionality</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		var availableTags = ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby", "python", "c", "scala", "groovy", "haskell", "perl"];
-		$("#tags").autocomplete({
+		var availableTags = [
+			"ActionScript",
+			"AppleScript",
+			"Asp",
+			"BASIC",
+			"C",
+			"C++",
+			"Clojure",
+			"COBOL",
+			"ColdFusion",
+			"Erlang",
+			"Fortran",
+			"Groovy",
+			"Haskell",
+			"Java",
+			"JavaScript",
+			"Lisp",
+			"Perl",
+			"PHP",
+			"Python",
+			"Ruby",
+			"Scala",
+			"Scheme"
+		];
+		$( "#tags" ).autocomplete({
 			source: availableTags
 		});
 	});
@@ -30,13 +53,11 @@
 
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-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.
-</p>
-<p>
-The datasource is a simple JavaScript array, provided to the widget using the source-option.
-</p>
+<p>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.</p>
+<p>The datasource is a simple JavaScript array, provided to the widget using the source-option.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/autocomplete/folding.html b/development-bundle/demos/autocomplete/folding.html
new file mode 100644
index 0000000..688db33
--- /dev/null
+++ b/development-bundle/demos/autocomplete/folding.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Accent folding</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
+	$(function() {
+		var names = [ "Jörn Zaefferer", "Scott González", "John Resig" ];
+
+		var accentMap = {
+			"á": "a",
+			"ö": "o"
+		};
+		var normalize = function( term ) {
+			var ret = "";
+			for ( var i = 0; i < term.length; i++ ) {
+				ret += accentMap[ term.charAt(i) ] || term.charAt(i);
+			}
+			return ret;
+		};
+
+		$( "#developer" ).autocomplete({
+			source: function( request, response ) {
+				var matcher = new RegExp( $.ui.autocomplete.escapeRegex( request.term ), "i" );
+				response( $.grep( names, function( value ) {
+					value = value.label || value.value || value;
+					return matcher.test( value ) || matcher.test( normalize( value ) );
+				}) );
+			}
+		});
+	});
+	</script>
+</head>
+<body>
+
+<div class="demo">
+
+<div class="ui-widget">
+	<form>
+	<label for="developer">Developer: </label>
+	<input id="developer" />
+	</form>
+</div>
+
+</div><!-- End demo -->
+
+
+
+<div class="demo-description">
+<p>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.</p>
+<p>Try typing "Jo" to see "John" and "Jörn", then type "Jö" to see only "Jörn".</p>
+</div><!-- End demo-description -->
+
+</body>
+</html>
diff --git a/development-bundle/demos/autocomplete/images/jquery_32x32.png b/development-bundle/demos/autocomplete/images/jquery_32x32.png
new file mode 100644
index 0000000..9312f02
Binary files /dev/null and b/development-bundle/demos/autocomplete/images/jquery_32x32.png differ
diff --git a/development-bundle/demos/autocomplete/images/jqueryui_32x32.png b/development-bundle/demos/autocomplete/images/jqueryui_32x32.png
new file mode 100644
index 0000000..e003d16
Binary files /dev/null and b/development-bundle/demos/autocomplete/images/jqueryui_32x32.png differ
diff --git a/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png b/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png
new file mode 100644
index 0000000..4ce0704
Binary files /dev/null and b/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png differ
diff --git a/development-bundle/demos/autocomplete/images/transparent_1x1.png b/development-bundle/demos/autocomplete/images/transparent_1x1.png
new file mode 100644
index 0000000..c2da5b8
Binary files /dev/null and b/development-bundle/demos/autocomplete/images/transparent_1x1.png differ
diff --git a/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif b/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif
new file mode 100644
index 0000000..084ecb8
Binary files /dev/null and b/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif differ
diff --git a/development-bundle/demos/autocomplete/index.html b/development-bundle/demos/autocomplete/index.html
index 9389b07..77f8019 100644
--- a/development-bundle/demos/autocomplete/index.html
+++ b/development-bundle/demos/autocomplete/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Autocomplete Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 	<div class="demos-nav">
@@ -13,9 +13,14 @@
 			<li><a href="remote.html">Remote datasource</a></li>
 			<li><a href="remote-with-cache.html">Remote with caching</a></li>
 			<li><a href="remote-jsonp.html">Remote JSONP datasource</a></li>
+			<li><a href="maxheight.html">Scrollable results</a></li>
 			<li><a href="combobox.html">Combobox</a></li>
 			<li><a href="custom-data.html">Custom data and display</a></li>
 			<li><a href="xml.html">XML data parsed once</a></li>
+			<li><a href="categories.html">Categories</a></li>
+			<li><a href="folding.html">Accent folding</a></li>
+			<li><a href="multiple.html">Multiple values</a></li>
+			<li><a href="multiple-remote.html">Multiple, remote</a></li>
 		</ul>
 	</div>
 </body>
diff --git a/development-bundle/demos/autocomplete/maxheight.html b/development-bundle/demos/autocomplete/maxheight.html
new file mode 100644
index 0000000..fc0b484
--- /dev/null
+++ b/development-bundle/demos/autocomplete/maxheight.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Scrollable results</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-autocomplete {
+		max-height: 100px;
+		overflow-y: auto;
+		/* prevent horizontal scrollbar */
+		overflow-x: hidden;
+		/* add padding to account for vertical scrollbar */
+		padding-right: 20px;
+	}
+	/* IE 6 doesn't support max-height
+	 * we use height instead, but this forces the menu to always be this tall
+	 */
+	* html .ui-autocomplete {
+		height: 100px;
+	}
+	</style>
+	<script>
+	$(function() {
+		var availableTags = [
+			"ActionScript",
+			"AppleScript",
+			"Asp",
+			"BASIC",
+			"C",
+			"C++",
+			"Clojure",
+			"COBOL",
+			"ColdFusion",
+			"Erlang",
+			"Fortran",
+			"Groovy",
+			"Haskell",
+			"Java",
+			"JavaScript",
+			"Lisp",
+			"Perl",
+			"PHP",
+			"Python",
+			"Ruby",
+			"Scala",
+			"Scheme"
+		];
+		$( "#tags" ).autocomplete({
+			source: availableTags
+		});
+	});
+	</script>
+</head>
+<body>
+	
+<div class="demo">
+
+<div class="ui-widget">
+	<label for="tags">Tags: </label>
+	<input id="tags" />
+</div>
+
+</div><!-- End demo -->
+
+
+
+<div class="demo-description">
+<p>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.</p>
+</div><!-- End demo-description -->
+
+</body>
+</html>
diff --git a/development-bundle/demos/autocomplete/multiple-remote.html b/development-bundle/demos/autocomplete/multiple-remote.html
new file mode 100644
index 0000000..c82188a
--- /dev/null
+++ b/development-bundle/demos/autocomplete/multiple-remote.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Multiple, remote</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+	</style>
+	<script>
+	$(function() {
+		function split( val ) {
+			return val.split( /,\s*/ );
+		}
+		function extractLast( term ) {
+			return split( term ).pop();
+		}
+
+		$( "#birds" )
+			// don't navigate away from the field on tab when selecting an item
+			.bind( "keydown", function( event ) {
+				if ( event.keyCode === $.ui.keyCode.TAB &&
+						$( this ).data( "autocomplete" ).menu.active ) {
+					event.preventDefault();
+				}
+			})
+			.autocomplete({
+				source: function( request, response ) {
+					$.getJSON( "search.php", {
+						term: extractLast( request.term )
+					}, response );
+				},
+				search: function() {
+					// custom minLength
+					var term = extractLast( this.value );
+					if ( term.length < 2 ) {
+						return false;
+					}
+				},
+				focus: function() {
+					// prevent value inserted on focus
+					return false;
+				},
+				select: function( event, ui ) {
+					var terms = split( this.value );
+					// remove the current input
+					terms.pop();
+					// add the selected item
+					terms.push( ui.item.value );
+					// add placeholder to get the comma-and-space at the end
+					terms.push( "" );
+					this.value = terms.join( ", " );
+					return false;
+				}
+			});
+	});
+	</script>
+</head>
+<body>
+
+<div class="demo">
+
+<div class="ui-widget">
+	<label for="birds">Birds: </label>
+	<input id="birds" size="50" />
+</div>
+
+</div><!-- End demo -->
+
+
+
+<div class="demo-description">
+<p>Usage: Enter at least two characters to get bird name suggestions. Select a value to continue adding more names.</p>
+<p>This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field.</p>
+</div><!-- End demo-description -->
+
+</body>
+</html>
diff --git a/development-bundle/demos/autocomplete/multiple.html b/development-bundle/demos/autocomplete/multiple.html
new file mode 100644
index 0000000..954016d
--- /dev/null
+++ b/development-bundle/demos/autocomplete/multiple.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Multiple values</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
+	$(function() {
+		var availableTags = [
+			"ActionScript",
+			"AppleScript",
+			"Asp",
+			"BASIC",
+			"C",
+			"C++",
+			"Clojure",
+			"COBOL",
+			"ColdFusion",
+			"Erlang",
+			"Fortran",
+			"Groovy",
+			"Haskell",
+			"Java",
+			"JavaScript",
+			"Lisp",
+			"Perl",
+			"PHP",
+			"Python",
+			"Ruby",
+			"Scala",
+			"Scheme"
+		];
+		function split( val ) {
+			return val.split( /,\s*/ );
+		}
+		function extractLast( term ) {
+			return split( term ).pop();
+		}
+
+		$( "#tags" )
+			// don't navigate away from the field on tab when selecting an item
+			.bind( "keydown", function( event ) {
+				if ( event.keyCode === $.ui.keyCode.TAB &&
+						$( this ).data( "autocomplete" ).menu.active ) {
+					event.preventDefault();
+				}
+			})
+			.autocomplete({
+				minLength: 0,
+				source: function( request, response ) {
+					// delegate back to autocomplete, but extract the last term
+					response( $.ui.autocomplete.filter(
+						availableTags, extractLast( request.term ) ) );
+				},
+				focus: function() {
+					// prevent value inserted on focus
+					return false;
+				},
+				select: function( event, ui ) {
+					var terms = split( this.value );
+					// remove the current input
+					terms.pop();
+					// add the selected item
+					terms.push( ui.item.value );
+					// add placeholder to get the comma-and-space at the end
+					terms.push( "" );
+					this.value = terms.join( ", " );
+					return false;
+				}
+			});
+	});
+	</script>
+</head>
+<body>
+
+<div class="demo">
+
+<div class="ui-widget">
+	<label for="tags">Tag programming languages: </label>
+	<input id="tags" size="50" />
+</div>
+
+</div><!-- End demo -->
+
+
+
+<div class="demo-description">
+<p>Usage: Type something, eg. "j" to see suggestions for tagging with programming languages. Select a value, then continue typing to add more.</p>
+<p>This is an example showing how to use the source-option along with some events to enable autocompleting multiple values into a single field.</p>
+</div><!-- End demo-description -->
+
+</body>
+</html>
diff --git a/development-bundle/demos/autocomplete/remote-jsonp.html b/development-bundle/demos/autocomplete/remote-jsonp.html
index ab8a600..04b44fd 100644
--- a/development-bundle/demos/autocomplete/remote-jsonp.html
+++ b/development-bundle/demos/autocomplete/remote-jsonp.html
@@ -1,24 +1,28 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Remote JSONP datasource demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Remote JSONP datasource</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+	#city { width: 25em; }
+	</style>
+	<script>
 	$(function() {
-		function log(message) {
-			$("<div/>").text(message).prependTo("#log");
-			$("#log").attr("scrollTop", 0);
+		function log( message ) {
+			$( "<div/>" ).text( message ).prependTo( "#log" );
+			$( "#log" ).attr( "scrollTop", 0 );
 		}
-		
-		$("#city").autocomplete({
-			source: function(request, response) {
+
+		$( "#city" ).autocomplete({
+			source: function( request, response ) {
 				$.ajax({
 					url: "http://ws.geonames.org/searchJSON",
 					dataType: "jsonp",
@@ -28,33 +32,31 @@
 						maxRows: 12,
 						name_startsWith: request.term
 					},
-					success: function(data) {
-						response($.map(data.geonames, function(item) {
+					success: function( data ) {
+						response( $.map( data.geonames, function( item ) {
 							return {
 								label: item.name + (item.adminName1 ? ", " + item.adminName1 : "") + ", " + item.countryName,
 								value: item.name
 							}
-						}))
+						}));
 					}
-				})
+				});
 			},
 			minLength: 2,
-			select: function(event, ui) {
-				log(ui.item ? ("Selected: " + ui.item.label) : "Nothing selected, input was " + this.value);
+			select: function( event, ui ) {
+				log( ui.item ?
+					"Selected: " + ui.item.label :
+					"Nothing selected, input was " + this.value);
 			},
 			open: function() {
-				$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
+				$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
 			},
 			close: function() {
-				$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
+				$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
 			}
 		});
 	});
 	</script>
-	<style>
-		.ui-autocomplete-loading { background: url(indicator.gif) no-repeat right; }
-		#city { width: 25em; }
-	</style>
 </head>
 <body>
 
@@ -73,13 +75,11 @@
 
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-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.
-</p>
-<p>
-In this case, the datasource is the <a href="http://geonames.org">geonames.org webservice</a>. 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. 
-</p>
+<p>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.</p>
+<p>In this case, the datasource is the <a href="http://geonames.org">geonames.org webservice</a>. 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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/autocomplete/remote-with-cache.html b/development-bundle/demos/autocomplete/remote-with-cache.html
index 3688365..b1b7c8b 100644
--- a/development-bundle/demos/autocomplete/remote-with-cache.html
+++ b/development-bundle/demos/autocomplete/remote-with-cache.html
@@ -1,48 +1,37 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Remote with caching demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Remote with caching</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+	</style>
+	<script>
 	$(function() {
-		function log(message) {
-			$("<div/>").text(message).prependTo("#log");
-			$("#log").attr("scrollTop", 0);
-		}
-		
-		var cache = {};
-		$("#birds").autocomplete({
-			source: function(request, response) {
-				if (cache.term == request.term && cache.content) {
-					response(cache.content);
-				}
-				if (new RegExp(cache.term).test(request.term) && cache.content && cache.content.length < 13) {
-					var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
-					response($.grep(cache.content, function(value) {
-	    				return matcher.test(value.value)
-					}));
+		var cache = {},
+			lastXhr;
+		$( "#birds" ).autocomplete({
+			minLength: 2,
+			source: function( request, response ) {
+				var term = request.term;
+				if ( term in cache ) {
+					response( cache[ term ] );
+					return;
 				}
-				$.ajax({
-					url: "search.php",
-					dataType: "json",
-					data: request,
-					success: function(data) {
-						cache.term = request.term;
-						cache.content = data;
-						response(data);
+
+				lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) {
+					cache[ term ] = data;
+					if ( xhr === lastXhr ) {
+						response( data );
 					}
 				});
-			},
-			minLength: 2,
-			select: function(event, ui) {
-				log(ui.item ? ("Selected: " + ui.item.value + " aka " + ui.item.id) : "Nothing selected, input was " + this.value);
 			}
 		});
 	});
@@ -57,20 +46,13 @@
 	<input id="birds" />
 </div>
 
-<div class="ui-widget" style="margin-top:2em; font-family:Arial">
-	Result:
-	<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
-</div>
-
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-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.
-</p>
-<p>
-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.
-</p>
+<p>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.</p>
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/autocomplete/remote.html b/development-bundle/demos/autocomplete/remote.html
index 3b0d709..992a586 100644
--- a/development-bundle/demos/autocomplete/remote.html
+++ b/development-bundle/demos/autocomplete/remote.html
@@ -1,28 +1,32 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Remote datasource demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - Remote datasource</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+	</style>
+	<script>
 	$(function() {
-		function log(message) {
-			$("<div/>").text(message).prependTo("#log");
-			$("#log").attr("scrollTop", 0);
+		function log( message ) {
+			$( "<div/>" ).text( message ).prependTo( "#log" );
+			$( "#log" ).attr( "scrollTop", 0 );
 		}
-		
-		$("#birds").autocomplete({
-			// TODO doesn't work when loaded from /demos/#autocomplete|remote
+
+		$( "#birds" ).autocomplete({
 			source: "search.php",
 			minLength: 2,
-			select: function(event, ui) {
-				log(ui.item ? ("Selected: " + ui.item.value + " aka " + ui.item.id) : "Nothing selected, input was " + this.value);
+			select: function( event, ui ) {
+				log( ui.item ?
+					"Selected: " + ui.item.value + " aka " + ui.item.id :
+					"Nothing selected, input was " + this.value );
 			}
 		});
 	});
@@ -44,13 +48,11 @@
 
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-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.
-</p>
-<p>
-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.
-</p>
+<p>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.</p>
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/autocomplete/search.php b/development-bundle/demos/autocomplete/search.php
index 0120648..8fa9d28 100644
--- a/development-bundle/demos/autocomplete/search.php
+++ b/development-bundle/demos/autocomplete/search.php
@@ -3,8 +3,8 @@
 $q = strtolower($_GET["term"]);
 if (!$q) return;
 $items = array(
-"Great <em>Bittern</em>"=>"Botaurus stellaris",
-"Little <em>Grebe</em>"=>"Tachybaptus ruficollis",
+"Great Bittern"=>"Botaurus stellaris",
+"Little Grebe"=>"Tachybaptus ruficollis",
 "Black-necked Grebe"=>"Podiceps nigricollis",
 "Little Bittern"=>"Ixobrychus minutus",
 "Black-crowned Night Heron"=>"Nycticorax nycticorax",
diff --git a/development-bundle/demos/autocomplete/xml.html b/development-bundle/demos/autocomplete/xml.html
index 3a5dada..7510594 100644
--- a/development-bundle/demos/autocomplete/xml.html
+++ b/development-bundle/demos/autocomplete/xml.html
@@ -1,42 +1,47 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Autocomplete Remote datasource demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.autocomplete.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Autocomplete - XML data parsed once</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.autocomplete.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
+	</style>
+	<script>
 	$(function() {
-		function log(message) {
-			$("<div/>").text(message).prependTo("#log");
-			$("#log").attr("scrollTop", 0);
+		function log( message ) {
+			$( "<div/>" ).text( message ).prependTo( "#log" );
+			$( "#log" ).attr( "scrollTop", 0 );
 		}
-		
+
 		$.ajax({
 			url: "london.xml",
 			dataType: "xml",
-			success: function(xmlResponse) {
-				var data = $("geoname", xmlResponse).map(function() {
+			success: function( xmlResponse ) {
+				var data = $( "geoname", xmlResponse ).map(function() {
 					return {
-						value: $("name", this).text() + ", " + ($.trim($("countryName", this).text()) || "(unknown country)"),
-						id: $("geonameId", this).text()
+						value: $( "name", this ).text() + ", " +
+							( $.trim( $( "countryName", this ).text() ) || "(unknown country)" ),
+						id: $( "geonameId", this ).text()
 					};
 				}).get();
-				$("#birds").autocomplete({
+				$( "#birds" ).autocomplete({
 					source: data,
 					minLength: 0,
-					select: function(event, ui) {
-						log(ui.item ? ("Selected: " + ui.item.value + ", geonameId: " + ui.item.id) : "Nothing selected, input was " + this.value);
+					select: function( event, ui ) {
+						log( ui.item ?
+							"Selected: " + ui.item.value + ", geonameId: " + ui.item.id :
+							"Nothing selected, input was " + this.value );
 					}
 				});
 			}
-		})
-		
+		});
 	});
 	</script>
 </head>
@@ -56,13 +61,11 @@
 
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-<p>
-This demo shows how to retrieve some XML data, parse it using jQuery's methods, then provide it to the autocomplete as the datasource.
-</p>
-<p>
-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.
-</p>
+<p>This demo shows how to retrieve some XML data, parse it using jQuery's methods, then provide it to the autocomplete as the datasource.</p>
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/button/checkbox.html b/development-bundle/demos/button/checkbox.html
index b6192ee..0caf958 100644
--- a/development-bundle/demos/button/checkbox.html
+++ b/development-bundle/demos/button/checkbox.html
@@ -1,49 +1,44 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Button - Checkboxes demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Button - Checkboxes</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#check").button();
-		$("#format").buttonset();
+		$( "#check" ).button();
+		$( "#format" ).buttonset();
 	});
 	</script>
 	<style>
-		#format { margin-top: 2em; }
+	#format { margin-top: 2em; }
 	</style>
 </head>
 <body>
 
 <div class="demo">
 
-	<input type="checkbox" id="check" /><label for="check">Toggle</label>
-	
-	<div id="format">
-		<input type="checkbox" id="check1" /><label for="check1">B</label>
-		<input type="checkbox" id="check2" /><label for="check2">I</label>
-		<input type="checkbox" id="check3" /><label for="check3">U</label>
-	</div>
+<input type="checkbox" id="check" /><label for="check">Toggle</label>
+
+<div id="format">
+	<input type="checkbox" id="check1" /><label for="check1">B</label>
+	<input type="checkbox" id="check2" /><label for="check2">I</label>
+	<input type="checkbox" id="check3" /><label for="check3">U</label>
+</div>
 
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
 <p>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.</p>
-
 <p>This demo also demonstrates three checkboxes styled as a button set by calling <code>.buttonset()</code> on a common container.</p>
-
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/button/default.html b/development-bundle/demos/button/default.html
index 700c64b..1ea3fa7 100644
--- a/development-bundle/demos/button/default.html
+++ b/development-bundle/demos/button/default.html
@@ -1,46 +1,38 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Button - Default demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Button - Default functionality</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("button, input:submit, a", ".demo").button();
-		
-		$("a", ".demo").click(function() { return false; });
+		$( "button, input:submit, a", ".demo" ).button();
+		$( "a", ".demo" ).click(function() { return false; });
 	});
 	</script>
-	<style>
-		
-	</style>
 </head>
 <body>
 
 <div class="demo">
 
-	<button>A button element</button>
-	
-	<input type="submit" value="A submit button"/>
-	
-	<a href="#">An anchor</a>
+<button>A button element</button>
+
+<input type="submit" value="A submit button"/>
+
+<a href="#">An anchor</a>
 
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
 <p>Examples of the markup that can be used for buttons: A button element, an input of type submit and an anchor.</p>
-
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/button/icons.html b/development-bundle/demos/button/icons.html
index 2dc11c5..1badb3f 100644
--- a/development-bundle/demos/button/icons.html
+++ b/development-bundle/demos/button/icons.html
@@ -1,63 +1,56 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Button - Icons demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Button - Icons</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$(".demo button:first").button({
+		$( ".demo button:first" ).button({
             icons: {
-                primary: 'ui-icon-locked'
+                primary: "ui-icon-locked"
             },
             text: false
         }).next().button({
             icons: {
-                primary: 'ui-icon-locked'
+                primary: "ui-icon-locked"
             }
         }).next().button({
             icons: {
-                primary: 'ui-icon-gear',
-                secondary: 'ui-icon-triangle-1-s'
+                primary: "ui-icon-gear",
+                secondary: "ui-icon-triangle-1-s"
             }
         }).next().button({
             icons: {
-                primary: 'ui-icon-gear',
-                secondary: 'ui-icon-triangle-1-s'
+                primary: "ui-icon-gear",
+                secondary: "ui-icon-triangle-1-s"
             },
             text: false
         });
 	});
 	</script>
-	<style>
-		
-	</style>
 </head>
 <body>
 
 <div class="demo">
 
-	<button>Button with icon only</button>
-	<button>Button with icon on the left</button>
-	<button>Button with two icons</button>
-	<button>Button with two icons and no text</button>
+<button>Button with icon only</button>
+<button>Button with icon on the left</button>
+<button>Button with two icons</button>
+<button>Button with two icons and no text</button>
 
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
 <p>Some buttons with various combinations of text and icons, here specified via metadata.</p>
-
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/button/index.html b/development-bundle/demos/button/index.html
index c2b3720..23977c8 100644
--- a/development-bundle/demos/button/index.html
+++ b/development-bundle/demos/button/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Button Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/button/radio.html b/development-bundle/demos/button/radio.html
index 3e5dc23..5f725ca 100644
--- a/development-bundle/demos/button/radio.html
+++ b/development-bundle/demos/button/radio.html
@@ -1,46 +1,39 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Button - Radio Buttons demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Button - Radios</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#radio").buttonset();
+		$( "#radio" ).buttonset();
 	});
 	</script>
-	<style>
-		
-	</style>
 </head>
 <body>
 
 <div class="demo">
 
-	<form>
-		<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>
-	</form>
+<form>
+	<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>
+</form>
 
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
 <p>A set of three radio buttons transformed into a button set.</p>
-
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/button/splitbutton.html b/development-bundle/demos/button/splitbutton.html
index b42fe52..c4e6377 100644
--- a/development-bundle/demos/button/splitbutton.html
+++ b/development-bundle/demos/button/splitbutton.html
@@ -1,31 +1,33 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Button - Default demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<meta charset="utf-8">
+	<title>jQuery UI Button - Split button</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#rerun").button().click(function() {
-			alert("Running the last action");
-		})
-		.next()
-		.button({
-			text: false,
-			icons: {
-				primary: "ui-icon-triangle-1-s"
-			}
-		})
-		.click(function() {
-			alert("Could display a menu to select an action");
-		})
-		.parent()
-		.buttonset();
+		$( "#rerun" )
+			.button()
+			.click(function() {
+				alert( "Running the last action" );
+			})
+			.next()
+				.button( {
+					text: false,
+					icons: {
+						primary: "ui-icon-triangle-1-s"
+					}
+				})
+				.click(function() {
+					alert( "Could display a menu to select an action" );
+				})
+				.parent()
+					.buttonset();
 	});
 	</script>
 	<style>
@@ -36,23 +38,18 @@
 
 <div class="demo">
 
-	<div>
-		<button id="rerun">Run last action</button>
-		<button id="select">Select an action</button>
-	</div>
+<div>
+	<button id="rerun">Run last action</button>
+	<button id="select">Select an action</button>
+</div>
 
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
-<p>An example of a split button built with two buttons: A plan button with just text, one with only a primary icon
-and no text. Both are grouped together in a set.</p>
-
+<p>An example of a split button built with two buttons: A plan button with just text, one with only a primary icon and no text. Both are grouped together in a set.</p>
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/button/toolbar.html b/development-bundle/demos/button/toolbar.html
index 5573872..d68b2d9 100644
--- a/development-bundle/demos/button/toolbar.html
+++ b/development-bundle/demos/button/toolbar.html
@@ -1,86 +1,86 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Button - Toolbar demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<meta charset="utf-8">
+	<title>jQuery UI Button - Toolbar</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#toolbar {
 		padding: 10px 4px;
 	}
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$('#beginning').button({
+		$( "#beginning" ).button({
 			text: false,
 			icons: {
-				primary: 'ui-icon-seek-start'
+				primary: "ui-icon-seek-start"
 			}
 		});
-		$('#rewind').button({
+		$( "#rewind" ).button({
 			text: false,
 			icons: {
-				primary: 'ui-icon-seek-prev'
+				primary: "ui-icon-seek-prev"
 			}
 		});
-		$('#play').button({
+		$( "#play" ).button({
 			text: false,
 			icons: {
-				primary: 'ui-icon-play'
+				primary: "ui-icon-play"
 			}
 		})
 		.click(function() {
 			var options;
-			if ($(this).text() == 'play') {
+			if ( $( this ).text() === "play" ) {
 				options = {
-					label: 'pause',
+					label: "pause",
 					icons: {
-						primary: 'ui-icon-pause'
+						primary: "ui-icon-pause"
 					}
 				};
 			} else {
 				options = {
-					label: 'play',
+					label: "play",
 					icons: {
-						primary: 'ui-icon-play'
+						primary: "ui-icon-play"
 					}
 				};
 			}
-			$(this).button('option', options);
+			$( this ).button( "option", options );
 		});
-		$('#stop').button({
+		$( "#stop" ).button({
 			text: false,
 			icons: {
-				primary: 'ui-icon-stop'
+				primary: "ui-icon-stop"
 			}
 		})
 		.click(function() {
-			$('#play').button('option', {
-				label: 'play',
+			$( "#play" ).button( "option", {
+				label: "play",
 				icons: {
-					primary: 'ui-icon-play'
+					primary: "ui-icon-play"
 				}
 			});
 		});
-		$('#forward').button({
+		$( "#forward" ).button({
 			text: false,
 			icons: {
-				primary: 'ui-icon-seek-next'
+				primary: "ui-icon-seek-next"
 			}
 		});
-		$('#end').button({
+		$( "#end" ).button({
 			text: false,
 			icons: {
-				primary: 'ui-icon-seek-end'
+				primary: "ui-icon-seek-end"
 			}
 		});
-		$("#shuffle").button();
-		$("#repeat").buttonset();
+		$( "#shuffle" ).button();
+		$( "#repeat" ).buttonset();
 	});
 	</script>
 </head>
@@ -88,37 +88,33 @@
 
 <div class="demo">
 
-	<span id="toolbar" class="ui-widget-header ui-corner-all">
-		<button id="beginning">go to beginning</button>
-		<button id="rewind">rewind</button>
-		<button id="play">play</button>
-		<button id="stop">stop</button>
-		<button id="forward">fast forward</button>
-		<button id="end">go to end</button>
-		
-		<input type="checkbox" id="shuffle" /><label for="shuffle">Shuffle</label>
-		
-		<span id="repeat">
-			<input type="radio" id="repeat0" name="repeat" checked="checked" /><label for="repeat0">No Repeat</label>
-			<input type="radio" id="repeat1" name="repeat" /><label for="repeat1">Once</label>
-			<input type="radio" id="repeatall" name="repeat" /><label for="repeatall">All</label>
-		</span>
+<span id="toolbar" class="ui-widget-header ui-corner-all">
+	<button id="beginning">go to beginning</button>
+	<button id="rewind">rewind</button>
+	<button id="play">play</button>
+	<button id="stop">stop</button>
+	<button id="forward">fast forward</button>
+	<button id="end">go to end</button>
+	
+	<input type="checkbox" id="shuffle" /><label for="shuffle">Shuffle</label>
+	
+	<span id="repeat">
+		<input type="radio" id="repeat0" name="repeat" checked="checked" /><label for="repeat0">No Repeat</label>
+		<input type="radio" id="repeat1" name="repeat" /><label for="repeat1">Once</label>
+		<input type="radio" id="repeatall" name="repeat" /><label for="repeatall">All</label>
 	</span>
+</span>
 
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
 <p>
 	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. 
 </p>
-
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/datepicker/alt-field.html b/development-bundle/demos/datepicker/alt-field.html
index d51bf06..c60b21a 100644
--- a/development-bundle/demos/datepicker/alt-field.html
+++ b/development-bundle/demos/datepicker/alt-field.html
@@ -1,17 +1,20 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Populate alternate field</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker({altField: '#alternate', altFormat: 'DD, d MM, yy'});
+		$( "#datepicker" ).datepicker({
+			altField: "#alternate",
+			altFormat: "DD, d MM, yy"
+		});
 	});
 	</script>
 </head>
@@ -23,10 +26,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Populate an alternate field with its own date format whenever a date is selected using the <code>altField</code> and <code>altFormat</code> 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.</p>
 
+<div class="demo-description">
+<p>Populate an alternate field with its own date format whenever a date is selected using the <code>altField</code> and <code>altFormat</code> 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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/animation.html b/development-bundle/demos/datepicker/animation.html
index 27f20ff..9814b98 100644
--- a/development-bundle/demos/datepicker/animation.html
+++ b/development-bundle/demos/datepicker/animation.html
@@ -1,25 +1,27 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Animations</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.effects.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.effects.blind.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.effects.bounce.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.effects.clip.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.effects.drop.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.effects.fold.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.effects.slide.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<script src="../../ui/jquery.effects.blind.js"></script>
+	<script src="../../ui/jquery.effects.bounce.js"></script>
+	<script src="../../ui/jquery.effects.clip.js"></script>
+	<script src="../../ui/jquery.effects.drop.js"></script>
+	<script src="../../ui/jquery.effects.fold.js"></script>
+	<script src="../../ui/jquery.effects.slide.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker();
-		$("#anim").change(function() { $('#datepicker').datepicker('option', {showAnim: $(this).val()}); });
+		$( "#datepicker" ).datepicker();
+		$( "#anim" ).change(function() {
+			$( "#datepicker" ).datepicker( "option", "showAnim", $( this ).val() );
+		});
 	});
 	</script>
 </head>
@@ -34,22 +36,22 @@
 		<option value="show">Show (default)</option>
 		<option value="slideDown">Slide down</option>
 		<option value="fadeIn">Fade in</option>
-		<!-- <option value="blind">Blind (UI Effect)</option>
+		<option value="blind">Blind (UI Effect)</option>
 		<option value="bounce">Bounce (UI Effect)</option>
 		<option value="clip">Clip (UI Effect)</option>
 		<option value="drop">Drop (UI Effect)</option>
 		<option value="fold">Fold (UI Effect)</option>
-		<option value="slide">Slide (UI Effect)</option> -->
+		<option value="slide">Slide (UI Effect)</option>
 		<option value="">None</option>
 	</select>
 </p>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/buttonbar.html b/development-bundle/demos/datepicker/buttonbar.html
index 6cd4dbe..3b3be3b 100644
--- a/development-bundle/demos/datepicker/buttonbar.html
+++ b/development-bundle/demos/datepicker/buttonbar.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Display button bar</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$('#datepicker').datepicker({
+		$( "#datepicker" ).datepicker({
 			showButtonPanel: true
 		});
 	});
@@ -25,10 +25,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Display a button for selecting Today's date and a Done button for closing the calendar with the boolean <code>showButtonPanel</code> option.  Each button is enabled by default when the bar is displayed, but can be turned off with additional options.  Button text is customizable.</p>
 
+<div class="demo-description">
+<p>Display a button for selecting Today's date and a Done button for closing the calendar with the boolean <code>showButtonPanel</code> option.  Each button is enabled by default when the bar is displayed, but can be turned off with additional options.  Button text is customizable.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/date-formats.html b/development-bundle/demos/datepicker/date-formats.html
index 435ef70..e1ac673 100644
--- a/development-bundle/demos/datepicker/date-formats.html
+++ b/development-bundle/demos/datepicker/date-formats.html
@@ -1,18 +1,20 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Format date</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker();
-		$("#format").change(function() { $('#datepicker').datepicker('option', {dateFormat: $(this).val()}); });
+		$( "#datepicker" ).datepicker();
+		$( "#format" ).change(function() {
+			$( "#datepicker" ).datepicker( "option", "dateFormat", $( this ).val() );
+		});
 	});
 	</script>
 </head>
@@ -35,10 +37,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/date-range.html b/development-bundle/demos/datepicker/date-range.html
new file mode 100644
index 0000000..bf9b9a3
--- /dev/null
+++ b/development-bundle/demos/datepicker/date-range.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<title>jQuery UI Datepicker - Select a Date Range</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
+	$(function() {
+		var dates = $( "#from, #to" ).datepicker({
+			defaultDate: "+1w",
+			changeMonth: true,
+			numberOfMonths: 3,
+			onSelect: function( selectedDate ) {
+				var option = this.id == "from" ? "minDate" : "maxDate",
+					instance = $( this ).data( "datepicker" ),
+					date = $.datepicker.parseDate(
+						instance.settings.dateFormat ||
+						$.datepicker._defaults.dateFormat,
+						selectedDate, instance.settings );
+				dates.not( this ).datepicker( "option", option, date );
+			}
+		});
+	});
+	</script>
+</head>
+<body>
+
+<div class="demo">
+
+<label for="from">From</label>
+<input type="text" id="from" name="from"/>
+<label for="to">to</label>
+<input type="text" id="to" name="to"/>
+
+</div><!-- End demo -->
+
+
+
+<div class="demo-description">
+<p>Select the date range to search for.</p>
+</div><!-- End demo-description -->
+
+</body>
+</html>
diff --git a/development-bundle/demos/datepicker/default.html b/development-bundle/demos/datepicker/default.html
index 4ab50e1..d50ac0d 100644
--- a/development-bundle/demos/datepicker/default.html
+++ b/development-bundle/demos/datepicker/default.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker();
+		$( "#datepicker" ).datepicker();
 	});
 	</script>
 </head>
@@ -23,10 +23,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/dropdown-month-year.html b/development-bundle/demos/datepicker/dropdown-month-year.html
index c31d8ba..8392a15 100644
--- a/development-bundle/demos/datepicker/dropdown-month-year.html
+++ b/development-bundle/demos/datepicker/dropdown-month-year.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Display month & year menus</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$('#datepicker').datepicker({
+		$( "#datepicker" ).datepicker({
 			changeMonth: true,
 			changeYear: true
 		});
@@ -26,10 +26,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Show month and year dropdowns in place of the static month/year header to facilitate navigation through large timeframes.  Add the boolean <code>changeMonth</code> and <code>changeYear</code> options.</p>
 
+<div class="demo-description">
+<p>Show month and year dropdowns in place of the static month/year header to facilitate navigation through large timeframes.  Add the boolean <code>changeMonth</code> and <code>changeYear</code> options.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/event-search.html b/development-bundle/demos/datepicker/event-search.html
deleted file mode 100644
index c87ae17..0000000
--- a/development-bundle/demos/datepicker/event-search.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Datepicker - Display multiple months</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
-	$(function() {
-		var dates = $('#from, #to').datepicker({
-			defaultDate: "+1w",
-			changeMonth: true,
-			numberOfMonths: 3,
-			onSelect: function(selectedDate) {
-				var option = this.id == "from" ? "minDate" : "maxDate";
-				var instance = $(this).data("datepicker");
-				var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
-				dates.not(this).datepicker("option", option, date);
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<label for="from">From</label>
-<input type="text" id="from" name="from"/>
-<label for="to">to</label>
-<input type="text" id="to" name="to"/>
-
-</div><!-- End demo -->
-
-<div class="demo-description">
-
-<p>Select the date range to search for.</p>
-
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/development-bundle/demos/datepicker/icon-trigger.html b/development-bundle/demos/datepicker/icon-trigger.html
index 6da3a77..5f4edc7 100644
--- a/development-bundle/demos/datepicker/icon-trigger.html
+++ b/development-bundle/demos/datepicker/icon-trigger.html
@@ -1,19 +1,19 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Icon trigger</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker({
-			showOn: 'button',
-			buttonImage: 'images/calendar.gif',
+		$( "#datepicker" ).datepicker({
+			showOn: "button",
+			buttonImage: "images/calendar.gif",
 			buttonImageOnly: true
 		});
 	});
@@ -27,10 +27,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/index.html b/development-bundle/demos/datepicker/index.html
index 5749ae7..ed24774 100644
--- a/development-bundle/demos/datepicker/index.html
+++ b/development-bundle/demos/datepicker/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
@@ -23,7 +23,7 @@
 		<li><a href="multiple-calendars.html">Display multiple months</a></li>		
 		<li><a href="icon-trigger.html">Icon trigger</a></li>
 		<li><a href="animation.html">Animations</a></li>
-		<li><a href="event-search.html">Event Search</a></li>
+		<li><a href="date-range.html">Date Range</a></li>
 	</ul>
 </div>
 
diff --git a/development-bundle/demos/datepicker/inline.html b/development-bundle/demos/datepicker/inline.html
index bf21fc9..19c4b04 100644
--- a/development-bundle/demos/datepicker/inline.html
+++ b/development-bundle/demos/datepicker/inline.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Display inline</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker();
+		$( "#datepicker" ).datepicker();
 	});
 	</script>
 </head>
@@ -23,10 +23,10 @@ Date: <div id="datepicker"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Display the datepicker embedded in the page instead of in an overlay.  Simply call .datepicker() on a div instead of an input.</p>
 
+<div class="demo-description">
+<p>Display the datepicker embedded in the page instead of in an overlay.  Simply call .datepicker() on a div instead of an input.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/localization.html b/development-bundle/demos/datepicker/localization.html
index 079ae05..9103611 100644
--- a/development-bundle/demos/datepicker/localization.html
+++ b/development-bundle/demos/datepicker/localization.html
@@ -1,72 +1,82 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Localize calendar</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-af.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ar.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-az.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-bg.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-bs.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ca.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-cs.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-da.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-de.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-el.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-en-GB.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-eo.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-es.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-et.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-eu.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-fa.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-fi.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-fo.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-fr.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-fr-CH.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-he.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-hr.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-hu.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-hy.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-id.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-is.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-it.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ja.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ko.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-lt.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-lv.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ms.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-nl.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-no.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-pl.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-pt-BR.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ro.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ru.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-sk.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-sl.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-sq.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-sr.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-sr-SR.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-sv.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-ta.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-th.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-tr.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-uk.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-vi.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-zh-CN.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-zh-HK.js"></script>
-	<script type="text/javascript" src="../../ui/i18n/jquery.ui.datepicker-zh-TW.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-af.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ar.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ar-DZ.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-az.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-bg.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-bs.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ca.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-cs.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-da.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-de.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-el.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-en-AU.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-en-GB.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-en-NZ.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-eo.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-es.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-et.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-eu.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-fa.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-fi.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-fo.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-fr.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-fr-CH.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-gl.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-he.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-hr.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-hu.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-hy.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-id.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-is.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-it.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ja.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ko.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-kz.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-lt.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-lv.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ml.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ms.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-nl.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-no.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-pl.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-pt.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-pt-BR.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-rm.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ro.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ru.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-sk.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-sl.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-sq.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-sr.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-sr-SR.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-sv.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-ta.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-th.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-tj.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-tr.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-uk.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-vi.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-zh-CN.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-zh-HK.js"></script>
+	<script src="../../ui/i18n/jquery.ui.datepicker-zh-TW.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$.datepicker.setDefaults($.datepicker.regional['']);
-		$("#datepicker").datepicker($.datepicker.regional['fr']);
-		$("#locale").change(function() {
-			$('#datepicker').datepicker('option', $.datepicker.regional[$(this).val()]);
+		$.datepicker.setDefaults( $.datepicker.regional[ "" ] );
+		$( "#datepicker" ).datepicker( $.datepicker.regional[ "fr" ] );
+		$( "#locale" ).change(function() {
+			$( "#datepicker" ).datepicker( "option",
+				$.datepicker.regional[ $( this ).val() ] );
 		});
 	});
 	</script>
@@ -79,6 +89,7 @@
 	<select id="locale">
 		<option value="af">Afrikaans</option>
 		<option value="sq">Albanian (Gjuha shqipe)</option>
+		<option value="ar-DZ">Algerian Arabic</option>
 		<option value="ar">Arabic (‫(لعربي</option>
 		<option value="hy">Armenian (Հայերեն)</option>
 		<option value="az">Azerbaijani (Azərbaycan dili)</option>
@@ -90,9 +101,11 @@
 		<option value="zh-CN">Chinese Simplified (简体中文)</option>
 		<option value="zh-TW">Chinese Traditional (繁體中文)</option>
 		<option value="hr">Croatian (Hrvatski jezik)</option>
-		<option value="cs">Czech (Ceötina)</option>
+		<option value="cs">Czech (čeština)</option>
 		<option value="da">Danish (Dansk)</option>
 		<option value="nl">Dutch (Nederlands)</option>
+		<option value="en-AU">English/Australia</option>
+		<option value="en-NZ">English/New Zealand</option>
 		<option value="en-GB">English/UK</option>
 		<option value="eo">Esperanto</option>
 		<option value="et">Estonian (eesti keel)</option>
@@ -101,6 +114,7 @@
 		<option value="fi">Finnish (suomi)</option>
 		<option value="fr" selected="selected">French (Français)</option>
 		<option value="fr-CH">French/Swiss (Français de Suisse)</option>
+		<option value="gl">Galician</option>
 		<option value="de">German (Deutsch)</option>
 		<option value="el">Greek (Ελληνικά)</option>
 		<option value="he">Hebrew (‫(עברית</option>
@@ -110,12 +124,16 @@
 		<option value="it">Italian (Italiano)</option>
 		<option value="ja">Japanese (日本語)</option>
 		<option value="ko">Korean (한국어)</option>
+		<option value="kz">Kazakhstan (Kazakh)</option>
 		<option value="lv">Latvian (Latvieöu Valoda)</option>
 		<option value="lt">Lithuanian (lietuviu kalba)</option>
+		<option value="ml">Malayalam</option>
 		<option value="ms">Malaysian (Bahasa Malaysia)</option>
 		<option value="no">Norwegian (Norsk)</option>
 		<option value="pl">Polish (Polski)</option>
+		<option value="pt">Portuguese (Português)</option>
 		<option value="pt-BR">Portuguese/Brazilian (Português)</option>
+		<option value="rm">Rhaeto-Romanic (Romansh)</option>
 		<option value="ro">Romanian (Română)</option>
 		<option value="ru">Russian (Русский)</option>
 		<option value="sr">Serbian (српски језик)</option>
@@ -126,6 +144,7 @@
 		<option value="sv">Swedish (Svenska)</option>
 		<option value="ta">Tamil (தமிழ்)</option>
 		<option value="th">Thai (ภาษาไทย)</option>
+		<option value="tj">Tajikistan</option>
 		<option value="tr">Turkish (Türkçe)</option>
 		<option value="uk">Ukranian (Українська)</option>
 		<option value="vi">Vietnamese (Tiếng Việt)</option>
@@ -133,10 +152,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/min-max.html b/development-bundle/demos/datepicker/min-max.html
index 7573e69..e27339e 100644
--- a/development-bundle/demos/datepicker/min-max.html
+++ b/development-bundle/demos/datepicker/min-max.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Restrict date range</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker({minDate: -20, maxDate: '+1M +10D'});
+		$( "#datepicker" ).datepicker({ minDate: -20, maxDate: "+1M +10D" });
 	});
 	</script>
 </head>
@@ -23,10 +23,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Restrict the range of selectable dates with the <code>minDate</code> and <code>maxDate</code> 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.</p>
 
+<div class="demo-description">
+<p>Restrict the range of selectable dates with the <code>minDate</code> and <code>maxDate</code> 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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/multiple-calendars.html b/development-bundle/demos/datepicker/multiple-calendars.html
index 8051ca5..0c762f7 100644
--- a/development-bundle/demos/datepicker/multiple-calendars.html
+++ b/development-bundle/demos/datepicker/multiple-calendars.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Display multiple months</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$('#datepicker').datepicker({
+		$( "#datepicker" ).datepicker({
 			numberOfMonths: 3,
 			showButtonPanel: true
 		});
@@ -26,10 +26,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Set the <code>numberOfMonths</code> option to an integer of 2 or more to show multiple months in a single datepicker.</p>
 
+<div class="demo-description">
+<p>Set the <code>numberOfMonths</code> option to an integer of 2 or more to show multiple months in a single datepicker.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/other-months.html b/development-bundle/demos/datepicker/other-months.html
index 1c0b655..78a04f2 100644
--- a/development-bundle/demos/datepicker/other-months.html
+++ b/development-bundle/demos/datepicker/other-months.html
@@ -1,17 +1,20 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Dates in other months</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker({showOtherMonths: true, selectOtherMonths: true});
+		$( "#datepicker" ).datepicker({
+			showOtherMonths: true,
+			selectOtherMonths: true
+		});
 	});
 	</script>
 </head>
@@ -23,11 +26,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>The datepicker can show dates that come from other than the main month
 	being displayed. These other dates can also be made selectable.</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/datepicker/show-week.html b/development-bundle/demos/datepicker/show-week.html
index f6015a2..1cdb349 100644
--- a/development-bundle/demos/datepicker/show-week.html
+++ b/development-bundle/demos/datepicker/show-week.html
@@ -1,17 +1,20 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Datepicker - Show week of the year</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.datepicker.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.datepicker.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#datepicker").datepicker({showWeek: true, firstDay: 1});
+		$( "#datepicker" ).datepicker({
+			showWeek: true,
+			firstDay: 1
+		});
 	});
 	</script>
 </head>
@@ -23,13 +26,13 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>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.</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/dialog/animated.html b/development-bundle/demos/dialog/animated.html
index 26f298a..200db3f 100644
--- a/development-bundle/demos/dialog/animated.html
+++ b/development-bundle/demos/dialog/animated.html
@@ -1,34 +1,34 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Dialog - Animation</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../external/jquery.bgiframe-2.1.1.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.blind.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.explode.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../external/jquery.bgiframe-2.1.2.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<script src="../../ui/jquery.effects.blind.js"></script>
+	<script src="../../ui/jquery.effects.explode.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	// increase the default animation speed to exaggerate the effect
 	$.fx.speeds._default = 1000;
 	$(function() {
-		$('#dialog').dialog({
+		$( "#dialog" ).dialog({
 			autoOpen: false,
-			show: 'blind',
-			hide: 'explode'
+			show: "blind",
+			hide: "explode"
 		});
-		
-		$('#opener').click(function() {
-			$('#dialog').dialog('open');
+
+		$( "#opener" ).click(function() {
+			$( "#dialog" ).dialog( "open" );
 			return false;
 		});
 	});
@@ -46,10 +46,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/dialog/default.html b/development-bundle/demos/dialog/default.html
index a0d4481..083f7aa 100644
--- a/development-bundle/demos/dialog/default.html
+++ b/development-bundle/demos/dialog/default.html
@@ -1,22 +1,22 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Dialog - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../external/jquery.bgiframe-2.1.1.js.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../external/jquery.bgiframe-2.1.2.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#dialog").dialog();
+		$( "#dialog" ).dialog();
 	});
 	</script>
 </head>
@@ -44,10 +44,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/dialog/index.html b/development-bundle/demos/dialog/index.html
index 45d4a9f..460e4fb 100644
--- a/development-bundle/demos/dialog/index.html
+++ b/development-bundle/demos/dialog/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Dialog Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/dialog/modal-confirmation.html b/development-bundle/demos/dialog/modal-confirmation.html
index 4affb59..e316a97 100644
--- a/development-bundle/demos/dialog/modal-confirmation.html
+++ b/development-bundle/demos/dialog/modal-confirmation.html
@@ -1,34 +1,34 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Dialog - Modal confirmation</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../external/jquery.bgiframe-2.1.1.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../external/jquery.bgiframe-2.1.2.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
 		// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
-		$("#dialog").dialog("destroy");
+		$( "#dialog:ui-dialog" ).dialog( "destroy" );
 	
-		$("#dialog-confirm").dialog({
+		$( "#dialog-confirm" ).dialog({
 			resizable: false,
 			height:140,
 			modal: true,
 			buttons: {
-				'Delete all items': function() {
-					$(this).dialog('close');
+				"Delete all items": function() {
+					$( this ).dialog( "close" );
 				},
 				Cancel: function() {
-					$(this).dialog('close');
+					$( this ).dialog( "close" );
 				}
 			}
 		});
@@ -59,10 +59,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Confirm an action that may be destructive or important.  Set the <code>modal</code> option to true, and specify primary and secondary user actions with the <code>buttons</code> option.</p>
 
+<div class="demo-description">
+<p>Confirm an action that may be destructive or important.  Set the <code>modal</code> option to true, and specify primary and secondary user actions with the <code>buttons</code> option.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/dialog/modal-form.html b/development-bundle/demos/dialog/modal-form.html
index 592b4ab..5793b32 100644
--- a/development-bundle/demos/dialog/modal-form.html
+++ b/development-bundle/demos/dialog/modal-form.html
@@ -1,22 +1,22 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Dialog - Modal form</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../external/jquery.bgiframe-2.1.1.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../external/jquery.bgiframe-2.1.2.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 		body { font-size: 62.5%; }
 		label, input { display:block; }
 		input.text { margin-bottom:12px; width:95%; padding: .4em; }
@@ -27,97 +27,90 @@
 		div#users-contain table td, div#users-contain table th { border: 1px solid #eee; padding: .6em 10px; text-align: left; }
 		.ui-dialog .ui-state-error { padding: .3em; }
 		.validateTips { border: 1px solid transparent; padding: 0.3em; }
-		
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
 		// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
-		$("#dialog").dialog("destroy");
+		$( "#dialog:ui-dialog" ).dialog( "destroy" );
 		
-		var name = $("#name"),
-			email = $("#email"),
-			password = $("#password"),
-			allFields = $([]).add(name).add(email).add(password),
-			tips = $(".validateTips");
+		var name = $( "#name" ),
+			email = $( "#email" ),
+			password = $( "#password" ),
+			allFields = $( [] ).add( name ).add( email ).add( password ),
+			tips = $( ".validateTips" );
 
-		function updateTips(t) {
+		function updateTips( t ) {
 			tips
-				.text(t)
-				.addClass('ui-state-highlight');
+				.text( t )
+				.addClass( "ui-state-highlight" );
 			setTimeout(function() {
-				tips.removeClass('ui-state-highlight', 1500);
-			}, 500);
+				tips.removeClass( "ui-state-highlight", 1500 );
+			}, 500 );
 		}
 
-		function checkLength(o,n,min,max) {
-
+		function checkLength( o, n, min, max ) {
 			if ( o.val().length > max || o.val().length < min ) {
-				o.addClass('ui-state-error');
-				updateTips("Length of " + n + " must be between "+min+" and "+max+".");
+				o.addClass( "ui-state-error" );
+				updateTips( "Length of " + n + " must be between " +
+					min + " and " + max + "." );
 				return false;
 			} else {
 				return true;
 			}
-
 		}
 
-		function checkRegexp(o,regexp,n) {
-
+		function checkRegexp( o, regexp, n ) {
 			if ( !( regexp.test( o.val() ) ) ) {
-				o.addClass('ui-state-error');
-				updateTips(n);
+				o.addClass( "ui-state-error" );
+				updateTips( n );
 				return false;
 			} else {
 				return true;
 			}
-
 		}
 		
-		$("#dialog-form").dialog({
+		$( "#dialog-form" ).dialog({
 			autoOpen: false,
 			height: 300,
 			width: 350,
 			modal: true,
 			buttons: {
-				'Create an account': function() {
+				"Create an account": function() {
 					var bValid = true;
-					allFields.removeClass('ui-state-error');
+					allFields.removeClass( "ui-state-error" );
 
-					bValid = bValid && checkLength(name,"username",3,16);
-					bValid = bValid && checkLength(email,"email",6,80);
-					bValid = bValid && checkLength(password,"password",5,16);
+					bValid = bValid && checkLength( name, "username", 3, 16 );
+					bValid = bValid && checkLength( email, "email", 6, 80 );
+					bValid = bValid && checkLength( password, "password", 5, 16 );
 
-					bValid = bValid && checkRegexp(name,/^[a-z]([0-9a-z_])+$/i,"Username may consist of a-z, 0-9, underscores, begin with a letter.");
+					bValid = bValid && checkRegexp( name, /^[a-z]([0-9a-z_])+$/i, "Username may consist of a-z, 0-9, underscores, begin with a letter." );
 					// From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
-					bValid = bValid && checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"eg. ui at jquery.com");
-					bValid = bValid && checkRegexp(password,/^([0-9a-zA-Z])+$/,"Password field only allow : a-z 0-9");
-					
-					if (bValid) {
-						$('#users tbody').append('<tr>' +
-							'<td>' + name.val() + '</td>' + 
-							'<td>' + email.val() + '</td>' + 
-							'<td>' + password.val() + '</td>' +
-							'</tr>'); 
-						$(this).dialog('close');
+					bValid = bValid && checkRegexp( email, /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i, "eg. ui at jquery.com" );
+					bValid = bValid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );
+
+					if ( bValid ) {
+						$( "#users tbody" ).append( "<tr>" +
+							"<td>" + name.val() + "</td>" + 
+							"<td>" + email.val() + "</td>" + 
+							"<td>" + password.val() + "</td>" +
+						"</tr>" ); 
+						$( this ).dialog( "close" );
 					}
 				},
 				Cancel: function() {
-					$(this).dialog('close');
+					$( this ).dialog( "close" );
 				}
 			},
 			close: function() {
-				allFields.val('').removeClass('ui-state-error');
+				allFields.val( "" ).removeClass( "ui-state-error" );
 			}
 		});
-		
-		
-		
-		$('#create-user')
+
+		$( "#create-user" )
 			.button()
 			.click(function() {
-				$('#dialog-form').dialog('open');
+				$( "#dialog-form" ).dialog( "open" );
 			});
-
 	});
 	</script>
 </head>
@@ -142,10 +135,7 @@
 
 
 <div id="users-contain" class="ui-widget">
-
-		<h1>Existing Users:</h1>
-
-
+	<h1>Existing Users:</h1>
 	<table id="users" class="ui-widget ui-widget-content">
 		<thead>
 			<tr class="ui-widget-header ">
@@ -167,10 +157,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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 <code>modal</code> option to true, and specify primary and secondary user actions with the <code>buttons</code> option.</p>
 
+<div class="demo-description">
+<p>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 <code>modal</code> option to true, and specify primary and secondary user actions with the <code>buttons</code> option.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/dialog/modal-message.html b/development-bundle/demos/dialog/modal-message.html
index a0ab01b..90a88c3 100644
--- a/development-bundle/demos/dialog/modal-message.html
+++ b/development-bundle/demos/dialog/modal-message.html
@@ -1,30 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Dialog - Modal message</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../external/jquery.bgiframe-2.1.1.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../external/jquery.bgiframe-2.1.2.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
 		// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
-		$("#dialog").dialog("destroy");
+		$( "#dialog:ui-dialog" ).dialog( "destroy" );
 	
-		$("#dialog-message").dialog({
+		$( "#dialog-message" ).dialog({
 			modal: true,
 			buttons: {
 				Ok: function() {
-					$(this).dialog('close');
+					$( this ).dialog( "close" );
 				}
 			}
 		});
@@ -61,10 +61,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Use a modal dialog to explicitly acknowledge information or an action before continuing their work.  Set the <code>modal</code> option to true, and specify a primary action (Ok) with the <code>buttons</code> option.</p>
 
+<div class="demo-description">
+<p>Use a modal dialog to explicitly acknowledge information or an action before continuing their work.  Set the <code>modal</code> option to true, and specify a primary action (Ok) with the <code>buttons</code> option.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/dialog/modal.html b/development-bundle/demos/dialog/modal.html
index 1eb69f0..ce56c30 100644
--- a/development-bundle/demos/dialog/modal.html
+++ b/development-bundle/demos/dialog/modal.html
@@ -1,25 +1,25 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Dialog - Basic modal</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../external/jquery.bgiframe-2.1.1.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../external/jquery.bgiframe-2.1.2.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
 		// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
-		$("#dialog").dialog("destroy");
+		$( "#dialog:ui-dialog" ).dialog( "destroy" );
 	
-		$("#dialog-modal").dialog({
+		$( "#dialog-modal" ).dialog({
 			height: 140,
 			modal: true
 		});
@@ -28,7 +28,6 @@
 </head>
 <body>
 
-
 <div class="demo">
 
 <div id="dialog-modal" title="Basic modal dialog">
@@ -51,10 +50,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>A modal dialog prevents the user from interacting with the rest of the page until it is closed.  To add a semi-transparent layer that dims out the page content behind the dialog, set the background color and opacity of the <code>overlay</code> option.</p>
 
+<div class="demo-description">
+<p>A modal dialog prevents the user from interacting with the rest of the page until it is closed.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/draggable/constrain-movement.html b/development-bundle/demos/draggable/constrain-movement.html
index 3bb9075..9610fc4 100644
--- a/development-bundle/demos/draggable/constrain-movement.html
+++ b/development-bundle/demos/draggable/constrain-movement.html
@@ -1,35 +1,35 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Constrain movement</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	.draggable { width: 90px; height: 90px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
 	#draggable, #draggable2 { margin-bottom:20px; }
 	#draggable { cursor: n-resize; }
 	#draggable2 { cursor: e-resize; }
-	#containment-wrapper { width: 95%; height:150px; border:2px solid #ccc; padding: 10px;}
+	#containment-wrapper { width: 95%; height:150px; border:2px solid #ccc; padding: 10px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ axis: 'y' });
-		$("#draggable2").draggable({ axis: 'x' });
-		
-		$("#draggable3").draggable({ containment: '#containment-wrapper', scroll: false });
-		$("#draggable4").draggable({ containment: '#demo-frame' });
-		$("#draggable5").draggable({ containment: 'parent' });
+		$( "#draggable" ).draggable({ axis: "y" });
+		$( "#draggable2" ).draggable({ axis: "x" });
 
+		$( "#draggable3" ).draggable({ containment: "#containment-wrapper", scroll: false });
+		$( "#draggable4" ).draggable({ containment: "#demo-frame" });
+		$( "#draggable5" ).draggable({ containment: "parent" });
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 
 <h3 class="docs">Constrain movement along an axis:</h3>
@@ -59,12 +59,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Constrain the movement of each draggable by defining the boundaries of the draggable area. Set the <code>axis</code> option to limit the draggable's path to the x- or y-axis, or use the <code>containment</code> option to specify a parent DOM element or a jQuery selector, like 'document.'
-</p>
 
+<div class="demo-description">
+<p>Constrain the movement of each draggable by defining the boundaries of the draggable area. Set the <code>axis</code> option to limit the draggable's path to the x- or y-axis, or use the <code>containment</code> option to specify a parent DOM element or a jQuery selector, like 'document.'</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/cursor-style.html b/development-bundle/demos/draggable/cursor-style.html
index 3263029..6ef5426 100644
--- a/development-bundle/demos/draggable/cursor-style.html
+++ b/development-bundle/demos/draggable/cursor-style.html
@@ -1,27 +1,28 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Cursor style</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2, #draggable3 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ cursorAt: { cursor: 'move', top: 56, left: 56 } });
-		$("#draggable2").draggable({ cursorAt: { cursor: 'crosshair', top: -5, left: -5 } });
-		$("#draggable3").draggable({ cursorAt: { bottom: 0 } });
+		$( "#draggable" ).draggable({ cursorAt: { cursor: "move", top: 56, left: 56 } });
+		$( "#draggable2" ).draggable({ cursorAt: { cursor: "crosshair", top: -5, left: -5 } });
+		$( "#draggable3" ).draggable({ cursorAt: { bottom: 0 } });
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -38,12 +39,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Position the cursor while dragging the object. By default the cursor appears in the center of the dragged object; use the <code>cursorAt</code> 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 <code>cursor</code> option with a valid CSS cursor value: default, move, pointer, crosshair, etc.
-</p>
 
+<div class="demo-description">
+<p>Position the cursor while dragging the object. By default the cursor appears in the center of the dragged object; use the <code>cursorAt</code> 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 <code>cursor</code> option with a valid CSS cursor value: default, move, pointer, crosshair, etc.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/default.html b/development-bundle/demos/draggable/default.html
index b50c54a..d8085b0 100644
--- a/development-bundle/demos/draggable/default.html
+++ b/development-bundle/demos/draggable/default.html
@@ -1,21 +1,21 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable { width: 150px; height: 150px; padding: 0.5em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable();
+		$( "#draggable" ).draggable();
 	});
 	</script>
 </head>
@@ -29,12 +29,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-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.
-</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/draggable/delay-start.html b/development-bundle/demos/draggable/delay-start.html
index c997e28..45e3eda 100644
--- a/development-bundle/demos/draggable/delay-start.html
+++ b/development-bundle/demos/draggable/delay-start.html
@@ -1,27 +1,28 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Delay start</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2 { width: 120px; height: 120px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ distance: 20 });
-		$("#draggable2").draggable({ delay: 1000 });
-		$(".ui-draggable").disableSelection();
+		$( "#draggable" ).draggable({ distance: 20 });
+		$( "#draggable2" ).draggable({ delay: 1000 });
+		$( ".ui-draggable" ).disableSelection();
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -34,12 +35,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Delay the start of dragging for a number of milliseconds with the <code>delay</code> option; prevent dragging until the cursor is held down and dragged a specifed number of pixels with the <code>distance</code> option. 
-</p>
 
+<div class="demo-description">
+<p>Delay the start of dragging for a number of milliseconds with the <code>delay</code> option; prevent dragging until the cursor is held down and dragged a specifed number of pixels with the <code>distance</code> option. </p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/events.html b/development-bundle/demos/draggable/events.html
index 194598f..ed067d1 100644
--- a/development-bundle/demos/draggable/events.html
+++ b/development-bundle/demos/draggable/events.html
@@ -1,51 +1,53 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Events</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#draggable { width: 16em; padding: 0 1em; }
-		#draggable ul li { margin: 1em 0; padding: 0.5em 0; } * html #draggable ul li { height: 1%; }
-		#draggable ul li span.ui-icon { float: left; }
-		#draggable ul li span.count { font-weight: bold; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#draggable { width: 16em; padding: 0 1em; }
+	#draggable ul li { margin: 1em 0; padding: 0.5em 0; } * html #draggable ul li { height: 1%; }
+	#draggable ul li span.ui-icon { float: left; }
+	#draggable ul li span.count { font-weight: bold; }
 	</style>
-	<script type="text/javascript">
-		$(function() {
-			var $start_counter = $('#event-start'), $drag_counter = $('#event-drag'), $stop_counter = $('#event-stop');
-			var counts = [0,0,0];
+	<script>
+	$(function() {
+		var $start_counter = $( "#event-start" ),
+			$drag_counter = $( "#event-drag" ),
+			$stop_counter = $( "#event-stop" ),
+			counts = [ 0, 0, 0 ];
 
-			$("#draggable").draggable({
-				start: function() {
-					counts[0]++;
-					updateCounterStatus($start_counter,counts[0]);
-				},
-				drag: function() {
-					counts[1]++;
-					updateCounterStatus($drag_counter,counts[1]);
-				},
-				stop: function() {
-					counts[2]++;
-					updateCounterStatus($stop_counter,counts[2]);
-				}
-			});
+		$( "#draggable" ).draggable({
+			start: function() {
+				counts[ 0 ]++;
+				updateCounterStatus( $start_counter, counts[ 0 ] );
+			},
+			drag: function() {
+				counts[ 1 ]++;
+				updateCounterStatus( $drag_counter, counts[ 1 ] );
+			},
+			stop: function() {
+				counts[ 2 ]++;
+				updateCounterStatus( $stop_counter, counts[ 2 ] );
+			}
 		});
 
-		function updateCounterStatus($event_counter,new_count) {
+		function updateCounterStatus( $event_counter, new_count ) {
 			// first update the status visually...
-			if (!$event_counter.hasClass('ui-state-hover')) {
-				$event_counter.addClass('ui-state-hover')
-					.siblings().removeClass('ui-state-hover');
+			if ( !$event_counter.hasClass( "ui-state-hover" ) ) {
+				$event_counter.addClass( "ui-state-hover" )
+					.siblings().removeClass( "ui-state-hover" );
 			}
 			// ...then update the numbers
-			$('span.count',$event_counter).text(new_count);
+			$( "span.count", $event_counter ).text( new_count );
 		}
+	});
 	</script>
 </head>
 <body>
@@ -65,12 +67,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Layer functionality onto the draggable using the <code>start</code>, <code>drag</code>, and <code>stop</code> events.  Start is fired at the start of the drag; drag during the drag; and stop when dragging stops.
-</p>
 
+<div class="demo-description">
+<p>Layer functionality onto the draggable using the <code>start</code>, <code>drag</code>, and <code>stop</code> events.  Start is fired at the start of the drag; drag during the drag; and stop when dragging stops.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/draggable/handle.html b/development-bundle/demos/draggable/handle.html
index 16bd8a8..dc6d7b9 100644
--- a/development-bundle/demos/draggable/handle.html
+++ b/development-bundle/demos/draggable/handle.html
@@ -1,28 +1,29 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Handles</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
 	#draggable p { cursor: move; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ handle: 'p' });
-		$("#draggable2").draggable({ cancel: "p.ui-widget-header" });
-		$("div, p").disableSelection();
+		$( "#draggable" ).draggable({ handle: "p" });
+		$( "#draggable2" ).draggable({ cancel: "p.ui-widget-header" });
+		$( "div, p" ).disableSelection();
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -38,11 +39,12 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>Allow dragging only when the cursor is over a specific part of the draggable.  Use the <code>handle</code> option to specify the jQuery selector of an element (or group of elements) used to drag the object.</p>
 <p>Or prevent dragging when the cursor is over a specific element (or group of elements) within the draggable.  Use the <code>cancel</code> option to specify a jQuery selector over which to "cancel" draggable functionality.</p>
-
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/index.html b/development-bundle/demos/draggable/index.html
index 65b900c..0beda8e 100644
--- a/development-bundle/demos/draggable/index.html
+++ b/development-bundle/demos/draggable/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/draggable/revert.html b/development-bundle/demos/draggable/revert.html
index 77b7959..11f3abd 100644
--- a/development-bundle/demos/draggable/revert.html
+++ b/development-bundle/demos/draggable/revert.html
@@ -1,26 +1,27 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Revert position</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ revert: true });
-		$("#draggable2").draggable({ revert: true, helper: 'clone' });
+		$( "#draggable" ).draggable({ revert: true });
+		$( "#draggable2" ).draggable({ revert: true, helper: "clone" });
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -33,12 +34,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Return the draggable (or it's helper) to its original location when dragging stops with the boolean <code>revert</code> option.
-</p>
 
+<div class="demo-description">
+<p>Return the draggable (or it's helper) to its original location when dragging stops with the boolean <code>revert</code> option.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/scroll.html b/development-bundle/demos/draggable/scroll.html
index c7033b3..a650ed5 100644
--- a/development-bundle/demos/draggable/scroll.html
+++ b/development-bundle/demos/draggable/scroll.html
@@ -1,27 +1,28 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Auto-scroll</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2, #draggable3 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ scroll: true });
-		$("#draggable2").draggable({ scroll: true, scrollSensitivity: 100 });
-		$("#draggable3").draggable({ scroll: true, scrollSpeed: 100 });
+		$( "#draggable" ).draggable({ scroll: true });
+		$( "#draggable2" ).draggable({ scroll: true, scrollSensitivity: 100 });
+		$( "#draggable3" ).draggable({ scroll: true, scrollSpeed: 100 });
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -40,12 +41,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Automatically scroll the document when the draggable is moved beyond the viewport. Set the <code>scroll</code> option to true to enable auto-scrolling, and fine-tune when scrolling is triggered and its speed with the <code>scrollSensitivity</code> and <code>scrollSpeed</code> options.
-</p>
 
+<div class="demo-description">
+<p>Automatically scroll the document when the draggable is moved beyond the viewport. Set the <code>scroll</code> option to true to enable auto-scrolling, and fine-tune when scrolling is triggered and its speed with the <code>scrollSensitivity</code> and <code>scrollSpeed</code> options.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/snap-to.html b/development-bundle/demos/draggable/snap-to.html
index a9ad846..14e254e 100644
--- a/development-bundle/demos/draggable/snap-to.html
+++ b/development-bundle/demos/draggable/snap-to.html
@@ -1,31 +1,32 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Snap to element or grid</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	.draggable { width: 90px; height: 80px; padding: 5px; float: left; margin: 0 10px 10px 0; font-size: .9em; }
 	.ui-widget-header p, .ui-widget-content p { margin: 0; }
 	#snaptarget { height: 140px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ snap: true });
-		$("#draggable2").draggable({ snap: '.ui-widget-header' });
-		$("#draggable3").draggable({ snap: '.ui-widget-header', snapMode: 'outer' });
-		$("#draggable4").draggable({ grid: [20,20] });
-		$("#draggable5").draggable({ grid: [80, 80] });
+		$( "#draggable" ).draggable({ snap: true });
+		$( "#draggable2" ).draggable({ snap: ".ui-widget-header" });
+		$( "#draggable3" ).draggable({ snap: ".ui-widget-header", snapMode: "outer" });
+		$( "#draggable4" ).draggable({ grid: [ 20,20 ] });
+		$( "#draggable5" ).draggable({ grid: [ 80, 80 ] });
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="snaptarget" class="ui-widget-header">
@@ -56,15 +57,12 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Snap the draggable to the inner or outer boundaries of a DOM element.  Use the <code>snap</code>, <code>snapMode</code> (inner, outer, both), and <code>snapTolerance</code> (distance in pixels the draggable must be from the element when snapping is invoked) options. </p>
 
+<div class="demo-description">
+<p>Snap the draggable to the inner or outer boundaries of a DOM element.  Use the <code>snap</code>, <code>snapMode</code> (inner, outer, both), and <code>snapTolerance</code> (distance in pixels the draggable must be from the element when snapping is invoked) options. </p>
 <p>Or snap the draggable to a grid.  Set the dimensions of grid cells (height and width in pixels) with the <code>grid</code> option.</p>
-
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/sortable.html b/development-bundle/demos/draggable/sortable.html
index a87ddc0..4bc3298 100644
--- a/development-bundle/demos/draggable/sortable.html
+++ b/development-bundle/demos/draggable/sortable.html
@@ -1,35 +1,36 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable + Sortable</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	.demo ul { list-style-type: none; margin: 0; padding: 0; margin-bottom: 10px; }
 	.demo li { margin: 5px; padding: 5px; width: 150px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable").sortable({
+		$( "#sortable" ).sortable({
 			revert: true
 		});
-		$("#draggable").draggable({
-			connectToSortable: '#sortable',
-			helper: 'clone',
-			revert: 'invalid'
+		$( "#draggable" ).draggable({
+			connectToSortable: "#sortable",
+			helper: "clone",
+			revert: "invalid"
 		});
-		$("ul, li").disableSelection();
+		$( "ul, li" ).disableSelection();
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <ul>
@@ -46,12 +47,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Draggables are built to interact seamlessly with <a href="#">sortables</a>.
-</p>
 
+<div class="demo-description">
+<p>Draggables are built to interact seamlessly with <a href="#">sortables</a>.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/draggable/visual-feedback.html b/development-bundle/demos/draggable/visual-feedback.html
index bb54de4..5d0ff26 100644
--- a/development-bundle/demos/draggable/visual-feedback.html
+++ b/development-bundle/demos/draggable/visual-feedback.html
@@ -1,37 +1,38 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Draggable - Visual feedback</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2, #draggable3, #set div { width: 90px; height: 90px; padding: 0.5em; float: left; margin: 0 10px 10px 0; }
 	#draggable, #draggable2, #draggable3 { margin-bottom:20px; }
 	#set { clear:both; float:left; width: 368px; height: 120px; }
 	p { clear:both; margin:0; padding:1em 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable({ helper: 'original' });
-		$("#draggable2").draggable({ opacity: 0.7, helper: 'clone' });
-		$("#draggable3").draggable({
-			cursor: 'move',
+		$( "#draggable" ).draggable({ helper: "original" });
+		$( "#draggable2" ).draggable({ opacity: 0.7, helper: "clone" });
+		$( "#draggable3" ).draggable({
+			cursor: "move",
 			cursorAt: { top: -12, left: -20 },
-			helper: function(event) {
-				return $('<div class="ui-widget-header">I\'m a custom helper</div>');
+			helper: function( event ) {
+				return $( "<div class='ui-widget-header'>I'm a custom helper</div>" );
 			}
 		});
-		$("#set div").draggable({ stack: { group: '#set div', min: 1 } });
+		$( "#set div" ).draggable({ stack: "#set div" });
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 
 <h3 class="docs">With helpers:</h3>
@@ -65,12 +66,12 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Provide feedback to users as they drag an object in the form of a helper. The <code>helper</code> 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 <code>opacity</code> option.</p>
 
+<div class="demo-description">
+<p>Provide feedback to users as they drag an object in the form of a helper. The <code>helper</code> 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 <code>opacity</code> option.</p>
 <p>To clarify which draggable is in play, bring the draggable in motion to front. Use the <code>zIndex</code> option to set a higher z-index for the helper, if in play, or use the <code>stack</code> option to ensure that the last item dragged will appear on top of others in the same group on drag stop.</p>
-
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/droppable/accepted-elements.html b/development-bundle/demos/droppable/accepted-elements.html
index 0ba0207..a2e3b33 100644
--- a/development-bundle/demos/droppable/accepted-elements.html
+++ b/development-bundle/demos/droppable/accepted-elements.html
@@ -1,38 +1,39 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Droppable - Accept Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<meta charset="utf-8">
+	<title>jQuery UI Droppable - Accept</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
 	#draggable, #draggable-nonvalid { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-
-		$("#draggable, #draggable-nonvalid").draggable();
-
-		$("#droppable").droppable({
-			accept: '#draggable',
-			activeClass: 'ui-state-hover',
-			hoverClass: 'ui-state-active',
-			drop: function(event, ui) {
-				$(this).addClass('ui-state-highlight').find('p').html('Dropped!');
+		$( "#draggable, #draggable-nonvalid" ).draggable();
+		$( "#droppable" ).droppable({
+			accept: "#draggable",
+			activeClass: "ui-state-hover",
+			hoverClass: "ui-state-active",
+			drop: function( event, ui ) {
+				$( this )
+					.addClass( "ui-state-highlight" )
+					.find( "p" )
+						.html( "Dropped!" );
 			}
 		});
-
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable-nonvalid" class="ui-widget-content">
@@ -49,10 +50,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Specify using the <code>accept</code> option which element (or group of elements) is accepted by the target droppable.</p>
 
+<div class="demo-description">
+<p>Specify using the <code>accept</code> option which element (or group of elements) is accepted by the target droppable.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/droppable/default.html b/development-bundle/demos/droppable/default.html
index 4134dc9..4de66d7 100644
--- a/development-bundle/demos/droppable/default.html
+++ b/development-bundle/demos/droppable/default.html
@@ -1,33 +1,36 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Droppable - Default Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<meta charset="utf-8">
+	<title>jQuery UI Droppable - Default functionality</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
 	#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable();
-		$("#droppable").droppable({
-			drop: function(event, ui) {
-				$(this).addClass('ui-state-highlight').find('p').html('Dropped!');
+		$( "#draggable" ).draggable();
+		$( "#droppable" ).droppable({
+			drop: function( event, ui ) {
+				$( this )
+					.addClass( "ui-state-highlight" )
+					.find( "p" )
+						.html( "Dropped!" );
 			}
 		});
-
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -40,10 +43,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Enable any DOM element to be droppable, a target for draggable elements.</p>
 
+<div class="demo-description">
+<p>Enable any DOM element to be droppable, a target for draggable elements.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/droppable/images/high_tatras.jpg b/development-bundle/demos/droppable/images/high_tatras.jpg
index e2365c2..5723680 100644
Binary files a/development-bundle/demos/droppable/images/high_tatras.jpg and b/development-bundle/demos/droppable/images/high_tatras.jpg differ
diff --git a/development-bundle/demos/droppable/images/high_tatras2.jpg b/development-bundle/demos/droppable/images/high_tatras2.jpg
index 909024a..1acad3a 100644
Binary files a/development-bundle/demos/droppable/images/high_tatras2.jpg and b/development-bundle/demos/droppable/images/high_tatras2.jpg differ
diff --git a/development-bundle/demos/droppable/images/high_tatras3.jpg b/development-bundle/demos/droppable/images/high_tatras3.jpg
index 05a4395..e158b1a 100644
Binary files a/development-bundle/demos/droppable/images/high_tatras3.jpg and b/development-bundle/demos/droppable/images/high_tatras3.jpg differ
diff --git a/development-bundle/demos/droppable/images/high_tatras4.jpg b/development-bundle/demos/droppable/images/high_tatras4.jpg
index ed753d1..da4124d 100644
Binary files a/development-bundle/demos/droppable/images/high_tatras4.jpg and b/development-bundle/demos/droppable/images/high_tatras4.jpg differ
diff --git a/development-bundle/demos/droppable/index.html b/development-bundle/demos/droppable/index.html
index c2e08ee..13ae985 100644
--- a/development-bundle/demos/droppable/index.html
+++ b/development-bundle/demos/droppable/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Droppable Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
@@ -15,6 +15,7 @@
 		<li><a href="propagation.html">Prevent propagation</a></li>
 		<li><a href="visual-feedback.html">Visual feedback</a></li>
 		<li><a href="revert.html">Revert draggable position</a></li>
+		<li><a href="shopping-cart.html">Shopping Cart</a></li>
 		<li><a href="photo-manager.html">Simple photo manager</a></li>
 	</ul>
 </div>
diff --git a/development-bundle/demos/droppable/photo-manager.html b/development-bundle/demos/droppable/photo-manager.html
index a611c0c..2b16eb7 100644
--- a/development-bundle/demos/droppable/photo-manager.html
+++ b/development-bundle/demos/droppable/photo-manager.html
@@ -1,167 +1,184 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Droppable - Simple photo manager</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#gallery { float: left; width: 65%; min-height: 12em; } * html #gallery { height: 12em; } /* IE6 */
-		.gallery.custom-state-active { background: #eee; }
-		.gallery li { float: left; width: 96px; padding: 0.4em; margin: 0 0.4em 0.4em 0; text-align: center; }
-		.gallery li h5 { margin: 0 0 0.4em; cursor: move; }
-		.gallery li a { float: right; }
-		.gallery li a.ui-icon-zoomin { float: left; }
-		.gallery li img { width: 100%; cursor: move; }
-
-		#trash { float: right; width: 32%; min-height: 18em; padding: 1%;} * html #trash { height: 18em; } /* IE6 */
-		#trash h4 { line-height: 16px; margin: 0 0 0.4em; }
-		#trash h4 .ui-icon { float: left; }
-		#trash .gallery h5 { display: none; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#gallery { float: left; width: 65%; min-height: 12em; } * html #gallery { height: 12em; } /* IE6 */
+	.gallery.custom-state-active { background: #eee; }
+	.gallery li { float: left; width: 96px; padding: 0.4em; margin: 0 0.4em 0.4em 0; text-align: center; }
+	.gallery li h5 { margin: 0 0 0.4em; cursor: move; }
+	.gallery li a { float: right; }
+	.gallery li a.ui-icon-zoomin { float: left; }
+	.gallery li img { width: 100%; cursor: move; }
+
+	#trash { float: right; width: 32%; min-height: 18em; padding: 1%;} * html #trash { height: 18em; } /* IE6 */
+	#trash h4 { line-height: 16px; margin: 0 0 0.4em; }
+	#trash h4 .ui-icon { float: left; }
+	#trash .gallery h5 { display: none; }
 	</style>
-	<script type="text/javascript">
-		$(function() {
-			// there's the gallery and the trash
-			var $gallery = $('#gallery'), $trash = $('#trash');
-
-			// let the gallery items be draggable
-			$('li',$gallery).draggable({
-				cancel: 'a.ui-icon',// clicking an icon won't initiate dragging
-				revert: 'invalid', // when not dropped, the item will revert back to its initial position
-				containment: $('#demo-frame').length ? '#demo-frame' : 'document', // stick to demo-frame if present
-				helper: 'clone',
-				cursor: 'move'
-			});
-
-			// let the trash be droppable, accepting the gallery items
-			$trash.droppable({
-				accept: '#gallery > li',
-				activeClass: 'ui-state-highlight',
-				drop: function(ev, ui) {
-					deleteImage(ui.draggable);
-				}
-			});
-
-			// let the gallery be droppable as well, accepting items from the trash
-			$gallery.droppable({
-				accept: '#trash li',
-				activeClass: 'custom-state-active',
-				drop: function(ev, ui) {
-					recycleImage(ui.draggable);
-				}
-			});
+	<script>
+	$(function() {
+		// there's the gallery and the trash
+		var $gallery = $( "#gallery" ),
+			$trash = $( "#trash" );
+
+		// let the gallery items be draggable
+		$( "li", $gallery ).draggable({
+			cancel: "a.ui-icon", // clicking an icon won't initiate dragging
+			revert: "invalid", // when not dropped, the item will revert back to its initial position
+			containment: $( "#demo-frame" ).length ? "#demo-frame" : "document", // stick to demo-frame if present
+			helper: "clone",
+			cursor: "move"
+		});
 
-			// image deletion function
-			var recycle_icon = '<a href="link/to/recycle/script/when/we/have/js/off" title="Recycle this image" class="ui-icon ui-icon-refresh">Recycle image</a>';
-			function deleteImage($item) {
-				$item.fadeOut(function() {
-					var $list = $('ul',$trash).length ? $('ul',$trash) : $('<ul class="gallery ui-helper-reset"/>').appendTo($trash);
+		// let the trash be droppable, accepting the gallery items
+		$trash.droppable({
+			accept: "#gallery > li",
+			activeClass: "ui-state-highlight",
+			drop: function( event, ui ) {
+				deleteImage( ui.draggable );
+			}
+		});
 
-					$item.find('a.ui-icon-trash').remove();
-					$item.append(recycle_icon).appendTo($list).fadeIn(function() {
-						$item.animate({ width: '48px' }).find('img').animate({ height: '36px' });
-					});
-				});
+		// let the gallery be droppable as well, accepting items from the trash
+		$gallery.droppable({
+			accept: "#trash li",
+			activeClass: "custom-state-active",
+			drop: function( event, ui ) {
+				recycleImage( ui.draggable );
 			}
+		});
 
-			// image recycle function
-			var trash_icon = '<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>';
-			function recycleImage($item) {
-				$item.fadeOut(function() {
-					$item.find('a.ui-icon-refresh').remove();
-					$item.css('width','96px').append(trash_icon).find('img').css('height','72px').end().appendTo($gallery).fadeIn();
+		// image deletion function
+		var recycle_icon = "<a href='link/to/recycle/script/when/we/have/js/off' title='Recycle this image' class='ui-icon ui-icon-refresh'>Recycle image</a>";
+		function deleteImage( $item ) {
+			$item.fadeOut(function() {
+				var $list = $( "ul", $trash ).length ?
+					$( "ul", $trash ) :
+					$( "<ul class='gallery ui-helper-reset'/>" ).appendTo( $trash );
+
+				$item.find( "a.ui-icon-trash" ).remove();
+				$item.append( recycle_icon ).appendTo( $list ).fadeIn(function() {
+					$item
+						.animate({ width: "48px" })
+						.find( "img" )
+							.animate({ height: "36px" });
 				});
+			});
+		}
+
+		// image recycle function
+		var trash_icon = "<a href='link/to/trash/script/when/we/have/js/off' title='Delete this image' class='ui-icon ui-icon-trash'>Delete image</a>";
+		function recycleImage( $item ) {
+			$item.fadeOut(function() {
+				$item
+					.find( "a.ui-icon-refresh" )
+						.remove()
+					.end()
+					.css( "width", "96px")
+					.append( trash_icon )
+					.find( "img" )
+						.css( "height", "72px" )
+					.end()
+					.appendTo( $gallery )
+					.fadeIn();
+			});
+		}
+
+		// image preview function, demonstrating the ui.dialog used as a modal window
+		function viewLargerImage( $link ) {
+			var src = $link.attr( "href" ),
+				title = $link.siblings( "img" ).attr( "alt" ),
+				$modal = $( "img[src$='" + src + "']" );
+
+			if ( $modal.length ) {
+				$modal.dialog( "open" );
+			} else {
+				var img = $( "<img alt='" + title + "' width='384' height='288' style='display: none; padding: 8px;' />" )
+					.attr( "src", src ).appendTo( "body" );
+				setTimeout(function() {
+					img.dialog({
+						title: title,
+						width: 400,
+						modal: true
+					});
+				}, 1 );
 			}
-
-			// image preview function, demonstrating the ui.dialog used as a modal window
-			function viewLargerImage($link) {
-				var src = $link.attr('href');
-				var title = $link.siblings('img').attr('alt');
-				var $modal = $('img[src$="'+src+'"]');
-
-				if ($modal.length) {
-					$modal.dialog('open')
-				} else {
-					var img = $('<img alt="'+title+'" width="384" height="288" style="display:none;padding: 8px;" />')
-						.attr('src',src).appendTo('body');
-					setTimeout(function() {
-						img.dialog({
-								title: title,
-								width: 400,
-								modal: true
-							});
-					}, 1);
-				}
+		}
+
+		// resolve the icons behavior with event delegation
+		$( "ul.gallery > li" ).click(function( event ) {
+			var $item = $( this ),
+				$target = $( event.target );
+
+			if ( $target.is( "a.ui-icon-trash" ) ) {
+				deleteImage( $item );
+			} else if ( $target.is( "a.ui-icon-zoomin" ) ) {
+				viewLargerImage( $target );
+			} else if ( $target.is( "a.ui-icon-refresh" ) ) {
+				recycleImage( $item );
 			}
 
-			// resolve the icons behavior with event delegation
-			$('ul.gallery > li').click(function(ev) {
-				var $item = $(this);
-				var $target = $(ev.target);
-
-				if ($target.is('a.ui-icon-trash')) {
-					deleteImage($item);
-				} else if ($target.is('a.ui-icon-zoomin')) {
-					viewLargerImage($target);
-				} else if ($target.is('a.ui-icon-refresh')) {
-					recycleImage($item);
-				}
-
-				return false;
-			});
+			return false;
 		});
+	});
 	</script>
 </head>
 <body>
-	<div class="demo ui-widget ui-helper-clearfix">
-
-		<ul id="gallery" class="gallery ui-helper-reset ui-helper-clearfix">
-			<li class="ui-widget-content ui-corner-tr">
-				<h5 class="ui-widget-header">High Tatras</h5>
-				<img src="images/high_tatras_min.jpg" alt="The peaks of High Tatras" width="96" height="72" />
-				<a href="images/high_tatras.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
-				<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
-			</li>
-			<li class="ui-widget-content ui-corner-tr">
-				<h5 class="ui-widget-header">High Tatras 2</h5>
-				<img src="images/high_tatras2_min.jpg" alt="The chalet at the Green mountain lake" width="96" height="72" />
-				<a href="images/high_tatras2.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
-				<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
-			</li>
-			<li class="ui-widget-content ui-corner-tr">
-				<h5 class="ui-widget-header">High Tatras 3</h5>
-				<img src="images/high_tatras3_min.jpg" alt="Planning the ascent" width="96" height="72" />
-				<a href="images/high_tatras3.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
-				<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
-			</li>
-			<li class="ui-widget-content ui-corner-tr">
-				<h5 class="ui-widget-header">High Tatras 4</h5>
-				<img src="images/high_tatras4_min.jpg" alt="On top of Kozi kopka" width="96" height="72" />
-				<a href="images/high_tatras4.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
-				<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
-			</li>
-		</ul>
-
-		<div id="trash" class="ui-widget-content ui-state-default">
-			<h4 class="ui-widget-header"><span class="ui-icon ui-icon-trash">Trash</span> Trash</h4>
-		</div>
-
-	</div><!-- End demo -->
-
-	<div class="demo-description">
-
-		<p>You can delete an image either by dragging it to the Trash or by clicking the trash icon.</p>
-		<p>You can "recycle" an image by dragging it back to the gallery or by clicking the recycle icon.</p>
-		<p>You can view larger image by clicking the zoom icon. jQuery UI dialog widget is used for the modal window.</p>
-
-	</div><!-- End demo-description -->
+
+<div class="demo ui-widget ui-helper-clearfix">
+
+<ul id="gallery" class="gallery ui-helper-reset ui-helper-clearfix">
+	<li class="ui-widget-content ui-corner-tr">
+		<h5 class="ui-widget-header">High Tatras</h5>
+		<img src="images/high_tatras_min.jpg" alt="The peaks of High Tatras" width="96" height="72" />
+		<a href="images/high_tatras.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
+		<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
+	</li>
+	<li class="ui-widget-content ui-corner-tr">
+		<h5 class="ui-widget-header">High Tatras 2</h5>
+		<img src="images/high_tatras2_min.jpg" alt="The chalet at the Green mountain lake" width="96" height="72" />
+		<a href="images/high_tatras2.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
+		<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
+	</li>
+	<li class="ui-widget-content ui-corner-tr">
+		<h5 class="ui-widget-header">High Tatras 3</h5>
+		<img src="images/high_tatras3_min.jpg" alt="Planning the ascent" width="96" height="72" />
+		<a href="images/high_tatras3.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
+		<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
+	</li>
+	<li class="ui-widget-content ui-corner-tr">
+		<h5 class="ui-widget-header">High Tatras 4</h5>
+		<img src="images/high_tatras4_min.jpg" alt="On top of Kozi kopka" width="96" height="72" />
+		<a href="images/high_tatras4.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
+		<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
+	</li>
+</ul>
+
+<div id="trash" class="ui-widget-content ui-state-default">
+	<h4 class="ui-widget-header"><span class="ui-icon ui-icon-trash">Trash</span> Trash</h4>
+</div>
+
+</div><!-- End demo -->
+
+
+<div class="demo-description">
+<p>You can delete an image either by dragging it to the Trash or by clicking the trash icon.</p>
+<p>You can "recycle" an image by dragging it back to the gallery or by clicking the recycle icon.</p>
+<p>You can view larger image by clicking the zoom icon. jQuery UI dialog widget is used for the modal window.</p>
+</div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/droppable/propagation.html b/development-bundle/demos/droppable/propagation.html
index e6cf3c2..3275dd2 100644
--- a/development-bundle/demos/droppable/propagation.html
+++ b/development-bundle/demos/droppable/propagation.html
@@ -1,48 +1,53 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Droppable - Prevent propagation</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable { width: 100px; height: 40px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
 	#droppable, #droppable2 { width: 230px; height: 120px; padding: 0.5em; float: left; margin: 10px; }
 	#droppable-inner, #droppable2-inner { width: 170px; height: 60px; padding: 0.5em; float: left; margin: 10px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
+		$( "#draggable" ).draggable();
 
-		$("#draggable").draggable();
-
-		$("#droppable, #droppable-inner").droppable({
-			activeClass: 'ui-state-hover',
-			hoverClass: 'ui-state-active',
-			drop: function(event, ui) {
-				$(this).addClass('ui-state-highlight').find('> p').html('Dropped!');
+		$( "#droppable, #droppable-inner" ).droppable({
+			activeClass: "ui-state-hover",
+			hoverClass: "ui-state-active",
+			drop: function( event, ui ) {
+				$( this )
+					.addClass( "ui-state-highlight" )
+					.find( "> p" )
+						.html( "Dropped!" );
 				return false;
 			}
 		});
 
-		$("#droppable2, #droppable2-inner").droppable({
+		$( "#droppable2, #droppable2-inner" ).droppable({
 			greedy: true,
-			activeClass: 'ui-state-hover',
-			hoverClass: 'ui-state-active',
-			drop: function(event, ui) {
-				$(this).addClass('ui-state-highlight').find('> p').html('Dropped!');
+			activeClass: "ui-state-hover",
+			hoverClass: "ui-state-active",
+			drop: function( event, ui ) {
+				$( this )
+					.addClass( "ui-state-highlight" )
+					.find( "> p" )
+						.html( "Dropped!" );
 			}
 		});
-
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -65,10 +70,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>When working with nested droppables — for example, you may have an editable directory structure displayed as a tree, with folder and document nodes — the <code>greedy</code> option set to true prevents event propagation when a draggable is dropped on a child node (droppable).</p>
 
+<div class="demo-description">
+<p>When working with nested droppables — for example, you may have an editable directory structure displayed as a tree, with folder and document nodes — the <code>greedy</code> option set to true prevents event propagation when a draggable is dropped on a child node (droppable).</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/droppable/revert.html b/development-bundle/demos/droppable/revert.html
index 1f36c71..24da889 100644
--- a/development-bundle/demos/droppable/revert.html
+++ b/development-bundle/demos/droppable/revert.html
@@ -1,38 +1,40 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Droppable - Revert draggable position</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2 { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
 	#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-
-		$("#draggable").draggable({ revert: 'valid' });
-		$("#draggable2").draggable({ revert: 'invalid' });
-
-		$("#droppable").droppable({
-			activeClass: 'ui-state-hover',
-			hoverClass: 'ui-state-active',
-			drop: function(event, ui) {
-				$(this).addClass('ui-state-highlight').find('p').html('Dropped!');
+		$( "#draggable" ).draggable({ revert: "valid" });
+		$( "#draggable2" ).draggable({ revert: "invalid" });
+
+		$( "#droppable" ).droppable({
+			activeClass: "ui-state-hover",
+			hoverClass: "ui-state-active",
+			drop: function( event, ui ) {
+				$( this )
+					.addClass( "ui-state-highlight" )
+					.find( "p" )
+						.html( "Dropped!" );
 			}
 		});
-
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="draggable" class="ui-widget-content">
@@ -49,10 +51,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Return the draggable (or it's helper) to its original location when dragging stops with the boolean <code>revert</code> option set on the draggable.</p>
 
+<div class="demo-description">
+<p>Return the draggable (or it's helper) to its original location when dragging stops with the boolean <code>revert</code> option set on the draggable.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/droppable/shopping-cart.html b/development-bundle/demos/droppable/shopping-cart.html
new file mode 100644
index 0000000..4fb9a87
--- /dev/null
+++ b/development-bundle/demos/droppable/shopping-cart.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+	<meta charset="utf-8">
+	<title>jQuery UI Droppable - Shopping Cart Demo</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<script src="../../ui/jquery.ui.accordion.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	h1 { padding: .2em; margin: 0; }
+	#products { float:left; width: 500px; margin-right: 2em; }
+	#cart { width: 200px; float: left; }
+	/* style the list to maximize the droppable hitarea */
+	#cart ol { margin: 0; padding: 1em 0 1em 3em; }
+	</style>
+	<script>
+	$(function() {
+		$( "#catalog" ).accordion();
+		$( "#catalog li" ).draggable({
+			appendTo: "body",
+			helper: "clone"
+		});
+		$( "#cart ol" ).droppable({
+			activeClass: "ui-state-default",
+			hoverClass: "ui-state-hover",
+			accept: ":not(.ui-sortable-helper)",
+			drop: function( event, ui ) {
+				$( this ).find( ".placeholder" ).remove();
+				$( "<li></li>" ).text( ui.draggable.text() ).appendTo( this );
+			}
+		}).sortable({
+			items: "li:not(.placeholder)",
+			sort: function() {
+				// gets added unintentionally by droppable interacting with sortable
+				// using connectWithSortable fixes this, but doesn't allow you to customize active/hoverClass options
+				$( this ).removeClass( "ui-state-default" );
+			}
+		});
+	});
+	</script>
+</head>
+<body>
+
+<div class="demo">
+	
+<div id="products">
+	<h1 class="ui-widget-header">Products</h1>	
+	<div id="catalog">
+		<h3><a href="#">T-Shirts</a></h3>
+		<div>
+			<ul>
+				<li>Lolcat Shirt</li>
+				<li>Cheezeburger Shirt</li>
+				<li>Buckit Shirt</li>
+			</ul>
+		</div>
+		<h3><a href="#">Bags</a></h3>
+		<div>
+			<ul>
+				<li>Zebra Striped</li>
+				<li>Black Leather</li>
+				<li>Alligator Leather</li>
+			</ul>
+		</div>
+		<h3><a href="#">Gadgets</a></h3>
+		<div>
+			<ul>
+				<li>iPhone</li>
+				<li>iPod</li>
+				<li>iPad</li>
+			</ul>
+		</div>
+	</div>
+</div>
+
+<div id="cart">
+	<h1 class="ui-widget-header">Shopping Cart</h1>
+	<div class="ui-widget-content">
+		<ol>
+			<li class="placeholder">Add your items here</li>
+		</ol>
+	</div>
+</div>
+
+</div><!-- End demo -->
+
+
+
+<div class="demo-description">
+<p>Demonstrate how to use an accordion to structure products into a catalog and make use drag and drop for adding them to a shopping cart, where they are sortable.</p>
+</div><!-- End demo-description -->
+
+</body>
+</html>
diff --git a/development-bundle/demos/droppable/visual-feedback.html b/development-bundle/demos/droppable/visual-feedback.html
index 1bb6c60..ff2ddc6 100644
--- a/development-bundle/demos/droppable/visual-feedback.html
+++ b/development-bundle/demos/droppable/visual-feedback.html
@@ -1,43 +1,49 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Droppable - Visual feedback</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#draggable, #draggable2 { width: 90px; height: 90px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
 	#droppable, #droppable2 { width: 120px; height: 120px; padding: 0.5em; float: left; margin: 10px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#draggable").draggable();
-		$("#droppable").droppable({
-			hoverClass: 'ui-state-active',
-			drop: function(event, ui) {
-				$(this).addClass('ui-state-highlight').find('p').html('Dropped!');
+		$( "#draggable" ).draggable();
+		$( "#droppable" ).droppable({
+			hoverClass: "ui-state-active",
+			drop: function( event, ui ) {
+				$( this )
+					.addClass( "ui-state-highlight" )
+					.find( "p" )
+						.html( "Dropped!" );
 			}
 		});
-		
-		$("#draggable2").draggable();
-		$("#droppable2").droppable({
+
+		$( "#draggable2" ).draggable();
+		$( "#droppable2" ).droppable({
 			accept: "#draggable2",
-			activeClass: 'ui-state-hover',
-			drop: function(event, ui) {
-				$(this).addClass('ui-state-highlight').find('p').html('Dropped!');
+			activeClass: "ui-state-hover",
+			drop: function( event, ui ) {
+				$( this )
+					.addClass( "ui-state-highlight" )
+					.find( "p" )
+						.html( "Dropped!" );
 			}
 		});
-
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 
 <h3 class="docs">Feedback on hover:</h3>
@@ -60,14 +66,13 @@
 	<p>Drop here</p>
 </div>
 
-<!-- add active class demo -->
-
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Change the droppable's appearance on hover, or when the droppable is active (an acceptable draggable is dropped on it).  Use the <code>hoverClass</code> or <code>activeClass</code> options to specify respective classes.</p>
 
+<div class="demo-description">
+<p>Change the droppable's appearance on hover, or when the droppable is active (an acceptable draggable is dropped on it).  Use the <code>hoverClass</code> or <code>activeClass</code> options to specify respective classes.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/effect/default.html b/development-bundle/demos/effect/default.html
index f2988c5..6be20f3 100644
--- a/development-bundle/demos/effect/default.html
+++ b/development-bundle/demos/effect/default.html
@@ -1,60 +1,63 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Effects - Effect Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.blind.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.bounce.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.clip.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.drop.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.explode.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.fade.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.fold.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.highlight.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.pulsate.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.scale.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.shake.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.slide.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.transfer.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; position: relative;}
+	<meta charset="utf-8">
+	<title>jQuery UI Effects - Effect demo</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<script src="../../ui/jquery.effects.blind.js"></script>
+	<script src="../../ui/jquery.effects.bounce.js"></script>
+	<script src="../../ui/jquery.effects.clip.js"></script>
+	<script src="../../ui/jquery.effects.drop.js"></script>
+	<script src="../../ui/jquery.effects.explode.js"></script>
+	<script src="../../ui/jquery.effects.fade.js"></script>
+	<script src="../../ui/jquery.effects.fold.js"></script>
+	<script src="../../ui/jquery.effects.highlight.js"></script>
+	<script src="../../ui/jquery.effects.pulsate.js"></script>
+	<script src="../../ui/jquery.effects.scale.js"></script>
+	<script src="../../ui/jquery.effects.shake.js"></script>
+	<script src="../../ui/jquery.effects.slide.js"></script>
+	<script src="../../ui/jquery.effects.transfer.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+		.toggler { width: 500px; height: 200px; position: relative; }
 		#button { padding: .5em 1em; text-decoration: none; }
 		#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
 		#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
 		.ui-effects-transfer { border: 2px dotted gray; } 
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		
-		//run the currently selected effect
-		function runEffect(){
-			//get effect type from 
-			var selectedEffect = $('#effectTypes').val();
+		// run the currently selected effect
+		function runEffect() {
+			// get effect type from 
+			var selectedEffect = $( "#effectTypes" ).val();
 			
-			//most effect types need no options passed by default
+			// most effect types need no options passed by default
 			var options = {};
-			//check if it's scale, transfer, or size - they need options explicitly set
-			if(selectedEffect == 'scale'){ options = {percent: 0}; }
-			else if(selectedEffect == 'transfer'){ options = { to: "#button", className: 'ui-effects-transfer' }; }
-			else if(selectedEffect == 'size'){ options = { to: {width: 200,height: 60} }; }
-			
-			//run the effect
-			$("#effect").effect(selectedEffect,options,500,callback);
+			// some effects have required parameters
+			if ( selectedEffect === "scale" ) {
+				options = { percent: 0 };
+			} else if ( selectedEffect === "transfer" ) {
+				options = { to: "#button", className: "ui-effects-transfer" };
+			} else if ( selectedEffect === "size" ) {
+				options = { to: { width: 200, height: 60 } };
+			}
+
+			// run the effect
+			$( "#effect" ).effect( selectedEffect, options, 500, callback );
 		};
-		
-		//callback function to bring a hidden box back
-		function callback(){
-			setTimeout(function(){
-				$("#effect:hidden").removeAttr('style').hide().fadeIn();
-			}, 1000);
+
+		// callback function to bring a hidden box back
+		function callback() {
+			setTimeout(function() {
+				$( "#effect" ).removeAttr( "style" ).hide().fadeIn();
+			}, 1000 );
 		};
-		
-		//set effect from select menu value
-		$("#button").click(function() {
+
+		// set effect from select menu value
+		$( "#button" ).click(function() {
 			runEffect();
 			return false;
 		});
@@ -94,13 +97,12 @@
 
 <a href="#" id="button" class="ui-state-default ui-corner-all">Run Effect</a>
 
-
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to show the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to show the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/effect/easing.html b/development-bundle/demos/effect/easing.html
index 12d18fe..0b6ba08 100644
--- a/development-bundle/demos/effect/easing.html
+++ b/development-bundle/demos/effect/easing.html
@@ -1,81 +1,91 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Effects - Effect Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.graph {
-			float: left;
-			margin-left: 10px;
-		}
+	<meta charset="utf-8">
+	<title>jQuery UI Effects - Easing demo</title>
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.graph {
+		float: left;
+		margin-left: 10px;
+	}
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		if (!$("<canvas/>")[0].getContext) {
-			$("<div/>").text("Your browser doesn't support canvas, which is required for this demo. Give Firefox 3 a try!").appendTo("#graphs");
+		if ( !$( "<canvas/>" )[0].getContext ) {
+			$( "<div/>" ).text(
+				"Your browser doesn't support canvas, which is required for this demo. " +
+				"Give Firefox 3 a try!"
+			).appendTo( "#graphs" );
 			return;
 		}
-		var i = 0;
-		var width = 100,
+
+		var i = 0,
+			width = 100,
 			height = 100;
-		$.each($.easing, function(name, impl) {
-			// skip linera/jswing and any non functioning implementation
-			if (!$.isFunction(impl) || /jswing/.test(name))
+		$.each( $.easing, function( name, impl ) {
+			// skip linear/jswing and any non functioning implementation
+			if ( !$.isFunction( impl ) || /jswing/.test( name ) ) {
 				return;
-			var graph = $("<div/>").addClass("graph").appendTo("#graphs");
-			var text = $("<div/>").text(++i + ". " + name).appendTo(graph);
-			
-			var canvas = $("<canvas/>").appendTo(graph)[0]
+			}
+			var graph = $( "<div/>" ).addClass( "graph" ).appendTo( "#graphs" ),
+				text = $( "<div/>" ).text( ++i + ". " + name ).appendTo( graph ),
+				wrap = $( "<div/>" ).appendTo( graph ).css( 'overflow', 'hidden' ),
+				canvas = $( "<canvas/>" ).appendTo( wrap )[ 0 ];
 			canvas.width = width;
 			canvas.height = height;
-			var drawHeight = height * 0.8;
-			var cradius = 10;
-			var ctx = canvas.getContext("2d");
+			var drawHeight = height * 0.8,
+				cradius = 10;
+				ctx = canvas.getContext( "2d" );
 			ctx.fillStyle = "black";
-			
+
 			ctx.beginPath();
-			ctx.moveTo(cradius, 0);
-			ctx.quadraticCurveTo(0, 0, 0, cradius);
-			ctx.lineTo(0, height - cradius);
-			ctx.quadraticCurveTo(0, height, cradius, height);
-			ctx.lineTo(width - cradius, height);
-			ctx.quadraticCurveTo(width, height, width, height - cradius);
-			ctx.lineTo(width, 0);
-			ctx.lineTo(cradius, 0);
+			ctx.moveTo( cradius, 0 );
+			ctx.quadraticCurveTo( 0, 0, 0, cradius );
+			ctx.lineTo( 0, height - cradius );
+			ctx.quadraticCurveTo( 0, height, cradius, height );
+			ctx.lineTo( width - cradius, height );
+			ctx.quadraticCurveTo( width, height, width, height - cradius );
+			ctx.lineTo( width, 0 );
+			ctx.lineTo( cradius, 0 );
 			ctx.fill();
-			
+
 			ctx.strokeStyle = "#555";
 			ctx.beginPath();
-			ctx.moveTo(width * 0.1, drawHeight + .5);
-			ctx.lineTo(width * 0.9, drawHeight + .5);
+			ctx.moveTo( width * 0.1, drawHeight + .5 );
+			ctx.lineTo( width * 0.9, drawHeight + .5 );
 			ctx.stroke();
 
 			ctx.strokeStyle = "#555";
 			ctx.beginPath();
-			ctx.moveTo(width * 0.1, drawHeight * .3 - .5);
-			ctx.lineTo(width * 0.9, drawHeight * .3 - .5);
+			ctx.moveTo( width * 0.1, drawHeight * .3 - .5 );
+			ctx.lineTo( width * 0.9, drawHeight * .3 - .5 );
 			ctx.stroke();
 			
 			ctx.strokeStyle = "white";
 			ctx.beginPath();
 			ctx.lineWidth = 2;
-			ctx.moveTo(width * 0.1, drawHeight);
-			$.each(new Array(width), function(position) {
-				var val = impl(0, position, 0, 1, height);
-				if (/linear|jswing/.test(name)) val = position / width;
-				ctx.lineTo(position * 0.8 + width * 0.1, drawHeight - drawHeight * val * 0.7);
+			ctx.moveTo( width * 0.1, drawHeight );
+			$.each( new Array( width ), function( position ) {
+				var val = impl( 0, position, 0, 1, height );
+				if ( /linear|jswing/.test( name ) ) {
+					val = position / width;
+				}
+				ctx.lineTo( position * 0.8 + width * 0.1,
+					drawHeight - drawHeight * val * 0.7 );
 			});
 			ctx.stroke();
 			graph.click(function() {
-				$(canvas).animate({height: "hide"}, 2000, name).animate({"left": "0"}, 800).animate({height: "show"}, 2000, name);
+				wrap
+					.animate( { height: "hide" }, 2000, name )
+					.delay( 800 )
+					.animate( { height: "show" }, 2000, name );
 			});
-			
-			graph.width(width).height(height + text.height() + 10);
-			//return false;
+
+			graph.width( width ).height( height + text.height() + 10 );
 		});
 	});
 	</script>
@@ -84,18 +94,15 @@
 
 <div class="demo">
 
-	<div id="graphs"></div>
-	
-	<div id="animted"></div>
+<div id="graphs"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p><strong>All easings provided by jQuery UI are drawn above, using a HTML canvas element</strong>. Click a diagram to see the easing in action.</p>
 
+<div class="demo-description">
+<p><strong>All easings provided by jQuery UI are drawn above, using a HTML canvas element</strong>. Click a diagram to see the easing in action.</p>
 </div><!-- End demo-description -->
 
 </body>
 </html>
-
diff --git a/development-bundle/demos/effect/index.html b/development-bundle/demos/effect/index.html
index b914c96..65aa399 100644
--- a/development-bundle/demos/effect/index.html
+++ b/development-bundle/demos/effect/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<title>jQuery UI Effect Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<meta charset="utf-8">
+	<title>jQuery UI Effects Demos</title>
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
@@ -11,12 +11,7 @@
 	<h4>Examples</h4>
 	<ul>
 		<li class="demo-config-on"><a href="default.html">Effect showcase</a></li>
-		<li class="demo-config-on"><a href="easing.html">Easing showcase</a></li>
-		<!-- WIP
-		<li class="demo-config-on"><a href="scale.html">Scale effect</a></li>
-		<li class="demo-config-on"><a href="size.html">Size effect</a></li>
-		<li class="demo-config-on"><a href="transfer.html">Transfer effect</a></li>
-		-->
+		<li><a href="easing.html">Easing showcase</a></li>
 	</ul>
 </div>
 
diff --git a/development-bundle/demos/hide/default.html b/development-bundle/demos/hide/default.html
index 0e18a55..1409024 100644
--- a/development-bundle/demos/hide/default.html
+++ b/development-bundle/demos/hide/default.html
@@ -1,63 +1,61 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects - Hide Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.blind.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.bounce.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.clip.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.drop.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.explode.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.fold.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.highlight.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.pulsate.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.scale.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.shake.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.slide.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.transfer.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; }
-		#button { padding: .5em 1em; text-decoration: none; }
-		#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
-		#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
-		.ui-effects-transfer { border: 2px dotted gray; } 
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<script src="../../ui/jquery.effects.blind.js"></script>
+	<script src="../../ui/jquery.effects.bounce.js"></script>
+	<script src="../../ui/jquery.effects.clip.js"></script>
+	<script src="../../ui/jquery.effects.drop.js"></script>
+	<script src="../../ui/jquery.effects.explode.js"></script>
+	<script src="../../ui/jquery.effects.fold.js"></script>
+	<script src="../../ui/jquery.effects.highlight.js"></script>
+	<script src="../../ui/jquery.effects.pulsate.js"></script>
+	<script src="../../ui/jquery.effects.scale.js"></script>
+	<script src="../../ui/jquery.effects.shake.js"></script>
+	<script src="../../ui/jquery.effects.slide.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.toggler { width: 500px; height: 200px; }
+	#button { padding: .5em 1em; text-decoration: none; }
+	#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
+	#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
+		// run the currently selected effect
+		function runEffect() {
+			// get effect type from 
+			var selectedEffect = $( "#effectTypes" ).val();
 
-		//run the currently selected effect
-		function runEffect(){
-			//get effect type from 
-			var selectedEffect = $('#effectTypes').val();
-			
-			//most effect types need no options passed by default
+			// most effect types need no options passed by default
 			var options = {};
-			//check if it's scale, transfer, or size - they need options explicitly set
-			if(selectedEffect == 'scale'){  options = {percent: 0}; }
-			else if(selectedEffect == 'transfer'){ options = { to: "#button", className: 'ui-effects-transfer' }; }
-			else if(selectedEffect == 'size'){ options = { to: {width: 200,height: 60} }; }
-			
-			//run the effect
-			$("#effect").hide(selectedEffect,options,500,callback);
+			// some effects have required parameters
+			if ( selectedEffect === "scale" ) {
+				options = { percent: 0 };
+			} else if ( selectedEffect === "size" ) {
+				options = { to: { width: 200, height: 60 } };
+			}
+
+			// run the effect
+			$( "#effect" ).hide( selectedEffect, options, 1000, callback );
 		};
-		
-		//callback function to bring a hidden box back
-		function callback(){
-			setTimeout(function(){
-				$("#effect:hidden").removeAttr('style').hide().fadeIn();
-			}, 1000);
+
+		// callback function to bring a hidden box back
+		function callback() {
+			setTimeout(function() {
+				$( "#effect" ).removeAttr( "style" ).hide().fadeIn();
+			}, 1000 );
 		};
-		
-		//set effect from select menu value
-		$("#button").click(function() {
+
+		// set effect from select menu value
+		$( "#button" ).click(function() {
 			runEffect();
 			return false;
 		});
-
 	});
 	</script>
 </head>
@@ -88,18 +86,16 @@
 	<option value="shake">Shake</option>
 	<option value="size">Size</option>
 	<option value="slide">Slide</option>
-	<option value="transfer">Transfer</option>
 </select>
 
 <a href="#" id="button" class="ui-state-default ui-corner-all">Run Effect</a>
 
-
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to preview the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to preview the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/hide/index.html b/development-bundle/demos/hide/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/hide/index.html
+++ b/development-bundle/demos/hide/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/images/demo-config-on-tile.gif b/development-bundle/demos/images/demo-config-on-tile.gif
index 359da95..a96b5bf 100644
Binary files a/development-bundle/demos/images/demo-config-on-tile.gif and b/development-bundle/demos/images/demo-config-on-tile.gif differ
diff --git a/development-bundle/demos/images/demo-config-on.gif b/development-bundle/demos/images/demo-config-on.gif
index 9fcec1a..e3b6d7c 100644
Binary files a/development-bundle/demos/images/demo-config-on.gif and b/development-bundle/demos/images/demo-config-on.gif differ
diff --git a/development-bundle/demos/images/demo-spindown-closed.gif b/development-bundle/demos/images/demo-spindown-closed.gif
index b247824..ad4bd37 100644
Binary files a/development-bundle/demos/images/demo-spindown-closed.gif and b/development-bundle/demos/images/demo-spindown-closed.gif differ
diff --git a/development-bundle/demos/images/icon-docs-info.gif b/development-bundle/demos/images/icon-docs-info.gif
index 6b0464e..ea6d2be 100644
Binary files a/development-bundle/demos/images/icon-docs-info.gif and b/development-bundle/demos/images/icon-docs-info.gif differ
diff --git a/development-bundle/demos/images/jquery_32x32.png b/development-bundle/demos/images/jquery_32x32.png
deleted file mode 100644
index 1cd42c9..0000000
Binary files a/development-bundle/demos/images/jquery_32x32.png and /dev/null differ
diff --git a/development-bundle/demos/images/jqueryui_32x32.png b/development-bundle/demos/images/jqueryui_32x32.png
deleted file mode 100644
index 23ca0f8..0000000
Binary files a/development-bundle/demos/images/jqueryui_32x32.png and /dev/null differ
diff --git a/development-bundle/demos/images/pbar-ani.gif b/development-bundle/demos/images/pbar-ani.gif
index 0dfd45b..cb59a04 100644
Binary files a/development-bundle/demos/images/pbar-ani.gif and b/development-bundle/demos/images/pbar-ani.gif differ
diff --git a/development-bundle/demos/images/sizzlejs_32x32.png b/development-bundle/demos/images/sizzlejs_32x32.png
deleted file mode 100644
index 8d7ae1e..0000000
Binary files a/development-bundle/demos/images/sizzlejs_32x32.png and /dev/null differ
diff --git a/development-bundle/demos/images/transparent_1x1.png b/development-bundle/demos/images/transparent_1x1.png
deleted file mode 100644
index 209a438..0000000
Binary files a/development-bundle/demos/images/transparent_1x1.png and /dev/null differ
diff --git a/development-bundle/demos/index.html b/development-bundle/demos/index.html
index db3e2bf..0bdee3d 100644
--- a/development-bundle/demos/index.html
+++ b/development-bundle/demos/index.html
@@ -1,97 +1,105 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
-	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Demos</title>
-	<link type="text/css" href="../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<link type="text/css" href="demos.css" rel="stylesheet" />
-	<script type="text/javascript" src="../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../external/jquery.bgiframe-2.1.1.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.accordion.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.autocomplete.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.button.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.datepicker.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.dialog.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.droppable.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.position.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.progressbar.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.resizable.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.selectable.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.slider.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.sortable.js"></script>
-	<script type="text/javascript" src="../ui/jquery.ui.tabs.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.core.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.blind.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.bounce.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.clip.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.drop.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.explode.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.fold.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.highlight.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.pulsate.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.scale.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.shake.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.slide.js"></script>
-	<script type="text/javascript" src="../ui/jquery.effects.transfer.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-af.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ar.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-az.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-bs.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-bg.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ca.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-cs.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-da.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-de.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-el.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-en-GB.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-eo.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-es.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-et.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-eu.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-fa.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-fi.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-fo.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-fr.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-fr-CH.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-he.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-hr.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-hu.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-hy.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-id.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-is.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-it.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ja.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ko.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-lt.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-lv.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ms.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-nl.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-no.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-pl.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-pt-BR.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ro.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ru.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-sk.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-sl.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-sq.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-sr.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-sr-SR.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-sv.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-ta.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-th.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-tr.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-uk.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-vi.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-zh-CN.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-zh-HK.js"></script>
-	<script type="text/javascript" src="../ui/i18n/jquery.ui.datepicker-zh-TW.js"></script>
-	<script type="text/javascript">
-	jQuery(function($) {
+	<link rel="stylesheet" href="../themes/base/jquery.ui.all.css">
+	<link rel="stylesheet" href="demos.css">
+	<script src="../jquery-1.5.1.js"></script>
+	<script src="../external/jquery.bgiframe-2.1.2.js"></script>
+	<script src="../ui/jquery.ui.core.js"></script>
+	<script src="../ui/jquery.ui.widget.js"></script>
+	<script src="../ui/jquery.ui.mouse.js"></script>
+	<script src="../ui/jquery.ui.accordion.js"></script>
+	<script src="../ui/jquery.ui.autocomplete.js"></script>
+	<script src="../ui/jquery.ui.button.js"></script>
+	<script src="../ui/jquery.ui.datepicker.js"></script>
+	<script src="../ui/jquery.ui.dialog.js"></script>
+	<script src="../ui/jquery.ui.draggable.js"></script>
+	<script src="../ui/jquery.ui.droppable.js"></script>
+	<script src="../ui/jquery.ui.position.js"></script>
+	<script src="../ui/jquery.ui.progressbar.js"></script>
+	<script src="../ui/jquery.ui.resizable.js"></script>
+	<script src="../ui/jquery.ui.selectable.js"></script>
+	<script src="../ui/jquery.ui.slider.js"></script>
+	<script src="../ui/jquery.ui.sortable.js"></script>
+	<script src="../ui/jquery.ui.tabs.js"></script>
+	<script src="../ui/jquery.effects.core.js"></script>
+	<script src="../ui/jquery.effects.blind.js"></script>
+	<script src="../ui/jquery.effects.bounce.js"></script>
+	<script src="../ui/jquery.effects.clip.js"></script>
+	<script src="../ui/jquery.effects.drop.js"></script>
+	<script src="../ui/jquery.effects.explode.js"></script>
+	<script src="../ui/jquery.effects.fold.js"></script>
+	<script src="../ui/jquery.effects.highlight.js"></script>
+	<script src="../ui/jquery.effects.pulsate.js"></script>
+	<script src="../ui/jquery.effects.scale.js"></script>
+	<script src="../ui/jquery.effects.shake.js"></script>
+	<script src="../ui/jquery.effects.slide.js"></script>
+	<script src="../ui/jquery.effects.transfer.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-af.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ar.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ar-DZ.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-az.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-bs.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-bg.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ca.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-cs.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-da.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-de.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-el.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-en-AU.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-en-GB.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-en-NZ.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-eo.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-es.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-et.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-eu.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-fa.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-fi.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-fo.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-fr.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-fr-CH.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-gl.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-he.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-hr.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-hu.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-hy.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-id.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-is.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-it.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ja.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ko.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-kz.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-lt.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-lv.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ml.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ms.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-nl.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-no.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-pl.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-pt.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-pt-BR.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-rm.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ro.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ru.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-sk.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-sl.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-sq.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-sr.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-sr-SR.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-sv.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-ta.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-th.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-tj.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-tr.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-uk.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-vi.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-zh-CN.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-zh-HK.js"></script>
+	<script src="../ui/i18n/jquery.ui.datepicker-zh-TW.js"></script>
+	<script>
+	$(function() {
 		
 		$('.left-nav a').click(function(ev) {
 			window.location.hash = this.href.replace(/.+\/([^\/]+)\/index\.html/,'$1') + '|default';
diff --git a/development-bundle/demos/position/cycler.html b/development-bundle/demos/position/cycler.html
index fa0571e..b52e227 100644
--- a/development-bundle/demos/position/cycler.html
+++ b/development-bundle/demos/position/cycler.html
@@ -1,30 +1,27 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Position - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-    
-    <style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+    <style>
    	html, body {
    		margin: 0;
 		padding: 0
    	}
     </style>
-    
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		
-		$.fn.position2 = function(options) {
-			return this.position($.extend({
+		$.fn.position2 = function( options ) {
+			return this.position( $.extend({
 				of: window,
-				using: function(to) {
-					$(this).css({
+				using: function( to ) {
+					$( this ).css({
 						top: to.top,
 						left: to.left
 					})
@@ -32,8 +29,8 @@
 				collision: "none"
 			}, options));
 		}
-		
-		$.fn.left = function(using) {
+
+		$.fn.left = function( using ) {
 			return this.position2({
 				my: "right middle",
 				at: "left middle",
@@ -41,7 +38,7 @@
 				using: using
 			});
 		}
-		$.fn.right = function(using) {
+		$.fn.right = function( using ) {
 			return this.position2({
 				my: "left middle",
 				at: "right middle",
@@ -49,76 +46,76 @@
 				using: using
 			});
 		}
-		$.fn.center = function(using) {
+		$.fn.center = function( using ) {
 			return this.position2({
 				my: "center middle",
 				at: "center middle",
 				using: using
 			});
 		};
-		
-		$("img:eq(0)").left();
-		$("img:eq(1)").center();
-		$("img:eq(2)").right();
-		
-		$("body").css({
+
+		$( "img:eq(0)" ).left();
+		$( "img:eq(1)" ).center();
+		$( "img:eq(2)" ).right();
+
+		$( "body" ).css({
 			overflow: "hidden"
 		})
-		$(".demo").css({
+		$( ".demo" ).css({
 			position: "relative",
 		});
-		$(".demo img").css({
+		$( ".demo img" ).css({
 			position: "absolute",
 		});
-		
-		function animate(to) {
-			$(this).animate(to);
+
+		function animate( to ) {
+			$(this).animate( to );
 		}
 		function next() {
-			$("img:eq(2)").center(animate);
-			$("img:eq(1)").left(animate)
-			$("img:eq(0)").right().appendTo(".demo");
+			$( "img:eq(2)" ).center( animate );
+			$( "img:eq(1)" ).left( animate )
+			$( "img:eq(0)" ).right().appendTo( ".demo" );
 		}
 		function previous() {
-			$("img:eq(0)").center(animate);
-			$("img:eq(1)").right(animate);
-			$("img:eq(2)").left().prependTo(".demo");
+			$( "img:eq(0)" ).center( animate );
+			$( "img:eq(1)" ).right( animate );
+			$( "img:eq(2)" ).left().prependTo( ".demo" );
 		}
-		$("#previous").click(previous);
-		$("#next").click(next);
-		
-		$(".demo img").click(function() {
-			$(".demo img").index(this) == 0 ? previous() : next();
+		$( "#previous" ).click( previous );
+		$( "#next" ).click( next );
+
+		$( ".demo img" ).click(function() {
+			$( ".demo img" ).index( this ) === 0 ? previous() : next();
+		});
+
+		$( window ).resize(function() {
+			$( "img:eq(0)" ).left( animate );
+			$( "img:eq(1)" ).center( animate );
+			$( "img:eq(2)" ).right( animate );
 		});
-		
-		$(window).resize(function() {
-			$("img:eq(0)").left(animate);
-			$("img:eq(1)").center(animate);
-			$("img:eq(2)").right(animate);
-		})
 	});
 	</script>
-    
 </head>
 <body>
 
 <div class="demo">
 
-	<img src="images/earth.jpg" />
-	<img src="images/flight.jpg" />
-	<img src="images/rocket.jpg" />
+<img src="images/earth.jpg" />
+<img src="images/flight.jpg" />
+<img src="images/rocket.jpg" />
 
-	<a id="previous" href="#">Previous</a>
-	<a id="next" href="#">Next</a>
-</div>
+<a id="previous" href="#">Previous</a>
+<a id="next" href="#">Next</a>
+
+</div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>A prototype for the <a href="http://wiki.jqueryui.com/Photoviewer">Photoviewer</a> using Position to place images at the center, left and right and cycle them.
 <br/>Use the links at the top to cycle, or click on the images on the left and right.
 <br/>Note how the images are repositioned when resizing the window.
 <br/>Warning: Doesn't currently work inside the demo viewer; open in a new window instead!</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/position/default.html b/development-bundle/demos/position/default.html
index d26959b..87fc8e3 100644
--- a/development-bundle/demos/position/default.html
+++ b/development-bundle/demos/position/default.html
@@ -1,28 +1,25 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Position - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.draggable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.position.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.draggable.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	div#parent {
 		width: 60%;
 		margin: 10px auto;
 		padding: 5px;
-		
 		border: 1px solid #777;
 		background-color: #fbca93;
 		text-align: center;
 	}
-
 	div.positionable {
 		width: 75px;
 		height: 75px;
@@ -33,49 +30,46 @@
 		background-color: #bcd5e6;
 		text-align: center;
 	}
-
 	select, input {
 		margin-left: 15px;
 	}
-
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		
-		function position(using) {
-			$('.positionable').position({
-				of: $('#parent'),
-				my: $('#my_horizontal').val() + ' ' + $('#my_vertical').val(),
-				at: $('#at_horizontal').val() + ' '+ $('#at_vertical').val(),
-				offset: $('#offset').val(),
+		function position( using ) {
+			$( ".positionable" ).position({
+				of: $( "#parent" ),
+				my: $( "#my_horizontal" ).val() + " " + $( "#my_vertical" ).val(),
+				at: $( "#at_horizontal" ).val() + " " + $( "#at_vertical" ).val(),
+				offset: $( "#offset" ).val(),
 				using: using,
-				collision: $("#collision_horizontal").val() + ' ' + $("#collision_vertical").val()
+				collision: $( "#collision_horizontal" ).val() + ' ' + $( "#collision_vertical" ).val()
 			});
 		}
-		
-		$('.positionable').css("opacity", 0.5);
-		
-		$(':input').bind('click keyup change', function() { position(); });
-		
-		$("#parent").draggable({
+
+		$( ".positionable" ).css( "opacity", 0.5 );
+
+		$( ":input" ).bind( "click keyup change", function() { position(); });
+
+		$( "#parent" ).draggable({
 			drag: function() { position(); }
 		});
-		
-		$('.positionable').draggable({
-			drag: function(event, ui) {
+
+		$( ".positionable" ).draggable({
+			drag: function( event, ui ) {
 				// reset offset before calculating it
-				$("#offset").val("0");
-				position(function(result) {
-					$("#offset").val("" + (ui.offset.left - result.left) + " " + (ui.offset.top - result.top));
+				$( "#offset" ).val( "0" );
+				position(function( result ) {
+					$( "#offset" ).val( "" + ( ui.offset.left - result.left ) +
+						" " + ( ui.offset.top - result.top ) );
 					position();
 				});
 			}
 		});
-		
+
 		position();
 	});
 	</script>
-	
 </head>
 <body>
 
@@ -148,11 +142,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>Use the form controls to configure the positioning, or drag the positioned element to modify its offset.
 <br/>Drag around the parent element to see collision detection in action.</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/position/images/earth.jpg b/development-bundle/demos/position/images/earth.jpg
index 87ea488..e5477f7 100644
Binary files a/development-bundle/demos/position/images/earth.jpg and b/development-bundle/demos/position/images/earth.jpg differ
diff --git a/development-bundle/demos/position/images/flight.jpg b/development-bundle/demos/position/images/flight.jpg
index 9721986..362bd1a 100644
Binary files a/development-bundle/demos/position/images/flight.jpg and b/development-bundle/demos/position/images/flight.jpg differ
diff --git a/development-bundle/demos/position/images/rocket.jpg b/development-bundle/demos/position/images/rocket.jpg
index d3bff61..9c0495c 100644
Binary files a/development-bundle/demos/position/images/rocket.jpg and b/development-bundle/demos/position/images/rocket.jpg differ
diff --git a/development-bundle/demos/position/index.html b/development-bundle/demos/position/index.html
index 54a6d54..498c09b 100644
--- a/development-bundle/demos/position/index.html
+++ b/development-bundle/demos/position/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Position Demo</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/progressbar/animated.html b/development-bundle/demos/progressbar/animated.html
index e094f64..73f5477 100644
--- a/development-bundle/demos/progressbar/animated.html
+++ b/development-bundle/demos/progressbar/animated.html
@@ -1,20 +1,20 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Progressbar - Animated</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.progressbar.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.ui-progressbar-value { background-image: url(images/pbar-ani.gif); }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.progressbar.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-progressbar-value { background-image: url(images/pbar-ani.gif); }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#progressbar").progressbar({
+		$( "#progressbar" ).progressbar({
 			value: 59
 		});
 	});
@@ -28,8 +28,9 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 This progressbar has an animated fill by setting the
 <code>background-image</code>
@@ -37,7 +38,6 @@ on the
 <code>.ui-progressbar-value</code>
 element, using css.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/progressbar/default.html b/development-bundle/demos/progressbar/default.html
index 86c7c9c..5c6ca43 100644
--- a/development-bundle/demos/progressbar/default.html
+++ b/development-bundle/demos/progressbar/default.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Progressbar - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.progressbar.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.progressbar.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#progressbar").progressbar({
+		$( "#progressbar" ).progressbar({
 			value: 37
 		});
 	});
@@ -21,19 +21,15 @@
 
 <div class="demo">
 
-	<div id="progressbar"></div>
+<div id="progressbar"></div>
 
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
 <p>Default determinate progress bar.</p>
-
 </div><!-- End demo-description -->
 
-
-
 </body>
 </html>
diff --git a/development-bundle/demos/progressbar/images/pbar-ani.gif b/development-bundle/demos/progressbar/images/pbar-ani.gif
index 0dfd45b..cb59a04 100644
Binary files a/development-bundle/demos/progressbar/images/pbar-ani.gif and b/development-bundle/demos/progressbar/images/pbar-ani.gif differ
diff --git a/development-bundle/demos/progressbar/index.html b/development-bundle/demos/progressbar/index.html
index cf8ee9f..9836f59 100644
--- a/development-bundle/demos/progressbar/index.html
+++ b/development-bundle/demos/progressbar/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Progressbar Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/progressbar/resize.html b/development-bundle/demos/progressbar/resize.html
index fb99ab8..adc1fbb 100644
--- a/development-bundle/demos/progressbar/resize.html
+++ b/development-bundle/demos/progressbar/resize.html
@@ -1,21 +1,22 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Progressbar - Resizable</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.progressbar.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.progressbar.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#progressbar").progressbar({
+		$( "#progressbar" ).progressbar({
 			value: 37
 		});
-		$("#progressbarWrapper").resizable();
+		$( "#progressbarWrapper" ).resizable();
 	});
 	</script>
 </head>
@@ -23,16 +24,16 @@
 
 <div class="demo">
 
-	<div id="progressbarWrapper" style="height:30px; " class="ui-widget-default">
-		<div id="progressbar" style="height:100%;"></div>
-	</div>
+<div id="progressbarWrapper" style="height:30px; " class="ui-widget-default">
+	<div id="progressbar" style="height:100%;"></div>
+</div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>The progress bar's widths are specified in percentages for flexible sizing so it will resize to fit its container. Try resizing the height and width of this bar to see how it maintains the correct proportions. (This is not necessarily a real-world example, but it's a good illustration of how flexibly all the plugins are coded.)</p>
 
+<div class="demo-description">
+<p>The progress bar's widths are specified in percentages for flexible sizing so it will resize to fit its container. Try resizing the height and width of this bar to see how it maintains the correct proportions. (This is not necessarily a real-world example, but it's a good illustration of how flexibly all the plugins are coded.)</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/removeClass/default.html b/development-bundle/demos/removeClass/default.html
index 15a5a57..3bd52e6 100644
--- a/development-bundle/demos/removeClass/default.html
+++ b/development-bundle/demos/removeClass/default.html
@@ -1,29 +1,29 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects - removeClass Demo</title>
-	<link type="text/css" href="http://jquery-ui.googlecode.com/svn/trunk/themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="http://jquery-ui.googlecode.com/svn/trunk/jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="http://jquery-ui.googlecode.com/svn/trunk/ui/jquery.effects.core.js"></script>
-	<link type="text/css" href="http://jquery-ui.googlecode.com/svn/trunk/demos/demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; position: relative;}
-		#button { padding: .5em 1em; text-decoration: none; }
-		#effect {position: relative;  width: 240px;  padding: 1em;  letter-spacing: 0; font-size: 1.2em; border: 1px solid #000; background: #eee; color: #333; }
-		#effect.newClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.toggler { width: 500px; height: 200px; position: relative; }
+	#button { padding: .5em 1em; text-decoration: none; }
+	#effect { position: relative;  width: 240px;  padding: 1em;  letter-spacing: 0; font-size: 1.2em; border: 1px solid #000; background: #eee; color: #333; }
+	.newClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#button").click(function() {
-			$('#effect').removeClass('newClass', 1000, callback);
+		$( "#button" ).click(function() {
+			$( "#effect" ).removeClass( "newClass", 1000, callback );
 			return false;
 		});
-		
-		function callback(){
-			setTimeout(function(){
-				$('#effect').addClass('newClass');
-			}, 1500);
+
+		function callback() {
+			setTimeout(function() {
+				$( "#effect" ).addClass( "newClass" );
+			}, 1500 );
 		}
 	});
 	</script>
@@ -34,7 +34,7 @@
 
 <div class="toggler">
 	<div id="effect" class="newClass ui-corner-all">
-			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. 
+		Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. 
 	</div>
 </div>
 
@@ -42,10 +42,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to preview the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to preview the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/removeClass/index.html b/development-bundle/demos/removeClass/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/removeClass/index.html
+++ b/development-bundle/demos/removeClass/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/resizable/animate.html b/development-bundle/demos/resizable/animate.html
index 36739e3..c288d62 100644
--- a/development-bundle/demos/resizable/animate.html
+++ b/development-bundle/demos/resizable/animate.html
@@ -1,29 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Animate</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { width: 150px; height: 150px; padding: 0.5em; }
 	#resizable h3 { text-align: center; margin: 0; }
 	.ui-resizable-helper { border: 1px dotted gray; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
+		$( "#resizable" ).resizable({
 			animate: true
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-content">
@@ -32,10 +33,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Animate the resize action using the <code>animate</code> 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.</p>
 
+<div class="demo-description">
+<p>Animate the resize action using the <code>animate</code> 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.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/aspect-ratio.html b/development-bundle/demos/resizable/aspect-ratio.html
index ae236ec..421f2e4 100644
--- a/development-bundle/demos/resizable/aspect-ratio.html
+++ b/development-bundle/demos/resizable/aspect-ratio.html
@@ -1,28 +1,29 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Preserve aspect ratio</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { width: 160px; height: 90px; padding: 0.5em; }
 	#resizable h3 { text-align: center; margin: 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
-			aspectRatio: 16/9
+		$( "#resizable" ).resizable({
+			aspectRatio: 16 / 9
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-content">
@@ -31,10 +32,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Maintain the existing aspect ratio or set a new one to constrain the proportions on resize. Set the <code>aspectRatio</code> option to true, and optionally pass in a new ratio (i.e., 4/3)</p>
 
+<div class="demo-description">
+<p>Maintain the existing aspect ratio or set a new one to constrain the proportions on resize. Set the <code>aspectRatio</code> option to true, and optionally pass in a new ratio (i.e., 4/3)</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/constrain-area.html b/development-bundle/demos/resizable/constrain-area.html
index 2fdbbd9..a700335 100644
--- a/development-bundle/demos/resizable/constrain-area.html
+++ b/development-bundle/demos/resizable/constrain-area.html
@@ -1,30 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Constrain resize area</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style\>
 	#container { width: 300px; height: 300px; }
 	#container h3 { text-align: center; margin: 0; margin-bottom: 10px; }
 	#resizable { background-position: top left; width: 150px; height: 150px; }
 	#resizable, #container { padding: 0.5em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
-			containment: '#container'
+		$( "#resizable" ).resizable({
+			containment: "#container"
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="container" class="ui-widget-content">
@@ -36,10 +37,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Define the boundaries of the resizable area. Use the <code>containment</code> option to specify a parent DOM element or a jQuery selector, like 'document.'</p>
 
+<div class="demo-description">
+<p>Define the boundaries of the resizable area. Use the <code>containment</code> option to specify a parent DOM element or a jQuery selector, like 'document.'</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/default.html b/development-bundle/demos/resizable/default.html
index a8dfd25..ded3332 100644
--- a/development-bundle/demos/resizable/default.html
+++ b/development-bundle/demos/resizable/default.html
@@ -1,26 +1,27 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { width: 150px; height: 150px; padding: 0.5em; }
 	#resizable h3 { text-align: center; margin: 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable();
+		$( "#resizable" ).resizable();
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-content">
@@ -29,10 +30,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Enable any DOM element to be resizable.  With the cursor grab the right or bottom border and drag to the desired width or height.</p>
 
+<div class="demo-description">
+<p>Enable any DOM element to be resizable.  With the cursor grab the right or bottom border and drag to the desired width or height.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/delay-start.html b/development-bundle/demos/resizable/delay-start.html
index 16e0242..6fc2cc2 100644
--- a/development-bundle/demos/resizable/delay-start.html
+++ b/development-bundle/demos/resizable/delay-start.html
@@ -1,32 +1,33 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Delay start</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable, #resizable2 { width: 150px; height: 150px; padding: 0.5em; }
 	#resizable h3, #resizable2 h3 { text-align: center; margin: 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
+		$( "#resizable" ).resizable({
 			delay: 1000
 		});
 		
-		$("#resizable2").resizable({
+		$( "#resizable2" ).resizable({
 			distance: 40
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <h3 class="docs">Time delay (ms):</h3>
@@ -39,14 +40,13 @@
 	<h3 class="ui-widget-header">Distance</h3>
 </div>
 
-<!-- ADD DISTANCE DEMO -->
-
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Delay the start of resizng for a number of milliseconds with the <code>delay</code> option; prevent resizing until the cursor is held down and dragged a specifed number of pixels with the <code>distance</code> option.</p>
 
+<div class="demo-description">
+<p>Delay the start of resizng for a number of milliseconds with the <code>delay</code> option; prevent resizing until the cursor is held down and dragged a specifed number of pixels with the <code>distance</code> option.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/helper.html b/development-bundle/demos/resizable/helper.html
index 49e8114..a363856 100644
--- a/development-bundle/demos/resizable/helper.html
+++ b/development-bundle/demos/resizable/helper.html
@@ -1,29 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Helper</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { width: 150px; height: 150px; padding: 0.5em; }
 	#resizable h3 { text-align: center; margin: 0; }
 	.ui-resizable-helper { border: 2px dotted #00F; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
-			helper: 'ui-resizable-helper'
+		$( "#resizable" ).resizable({
+			helper: "ui-resizable-helper"
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-content">
@@ -32,10 +33,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Display only an outline of the element while resizing by setting the <code>helper</code> option to a CSS class.</p>
 
+<div class="demo-description">
+<p>Display only an outline of the element while resizing by setting the <code>helper</code> option to a CSS class.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/index.html b/development-bundle/demos/resizable/index.html
index 93198d0..45f4006 100644
--- a/development-bundle/demos/resizable/index.html
+++ b/development-bundle/demos/resizable/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/resizable/max-min.html b/development-bundle/demos/resizable/max-min.html
index a1c9f6f..81be5dd 100644
--- a/development-bundle/demos/resizable/max-min.html
+++ b/development-bundle/demos/resizable/max-min.html
@@ -1,22 +1,22 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Maximum / minimum size</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { width: 200px; height: 150px; padding: 5px; }
 	#resizable h3 { text-align: center; margin: 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
+		$( "#resizable" ).resizable({
 			maxHeight: 250,
 			maxWidth: 350,
 			minHeight: 150,
@@ -26,6 +26,7 @@
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-content">
@@ -34,10 +35,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Limit the resizable element to a maximum or minimum height or width using the <code>maxHeight</code>, <code>maxWidth</code>, <code>minHeight</code>, and <code>minWidth</code> options.</p>
 
+<div class="demo-description">
+<p>Limit the resizable element to a maximum or minimum height or width using the <code>maxHeight</code>, <code>maxWidth</code>, <code>minHeight</code>, and <code>minWidth</code> options.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/snap-to-grid.html b/development-bundle/demos/resizable/snap-to-grid.html
index 91ebbcd..568c1c7 100644
--- a/development-bundle/demos/resizable/snap-to-grid.html
+++ b/development-bundle/demos/resizable/snap-to-grid.html
@@ -1,28 +1,29 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Snap to grid</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { width: 150px; height: 150px; padding: 0.5em; }
 	#resizable h3 { text-align: center; margin: 0; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
+		$( "#resizable" ).resizable({
 			grid: 50
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-content">
@@ -31,10 +32,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Snap the resizable element to a grid.  Set the dimensions of grid cells (height and width in pixels) with the <code>grid</code> option.</p>
 
+<div class="demo-description">
+<p>Snap the resizable element to a grid.  Set the dimensions of grid cells (height and width in pixels) with the <code>grid</code> option.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/synchronous-resize.html b/development-bundle/demos/resizable/synchronous-resize.html
index 3b3b372..74e54da 100644
--- a/development-bundle/demos/resizable/synchronous-resize.html
+++ b/development-bundle/demos/resizable/synchronous-resize.html
@@ -1,31 +1,32 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Synchronous resize</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { background-position: top left; }
 	#resizable, #also { width: 150px; height: 120px; padding: 0.5em; }
 	#resizable h3, #also h3 { text-align: center; margin: 0; }
 	#also { margin-top: 1em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
-			alsoResize: '#also'
+		$( "#resizable" ).resizable({
+			alsoResize: "#also"
 		});
-		$("#also").resizable();
+		$( "#also" ).resizable();
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-header">
@@ -38,10 +39,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Resize multiple elements simultaneously by clicking and dragging the sides of one.  Pass a shared selector into the <code>alsoResize</code> option.</p>
 
+<div class="demo-description">
+<p>Resize multiple elements simultaneously by clicking and dragging the sides of one.  Pass a shared selector into the <code>alsoResize</code> option.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/textarea.html b/development-bundle/demos/resizable/textarea.html
index 2e6e42f..2d00e0d 100644
--- a/development-bundle/demos/resizable/textarea.html
+++ b/development-bundle/demos/resizable/textarea.html
@@ -1,39 +1,41 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Textarea</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.ui-resizable-se {
-			bottom: 17px;
-		}
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.ui-resizable-se {
+		bottom: 17px;
+	}
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
+		$( "#resizable" ).resizable({
 			handles: "se"
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <textarea id="resizable" rows="5" cols="20"></textarea>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Display only an outline of the element while resizing by setting the <code>helper</code> option to a CSS class.</p>
 
+<div class="demo-description">
+<p>Display only an outline of the element while resizing by setting the <code>helper</code> option to a CSS class.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/resizable/visual-feedback.html b/development-bundle/demos/resizable/visual-feedback.html
index 4417842..fc61a6b 100644
--- a/development-bundle/demos/resizable/visual-feedback.html
+++ b/development-bundle/demos/resizable/visual-feedback.html
@@ -1,29 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Resizable - Visual feedback</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.resizable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.resizable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#resizable { width: 150px; height: 150px; padding: 0.5em; }
 	#resizable h3 { text-align: center; margin: 0; }
 	.ui-resizable-ghost { border: 1px dotted gray; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#resizable").resizable({
+		$( "#resizable" ).resizable({
 			ghost: true
 		});
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 	
 <div id="resizable" class="ui-widget-content">
@@ -32,10 +33,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Instead of showing the actual element during resize, set the <code>ghost</code> option to true to show a semi-transparent part of the element.</p>
 
+<div class="demo-description">
+<p>Instead of showing the actual element during resize, set the <code>ghost</code> option to true to show a semi-transparent part of the element.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/selectable/default.html b/development-bundle/demos/selectable/default.html
index f7d6d86..983a04b 100644
--- a/development-bundle/demos/selectable/default.html
+++ b/development-bundle/demos/selectable/default.html
@@ -1,30 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Selectable - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.selectable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.selectable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
 	
-	<style type="text/css">
+	<style>
 	#feedback { font-size: 1.4em; }
 	#selectable .ui-selecting { background: #FECA40; }
 	#selectable .ui-selected { background: #F39814; color: white; }
 	#selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
 	#selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#selectable").selectable();
+		$( "#selectable" ).selectable();
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 
 <ol id="selectable">
@@ -39,10 +40,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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. </p>
 
+<div class="demo-description">
+<p>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. </p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/selectable/display-grid.html b/development-bundle/demos/selectable/display-grid.html
index 654a68d..b045eb9 100644
--- a/development-bundle/demos/selectable/display-grid.html
+++ b/development-bundle/demos/selectable/display-grid.html
@@ -1,30 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Selectable - Display as grid</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.selectable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.selectable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
 	
-	<style type="text/css">
+	<style>
 	#feedback { font-size: 1.4em; }
 	#selectable .ui-selecting { background: #FECA40; }
 	#selectable .ui-selected { background: #F39814; color: white; }
 	#selectable { list-style-type: none; margin: 0; padding: 0; }
 	#selectable li { margin: 3px; padding: 1px; float: left; width: 100px; height: 80px; font-size: 4em; text-align: center; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#selectable").selectable();
+		$( "#selectable" ).selectable();
 	});
 	</script>
 </head>
 <body>
+
 <div class="demo">
 
 <ol id="selectable">
@@ -44,10 +45,11 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>To arrange selectable items as a grid, give them identical dimensions and float them using CSS.</p>
 
+<div class="demo-description">
+<p>To arrange selectable items as a grid, give them identical dimensions and float them using CSS.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/selectable/index.html b/development-bundle/demos/selectable/index.html
index 19ef9b1..21fa4d5 100644
--- a/development-bundle/demos/selectable/index.html
+++ b/development-bundle/demos/selectable/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Selectable Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/selectable/serialize.html b/development-bundle/demos/selectable/serialize.html
index 9744944..18e35da 100644
--- a/development-bundle/demos/selectable/serialize.html
+++ b/development-bundle/demos/selectable/serialize.html
@@ -1,31 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Selectable - Serialize</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.selectable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.selectable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
 	
-	<style type="text/css">
+	<style>
 	#feedback { font-size: 1.4em; }
 	#selectable .ui-selecting { background: #FECA40; }
 	#selectable .ui-selected { background: #F39814; color: white; }
 	#selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
 	#selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#selectable").selectable({
-			stop: function(){
-				var result = $("#select-result").empty();
-				$(".ui-selected", this).each(function(){
-					var index = $("#selectable li").index(this);
-					result.append(" #" + (index + 1));
+		$( "#selectable" ).selectable({
+			stop: function() {
+				var result = $( "#select-result" ).empty();
+				$( ".ui-selected", this ).each(function() {
+					var index = $( "#selectable li" ).index( this );
+					result.append( " #" + ( index + 1 ) );
 				});
 			}
 		});
@@ -33,10 +33,11 @@
 	</script>
 </head>
 <body>
+
 <div class="demo">
 
 <p id="feedback">
-You've selected: <span id="select-result">none</span>.
+<span>You've selected:</span> <span id="select-result">none</span>.
 </p>
 
 <ol id="selectable">
@@ -50,10 +51,11 @@ You've selected: <span id="select-result">none</span>.
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Write a function that fires on the <code>stop</code> event to collect the index values of selected items.  Present values as feedback, or pass as a data string.</p>
 
+<div class="demo-description">
+<p>Write a function that fires on the <code>stop</code> event to collect the index values of selected items.  Present values as feedback, or pass as a data string.</p>
 </div><!-- End demo-description -->
+
 </body>
 </html>
diff --git a/development-bundle/demos/show/default.html b/development-bundle/demos/show/default.html
index 24bbba6..49ca856 100644
--- a/development-bundle/demos/show/default.html
+++ b/development-bundle/demos/show/default.html
@@ -1,64 +1,63 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects - Show Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.blind.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.bounce.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.clip.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.drop.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.explode.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.fold.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.highlight.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.pulsate.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.scale.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.shake.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.slide.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.transfer.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; }
-		#button { padding: .5em 1em; text-decoration: none; }
-		#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
-		#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
-		.ui-effects-transfer { border: 2px dotted gray; } 
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<script src="../../ui/jquery.effects.blind.js"></script>
+	<script src="../../ui/jquery.effects.bounce.js"></script>
+	<script src="../../ui/jquery.effects.clip.js"></script>
+	<script src="../../ui/jquery.effects.drop.js"></script>
+	<script src="../../ui/jquery.effects.explode.js"></script>
+	<script src="../../ui/jquery.effects.fold.js"></script>
+	<script src="../../ui/jquery.effects.highlight.js"></script>
+	<script src="../../ui/jquery.effects.pulsate.js"></script>
+	<script src="../../ui/jquery.effects.scale.js"></script>
+	<script src="../../ui/jquery.effects.shake.js"></script>
+	<script src="../../ui/jquery.effects.slide.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.toggler { width: 500px; height: 200px; }
+	#button { padding: .5em 1em; text-decoration: none; }
+	#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
+	#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
+		// run the currently selected effect
+		function runEffect() {
+			// get effect type from 
+			var selectedEffect = $( "#effectTypes" ).val();
 
-		//run the currently selected effect
-		function runEffect(){
-			//get effect type from 
-			var selectedEffect = $('#effectTypes').val();
-			
-			//most effect types need no options passed by default
+			// most effect types need no options passed by default
 			var options = {};
-			//check if it's scale, transfer, or size - they need options explicitly set
-			if(selectedEffect == 'scale'){  options = {percent: 100}; }
-			else if(selectedEffect == 'transfer'){ options = { to: "#button", className: 'ui-effects-transfer' }; }
-			else if(selectedEffect == 'size'){ options = { to: {width: 280,height: 185} }; }
-			
-			//run the effect
-			$("#effect").show(selectedEffect,options,500,callback);
+			// some effects have required parameters
+			if ( selectedEffect === "scale" ) {
+				options = { percent: 100 };
+			} else if ( selectedEffect === "size" ) {
+				options = { to: { width: 280, height: 185 } };
+			}
+
+			// run the effect
+			$( "#effect" ).show( selectedEffect, options, 500, callback );
 		};
-		
+
 		//callback function to bring a hidden box back
-		function callback(){
-			setTimeout(function(){
-				$("#effect:visible").removeAttr('style').hide().fadeOut();
-			}, 1000);
+		function callback() {
+			setTimeout(function() {
+				$( "#effect:visible" ).removeAttr( "style" ).fadeOut();
+			}, 1000 );
 		};
-		
-		//set effect from select menu value
-		$("#button").click(function() {
+
+		// set effect from select menu value
+		$( "#button" ).click(function() {
 			runEffect();
 			return false;
 		});
-		
-		$("#effect").hide();
+
+		$( "#effect" ).hide();
 	});
 	</script>
 </head>
@@ -89,18 +88,16 @@
 	<option value="shake">Shake</option>
 	<option value="size">Size</option>
 	<option value="slide">Slide</option>
-	<option value="transfer">Transfer</option>
 </select>
 
 <a href="#" id="button" class="ui-state-default ui-corner-all">Run Effect</a>
 
-
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to preview the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to preview the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/show/index.html b/development-bundle/demos/show/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/show/index.html
+++ b/development-bundle/demos/show/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/slider/colorpicker.html b/development-bundle/demos/slider/colorpicker.html
index 121249e..8192e08 100644
--- a/development-bundle/demos/slider/colorpicker.html
+++ b/development-bundle/demos/slider/colorpicker.html
@@ -1,16 +1,16 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Colorpicker</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#red, #green, #blue {
 		float: left;
 		clear: left;
@@ -32,39 +32,39 @@
 	#blue .ui-slider-handle { border-color: #729fcf; }
 	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
-	function hexFromRGB (r, g, b) {
+	<script>
+	function hexFromRGB(r, g, b) {
 		var hex = [
-			r.toString(16),
-			g.toString(16),
-			b.toString(16)
+			r.toString( 16 ),
+			g.toString( 16 ),
+			b.toString( 16 )
 		];
-		$.each(hex, function (nr, val) {
-			if (val.length == 1) {
-				hex[nr] = '0' + val;
+		$.each( hex, function( nr, val ) {
+			if ( val.length === 1 ) {
+				hex[ nr ] = "0" + val;
 			}
 		});
-		return hex.join('').toUpperCase();
+		return hex.join( "" ).toUpperCase();
 	}
 	function refreshSwatch() {
-		var red = $("#red").slider("value")
-			,green = $("#green").slider("value")
-			,blue = $("#blue").slider("value")
-			,hex = hexFromRGB(red, green, blue);
-		$("#swatch").css("background-color", "#" + hex);
+		var red = $( "#red" ).slider( "value" ),
+			green = $( "#green" ).slider( "value" ),
+			blue = $( "#blue" ).slider( "value" ),
+			hex = hexFromRGB( red, green, blue );
+		$( "#swatch" ).css( "background-color", "#" + hex );
 	}
 	$(function() {
-		$("#red, #green, #blue").slider({
-			orientation: 'horizontal',
+		$( "#red, #green, #blue" ).slider({
+			orientation: "horizontal",
 			range: "min",
 			max: 255,
 			value: 127,
 			slide: refreshSwatch,
 			change: refreshSwatch
 		});
-		$("#red").slider("value", 255);
-		$("#green").slider("value", 140);
-		$("#blue").slider("value", 60);
+		$( "#red" ).slider( "value", 255 );
+		$( "#green" ).slider( "value", 140 );
+		$( "#blue" ).slider( "value", 60 );
 	});
 	</script>
 </head>
@@ -73,8 +73,8 @@
 <div class="demo">
 
 <p class="ui-state-default ui-corner-all ui-helper-clearfix" style="padding:4px;">
-<span class="ui-icon ui-icon-pencil" style="float:left; margin:-2px 5px 0 0;"></span>
-Simple Colorpicker
+	<span class="ui-icon ui-icon-pencil" style="float:left; margin:-2px 5px 0 0;"></span>
+	Simple Colorpicker
 </p>
 
 <div id="red"></div>
@@ -85,10 +85,10 @@ Simple Colorpicker
 
 </div><!-- End demo -->
 
-<div class="demo-description" style="clear:left;">
 
-<p>Combine three sliders to create a simple RGB colorpicker.</p>
 
+<div class="demo-description" style="clear:left;">
+<p>Combine three sliders to create a simple RGB colorpicker.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/default.html b/development-bundle/demos/slider/default.html
index d63086b..fdcd4cf 100644
--- a/development-bundle/demos/slider/default.html
+++ b/development-bundle/demos/slider/default.html
@@ -1,21 +1,21 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8" >
 	<title>jQuery UI Slider - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#slider").slider();
+		$( "#slider" ).slider();
 	});
 	</script>
 </head>
@@ -27,10 +27,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>The basic slider is horizontal and has a single handle that can be moved with the mouse or by using the arrow keys.</p>
 
+<div class="demo-description">
+<p>The basic slider is horizontal and has a single handle that can be moved with the mouse or by using the arrow keys.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/hotelrooms.html b/development-bundle/demos/slider/hotelrooms.html
index 02f8b77..2ba4b99 100644
--- a/development-bundle/demos/slider/hotelrooms.html
+++ b/development-bundle/demos/slider/hotelrooms.html
@@ -1,32 +1,32 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Range with fixed minimum</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; };
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		var select = $("#minbeds");
-		var slider = $('<div id="slider"></div>').insertAfter(select).slider({
+		var select = $( "#minbeds" );
+		var slider = $( "<div id='slider'></div>" ).insertAfter( select ).slider({
 			min: 1,
 			max: 6,
 			range: "min",
-			value: select[0].selectedIndex + 1,
-			slide: function(event, ui) {
-				select[0].selectedIndex = ui.value - 1;
+			value: select[ 0 ].selectedIndex + 1,
+			slide: function( event, ui ) {
+				select[ 0 ].selectedIndex = ui.value - 1;
 			}
 		});
-		$("#minbeds").click(function() {
-			slider.slider("value", this.selectedIndex + 1);
+		$( "#minbeds" ).change(function() {
+			slider.slider( "value", this.selectedIndex + 1 );
 		});
 	});
 	</script>
@@ -49,10 +49,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/index.html b/development-bundle/demos/slider/index.html
index ec9a2f4..caf68fe 100644
--- a/development-bundle/demos/slider/index.html
+++ b/development-bundle/demos/slider/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/slider/multiple-vertical.html b/development-bundle/demos/slider/multiple-vertical.html
index 62d0b16..372ad2d 100644
--- a/development-bundle/demos/slider/multiple-vertical.html
+++ b/development-bundle/demos/slider/multiple-vertical.html
@@ -1,35 +1,35 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Multiple sliders</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; }
-		#eq span {
-			height:120px; float:left; margin:15px
-		}
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; }
+	#eq span {
+		height:120px; float:left; margin:15px
+	}
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
 		// setup master volume
-		$("#master").slider({
+		$( "#master" ).slider({
 			value: 60,
 			orientation: "horizontal",
 			range: "min",
 			animate: true
 		});
 		// setup graphic EQ
-		$("#eq > span").each(function() {
+		$( "#eq > span" ).each(function() {
 			// read initial values from markup and remove that
-			var value = parseInt($(this).text());
-			$(this).empty().slider({
+			var value = parseInt( $( this ).text(), 10 );
+			$( this ).empty().slider({
 				value: value,
 				range: "min",
 				animate: true,
@@ -44,15 +44,15 @@
 <div class="demo">
 
 <p class="ui-state-default ui-corner-all ui-helper-clearfix" style="padding:4px;">
-<span class="ui-icon ui-icon-volume-on" style="float:left; margin:-2px 5px 0 0;"></span>
-Master volume
+	<span class="ui-icon ui-icon-volume-on" style="float:left; margin:-2px 5px 0 0;"></span>
+	Master volume
 </p>
 
 <div id="master" style="width:260px; margin:15px;"></div>
 
 <p class="ui-state-default ui-corner-all" style="padding:4px;margin-top:4em;">
-<span class="ui-icon ui-icon-signal" style="float:left; margin:-2px 5px 0 0;"></span>
-Graphic EQ
+	<span class="ui-icon ui-icon-signal" style="float:left; margin:-2px 5px 0 0;"></span>
+	Graphic EQ
 </p>
 
 <div id="eq">
@@ -67,10 +67,10 @@ Graphic EQ
 
 </div><!-- End demo -->
 
-<div class="demo-description" style="clear:left;">
 
-<p>Combine horizontal and vertical sliders, each with their own options, to create the UI for a music player.</p>
 
+<div class="demo-description" style="clear:left;">
+<p>Combine horizontal and vertical sliders, each with their own options, to create the UI for a music player.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/range-vertical.html b/development-bundle/demos/slider/range-vertical.html
index 70fbb47..2a1a8b4 100644
--- a/development-bundle/demos/slider/range-vertical.html
+++ b/development-bundle/demos/slider/range-vertical.html
@@ -1,29 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Vertical range slider</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; };
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#slider-range").slider({
+		$( "#slider-range" ).slider({
 			orientation: "vertical",
 			range: true,
-			values: [17, 67],
-			slide: function(event, ui) {
-				$("#amount").val('$' + ui.values[0] + ' - $' + ui.values[1]);
+			values: [ 17, 67 ],
+			slide: function( event, ui ) {
+				$( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
 			}
 		});
-		$("#amount").val('$' + $("#slider-range").slider("values", 0) + ' - $' + $("#slider-range").slider("values", 1));
+		$( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
+			" - $" + $( "#slider-range" ).slider( "values", 1 ) );
 	});
 	</script>
 </head>
@@ -32,18 +33,18 @@
 <div class="demo">
 
 <p>
-<label for="amount">Target sales goal (Millions):</label>
-<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
+	<label for="amount">Target sales goal (Millions):</label>
+	<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
 </p>
 
 <div id="slider-range" style="height:250px;"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Change the orientation of the range slider to vertical.  Assign a height value via <code>.height()</code> or by setting the height through CSS, and set the <code>orientation</code> option to "vertical."</p>
 
+<div class="demo-description">
+<p>Change the orientation of the range slider to vertical.  Assign a height value via <code>.height()</code> or by setting the height through CSS, and set the <code>orientation</code> option to "vertical."</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/range.html b/development-bundle/demos/slider/range.html
index be4e19a..3fd156d 100644
--- a/development-bundle/demos/slider/range.html
+++ b/development-bundle/demos/slider/range.html
@@ -1,30 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Range slider</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; };
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#slider-range").slider({
+		$( "#slider-range" ).slider({
 			range: true,
 			min: 0,
 			max: 500,
-			values: [75, 300],
-			slide: function(event, ui) {
-				$("#amount").val('$' + ui.values[0] + ' - $' + ui.values[1]);
+			values: [ 75, 300 ],
+			slide: function( event, ui ) {
+				$( "#amount" ).val( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
 			}
 		});
-		$("#amount").val('$' + $("#slider-range").slider("values", 0) + ' - $' + $("#slider-range").slider("values", 1));
+		$( "#amount" ).val( "$" + $( "#slider-range" ).slider( "values", 0 ) +
+			" - $" + $( "#slider-range" ).slider( "values", 1 ) );
 	});
 	</script>
 </head>
@@ -33,18 +34,18 @@
 <div class="demo">
 
 <p>
-<label for="amount">Price range:</label>
-<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
+	<label for="amount">Price range:</label>
+	<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
 </p>
 
 <div id="slider-range"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Set the <code>range</code> 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.</p>
 
+<div class="demo-description">
+<p>Set the <code>range</code> 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.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/rangemax.html b/development-bundle/demos/slider/rangemax.html
index b4f4e1e..899efb2 100644
--- a/development-bundle/demos/slider/rangemax.html
+++ b/development-bundle/demos/slider/rangemax.html
@@ -1,30 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Range with fixed maximum</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; };
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#slider-range-max").slider({
+		$( "#slider-range-max" ).slider({
 			range: "max",
 			min: 1,
 			max: 10,
 			value: 2,
-			slide: function(event, ui) {
-				$("#amount").val(ui.value);
+			slide: function( event, ui ) {
+				$( "#amount" ).val( ui.value );
 			}
 		});
-		$("#amount").val($("#slider-range-max").slider("value"));
+		$( "#amount" ).val( $( "#slider-range-max" ).slider( "value" ) );
 	});
 	</script>
 </head>
@@ -33,17 +33,17 @@
 <div class="demo">
 
 <p>
-<labe for="amount">Minimum number of bedrooms:</label>
-<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
+	<label for="amount">Minimum number of bedrooms:</label>
+	<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
 </p>
 <div id="slider-range-max"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Fix the maximum value of the range slider so that the user can only select a minimum.  Set the <code>range</code> option to "max."</p>
 
+<div class="demo-description">
+<p>Fix the maximum value of the range slider so that the user can only select a minimum.  Set the <code>range</code> option to "max."</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/rangemin.html b/development-bundle/demos/slider/rangemin.html
index 4f14682..3e077d9 100644
--- a/development-bundle/demos/slider/rangemin.html
+++ b/development-bundle/demos/slider/rangemin.html
@@ -1,30 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Range with fixed minimum</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; };
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#slider-range-min").slider({
+		$( "#slider-range-min" ).slider({
 			range: "min",
 			value: 37,
 			min: 1,
 			max: 700,
-			slide: function(event, ui) {
-				$("#amount").val('$' + ui.value);
+			slide: function( event, ui ) {
+				$( "#amount" ).val( "$" + ui.value );
 			}
 		});
-		$("#amount").val('$' + $("#slider-range-min").slider("value"));
+		$( "#amount" ).val( "$" + $( "#slider-range-min" ).slider( "value" ) );
 	});
 	</script>
 </head>
@@ -33,18 +33,18 @@
 <div class="demo">
 
 <p>
-<label for="amount">Maximum price:</label>
-<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
+	<label for="amount">Maximum price:</label>
+	<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
 </p>
 
 <div id="slider-range-min"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Fix the minimum value of the range slider so that the user can only select a maximum.  Set the <code>range</code> option to "min."</p>
 
+<div class="demo-description">
+<p>Fix the minimum value of the range slider so that the user can only select a maximum.  Set the <code>range</code> option to "min."</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/side-scroll.html b/development-bundle/demos/slider/side-scroll.html
index fe5599b..666d480 100644
--- a/development-bundle/demos/slider/side-scroll.html
+++ b/development-bundle/demos/slider/side-scroll.html
@@ -1,92 +1,98 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Slider scrollbar</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; }
-		.scroll-pane { overflow: auto; width: 99%; float:left; }
-		.scroll-content { width: 2440px; float: left; }
-		.scroll-content-item { width: 100px; height: 100px; float: left; margin: 10px; font-size: 3em; line-height: 96px; text-align: center; }
-		* html .scroll-content-item { display: inline; } /* IE6 float double margin bug */
-		.scroll-bar-wrap { clear: left; padding: 0 4px 0 2px; margin: 0 -1px -1px -1px; }
-		.scroll-bar-wrap .ui-slider { background: none; border:0; height: 2em; margin: 0 auto;  }
-		.scroll-bar-wrap .ui-handle-helper-parent { position: relative; width: 100%; height: 100%; margin: 0 auto; }
-		.scroll-bar-wrap .ui-slider-handle { top:.2em; height: 1.5em; }
-		.scroll-bar-wrap .ui-slider-handle .ui-icon { margin: -8px auto 0; position: relative; top: 50%; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; }
+	.scroll-pane { overflow: auto; width: 99%; float:left; }
+	.scroll-content { width: 2440px; float: left; }
+	.scroll-content-item { width: 100px; height: 100px; float: left; margin: 10px; font-size: 3em; line-height: 96px; text-align: center; }
+	* html .scroll-content-item { display: inline; } /* IE6 float double margin bug */
+	.scroll-bar-wrap { clear: left; padding: 0 4px 0 2px; margin: 0 -1px -1px -1px; }
+	.scroll-bar-wrap .ui-slider { background: none; border:0; height: 2em; margin: 0 auto;  }
+	.scroll-bar-wrap .ui-handle-helper-parent { position: relative; width: 100%; height: 100%; margin: 0 auto; }
+	.scroll-bar-wrap .ui-slider-handle { top:.2em; height: 1.5em; }
+	.scroll-bar-wrap .ui-slider-handle .ui-icon { margin: -8px auto 0; position: relative; top: 50%; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
 		//scrollpane parts
-		var scrollPane = $('.scroll-pane');
-		var scrollContent = $('.scroll-content');
+		var scrollPane = $( ".scroll-pane" ),
+			scrollContent = $( ".scroll-content" );
 		
 		//build slider
-		var scrollbar = $(".scroll-bar").slider({
-			slide:function(e, ui){
-				if( scrollContent.width() > scrollPane.width() ){ scrollContent.css('margin-left', Math.round( ui.value / 100 * ( scrollPane.width() - scrollContent.width() )) + 'px'); }
-				else { scrollContent.css('margin-left', 0); }
+		var scrollbar = $( ".scroll-bar" ).slider({
+			slide: function( event, ui ) {
+				if ( scrollContent.width() > scrollPane.width() ) {
+					scrollContent.css( "margin-left", Math.round(
+						ui.value / 100 * ( scrollPane.width() - scrollContent.width() )
+					) + "px" );
+				} else {
+					scrollContent.css( "margin-left", 0 );
+				}
 			}
 		});
 		
 		//append icon to handle
-		var handleHelper = scrollbar.find('.ui-slider-handle')
-		.mousedown(function(){
+		var handleHelper = scrollbar.find( ".ui-slider-handle" )
+		.mousedown(function() {
 			scrollbar.width( handleHelper.width() );
 		})
-		.mouseup(function(){
-			scrollbar.width( '100%' );
+		.mouseup(function() {
+			scrollbar.width( "100%" );
 		})
-		.append('<span class="ui-icon ui-icon-grip-dotted-vertical"></span>')
-		.wrap('<div class="ui-handle-helper-parent"></div>').parent();
+		.append( "<span class='ui-icon ui-icon-grip-dotted-vertical'></span>" )
+		.wrap( "<div class='ui-handle-helper-parent'></div>" ).parent();
 		
 		//change overflow to hidden now that slider handles the scrolling
-		scrollPane.css('overflow','hidden');
+		scrollPane.css( "overflow", "hidden" );
 		
 		//size scrollbar and handle proportionally to scroll distance
-		function sizeScrollbar(){
+		function sizeScrollbar() {
 			var remainder = scrollContent.width() - scrollPane.width();
 			var proportion = remainder / scrollContent.width();
-			var handleSize = scrollPane.width() - (proportion * scrollPane.width());
-			scrollbar.find('.ui-slider-handle').css({
+			var handleSize = scrollPane.width() - ( proportion * scrollPane.width() );
+			scrollbar.find( ".ui-slider-handle" ).css({
 				width: handleSize,
-				'margin-left': -handleSize/2
+				"margin-left": -handleSize / 2
 			});
-			handleHelper.width('').width( scrollbar.width() - handleSize);
+			handleHelper.width( "" ).width( scrollbar.width() - handleSize );
 		}
 		
 		//reset slider value based on scroll content position
-		function resetValue(){
+		function resetValue() {
 			var remainder = scrollPane.width() - scrollContent.width();
-			var leftVal = scrollContent.css('margin-left') == 'auto' ? 0 : parseInt(scrollContent.css('margin-left'));
-			var percentage = Math.round(leftVal / remainder * 100);
-			scrollbar.slider("value", percentage);
+			var leftVal = scrollContent.css( "margin-left" ) === "auto" ? 0 :
+				parseInt( scrollContent.css( "margin-left" ) );
+			var percentage = Math.round( leftVal / remainder * 100 );
+			scrollbar.slider( "value", percentage );
 		}
+		
 		//if the slider is 100% and window gets larger, reveal content
-		function reflowContent(){
-				var showing = scrollContent.width() + parseInt( scrollContent.css('margin-left') );
+		function reflowContent() {
+				var showing = scrollContent.width() + parseInt( scrollContent.css( "margin-left" ), 10 );
 				var gap = scrollPane.width() - showing;
-				if(gap > 0){
-					scrollContent.css('margin-left', parseInt( scrollContent.css('margin-left') ) + gap);
+				if ( gap > 0 ) {
+					scrollContent.css( "margin-left", parseInt( scrollContent.css( "margin-left" ), 10 ) + gap );
 				}
 		}
 		
 		//change handle position on window resize
-		$(window)
-		.resize(function(){
-				resetValue();
-				sizeScrollbar();
-				reflowContent();
+		$( window ).resize(function() {
+			resetValue();
+			sizeScrollbar();
+			reflowContent();
 		});
 		//init scrollbar size
-		setTimeout(sizeScrollbar,10);//safari wants a timeout
+		setTimeout( sizeScrollbar, 10 );//safari wants a timeout
 	});
 	</script>
 </head>
@@ -122,16 +128,12 @@
 	</div>
 </div>
 
-
-
 </div><!-- End demo -->
 
 
 
 <div class="demo-description">
-
 <p>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.</p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/slider-vertical.html b/development-bundle/demos/slider/slider-vertical.html
index b6b4027..479e778 100644
--- a/development-bundle/demos/slider/slider-vertical.html
+++ b/development-bundle/demos/slider/slider-vertical.html
@@ -1,31 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Vertical slider</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; };
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#slider-vertical").slider({
+		$( "#slider-vertical" ).slider({
 			orientation: "vertical",
 			range: "min",
 			min: 0,
 			max: 100,
 			value: 60,
-			slide: function(event, ui) {
-				$("#amount").val(ui.value);
+			slide: function( event, ui ) {
+				$( "#amount" ).val( ui.value );
 			}
 		});
-		$("#amount").val($("#slider-vertical").slider("value"));
+		$( "#amount" ).val( $( "#slider-vertical" ).slider( "value" ) );
 	});
 	</script>
 </head>
@@ -34,18 +34,18 @@
 <div class="demo">
 
 <p>
-<label for="amount">Volume:</label>
-<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
+	<label for="amount">Volume:</label>
+	<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
 </p>
 
 <div id="slider-vertical" style="height:200px;"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Change the orientation of the slider to vertical.  Assign a height value via <code>.height()</code> or by setting the height through CSS, and set the <code>orientation</code> option to "vertical."</p>
 
+<div class="demo-description">
+<p>Change the orientation of the slider to vertical.  Assign a height value via <code>.height()</code> or by setting the height through CSS, and set the <code>orientation</code> option to "vertical."</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/steps.html b/development-bundle/demos/slider/steps.html
index 66c84b0..c49e26f 100644
--- a/development-bundle/demos/slider/steps.html
+++ b/development-bundle/demos/slider/steps.html
@@ -1,30 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Snap to increments</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; };
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; };
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#slider").slider({
+		$( "#slider" ).slider({
 			value:100,
 			min: 0,
 			max: 500,
 			step: 50,
-			slide: function(event, ui) {
-				$("#amount").val('$' + ui.value);
+			slide: function( event, ui ) {
+				$( "#amount" ).val( "$" + ui.value );
 			}
 		});
-		$("#amount").val('$' + $("#slider").slider("value"));
+		$( "#amount" ).val( "$" + $( "#slider" ).slider( "value" ) );
 	});
 	</script>
 </head>
@@ -33,18 +33,18 @@
 <div class="demo">
 
 <p>
-<label for="amount">Donation amount ($50 increments):</label>
-<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
+	<label for="amount">Donation amount ($50 increments):</label>
+	<input type="text" id="amount" style="border:0; color:#f6931f; font-weight:bold;" />
 </p>
 
 <div id="slider"></div>
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Increment slider values with the <code>step</code> option set to an integer, commonly a dividend of the slider's maximum value.  The default increment is 1.</p>
 
+<div class="demo-description">
+<p>Increment slider values with the <code>step</code> option set to an integer, commonly a dividend of the slider's maximum value.  The default increment is 1.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/slider/tabs.html b/development-bundle/demos/slider/tabs.html
index 40916c4..440ac58 100644
--- a/development-bundle/demos/slider/tabs.html
+++ b/development-bundle/demos/slider/tabs.html
@@ -1,31 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Slider - Snap to increments</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.slider.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#demo-frame > div.demo { padding: 10px !important; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<script src="../../ui/jquery.ui.slider.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#demo-frame > div.demo { padding: 10px !important; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#tabs").tabs({
-			select: function(event, ui) {
-				$("#slider").slider("value", ui.index);
+		$( "#tabs" ).tabs({
+			select: function( event, ui ) {
+				$( "#slider" ).slider( "value", ui.index );
 			}
 		});
-		$("#slider").slider({
+		$( "#slider" ).slider({
 			min: 0,
-			max: $("#tabs").tabs("length") - 1,
-			slide: function(event, ui) {
-				$("#tabs").tabs("select", ui.value);
+			max: $( "#tabs" ).tabs( "length" ) - 1,
+			slide: function( event, ui ) {
+				$( "#tabs" ).tabs( "select", ui.value );
 			}
 		});
 	});
@@ -57,10 +57,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Control tabs with a slider.</p>
 
+<div class="demo-description">
+<p>Control tabs with a slider.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/connect-lists-through-tabs.html b/development-bundle/demos/sortable/connect-lists-through-tabs.html
index d432afe..d466da8 100644
--- a/development-bundle/demos/sortable/connect-lists-through-tabs.html
+++ b/development-bundle/demos/sortable/connect-lists-through-tabs.html
@@ -1,36 +1,37 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Connect lists with Tabs</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.droppable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<script src="../../ui/jquery.ui.droppable.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable1, #sortable2").sortable().disableSelection();
+		$( "#sortable1, #sortable2" ).sortable().disableSelection();
 
-		var $tabs = $("#tabs").tabs();
+		var $tabs = $( "#tabs" ).tabs();
 
-		var $tab_items = $("ul:first li",$tabs).droppable({
+		var $tab_items = $( "ul:first li", $tabs ).droppable({
 			accept: ".connectedSortable li",
 			hoverClass: "ui-state-hover",
-			drop: function(ev, ui) {
-				var $item = $(this);
-				var $list = $($item.find('a').attr('href')).find('.connectedSortable');
+			drop: function( event, ui ) {
+				var $item = $( this );
+				var $list = $( $item.find( "a" ).attr( "href" ) )
+					.find( ".connectedSortable" );
 
-				ui.draggable.hide('slow', function() {
-					$tabs.tabs('select', $tab_items.index($item));
-					$(this).appendTo($list).show('slow');
+				ui.draggable.hide( "slow", function() {
+					$tabs.tabs( "select", $tab_items.index( $item ) );
+					$( this ).appendTo( $list ).show( "slow" );
 				});
 			}
 		});
@@ -67,12 +68,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-	Sort items from one list into another and vice versa, by dropping the list item on the appropriate tab above.
-</p>
 
+<div class="demo-description">
+<p>Sort items from one list into another and vice versa, by dropping the list item on the appropriate tab above.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/connect-lists.html b/development-bundle/demos/sortable/connect-lists.html
index b08678d..d0b2c5c 100644
--- a/development-bundle/demos/sortable/connect-lists.html
+++ b/development-bundle/demos/sortable/connect-lists.html
@@ -1,23 +1,23 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Connect lists</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable1, #sortable2 { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; }
 	#sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable1, #sortable2").sortable({
-			connectWith: '.connectedSortable'
+		$( "#sortable1, #sortable2" ).sortable({
+			connectWith: ".connectedSortable"
 		}).disableSelection();
 	});
 	</script>
@@ -43,15 +43,15 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	Sort items from one list into another and vice versa, by passing a selector into
 	the <code>connectWith</code> 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., <code>connectWith: '.myclass'</code>).
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/default.html b/development-bundle/demos/sortable/default.html
index ab81a8b..d0ef0df 100644
--- a/development-bundle/demos/sortable/default.html
+++ b/development-bundle/demos/sortable/default.html
@@ -1,24 +1,24 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
 	#sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; }
 	#sortable li span { position: absolute; margin-left: -1.3em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable").sortable();
-		$("#sortable").disableSelection();
+		$( "#sortable" ).sortable();
+		$( "#sortable" ).disableSelection();
 	});
 	</script>
 </head>
@@ -37,14 +37,14 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	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 <code>draggable</code> properties.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/delay-start.html b/development-bundle/demos/sortable/delay-start.html
index 7afb6be..48a9c1f 100644
--- a/development-bundle/demos/sortable/delay-start.html
+++ b/development-bundle/demos/sortable/delay-start.html
@@ -1,30 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Delay start</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable1, #sortable2 { list-style-type: none; margin: 0; padding: 0; margin-bottom: 15px;zoom: 1; }
 	#sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 95%; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable1").sortable({
+		$( "#sortable1" ).sortable({
 			delay: 300
 		});
 		
-		$("#sortable2").sortable({
+		$( "#sortable2" ).sortable({
 			distance: 15
 		});
 
-		$("li").disableSelection();
+		$( "li" ).disableSelection();
 	});
 	</script>
 </head>
@@ -51,8 +51,9 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	Prevent accidental sorting either by delay (time) or distance. Set a number of
 	milliseconds the element needs to be dragged before sorting starts
@@ -60,7 +61,6 @@
 	needs to be dragged before sorting starts with the <code>distance</code>
 	option.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/display-grid.html b/development-bundle/demos/sortable/display-grid.html
index e90a38c..c32e309 100644
--- a/development-bundle/demos/sortable/display-grid.html
+++ b/development-bundle/demos/sortable/display-grid.html
@@ -1,23 +1,23 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Display as grid</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable { list-style-type: none; margin: 0; padding: 0; }
 	#sortable li { margin: 3px 3px 3px 0; padding: 1px; float: left; width: 100px; height: 90px; font-size: 4em; text-align: center; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable").sortable();
-		$("#sortable").disableSelection();
+		$( "#sortable" ).sortable();
+		$( "#sortable" ).disableSelection();
 	});
 	</script>
 </head>
@@ -41,13 +41,13 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	To arrange sortable items as a grid, give them identical dimensions and
 	float them using CSS.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/empty-lists.html b/development-bundle/demos/sortable/empty-lists.html
index b68ad59..d1c9680 100644
--- a/development-bundle/demos/sortable/empty-lists.html
+++ b/development-bundle/demos/sortable/empty-lists.html
@@ -1,31 +1,31 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Handle empty lists</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable1, #sortable2, #sortable3 { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; background: #eee; padding: 5px; width: 143px;}
 	#sortable1 li, #sortable2 li, #sortable3 li { margin: 5px; padding: 5px; font-size: 1.2em; width: 120px; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("ul.droptrue").sortable({
-			connectWith: 'ul'
+		$( "ul.droptrue" ).sortable({
+			connectWith: "ul"
 		});
 
-		$("ul.dropfalse").sortable({
-			connectWith: 'ul',
+		$( "ul.dropfalse" ).sortable({
+			connectWith: "ul",
 			dropOnEmpty: false
 		});
 
-		$("#sortable1, #sortable2, #sortable3").disableSelection();
+		$( "#sortable1, #sortable2, #sortable3" ).disableSelection();
 	});
 	</script>
 </head>
@@ -55,14 +55,14 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	Prevent all items in a list from being dropped into a separate, empty list
 	using the <code>dropOnEmpty</code> option set to <code>false</code>.  By default,
 	sortable items can be dropped on empty lists.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/index.html b/development-bundle/demos/sortable/index.html
index 9fa9380..b307ef7 100644
--- a/development-bundle/demos/sortable/index.html
+++ b/development-bundle/demos/sortable/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/sortable/items.html b/development-bundle/demos/sortable/items.html
index 3f1cbb6..334cdeb 100644
--- a/development-bundle/demos/sortable/items.html
+++ b/development-bundle/demos/sortable/items.html
@@ -1,30 +1,30 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Include / exclude items</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable1, #sortable2 { list-style-type: none; margin: 0; padding: 0; zoom: 1; }
 	#sortable1 li, #sortable2 li { margin: 0 5px 5px 5px; padding: 3px; width: 90%; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable1").sortable({
-			items: 'li:not(.ui-state-disabled)'
+		$( "#sortable1" ).sortable({
+			items: "li:not(.ui-state-disabled)"
 		});
 
-		$("#sortable2").sortable({
-			cancel: '.ui-state-disabled'
+		$( "#sortable2" ).sortable({
+			cancel: ".ui-state-disabled"
 		});
 
-		$("#sortable1 li, #sortable2 li").disableSelection();		
+		$( "#sortable1 li, #sortable2 li" ).disableSelection();		
 	});
 	</script>
 </head>
@@ -51,20 +51,19 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	Specify which items are eligible to sort by passing a jQuery selector into
 	the <code>items</code> option. Items excluded from this option are not
 	sortable, nor are they valid targets for sortable items.
 </p>
-
 <p>
 	To only prevent sorting on certain items, pass a jQuery selector into the
 	<code>cancel</code> option. Cancelled items remain valid sort targets for
 	others.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/placeholder.html b/development-bundle/demos/sortable/placeholder.html
index d9c7e83..90198f3 100644
--- a/development-bundle/demos/sortable/placeholder.html
+++ b/development-bundle/demos/sortable/placeholder.html
@@ -1,27 +1,27 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Drop placeholder</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	#sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
 	#sortable li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; height: 1.5em; }
 	html>body #sortable li { height: 1.5em; line-height: 1.2em; }
 	.ui-state-highlight { height: 1.5em; line-height: 1.2em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#sortable").sortable({
-			placeholder: 'ui-state-highlight'
+		$( "#sortable" ).sortable({
+			placeholder: "ui-state-highlight"
 		});
-		$("#sortable").disableSelection();
+		$( "#sortable" ).disableSelection();
 	});
 	</script>
 </head>
@@ -40,8 +40,9 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	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
@@ -49,7 +50,6 @@
 	be visible.  Use the boolean <code>forcePlaceholderSize</code> option
 	to set dimensions on the placeholder.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/sortable/portlets.html b/development-bundle/demos/sortable/portlets.html
index fefef3d..1e5e956 100644
--- a/development-bundle/demos/sortable/portlets.html
+++ b/development-bundle/demos/sortable/portlets.html
@@ -1,16 +1,16 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Sortable - Portlets</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
 	.column { width: 170px; float: left; padding-bottom: 100px; }
 	.portlet { margin: 0 1em 1em 0; }
 	.portlet-header { margin: 0.3em; padding-bottom: 4px; padding-left: 0.2em; }
@@ -19,25 +19,25 @@
 	.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
 	.ui-sortable-placeholder * { visibility: hidden; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$(".column").sortable({
-			connectWith: '.column'
+		$( ".column" ).sortable({
+			connectWith: ".column"
 		});
 
-		$(".portlet").addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
-			.find(".portlet-header")
-				.addClass("ui-widget-header ui-corner-all")
-				.prepend('<span class="ui-icon ui-icon-minusthick"></span>')
+		$( ".portlet" ).addClass( "ui-widget ui-widget-content ui-helper-clearfix ui-corner-all" )
+			.find( ".portlet-header" )
+				.addClass( "ui-widget-header ui-corner-all" )
+				.prepend( "<span class='ui-icon ui-icon-minusthick'></span>")
 				.end()
-			.find(".portlet-content");
+			.find( ".portlet-content" );
 
-		$(".portlet-header .ui-icon").click(function() {
-			$(this).toggleClass("ui-icon-minusthick").toggleClass("ui-icon-plusthick");
-			$(this).parents(".portlet:first").find(".portlet-content").toggle();
+		$( ".portlet-header .ui-icon" ).click(function() {
+			$( this ).toggleClass( "ui-icon-minusthick" ).toggleClass( "ui-icon-plusthick" );
+			$( this ).parents( ".portlet:first" ).find( ".portlet-content" ).toggle();
 		});
 
-		$(".column").disableSelection();
+		$( ".column" ).disableSelection();
 	});
 	</script>
 </head>
@@ -83,13 +83,13 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
+
+<div class="demo-description">
 <p>
 	Enable portlets (styled divs) as sortables and use the <code>connectWith</code>
 	option to allow sorting between columns.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/switchClass/default.html b/development-bundle/demos/switchClass/default.html
index bfb0c9c..c0bcd6b 100644
--- a/development-bundle/demos/switchClass/default.html
+++ b/development-bundle/demos/switchClass/default.html
@@ -1,24 +1,24 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects - switchClass Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; position: relative;}
-		#button { padding: .5em 1em; text-decoration: none; }
-		#effect {position: relative;   }
-		#effect.newClass { width: 240px;  padding: 1em; letter-spacing: 0; font-size: 1.2em; }
-		#effect.anotherNewClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.toggler { width: 500px; height: 200px; position: relative; }
+	#button { padding: .5em 1em; text-decoration: none; }
+	#effect {position: relative;   }
+	.newClass { width: 240px;  padding: 1em; letter-spacing: 0; font-size: 1.2em; margin: 0; }
+	.anotherNewClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#button").click(function(){
-			$(".newClass").switchClass('newClass', 'anotherNewClass', 1000);
-			$(".anotherNewClass").switchClass('anotherNewClass', 'newClass', 1000);
+		$( "#button" ).click(function(){
+			$( ".newClass" ).switchClass( "newClass", "anotherNewClass", 1000 );
+			$( ".anotherNewClass" ).switchClass( "anotherNewClass", "newClass", 1000 );
 			return false;	
 		});
 	});
@@ -28,7 +28,6 @@
 
 <div class="demo">
 
-
 <div class="toggler">
 	<div id="effect" class="newClass ui-corner-all">
 			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. 
@@ -38,10 +37,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to preview the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to preview the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/switchClass/index.html b/development-bundle/demos/switchClass/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/switchClass/index.html
+++ b/development-bundle/demos/switchClass/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/tabs/ajax.html b/development-bundle/demos/tabs/ajax.html
index efbdf59..c626257 100644
--- a/development-bundle/demos/tabs/ajax.html
+++ b/development-bundle/demos/tabs/ajax.html
@@ -1,20 +1,22 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Content via Ajax</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs({
+		$( "#tabs" ).tabs({
 			ajaxOptions: {
-				error: function(xhr, status, index, anchor) {
-					$(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible. If this wouldn't be a demo.");
+				error: function( xhr, status, index, anchor ) {
+					$( anchor.hash ).html(
+						"Couldn't load this tab. We'll try to fix this as soon as possible. " +
+						"If this wouldn't be a demo." );
 				}
 			}
 		});
@@ -40,10 +42,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>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.</p>
 
+<div class="demo-description">
+<p>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.</p>
 <p>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.</p>
 </div><!-- End demo-description -->
 
diff --git a/development-bundle/demos/tabs/ajax/content1.html b/development-bundle/demos/tabs/ajax/content1.html
index 759bf13..472bdfb 100644
--- a/development-bundle/demos/tabs/ajax/content1.html
+++ b/development-bundle/demos/tabs/ajax/content1.html
@@ -1,4 +1,4 @@
-<p><strong>This content was loaded via ajax.</strong>
+<p><strong>This content was loaded via ajax.</strong></p>
 <p>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.</p>
 <p>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.</p>
 <p>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.</p>
\ No newline at end of file
diff --git a/development-bundle/demos/tabs/ajax/content2.html b/development-bundle/demos/tabs/ajax/content2.html
index 95c25da..18b03e4 100644
--- a/development-bundle/demos/tabs/ajax/content2.html
+++ b/development-bundle/demos/tabs/ajax/content2.html
@@ -1,4 +1,4 @@
-<p><strong>This other content was loaded via ajax.</strong>
+<p><strong>This other content was loaded via ajax.</strong></p>
 <p>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.</p>
 <p>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.</p>
 <p>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.</p>
\ No newline at end of file
diff --git a/development-bundle/demos/tabs/ajax/content3-slow.php b/development-bundle/demos/tabs/ajax/content3-slow.php
index 9e50dc3..7ad43ec 100644
--- a/development-bundle/demos/tabs/ajax/content3-slow.php
+++ b/development-bundle/demos/tabs/ajax/content3-slow.php
@@ -1,7 +1,7 @@
 <?php
 sleep(1);
 ?>
-<p><strong>This content was loaded via ajax, though it took a second.</strong>
+<p><strong>This content was loaded via ajax, though it took a second.</strong></p>
 <p>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.</p>
 <p>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.</p>
 <p>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.</p>
\ No newline at end of file
diff --git a/development-bundle/demos/tabs/bottom.html b/development-bundle/demos/tabs/bottom.html
index c4ab313..4f0e3c2 100644
--- a/development-bundle/demos/tabs/bottom.html
+++ b/development-bundle/demos/tabs/bottom.html
@@ -1,29 +1,29 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Tabs at bottom</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs();
-		$(".tabs-bottom .ui-tabs-nav, .tabs-bottom .ui-tabs-nav > *") 
- 		.removeClass("ui-corner-all ui-corner-top") 
-  		.addClass("ui-corner-bottom");
+		$( "#tabs" ).tabs();
+		$( ".tabs-bottom .ui-tabs-nav, .tabs-bottom .ui-tabs-nav > *" )
+			.removeClass( "ui-corner-all ui-corner-top" )
+			.addClass( "ui-corner-bottom" );
 	});
 	</script>
 	<style>
-		#tabs { height: 200px; } 
-		.tabs-bottom { position: relative; } 
-		.tabs-bottom .ui-tabs-panel { height: 140px; overflow: auto; } 
-		.tabs-bottom .ui-tabs-nav { position: absolute !important; left: 0; bottom: 0; right:0; padding: 0 0.2em 0.2em 0; } 
-		.tabs-bottom .ui-tabs-nav li { margin-top: -2px !important; margin-bottom: 1px !important; border-top: none; border-bottom-width: 1px; }
-		.ui-tabs-selected { margin-top: -3px !important; }
+	#tabs { height: 200px; } 
+	.tabs-bottom { position: relative; } 
+	.tabs-bottom .ui-tabs-panel { height: 140px; overflow: auto; } 
+	.tabs-bottom .ui-tabs-nav { position: absolute !important; left: 0; bottom: 0; right:0; padding: 0 0.2em 0.2em 0; } 
+	.tabs-bottom .ui-tabs-nav li { margin-top: -2px !important; margin-bottom: 1px !important; border-top: none; border-bottom-width: 1px; }
+	.ui-tabs-selected { margin-top: -3px !important; }
 	</style>
 </head>
 <body>
@@ -50,10 +50,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>With some additional CSS (for positioning) and JS (to put the right classes on elements) the tabs can be placed below their content.</p>
 
+<div class="demo-description">
+<p>With some additional CSS (for positioning) and JS (to put the right classes on elements) the tabs can be placed below their content.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/tabs/collapsible.html b/development-bundle/demos/tabs/collapsible.html
index 7a638e2..1fba710 100644
--- a/development-bundle/demos/tabs/collapsible.html
+++ b/development-bundle/demos/tabs/collapsible.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Collapse content</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs({
+		$( "#tabs" ).tabs({
 			collapsible: true
 		});
 	});
@@ -43,13 +43,12 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the selected tab to toggle its content closed/open.  To enable this functionality, set the <code>collapsible</code> option to true.</p>
 
+<div class="demo-description">
+<p>Click the selected tab to toggle its content closed/open.  To enable this functionality, set the <code>collapsible</code> option to true.</p>
 <pre><code>collapsible: true
 </code></pre>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/tabs/default.html b/development-bundle/demos/tabs/cookie.html
similarity index 74%
copy from development-bundle/demos/tabs/default.html
copy to development-bundle/demos/tabs/cookie.html
index 7b01cc8..3597243 100644
--- a/development-bundle/demos/tabs/default.html
+++ b/development-bundle/demos/tabs/cookie.html
@@ -1,17 +1,23 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../external/jquery.cookie.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs();
+		$( "#tabs" ).tabs({
+			cookie: {
+				// store cookie for a day, without, it would be a session cookie
+				expires: 1
+			}
+		});
 	});
 	</script>
 </head>
@@ -39,10 +45,12 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click tabs to swap between content that is broken into logical sections.</p>
 
+<div class="demo-description">
+<p>Looks the same as the default demo, but uses cookie to store the selected tab, and restore it when the page (re)loads.
+The cookie is stored for a day, so tabs will be restored even after closing the browser. Use cookie: {} for using cookies with default options.</p>
+<p>The cookie option requires the cookie plugin, which can be found in the development-bundle > external folder from the download builder.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/tabs/default.html b/development-bundle/demos/tabs/default.html
index 7b01cc8..a892509 100644
--- a/development-bundle/demos/tabs/default.html
+++ b/development-bundle/demos/tabs/default.html
@@ -1,17 +1,17 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Default functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs();
+		$( "#tabs" ).tabs();
 	});
 	</script>
 </head>
@@ -39,10 +39,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click tabs to swap between content that is broken into logical sections.</p>
 
+<div class="demo-description">
+<p>Click tabs to swap between content that is broken into logical sections.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/tabs/index.html b/development-bundle/demos/tabs/index.html
index 48b3636..c0d6684 100644
--- a/development-bundle/demos/tabs/index.html
+++ b/development-bundle/demos/tabs/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
@@ -17,6 +17,7 @@
 		<li><a href="sortable.html">Sortable</a></li>
 		<li><a href="manipulation.html">Simple manipulation</a></li>
 		<li><a href="bottom.html">Tabs below content</a></li>
+		<li><a href="cookie.html">Cookie persistence</a></li>
 	</ul>
 </div>
 
diff --git a/development-bundle/demos/tabs/manipulation.html b/development-bundle/demos/tabs/manipulation.html
index ec143d5..8b8ddf4 100644
--- a/development-bundle/demos/tabs/manipulation.html
+++ b/development-bundle/demos/tabs/manipulation.html
@@ -1,85 +1,87 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Simple manipulation</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.button.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.dialog.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		#dialog label, #dialog input { display:block; }
-		#dialog label { margin-top: 0.5em; }
-		#dialog input, #dialog textarea { width: 95%; }
-		#tabs { margin-top: 1em; }
-		#tabs li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 0; cursor: pointer; }
-		#add_tab { cursor: pointer; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.position.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.button.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<script src="../../ui/jquery.ui.dialog.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	#dialog label, #dialog input { display:block; }
+	#dialog label { margin-top: 0.5em; }
+	#dialog input, #dialog textarea { width: 95%; }
+	#tabs { margin-top: 1em; }
+	#tabs li .ui-icon-close { float: left; margin: 0.4em 0.2em 0 0; cursor: pointer; }
+	#add_tab { cursor: pointer; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		var $tab_title_input = $('#tab_title'), $tab_content_input = $('#tab_content');
+		var $tab_title_input = $( "#tab_title"),
+			$tab_content_input = $( "#tab_content" );
 		var tab_counter = 2;
 
 		// tabs init with a custom tab template and an "add" callback filling in the content
-		var $tabs = $('#tabs').tabs({
-			tabTemplate: '<li><a href="#{href}">#{label}</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>',
-			add: function(event, ui) {
-				var tab_content = $tab_content_input.val() || 'Tab '+tab_counter+' content.';
-				$(ui.panel).append('<p>'+tab_content+'</p>');
+		var $tabs = $( "#tabs").tabs({
+			tabTemplate: "<li><a href='#{href}'>#{label}</a> <span class='ui-icon ui-icon-close'>Remove Tab</span></li>",
+			add: function( event, ui ) {
+				var tab_content = $tab_content_input.val() || "Tab " + tab_counter + " content.";
+				$( ui.panel ).append( "<p>" + tab_content + "</p>" );
 			}
 		});
 
 		// modal dialog init: custom buttons and a "close" callback reseting the form inside
-		var $dialog = $('#dialog').dialog({
+		var $dialog = $( "#dialog" ).dialog({
 			autoOpen: false,
 			modal: true,
 			buttons: {
-				'Add': function() {
+				Add: function() {
 					addTab();
-					$(this).dialog('close');
+					$( this ).dialog( "close" );
 				},
-				'Cancel': function() {
-					$(this).dialog('close');
+				Cancel: function() {
+					$( this ).dialog( "close" );
 				}
 			},
 			open: function() {
 				$tab_title_input.focus();
 			},
 			close: function() {
-				$form[0].reset();
+				$form[ 0 ].reset();
 			}
 		});
 
 		// addTab form: calls addTab function on submit and closes the dialog
-		var $form = $('form',$dialog).submit(function() {
+		var $form = $( "form", $dialog ).submit(function() {
 			addTab();
-			$dialog.dialog('close');
+			$dialog.dialog( "close" );
 			return false;
 		});
 
 		// actual addTab function: adds new tab using the title input from the form above
 		function addTab() {
-			var tab_title = $tab_title_input.val() || 'Tab '+tab_counter;
-			$tabs.tabs('add', '#tabs-'+tab_counter, tab_title);
+			var tab_title = $tab_title_input.val() || "Tab " + tab_counter;
+			$tabs.tabs( "add", "#tabs-" + tab_counter, tab_title );
 			tab_counter++;
 		}
 
 		// addTab button: just opens the dialog
-		$('#add_tab')
+		$( "#add_tab" )
 			.button()
 			.click(function() {
-				$dialog.dialog('open');
+				$dialog.dialog( "open" );
 			});
 
 		// close icon: removing the tab on click
 		// note: closable tabs gonna be an option in the future - see http://dev.jqueryui.com/ticket/3924
-		$('#tabs span.ui-icon-close').live('click', function() {
-			var index = $('li',$tabs).index($(this).parent());
-			$tabs.tabs('remove', index);
+		$( "#tabs span.ui-icon-close" ).live( "click", function() {
+			var index = $( "li", $tabs ).index( $( this ).parent() );
+			$tabs.tabs( "remove", index );
 		});
 	});
 	</script>
@@ -112,8 +114,10 @@
 
 </div><!-- End demo -->
 
+
+
 <div class="demo-description">
-	<p>Simple tabs adding and removing.</p>
+<p>Simple tabs adding and removing.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/tabs/mouseover.html b/development-bundle/demos/tabs/mouseover.html
index 30233d6..b19b2af 100644
--- a/development-bundle/demos/tabs/mouseover.html
+++ b/development-bundle/demos/tabs/mouseover.html
@@ -1,18 +1,18 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Open on mouseover</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs({
-			event: 'mouseover'
+		$( "#tabs" ).tabs({
+			event: "mouseover"
 		});
 	});
 	</script>
@@ -41,13 +41,12 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Toggle sections open/closed on mouseover with the <code>event</code> option. The default value for event is "click."</p>
 
+<div class="demo-description">
+<p>Toggle sections open/closed on mouseover with the <code>event</code> option. The default value for event is "click."</p>
 <pre><code>event: 'mouseover'
 </code></pre>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/tabs/sortable.html b/development-bundle/demos/tabs/sortable.html
index e57f413..ba8196d 100644
--- a/development-bundle/demos/tabs/sortable.html
+++ b/development-bundle/demos/tabs/sortable.html
@@ -1,19 +1,19 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Sortable</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.mouse.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.sortable.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.mouse.js"></script>
+	<script src="../../ui/jquery.ui.sortable.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs().find(".ui-tabs-nav").sortable({axis:'x'});
+		$( "#tabs" ).tabs().find( ".ui-tabs-nav" ).sortable({ axis: "x" });
 	});
 	</script>
 </head>
@@ -41,24 +41,17 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>
-Drag the tabs above to re-order them.
-<p>
 
+<div class="demo-description">
+<p>Drag the tabs above to re-order them.</p>
 <p>
 Making tabs sortable is as simple as calling
-
 <code>.sortable()</code>
-
 on the
-
 <code>.ui-tabs-nav</code>
-
 element.
 </p>
-
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/tabs/vertical.html b/development-bundle/demos/tabs/vertical.html
index e13cd82..4ddb5c9 100644
--- a/development-bundle/demos/tabs/vertical.html
+++ b/development-bundle/demos/tabs/vertical.html
@@ -1,30 +1,27 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Tabs - Vertical Tabs functionality</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.widget.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.ui.tabs.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<script type="text/javascript">
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.ui.core.js"></script>
+	<script src="../../ui/jquery.ui.widget.js"></script>
+	<script src="../../ui/jquery.ui.tabs.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<script>
 	$(function() {
-		$("#tabs").tabs().addClass('ui-tabs-vertical ui-helper-clearfix');
-		$("#tabs li").removeClass('ui-corner-top').addClass('ui-corner-left');
+		$( "#tabs" ).tabs().addClass( "ui-tabs-vertical ui-helper-clearfix" );
+		$( "#tabs li" ).removeClass( "ui-corner-top" ).addClass( "ui-corner-left" );
 	});
 	</script>
-	<style type="text/css">
-	
-/* Vertical Tabs
-----------------------------------*/
-.ui-tabs-vertical { width: 55em; }
-.ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
-.ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
-.ui-tabs-vertical .ui-tabs-nav li a { display:block; }
-.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
-.ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
+	<style>
+	.ui-tabs-vertical { width: 55em; }
+	.ui-tabs-vertical .ui-tabs-nav { padding: .2em .1em .2em .2em; float: left; width: 12em; }
+	.ui-tabs-vertical .ui-tabs-nav li { clear: left; width: 100%; border-bottom-width: 1px !important; border-right-width: 0 !important; margin: 0 -1px .2em 0; }
+	.ui-tabs-vertical .ui-tabs-nav li a { display:block; }
+	.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 0; padding-right: .1em; border-right-width: 1px; border-right-width: 1px; }
+	.ui-tabs-vertical .ui-tabs-panel { padding: 1em; float: right; width: 40em;}
 	</style>
 </head>
 <body>
@@ -54,10 +51,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click tabs to swap between content that is broken into logical sections.</p>
 
+<div class="demo-description">
+<p>Click tabs to swap between content that is broken into logical sections.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/toggle/default.html b/development-bundle/demos/toggle/default.html
index 3659a64..475109e 100644
--- a/development-bundle/demos/toggle/default.html
+++ b/development-bundle/demos/toggle/default.html
@@ -1,54 +1,54 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects - Toggle Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.blind.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.bounce.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.clip.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.drop.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.explode.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.fold.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.highlight.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.pulsate.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.scale.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.shake.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.slide.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.transfer.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; }
-		#button { padding: .5em 1em; text-decoration: none; }
-		#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
-		#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
-		.ui-effects-transfer { border: 2px dotted gray; } 
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<script src="../../ui/jquery.effects.blind.js"></script>
+	<script src="../../ui/jquery.effects.bounce.js"></script>
+	<script src="../../ui/jquery.effects.clip.js"></script>
+	<script src="../../ui/jquery.effects.drop.js"></script>
+	<script src="../../ui/jquery.effects.explode.js"></script>
+	<script src="../../ui/jquery.effects.fold.js"></script>
+	<script src="../../ui/jquery.effects.highlight.js"></script>
+	<script src="../../ui/jquery.effects.pulsate.js"></script>
+	<script src="../../ui/jquery.effects.scale.js"></script>
+	<script src="../../ui/jquery.effects.shake.js"></script>
+	<script src="../../ui/jquery.effects.slide.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.toggler { width: 500px; height: 200px; }
+	#button { padding: .5em 1em; text-decoration: none; }
+	#effect { width: 240px; height: 135px; padding: 0.4em; position: relative; }
+	#effect h3 { margin: 0; padding: 0.4em; text-align: center; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		//run the currently selected effect
-		function runEffect(){
-			//get effect type from 
-			var selectedEffect = $('#effectTypes').val();
+		// run the currently selected effect
+		function runEffect() {
+			// get effect type from 
+			var selectedEffect = $( "#effectTypes" ).val();
 			
-			//most effect types need no options passed by default
+			// most effect types need no options passed by default
 			var options = {};
-			//check if it's scale, transfer, or size - they need options explicitly set
-			if(selectedEffect == 'scale'){  options = {percent: 0}; }
-			else if(selectedEffect == 'size'){ options = { to: {width: 200,height: 60} }; }
+			// some effects have required parameters
+			if ( selectedEffect === "scale" ) {
+				options = { percent: 0 };
+			} else if ( selectedEffect === "size" ) {
+				options = { to: { width: 200, height: 60 } };
+			}
 			
-			//run the effect
-			$("#effect").toggle(selectedEffect,options,500);
+			// run the effect
+			$( "#effect" ).toggle( selectedEffect, options, 500 );
 		};
 		
-		//set effect from select menu value
-		$("#button").click(function() {
+		// set effect from select menu value
+		$( "#button" ).click(function() {
 			runEffect();
 			return false;
 		});
-
 	});
 	</script>
 </head>
@@ -79,16 +79,15 @@
 	<option value="shake">Shake</option>
 	<option value="size">Size</option>
 	<option value="slide">Slide</option>
-	<option value="transfer">Transfer</option>
 </select>
 
 <a href="#" id="button" class="ui-state-default ui-corner-all">Run Effect</a>
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to preview the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to preview the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/toggle/index.html b/development-bundle/demos/toggle/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/toggle/index.html
+++ b/development-bundle/demos/toggle/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/demos/toggleClass/default.html b/development-bundle/demos/toggleClass/default.html
index b679c96..ed3eb51 100644
--- a/development-bundle/demos/toggleClass/default.html
+++ b/development-bundle/demos/toggleClass/default.html
@@ -1,22 +1,22 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects - toggleClass Demo</title>
-	<link type="text/css" href="../../themes/base/jquery.ui.all.css" rel="stylesheet" />
-	<script type="text/javascript" src="../../jquery-1.4.2.js"></script>
-	<script type="text/javascript" src="../../ui/jquery.effects.core.js"></script>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
-	<style type="text/css">
-		.toggler { width: 500px; height: 200px; position: relative;}
-		#button { padding: .5em 1em; text-decoration: none; }
-		#effect {position: relative;  width: 240px;  padding: 1em; letter-spacing: 0; font-size: 1.2em; border: 1px solid #000; background: #eee; color: #333; }
-		#effect.newClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
+	<link rel="stylesheet" href="../../themes/base/jquery.ui.all.css">
+	<script src="../../jquery-1.5.1.js"></script>
+	<script src="../../ui/jquery.effects.core.js"></script>
+	<link rel="stylesheet" href="../demos.css">
+	<style>
+	.toggler { width: 500px; height: 200px; position: relative; }
+	#button { padding: .5em 1em; text-decoration: none; }
+	#effect {position: relative;  width: 240px;  padding: 1em; letter-spacing: 0; font-size: 1.2em; border: 1px solid #000; background: #eee; color: #333; }
+	.newClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
 	</style>
-	<script type="text/javascript">
+	<script>
 	$(function() {
-		$("#button").click(function() {
-			$('#effect').toggleClass('newClass', 1000);
+		$( "#button" ).click(function() {
+			$( "#effect" ).toggleClass( "newClass", 1000 );
 			return false;
 		});
 	});
@@ -36,10 +36,10 @@
 
 </div><!-- End demo -->
 
-<div class="demo-description">
 
-<p>Click the button above to preview the effect.</p>
 
+<div class="demo-description">
+<p>Click the button above to preview the effect.</p>
 </div><!-- End demo-description -->
 
 </body>
diff --git a/development-bundle/demos/toggleClass/index.html b/development-bundle/demos/toggleClass/index.html
index 0e9af37..f5bd6a0 100644
--- a/development-bundle/demos/toggleClass/index.html
+++ b/development-bundle/demos/toggleClass/index.html
@@ -1,9 +1,9 @@
 <!DOCTYPE html>
 <html lang="en">
 <head>
-	<meta charset="UTF-8" />
+	<meta charset="utf-8">
 	<title>jQuery UI Effects Demos</title>
-	<link type="text/css" href="../demos.css" rel="stylesheet" />
+	<link rel="stylesheet" href="../demos.css">
 </head>
 <body>
 
diff --git a/development-bundle/docs/accordion.html b/development-bundle/docs/accordion.html
index afd4460..ed0f2eb 100644
--- a/development-bundle/docs/accordion.html
+++ b/development-bundle/docs/accordion.html
@@ -42,6 +42,7 @@
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Widget</li>
 <li>UI Effects Core (Optional - only for non-default animations)</li>
 </ul>
     </div>
@@ -60,7 +61,7 @@ A simple jQuery UI Accordion.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -154,7 +155,7 @@ A simple jQuery UI Accordion.<br />
   Initialize a accordion with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ disabled: true });</code></pre>
 </dd>
 
     
@@ -196,7 +197,7 @@ $( ".selector" ).accordion( "option", "disabled", true );</code></pre>
   Initialize a accordion with the <code>active</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { active: 2 } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ active: 2 });</code></pre>
 </dd>
 
     
@@ -238,7 +239,7 @@ $( ".selector" ).accordion( "option", "active", 2 );</code></pre>
   Initialize a accordion with the <code>animated</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { animated: 'bounceslide' } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ animated: 'bounceslide' });</code></pre>
 </dd>
 
     
@@ -280,7 +281,7 @@ $( ".selector" ).accordion( "option", "animated", 'bounceslide' );</code></pre>
   Initialize a accordion with the <code>autoHeight</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { autoHeight: false } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ autoHeight: false });</code></pre>
 </dd>
 
     
@@ -322,7 +323,7 @@ $( ".selector" ).accordion( "option", "autoHeight", false );</code></pre>
   Initialize a accordion with the <code>clearStyle</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { clearStyle: true } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ clearStyle: true });</code></pre>
 </dd>
 
     
@@ -364,7 +365,7 @@ $( ".selector" ).accordion( "option", "clearStyle", true );</code></pre>
   Initialize a accordion with the <code>collapsible</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { collapsible: true } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ collapsible: true });</code></pre>
 </dd>
 
     
@@ -406,7 +407,7 @@ $( ".selector" ).accordion( "option", "collapsible", true );</code></pre>
   Initialize a accordion with the <code>event</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { event: 'mouseover' } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ event: 'mouseover' });</code></pre>
 </dd>
 
     
@@ -448,7 +449,7 @@ $( ".selector" ).accordion( "option", "event", 'mouseover' );</code></pre>
   Initialize a accordion with the <code>fillSpace</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { fillSpace: true } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ fillSpace: true });</code></pre>
 </dd>
 
     
@@ -490,7 +491,7 @@ $( ".selector" ).accordion( "option", "fillSpace", true );</code></pre>
   Initialize a accordion with the <code>header</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { header: 'h3' } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ header: 'h3' });</code></pre>
 </dd>
 
     
@@ -532,7 +533,7 @@ $( ".selector" ).accordion( "option", "header", 'h3' );</code></pre>
   Initialize a accordion with the <code>icons</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' } } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' } });</code></pre>
 </dd>
 
     
@@ -574,7 +575,7 @@ $( ".selector" ).accordion( "option", "icons", { 'header': 'ui-icon-plus', 'head
   Initialize a accordion with the <code>navigation</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { navigation: true } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ navigation: true });</code></pre>
 </dd>
 
     
@@ -616,7 +617,7 @@ $( ".selector" ).accordion( "option", "navigation", true );</code></pre>
   Initialize a accordion with the <code>navigationFilter</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).accordion( { navigationFilter: function(){ ... } } );</code></pre>
+<pre><code>$( ".selector" ).accordion({ navigationFilter: function(){ ... } });</code></pre>
 </dd>
 
     
@@ -640,6 +641,45 @@ $( ".selector" ).accordion( "option", "navigationFilter", function(){ ... } );</
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">accordioncreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when accordion is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).accordion({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>accordioncreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "accordioncreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-change">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-change">change</a></h3>
@@ -825,6 +865,28 @@ $( ".selector" ).accordion( "option", "navigationFilter", function(){ ... } );</
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.accordion( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple accordion options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -946,10 +1008,10 @@ $( ".selector" ).accordion( "option", "navigationFilter", function(){ ... } );</
 </div>
 
 </p><!-- 
-Pre-expand include size: 35160 bytes
-Post-expand include size: 60096 bytes
-Template argument size: 34821 bytes
+Pre-expand include size: 38072 bytes
+Post-expand include size: 64737 bytes
+Template argument size: 35841 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3773-1!1!0!!en!2 and timestamp 20100318122755 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3773-1!1!0!!en!2 and timestamp 20110413160313 -->
diff --git a/development-bundle/docs/addClass.html b/development-bundle/docs/addClass.html
index e9400a8..71ef919 100644
--- a/development-bundle/docs/addClass.html
+++ b/development-bundle/docs/addClass.html
@@ -34,7 +34,7 @@ Adds the class 'selected' to the matched elements with a one second transition.<
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <style type="text/css">
@@ -100,10 +100,10 @@ Adds the class 'selected' to the matched elements with a one second transition.<
 </div>
 
 </p><!-- 
-Pre-expand include size: 5208 bytes
-Post-expand include size: 6765 bytes
-Template argument size: 4231 bytes
+Pre-expand include size: 5228 bytes
+Post-expand include size: 6863 bytes
+Template argument size: 4285 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2606-1!1!0!!en!2 and timestamp 20100318115910 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2606-1!1!0!!en!2 and timestamp 20110413154136 -->
diff --git a/development-bundle/docs/animate.html b/development-bundle/docs/animate.html
index 7bdc610..834f011 100644
--- a/development-bundle/docs/animate.html
+++ b/development-bundle/docs/animate.html
@@ -1,5 +1,4 @@
-<p><a href="http://docs.jquery.com/UI" title="UI">« Back to the jQuery UI Docs</a>
-</p><p>The jQuery UI effects core extends the <a href="http://docs.jquery.com/Effects/animate" title="Effects/animate">animate</a> function to be able to animate colors as well. It's heavily used by the class transition feature and it's able to color animate the following properties:
+<p>The jQuery UI effects core extends the <a href="http://docs.jquery.com/Effects/animate" title="Effects/animate">animate</a> function to be able to animate colors as well. It's heavily used by the class transition feature and it's able to color animate the following properties:
 </p>
 <ul><li> <b>backgroundColor</b>
 </li><li> <b>borderBottomColor</b>
@@ -38,7 +37,8 @@ A simple color animation.<br />
 <head>
   <script src="<a href="http://code.jquery.com/jquery-latest.js" class="external free" title="http://code.jquery.com/jquery-latest.js">http://code.jquery.com/jquery-latest.js</a>"></script>
   
-  <script src="http://jqueryui.com/latest/ui/effects.core.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
 
   <script>
   $(document).ready(function(){
@@ -75,4 +75,4 @@ Template argument size: 3450 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3094-1!1!0!!en!2 and timestamp 20100317130337 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3094-1!1!0!!en!2 and timestamp 20110413160320 -->
diff --git a/development-bundle/docs/autocomplete.html b/development-bundle/docs/autocomplete.html
index 795ab7b..3e02d8c 100644
--- a/development-bundle/docs/autocomplete.html
+++ b/development-bundle/docs/autocomplete.html
@@ -1,4 +1,4 @@
-<p>
+
 <ul class="UIAPIPlugin-toc">
 <li><a href="#overview">Overview</a></li>
 <li><a href="#options">Options</a></li>
@@ -11,24 +11,24 @@
   <div id="overview">
     <h2 class="top-header">Overview</h2>
     <div id="overview-main">
-        Autocomplete, when added to an input field, enables users to quickly find and select from a pre-populated list of values as they type, leveraging searching and filtering.
-</p><p>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.
-</p><p>This can be used to enter previous selected values, for example you could use Autocomplete for entering tags, to complete an address, you could enter a city name and get the zip code, or maybe enter email addresses from an address book.
-</p><p>You can pull data in from a local and/or a remote source: Local is good for small data sets (like an address book with 50 entries), remote is necessary for big data sets, like a database with hundreds or millions of entries to select from.
-</p><p>Autocomplete can be customized to work with various data sources, by just specifying the source option. A data source can be:
-</p>
-<ul><li> an Array with local data
-</li><li> a String, specifying a URL
-</li><li> a Callback
-</li></ul>
-<p>The local data can be a simple Array of Strings, or it contains Objects for each item in the array, with either a label or value property or both. The label property is displayed in the suggestion menu. The value will be inserted into the input element after the user selected something from the menu. If just one property is specified, it will be used for both, eg. if you provide only value-properties, the value will also be used as the label.
-</p><p>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 data itself can be in the same format as the local data described above.
-</p><p>The third variation, the callback, provides the most flexibility, and can be used to connect any data source to Autocomplete. The callback gets two arguments:
-</p>
-<ul><li> A request object, with a single property called "term", which refers to the value currently in the text input. For example, when the user entered "new yo" in a city field, the Autocomplete term will equal "new yo".
-</li><li> A response callback, which expects a single argument to contain 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 (String-Array or Object-Array with label/value/both properties).
-</li></ul>
-The demos all focus on different variations of the source-option - look for the one that matches your use case, and take a look at the code.
+        <p>Autocomplete, when added to an input field, enables users to quickly find and select from a pre-populated list of values as they type, leveraging searching and filtering.</p>
+<p>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.</p>
+<p>This can be used to enter previous selected values, for example you could use Autocomplete for entering tags, to complete an address, you could enter a city name and get the zip code, or maybe enter email addresses from an address book.</p>
+<p>You can pull data in from a local and/or a remote source: Local is good for small data sets (like an address book with 50 entries), remote is necessary for big data sets, like a database with hundreds or millions of entries to select from.</p>
+<p>Autocomplete can be customized to work with various data sources, by just specifying the source option. A data source can be:</p>
+<ul>
+<li>an Array with local data</li>
+<li>a String, specifying a URL</li>
+<li>a Callback</li>
+</ul>
+<p>The local data can be a simple Array of Strings, or it contains Objects for each item in the array, with either a label or value property or both. The label property is displayed in the suggestion menu. The value will be inserted into the input element after the user selected something from the menu. If just one property is specified, it will be used for both, eg. if you provide only value-properties, the value will also be used as the label.</p>
+<p>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 request parameter "term" gets added to that URL. The data itself can be in the same format as the local data described above.</p>
+<p>The third variation, the callback, provides the most flexibility, and can be used to connect any data source to Autocomplete. The callback gets two arguments:</p>
+<ul>
+<li>A request object, with a single property called "term", which refers to the value currently in the text input. For example, when the user entered "new yo" in a city field, the Autocomplete term will equal "new yo".</li>
+<li>A response callback, which expects a single argument to contain 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 (String-Array or Object-Array with label/value/both properties). 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.</li>
+</ul>
+<p>The label is always treated as text, if you want the label to be treated as html you can use <a href="https://github.com/scottgonzalez/jquery-ui-extensions/blob/master/autocomplete/jquery.ui.autocomplete.html.js" class="external text" title="https://github.com/scottgonzalez/jquery-ui-extensions/blob/master/autocomplete/jquery.ui.autocomplete.html.js">Scott González' html extension</a>. The demos all focus on different variations of the source-option - look for the one that matches your use case, and take a look at the code.</p>
     </div>
     <div id="overview-dependencies">
         <h3>Dependencies</h3>
@@ -55,7 +55,7 @@ A simple jQuery UI Autocomplete.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -104,7 +104,7 @@ A simple jQuery UI Autocomplete.<br />
   Initialize a autocomplete with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).autocomplete( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).autocomplete({ disabled: true });</code></pre>
 </dd>
 
     
@@ -123,6 +123,90 @@ $( ".selector" ).autocomplete( "option", "disabled", true );</code></pre>
 </li>
 
 
+<li class="option" id="option-appendTo">
+  <div class="option-header">
+    <h3 class="option-name"><a href="#option-appendTo">appendTo</a></h3>
+    <dl>
+      <dt class="option-type-label">Type:</dt>
+        <dd class="option-type">Selector</dd>
+      
+      <dt class="option-default-label">Default:</dt>
+        <dd class="option-default">"body"</dd>
+      
+    </dl>
+  </div>
+  <div class="option-description">
+    <p>Which element the menu should be appended to.</p>
+  </div>
+  <div class="option-examples">
+    <h4>Code examples</h4>
+    <dl class="option-examples-list">
+    
+<dt>
+  Initialize a autocomplete with the <code>appendTo</code> option specified.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).autocomplete({ appendTo: "#someElem" });</code></pre>
+</dd>
+
+    
+<dt>
+  Get or set the <code>appendTo</code> option, after init.
+</dt>
+<dd>
+<pre><code>//getter
+var appendTo = $( ".selector" ).autocomplete( "option", "appendTo" );
+//setter
+$( ".selector" ).autocomplete( "option", "appendTo", "#someElem" );</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
+<li class="option" id="option-autoFocus">
+  <div class="option-header">
+    <h3 class="option-name"><a href="#option-autoFocus">autoFocus</a></h3>
+    <dl>
+      <dt class="option-type-label">Type:</dt>
+        <dd class="option-type">Boolean</dd>
+      
+      <dt class="option-default-label">Default:</dt>
+        <dd class="option-default">false</dd>
+      
+    </dl>
+  </div>
+  <div class="option-description">
+    <p>If set to true the first item will be automatically focused.</p>
+  </div>
+  <div class="option-examples">
+    <h4>Code examples</h4>
+    <dl class="option-examples-list">
+    
+<dt>
+  Initialize a autocomplete with the <code>autoFocus</code> option specified.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).autocomplete({ autoFocus: true });</code></pre>
+</dd>
+
+    
+<dt>
+  Get or set the <code>autoFocus</code> option, after init.
+</dt>
+<dd>
+<pre><code>//getter
+var autoFocus = $( ".selector" ).autocomplete( "option", "autoFocus" );
+//setter
+$( ".selector" ).autocomplete( "option", "autoFocus", true );</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="option" id="option-delay">
   <div class="option-header">
     <h3 class="option-name"><a href="#option-delay">delay</a></h3>
@@ -146,7 +230,7 @@ $( ".selector" ).autocomplete( "option", "disabled", true );</code></pre>
   Initialize a autocomplete with the <code>delay</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).autocomplete( { delay: 0 } );</code></pre>
+<pre><code>$( ".selector" ).autocomplete({ delay: 0 });</code></pre>
 </dd>
 
     
@@ -188,7 +272,7 @@ $( ".selector" ).autocomplete( "option", "delay", 0 );</code></pre>
   Initialize a autocomplete with the <code>minLength</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).autocomplete( { minLength: 0 } );</code></pre>
+<pre><code>$( ".selector" ).autocomplete({ minLength: 0 });</code></pre>
 </dd>
 
     
@@ -207,6 +291,48 @@ $( ".selector" ).autocomplete( "option", "minLength", 0 );</code></pre>
 </li>
 
 
+<li class="option" id="option-position">
+  <div class="option-header">
+    <h3 class="option-name"><a href="#option-position">position</a></h3>
+    <dl>
+      <dt class="option-type-label">Type:</dt>
+        <dd class="option-type">Object</dd>
+      
+      <dt class="option-default-label">Default:</dt>
+        <dd class="option-default">{ my: "left top", at: "left bottom", collision: "none" }</dd>
+      
+    </dl>
+  </div>
+  <div class="option-description">
+    <p>Identifies the position of the Autocomplete widget 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 <a href="http://docs.jquery.com/UI/Position" class="external text" title="http://docs.jquery.com/UI/Position">jQuery UI Position</a> utility for more details about the various options.</p>
+  </div>
+  <div class="option-examples">
+    <h4>Code examples</h4>
+    <dl class="option-examples-list">
+    
+<dt>
+  Initialize a autocomplete with the <code>position</code> option specified.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).autocomplete({ position: { my : "right top", at: "right bottom" } });</code></pre>
+</dd>
+
+    
+<dt>
+  Get or set the <code>position</code> option, after init.
+</dt>
+<dd>
+<pre><code>//getter
+var position = $( ".selector" ).autocomplete( "option", "position" );
+//setter
+$( ".selector" ).autocomplete( "option", "position", { my : "right top", at: "right bottom" } );</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="option" id="option-source">
   <div class="option-header">
     <h3 class="option-name"><a href="#option-source">source</a></h3>
@@ -231,7 +357,7 @@ $( ".selector" ).autocomplete( "option", "minLength", 0 );</code></pre>
   Initialize a autocomplete with the <code>source</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).autocomplete( { source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] } );</code></pre>
+<pre><code>$( ".selector" ).autocomplete({ source: ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] });</code></pre>
 </dd>
 
     
@@ -255,6 +381,45 @@ $( ".selector" ).autocomplete( "option", "source", ["c++", "java&
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">autocompletecreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when autocomplete is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).autocomplete({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>autocompletecreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "autocompletecreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-search">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-search">search</a></h3>
@@ -342,7 +507,7 @@ $( ".selector" ).autocomplete( "option", "source", ["c++", "java&
     </dl>
   </div>
   <div class="event-description">
-    <p>Before focus is moved to an item (not selecting), ui.item refers to the focused item. The default action of focus is to replace the text field's value with the value of the focused item. Canceling this event prevents the value from being updated, but does not prevent the menu item from being focused.</p>
+    <p>Before focus is moved to an item (not selecting), ui.item refers to the focused item. The default action of focus is to replace the text field's value with the value of the focused item, though only if the focus 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.</p>
   </div>
   <div class="event-examples">
     <h4>Code examples</h4>
@@ -582,6 +747,28 @@ $( ".selector" ).autocomplete( "option", "source", ["c++", "java&
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.autocomplete( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple autocomplete options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -679,10 +866,10 @@ $( ".selector" ).autocomplete( "option", "source", ["c++", "java&
 </div>
 
 </p><!-- 
-Pre-expand include size: 28471 bytes
-Post-expand include size: 46356 bytes
-Template argument size: 26019 bytes
+Pre-expand include size: 35982 bytes
+Post-expand include size: 61199 bytes
+Template argument size: 33647 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3766-1!1!0!!en!2 and timestamp 20100318122756 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3766-1!1!0!!en!2 and timestamp 20110413160314 -->
diff --git a/development-bundle/docs/button.html b/development-bundle/docs/button.html
index c3e011d..116dcc1 100644
--- a/development-bundle/docs/button.html
+++ b/development-bundle/docs/button.html
@@ -1,4 +1,4 @@
-<p>
+
 <ul class="UIAPIPlugin-toc">
 <li><a href="#overview">Overview</a></li>
 <li><a href="#options">Options</a></li>
@@ -11,10 +11,10 @@
   <div id="overview">
     <h2 class="top-header">Overview</h2>
     <div id="overview-main">
-        Button enhances standard form elements like button, input of type submit or reset or anchors to themable buttons with appropiate mouseover and active styles. 
-</p><p>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.
-</p>
-In order to group radio buttons, Button also provides an additional widget-method, called Buttonset. Its 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 descendents and applying button() to them. You can enable and disable a buttonset, which will enable and disable all contained buttons. Destroying a buttonset also calls the button's destroy method.
+        <p>Button enhances standard form elements like button, input of type submit or reset or anchors to themable buttons with appropiate mouseover and active styles.</p>
+<p>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.</p>
+<p>In order to group radio buttons, Button also provides an additional widget-method, called Buttonset. Its 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 descendents and applying button() to them. You can enable and disable a buttonset, which will enable and disable all contained buttons. Destroying a buttonset also calls the button's destroy method.</p>
+<p>When using an input of type button, submit or reset, support is limited to plain text labels with no icons.</p>
     </div>
     <div id="overview-dependencies">
         <h3>Dependencies</h3>
@@ -38,7 +38,7 @@ A simple jQuery UI Button.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -61,7 +61,7 @@ A simple jQuery UI Button.<br />
 <div id="demo" class="tabs-container" rel="300">
 A simple jQuery UI Button.<br />
 </p>
-<pre>$("#radio1").buttonset();
+<pre>$("#radio").buttonset();
 </pre>
 <p></div><div id="source" class="tabs-container">
 </p>
@@ -69,18 +69,18 @@ A simple jQuery UI Button.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
   $(document).ready(function() {
-    $("#radio1").buttonset();
+    $("#radio").buttonset();
   });
   </script>
 </head>
 <body style="font-size:62.5%;">
   
-<div id="radio1">
+<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>
@@ -120,7 +120,7 @@ A simple jQuery UI Button.<br />
   Initialize a button with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).button( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).button({ disabled: true });</code></pre>
 </dd>
 
     
@@ -162,7 +162,7 @@ $( ".selector" ).button( "option", "disabled", true );</code></pre>
   Initialize a button with the <code>text</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).button( { text: false } );</code></pre>
+<pre><code>$( ".selector" ).button({ text: false });</code></pre>
 </dd>
 
     
@@ -194,7 +194,7 @@ $( ".selector" ).button( "option", "text", false );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Icons to display, with or without text (see text option). The primary icon is displayed on the left of the label text, the secondary on the right. Value for the primary and secondary properties must be a classname (String), eg. "ui-icon-gear". For using only a primary icon: icons: {primary:'ui-icon-locked'}. For using both primary and secondary icon: icons: {primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'}</p>
+    <p>Icons to display, with or without text (see text option). The primary icon is displayed by default on the left of the label text, the secondary by default is on the right. Value for the primary and secondary properties must be a classname (String), eg. "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'}</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -204,7 +204,7 @@ $( ".selector" ).button( "option", "text", false );</code></pre>
   Initialize a button with the <code>icons</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).button( { icons: {primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'} } );</code></pre>
+<pre><code>$( ".selector" ).button({ icons: {primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'} });</code></pre>
 </dd>
 
     
@@ -246,7 +246,7 @@ $( ".selector" ).button( "option", "icons", {primary:'ui-icon-gear',secondary:'u
   Initialize a button with the <code>label</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).button( { label: "custom label" } );</code></pre>
+<pre><code>$( ".selector" ).button({ label: "custom label" });</code></pre>
 </dd>
 
     
@@ -257,7 +257,6 @@ $( ".selector" ).button( "option", "icons", {primary:'ui-icon-gear',secondary:'u
 <pre><code>//getter
 var label = $( ".selector" ).button( "option", "label" );
 //setter
-</p>
 $( ".selector" ).button( "option", "label", "custom label" );</code></pre>
 </dd>
 
@@ -270,7 +269,47 @@ $( ".selector" ).button( "option", "label", "custom label" );</code></pre>
   <div id="events">
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
-      <p>There are no events for this plugin.</p>
+      
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">buttoncreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when button is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).button({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>buttoncreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "buttoncreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+</p>
+<p>There are no events for this plugin.</p>
     </ul>
   </div>
   <div id="methods">
@@ -365,6 +404,28 @@ $( ".selector" ).button( "option", "label", "custom label" );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.button( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple button options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -430,10 +491,10 @@ $( ".selector" ).button( "option", "label", "custom label" );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 21653 bytes
-Post-expand include size: 27897 bytes
-Template argument size: 13213 bytes
+Pre-expand include size: 24542 bytes
+Post-expand include size: 31799 bytes
+Template argument size: 14018 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3767-1!1!0!!en!2 and timestamp 20100318120831 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3767-1!1!0!!en!2 and timestamp 20110413160314 -->
diff --git a/development-bundle/docs/datepicker.html b/development-bundle/docs/datepicker.html
index 7d0dbb6..c461f41 100644
--- a/development-bundle/docs/datepicker.html
+++ b/development-bundle/docs/datepicker.html
@@ -12,7 +12,7 @@
     <h2 class="top-header">Overview</h2>
     <div id="overview-main">
         <p>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.</p>
-<p>By default, the datepicker calendar opens in a small overlay onFocus and closes automatically onBlur or when a date if selected. For an inline calendar, simply attach the datepicker to a div or span.
+<p>By default, the datepicker calendar opens in a small overlay onFocus and closes automatically onBlur or when a date is selected. For an inline calendar, simply attach the datepicker to a div or span.
 </p><p>You can use keyboard shortcuts to drive the datepicker:
 </p>
 <ul>
@@ -29,14 +29,15 @@
 <ul>
  <li><a href="http://docs.jquery.com/UI/Datepicker/setDefaults" title="UI/Datepicker/setDefaults">$.datepicker.setDefaults( settings )</a> - Set settings for all datepicker instances.</li>
  <li><a href="http://docs.jquery.com/UI/Datepicker/formatDate" title="UI/Datepicker/formatDate">$.datepicker.formatDate( format, date, settings )</a> - Format a date into a string value with a specified format.</li>
- <li><a href="http://docs.jquery.com/UI/Datepicker/iso8601Week" title="UI/Datepicker/iso8601Week">$.datepicker.iso8601Week( date )</a> - Determine the week of the year for a given date: 1 to 53.</li>
  <li><a href="http://docs.jquery.com/UI/Datepicker/parseDate" title="UI/Datepicker/parseDate">$.datepicker.parseDate( format, value, settings ) </a> - Extract a date from a string value with a specified format.</li>
+ <li><a href="http://docs.jquery.com/UI/Datepicker/iso8601Week" title="UI/Datepicker/iso8601Week">$.datepicker.iso8601Week( date )</a> - Determine the week of the year for a given date: 1 to 53.</li>
+ <li><a href="http://docs.jquery.com/UI/Datepicker/noWeekends" title="UI/Datepicker/noWeekends">$.datepicker.noWeekends</a> - Set as beforeShowDay function to prevent selection of weekends.</li>
 </ul>
 <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/API/1.8/Datepicker?section=2" title="Edit section: Localization">edit</a>]</div><a name="Localization"></a><h3>Localization</h3>
 <p>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. <code>jquery.ui.datepicker-fr.js</code> for French.
-	These files are loaded after the main datepicker code. They add their settings to the set
+	The desired localization file should be include after the main datepicker code. They add their settings to the set
 	of available localizations and automatically apply them as defaults for all instances.</p>
 <p>The <code>$.datepicker.regional</code> attribute holds an array of localizations,
 	indexed by language code, with '' referring to the default (English). Each entry is
@@ -75,7 +76,7 @@ A simple jQuery UI Datepicker.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -122,7 +123,7 @@ A simple jQuery UI Datepicker.<br />
   Initialize a datepicker with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ disabled: true });</code></pre>
 </dd>
 
     
@@ -146,7 +147,7 @@ $( ".selector" ).datepicker( "option", "disabled", true );</code></pre>
     <h3 class="option-name"><a href="#option-altField">altField</a></h3>
     <dl>
       <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
+        <dd class="option-type">Selector, jQuery, Element</dd>
       
       <dt class="option-default-label">Default:</dt>
         <dd class="option-default">''</dd>
@@ -164,7 +165,7 @@ $( ".selector" ).datepicker( "option", "disabled", true );</code></pre>
   Initialize a datepicker with the <code>altField</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { altField: '#actualDate' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ altField: '#actualDate' });</code></pre>
 </dd>
 
     
@@ -206,7 +207,7 @@ $( ".selector" ).datepicker( "option", "altField", '#actualDate' );</code></pre>
   Initialize a datepicker with the <code>altFormat</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { altFormat: 'yy-mm-dd' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ altFormat: 'yy-mm-dd' });</code></pre>
 </dd>
 
     
@@ -248,7 +249,7 @@ $( ".selector" ).datepicker( "option", "altFormat", 'yy-mm-dd' );</code></pre>
   Initialize a datepicker with the <code>appendText</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { appendText: '(yyyy-mm-dd)' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ appendText: '(yyyy-mm-dd)' });</code></pre>
 </dd>
 
     
@@ -290,7 +291,7 @@ $( ".selector" ).datepicker( "option", "appendText", '(yyyy-mm-dd)' );</code></p
   Initialize a datepicker with the <code>autoSize</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { autoSize: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ autoSize: true });</code></pre>
 </dd>
 
     
@@ -332,7 +333,7 @@ $( ".selector" ).datepicker( "option", "autoSize", true );</code></pre>
   Initialize a datepicker with the <code>buttonImage</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { buttonImage: '/images/datepicker.gif' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ buttonImage: '/images/datepicker.gif' });</code></pre>
 </dd>
 
     
@@ -374,7 +375,7 @@ $( ".selector" ).datepicker( "option", "buttonImage", '/images/datepicker.gif' )
   Initialize a datepicker with the <code>buttonImageOnly</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { buttonImageOnly: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ buttonImageOnly: true });</code></pre>
 </dd>
 
     
@@ -416,7 +417,7 @@ $( ".selector" ).datepicker( "option", "buttonImageOnly", true );</code></pre>
   Initialize a datepicker with the <code>buttonText</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { buttonText: 'Choose' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ buttonText: 'Choose' });</code></pre>
 </dd>
 
     
@@ -458,7 +459,7 @@ $( ".selector" ).datepicker( "option", "buttonText", 'Choose' );</code></pre>
   Initialize a datepicker with the <code>calculateWeek</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { calculateWeek: myWeekCalc } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ calculateWeek: myWeekCalc });</code></pre>
 </dd>
 
     
@@ -500,7 +501,7 @@ $( ".selector" ).datepicker( "option", "calculateWeek", myWeekCalc );</code></pr
   Initialize a datepicker with the <code>changeMonth</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { changeMonth: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ changeMonth: true });</code></pre>
 </dd>
 
     
@@ -532,7 +533,7 @@ $( ".selector" ).datepicker( "option", "changeMonth", true );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Allows you to change the year by selecting from a drop-down list. You can enable this feature by setting the attribute to true.</p>
+    <p>Allows you to change the year by selecting from a drop-down list. You can enable this feature by setting the attribute to true. Use the <code><a href="http://docs.jquery.com/UI/Datepicker#option-yearRange" title="UI/Datepicker">yearRange</a></code> option to control which years are made available for selection.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -542,7 +543,7 @@ $( ".selector" ).datepicker( "option", "changeMonth", true );</code></pre>
   Initialize a datepicker with the <code>changeYear</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { changeYear: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ changeYear: true });</code></pre>
 </dd>
 
     
@@ -584,7 +585,7 @@ $( ".selector" ).datepicker( "option", "changeYear", true );</code></pre>
   Initialize a datepicker with the <code>closeText</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { closeText: 'X' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ closeText: 'X' });</code></pre>
 </dd>
 
     
@@ -626,7 +627,7 @@ $( ".selector" ).datepicker( "option", "closeText", 'X' );</code></pre>
   Initialize a datepicker with the <code>constrainInput</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { constrainInput: false } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ constrainInput: false });</code></pre>
 </dd>
 
     
@@ -668,7 +669,7 @@ $( ".selector" ).datepicker( "option", "constrainInput", false );</code></pre>
   Initialize a datepicker with the <code>currentText</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { currentText: 'Now' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ currentText: 'Now' });</code></pre>
 </dd>
 
     
@@ -710,7 +711,7 @@ $( ".selector" ).datepicker( "option", "currentText", 'Now' );</code></pre>
   Initialize a datepicker with the <code>dateFormat</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { dateFormat: 'yy-mm-dd' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ dateFormat: 'yy-mm-dd' });</code></pre>
 </dd>
 
     
@@ -752,7 +753,7 @@ $( ".selector" ).datepicker( "option", "dateFormat", 'yy-mm-dd' );</code></pre>
   Initialize a datepicker with the <code>dayNames</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'] } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ dayNames: ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'] });</code></pre>
 </dd>
 
     
@@ -794,7 +795,7 @@ $( ".selector" ).datepicker( "option", "dayNames", ['Dimanche', 'Lundi', 'Mardi'
   Initialize a datepicker with the <code>dayNamesMin</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ dayNamesMin: ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] });</code></pre>
 </dd>
 
     
@@ -836,7 +837,7 @@ $( ".selector" ).datepicker( "option", "dayNamesMin", ['Di', 'Lu', 'Ma', 'Me', '
   Initialize a datepicker with the <code>dayNamesShort</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'] } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ dayNamesShort: ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'] });</code></pre>
 </dd>
 
     
@@ -878,7 +879,7 @@ $( ".selector" ).datepicker( "option", "dayNamesShort", ['Dim', 'Lun', 'Mar', 'M
   Initialize a datepicker with the <code>defaultDate</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { defaultDate: +7 } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ defaultDate: +7 });</code></pre>
 </dd>
 
     
@@ -920,7 +921,7 @@ $( ".selector" ).datepicker( "option", "defaultDate", +7 );</code></pre>
   Initialize a datepicker with the <code>duration</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { duration: 'slow' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ duration: 'slow' });</code></pre>
 </dd>
 
     
@@ -962,7 +963,7 @@ $( ".selector" ).datepicker( "option", "duration", 'slow' );</code></pre>
   Initialize a datepicker with the <code>firstDay</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { firstDay: 1 } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ firstDay: 1 });</code></pre>
 </dd>
 
     
@@ -1004,7 +1005,7 @@ $( ".selector" ).datepicker( "option", "firstDay", 1 );</code></pre>
   Initialize a datepicker with the <code>gotoCurrent</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { gotoCurrent: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ gotoCurrent: true });</code></pre>
 </dd>
 
     
@@ -1046,7 +1047,7 @@ $( ".selector" ).datepicker( "option", "gotoCurrent", true );</code></pre>
   Initialize a datepicker with the <code>hideIfNoPrevNext</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { hideIfNoPrevNext: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ hideIfNoPrevNext: true });</code></pre>
 </dd>
 
     
@@ -1088,7 +1089,7 @@ $( ".selector" ).datepicker( "option", "hideIfNoPrevNext", true );</code></pre>
   Initialize a datepicker with the <code>isRTL</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { isRTL: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ isRTL: true });</code></pre>
 </dd>
 
     
@@ -1130,7 +1131,7 @@ $( ".selector" ).datepicker( "option", "isRTL", true );</code></pre>
   Initialize a datepicker with the <code>maxDate</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { maxDate: '+1m +1w' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ maxDate: '+1m +1w' });</code></pre>
 </dd>
 
     
@@ -1172,7 +1173,7 @@ $( ".selector" ).datepicker( "option", "maxDate", '+1m +1w' );</code></pre>
   Initialize a datepicker with the <code>minDate</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { minDate: new Date(2007, 1 - 1, 1) } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ minDate: new Date(2007, 1 - 1, 1) });</code></pre>
 </dd>
 
     
@@ -1204,7 +1205,7 @@ $( ".selector" ).datepicker( "option", "minDate", new Date(2007, 1 - 1, 1) );</c
     </dl>
   </div>
   <div class="option-description">
-    <p>The list of full month names, as used in the month header on each datepicker and as requested via the <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code> setting. This attribute is one of the regionalisation attributes.</p>
+    <p>The list of full month names, for use as requested via the <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code> setting. This attribute is one of the regionalisation attributes.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -1214,7 +1215,7 @@ $( ".selector" ).datepicker( "option", "minDate", new Date(2007, 1 - 1, 1) );</c
   Initialize a datepicker with the <code>monthNames</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { monthNames: ['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December'] } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ monthNames: ['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December'] });</code></pre>
 </dd>
 
     
@@ -1246,7 +1247,7 @@ $( ".selector" ).datepicker( "option", "monthNames", ['Januar','Februar','Marts'
     </dl>
   </div>
   <div class="option-description">
-    <p>The list of abbreviated month names, for use as requested via the <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code> setting. This attribute is one of the regionalisation attributes.</p>
+    <p>The list of abbreviated month names, as used in the month header on each datepicker and as requested via the <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code> setting. This attribute is one of the regionalisation attributes.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -1256,7 +1257,7 @@ $( ".selector" ).datepicker( "option", "monthNames", ['Januar','Februar','Marts'
   Initialize a datepicker with the <code>monthNamesShort</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec'] } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec'] });</code></pre>
 </dd>
 
     
@@ -1298,7 +1299,7 @@ $( ".selector" ).datepicker( "option", "monthNamesShort", ['Jan','Feb','Mar','Ap
   Initialize a datepicker with the <code>navigationAsDateFormat</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { navigationAsDateFormat: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ navigationAsDateFormat: true });</code></pre>
 </dd>
 
     
@@ -1340,7 +1341,7 @@ $( ".selector" ).datepicker( "option", "navigationAsDateFormat", true );</code><
   Initialize a datepicker with the <code>nextText</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { nextText: 'Later' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ nextText: 'Later' });</code></pre>
 </dd>
 
     
@@ -1382,7 +1383,7 @@ $( ".selector" ).datepicker( "option", "nextText", 'Later' );</code></pre>
   Initialize a datepicker with the <code>numberOfMonths</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { numberOfMonths: [2, 3] } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ numberOfMonths: [2, 3] });</code></pre>
 </dd>
 
     
@@ -1424,7 +1425,7 @@ $( ".selector" ).datepicker( "option", "numberOfMonths", [2, 3] );</code></pre>
   Initialize a datepicker with the <code>prevText</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { prevText: 'Earlier' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ prevText: 'Earlier' });</code></pre>
 </dd>
 
     
@@ -1466,7 +1467,7 @@ $( ".selector" ).datepicker( "option", "prevText", 'Earlier' );</code></pre>
   Initialize a datepicker with the <code>selectOtherMonths</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { selectOtherMonths: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ selectOtherMonths: true });</code></pre>
 </dd>
 
     
@@ -1508,7 +1509,7 @@ $( ".selector" ).datepicker( "option", "selectOtherMonths", true );</code></pre>
   Initialize a datepicker with the <code>shortYearCutoff</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { shortYearCutoff: 50 } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ shortYearCutoff: 50 });</code></pre>
 </dd>
 
     
@@ -1550,7 +1551,7 @@ $( ".selector" ).datepicker( "option", "shortYearCutoff", 50 );</code></pre>
   Initialize a datepicker with the <code>showAnim</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showAnim: 'fold' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showAnim: 'fold' });</code></pre>
 </dd>
 
     
@@ -1592,7 +1593,7 @@ $( ".selector" ).datepicker( "option", "showAnim", 'fold' );</code></pre>
   Initialize a datepicker with the <code>showButtonPanel</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showButtonPanel: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showButtonPanel: true });</code></pre>
 </dd>
 
     
@@ -1634,7 +1635,7 @@ $( ".selector" ).datepicker( "option", "showButtonPanel", true );</code></pre>
   Initialize a datepicker with the <code>showCurrentAtPos</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showCurrentAtPos: 3 } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showCurrentAtPos: 3 });</code></pre>
 </dd>
 
     
@@ -1666,7 +1667,7 @@ $( ".selector" ).datepicker( "option", "showCurrentAtPos", 3 );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Whether to show the month after the year in the header.</p>
+    <p>Whether to show the month after the year in the header. This attribute is one of the regionalisation attributes.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -1676,7 +1677,7 @@ $( ".selector" ).datepicker( "option", "showCurrentAtPos", 3 );</code></pre>
   Initialize a datepicker with the <code>showMonthAfterYear</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showMonthAfterYear: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showMonthAfterYear: true });</code></pre>
 </dd>
 
     
@@ -1718,7 +1719,7 @@ $( ".selector" ).datepicker( "option", "showMonthAfterYear", true );</code></pre
   Initialize a datepicker with the <code>showOn</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showOn: 'both' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showOn: 'both' });</code></pre>
 </dd>
 
     
@@ -1760,7 +1761,7 @@ $( ".selector" ).datepicker( "option", "showOn", 'both' );</code></pre>
   Initialize a datepicker with the <code>showOptions</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showOptions: {direction: 'up' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showOptions: {direction: 'up' });</code></pre>
 </dd>
 
     
@@ -1802,7 +1803,7 @@ $( ".selector" ).datepicker( "option", "showOptions", {direction: 'up' );</code>
   Initialize a datepicker with the <code>showOtherMonths</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showOtherMonths: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showOtherMonths: true });</code></pre>
 </dd>
 
     
@@ -1834,7 +1835,7 @@ $( ".selector" ).datepicker( "option", "showOtherMonths", true );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>When true a column is added to show the week of the year. The <code><a href="http://docs.jquery.com/UI/Datepicker#option-calculateWeek" title="UI/Datepicker">calculateWeek</a></code> option determines how the week of the year is calculated. You may also want to change the <code>firstDay</code> option.</p>
+    <p>When true a column is added to show the week of the year. The <code><a href="http://docs.jquery.com/UI/Datepicker#option-calculateWeek" title="UI/Datepicker">calculateWeek</a></code> option determines how the week of the year is calculated. You may also want to change the <code><a href="http://docs.jquery.com/UI/Datepicker#option-firstDay" title="UI/Datepicker">firstDay</a></code> option.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -1844,7 +1845,7 @@ $( ".selector" ).datepicker( "option", "showOtherMonths", true );</code></pre>
   Initialize a datepicker with the <code>showWeek</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { showWeek: true } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ showWeek: true });</code></pre>
 </dd>
 
     
@@ -1886,7 +1887,7 @@ $( ".selector" ).datepicker( "option", "showWeek", true );</code></pre>
   Initialize a datepicker with the <code>stepMonths</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { stepMonths: 3 } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ stepMonths: 3 });</code></pre>
 </dd>
 
     
@@ -1928,7 +1929,7 @@ $( ".selector" ).datepicker( "option", "stepMonths", 3 );</code></pre>
   Initialize a datepicker with the <code>weekHeader</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { weekHeader: 'W' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ weekHeader: 'W' });</code></pre>
 </dd>
 
     
@@ -1960,7 +1961,7 @@ $( ".selector" ).datepicker( "option", "weekHeader", 'W' );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Control 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).</p>
+    <p>Control 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 <code><a href="http://docs.jquery.com/UI/Datepicker#option-minDate" title="UI/Datepicker">minDate</a></code> and/or <code><a href="http://docs.jquery.com/UI/Datepicker#option-maxDate" title="UI/Datepicker">maxDate</a></code> options.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -1970,7 +1971,7 @@ $( ".selector" ).datepicker( "option", "weekHeader", 'W' );</code></pre>
   Initialize a datepicker with the <code>yearRange</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { yearRange: '2000:2010' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ yearRange: '2000:2010' });</code></pre>
 </dd>
 
     
@@ -2012,7 +2013,7 @@ $( ".selector" ).datepicker( "option", "yearRange", '2000:2010' );</code></pre>
   Initialize a datepicker with the <code>yearSuffix</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).datepicker( { yearSuffix: 'CE' } );</code></pre>
+<pre><code>$( ".selector" ).datepicker({ yearSuffix: 'CE' });</code></pre>
 </dd>
 
     
@@ -2036,6 +2037,45 @@ $( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">datepickercreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when datepicker is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).datepicker({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>datepickercreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "datepickercreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-beforeShow">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-beforeShow">beforeShow</a></h3>
@@ -2274,6 +2314,28 @@ $( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.datepicker( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple datepicker options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -2351,7 +2413,7 @@ $( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
       <dt class="method-signature-label">Signature:</dt>
         <dd class="method-signature">.datepicker( "hide"
 
-, <span class="optional">[</span>speed<span class="optional">] </span>
+
 
 
 
@@ -2361,8 +2423,7 @@ $( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
     </dl>
   </div>
   <div class="method-description">
-    <p>Close a previously opened date picker.
-</p><p>speed: The speed at which to close the date picker.</p>
+    <p>Close a previously opened date picker.</p>
   </div>
 </li>
 
@@ -2389,6 +2450,28 @@ $( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
 </li>
 
 
+<li class="method" id="method-refresh">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-refresh">refresh</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.datepicker( "refresh"
+
+
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Redraw a date picker, after having made some external modifications.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-getDate">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-getDate">getDate</a></h3>
@@ -2428,7 +2511,7 @@ $( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
     </dl>
   </div>
   <div class="method-description">
-    <p>Sets the current date for the datepicker. The new date may also be 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.</p>
+    <p>Sets the current date for the datepicker. The new date may be a Date object or a string in the current <a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">date format</a> (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.</p>
   </div>
 </li>
 
@@ -2478,10 +2561,10 @@ $( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 94794 bytes
-Post-expand include size: 188071 bytes
-Template argument size: 118094 bytes
+Pre-expand include size: 98753 bytes
+Post-expand include size: 196021 bytes
+Template argument size: 121355 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3774-1!1!0!!en!2 and timestamp 20100318121242 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3774-1!1!0!!en!2 and timestamp 20110413160316 -->
diff --git a/development-bundle/docs/dialog.html b/development-bundle/docs/dialog.html
index 1a69d82..7342ef0 100644
--- a/development-bundle/docs/dialog.html
+++ b/development-bundle/docs/dialog.html
@@ -1,4 +1,4 @@
-<p>
+
 <ul class="UIAPIPlugin-toc">
 <li><a href="#overview">Overview</a></li>
 <li><a href="#options">Options</a></li>
@@ -11,16 +11,18 @@
   <div id="overview">
     <h2 class="top-header">Overview</h2>
     <div id="overview-main">
-        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.
-</p><p>If the content length exceeds the maximum height, a scrollbar will automatically appear.
-</p><p>A bottom button bar and semi-transparent modal overlay layer are common options that can be added.
-</p>
-A call to <code>$(foo).dialog()</code> will initialize a dialog instance and will auto-open the dialog by default. If you want to reuse a dialog, the easiest way is to disable the "auto-open" option with: <code>$(foo).dialog({ autoOpen: false })</code> and open it with <code>$(foo).dialog('open')</code>. To close it, use <code>$foo.dialog('close')</code>. A more in-depth explanation with a full demo is available on <a href="http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/" class="external text" title="http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/">the Nemikor blog</a>.
+        <p>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.</p>
+<p>If the content length exceeds the maximum height, a scrollbar will automatically appear.</p>
+<p>A bottom button bar and semi-transparent modal overlay layer are common options that can be added.</p>
+<p>A call to <code>$(foo).dialog()</code> will initialize a dialog instance and will auto-open the dialog by default. If you want to reuse a dialog, the easiest way is to disable the "auto-open" option with: <code>$(foo).dialog({ autoOpen: false })</code> and open it with <code>$(foo).dialog('open')</code>. To close it, use <code>$(foo).dialog('close')</code>. A more in-depth explanation with a full demo is available on <a href="http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/" class="external text" title="http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/">the Nemikor blog</a>.</p>
     </div>
     <div id="overview-dependencies">
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Position</li>
+<li>UI Widget</li>
+<li>UI Mouse (Optional; only needed if using UI Draggable or UI Resizable)</li>
 <li>UI Draggable (Optional)</li>
 <li>UI Resizable (Optional)</li>
 </ul>
@@ -40,7 +42,7 @@ A simple jQuery UI Dialog.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -87,7 +89,7 @@ A simple jQuery UI Dialog.<br />
   Initialize a dialog with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ disabled: true });</code></pre>
 </dd>
 
     
@@ -129,7 +131,7 @@ $( ".selector" ).dialog( "option", "disabled", true );</code></pre>
   Initialize a dialog with the <code>autoOpen</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { autoOpen: false } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ autoOpen: false });</code></pre>
 </dd>
 
     
@@ -172,7 +174,7 @@ $( ".selector" ).dialog( "option", "autoOpen", false );</code></pre>
   Initialize a dialog with the <code>buttons</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { buttons: { "Ok": function() { $(this).dialog("close"); } } } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ buttons: { "Ok": function() { $(this).dialog("close"); } } });</code></pre>
 </dd>
 
     
@@ -191,6 +193,59 @@ $( ".selector" ).dialog( "option", "buttons", { "Ok": function() { $(t
 </li>
 
 
+<li class="option" id="option-buttons">
+  <div class="option-header">
+    <h3 class="option-name"><a href="#option-buttons">buttons</a></h3>
+    <dl>
+      <dt class="option-type-label">Type:</dt>
+        <dd class="option-type">Array</dd>
+      
+      <dt class="option-default-label">Default:</dt>
+        <dd class="option-default">[ ]</dd>
+      
+    </dl>
+  </div>
+  <div class="option-description">
+    <p>Specifies which buttons should be displayed on the dialog. Each element of the array must be an Object defining the properties to set on the button.
+</p>
+  </div>
+  <div class="option-examples">
+    <h4>Code examples</h4>
+    <dl class="option-examples-list">
+    
+<dt>
+  Initialize a dialog with the <code>buttons</code> option specified.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).dialog({ buttons: [
+    {
+        text: "Ok",
+        click: function() { $(this).dialog("close"); }
+    }
+] });</code></pre>
+</dd>
+
+    
+<dt>
+  Get or set the <code>buttons</code> option, after init.
+</dt>
+<dd>
+<pre><code>//getter
+var buttons = $( ".selector" ).dialog( "option", "buttons" );
+//setter
+$( ".selector" ).dialog( "option", "buttons", [
+    {
+        text: "Ok",
+        click: function() { $(this).dialog("close"); }
+    }
+] );</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="option" id="option-closeOnEscape">
   <div class="option-header">
     <h3 class="option-name"><a href="#option-closeOnEscape">closeOnEscape</a></h3>
@@ -214,7 +269,7 @@ $( ".selector" ).dialog( "option", "buttons", { "Ok": function() { $(t
   Initialize a dialog with the <code>closeOnEscape</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { closeOnEscape: false } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ closeOnEscape: false });</code></pre>
 </dd>
 
     
@@ -256,7 +311,7 @@ $( ".selector" ).dialog( "option", "closeOnEscape", false );</code></pre>
   Initialize a dialog with the <code>closeText</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { closeText: 'hide' } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ closeText: 'hide' });</code></pre>
 </dd>
 
     
@@ -298,7 +353,7 @@ $( ".selector" ).dialog( "option", "closeText", 'hide' );</code></pre>
   Initialize a dialog with the <code>dialogClass</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { dialogClass: 'alert' } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ dialogClass: 'alert' });</code></pre>
 </dd>
 
     
@@ -340,7 +395,7 @@ $( ".selector" ).dialog( "option", "dialogClass", 'alert' );</code></pre>
   Initialize a dialog with the <code>draggable</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { draggable: false } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ draggable: false });</code></pre>
 </dd>
 
     
@@ -382,7 +437,7 @@ $( ".selector" ).dialog( "option", "draggable", false );</code></pre>
   Initialize a dialog with the <code>height</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { height: 530 } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ height: 530 });</code></pre>
 </dd>
 
     
@@ -424,7 +479,7 @@ $( ".selector" ).dialog( "option", "height", 530 );</code></pre>
   Initialize a dialog with the <code>hide</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { hide: 'slide' } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ hide: 'slide' });</code></pre>
 </dd>
 
     
@@ -466,7 +521,7 @@ $( ".selector" ).dialog( "option", "hide", 'slide' );</code></pre>
   Initialize a dialog with the <code>maxHeight</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { maxHeight: 400 } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ maxHeight: 400 });</code></pre>
 </dd>
 
     
@@ -508,7 +563,7 @@ $( ".selector" ).dialog( "option", "maxHeight", 400 );</code></pre>
   Initialize a dialog with the <code>maxWidth</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { maxWidth: 600 } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ maxWidth: 600 });</code></pre>
 </dd>
 
     
@@ -550,7 +605,7 @@ $( ".selector" ).dialog( "option", "maxWidth", 600 );</code></pre>
   Initialize a dialog with the <code>minHeight</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { minHeight: 300 } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ minHeight: 300 });</code></pre>
 </dd>
 
     
@@ -592,7 +647,7 @@ $( ".selector" ).dialog( "option", "minHeight", 300 );</code></pre>
   Initialize a dialog with the <code>minWidth</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { minWidth: 400 } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ minWidth: 400 });</code></pre>
 </dd>
 
     
@@ -634,7 +689,7 @@ $( ".selector" ).dialog( "option", "minWidth", 400 );</code></pre>
   Initialize a dialog with the <code>modal</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { modal: true } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ modal: true });</code></pre>
 </dd>
 
     
@@ -676,7 +731,7 @@ $( ".selector" ).dialog( "option", "modal", true );</code></pre>
   Initialize a dialog with the <code>position</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { position: 'top' } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ position: 'top' });</code></pre>
 </dd>
 
     
@@ -718,7 +773,7 @@ $( ".selector" ).dialog( "option", "position", 'top' );</code></pre>
   Initialize a dialog with the <code>resizable</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { resizable: false } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ resizable: false });</code></pre>
 </dd>
 
     
@@ -760,7 +815,7 @@ $( ".selector" ).dialog( "option", "resizable", false );</code></pre>
   Initialize a dialog with the <code>show</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { show: 'slide' } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ show: 'slide' });</code></pre>
 </dd>
 
     
@@ -802,7 +857,7 @@ $( ".selector" ).dialog( "option", "show", 'slide' );</code></pre>
   Initialize a dialog with the <code>stack</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { stack: false } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ stack: false });</code></pre>
 </dd>
 
     
@@ -834,7 +889,7 @@ $( ".selector" ).dialog( "option", "stack", false );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Specifies the title of the dialog. The title can also be specified by the title attribute on the dialog source element.</p>
+    <p>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.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -844,7 +899,7 @@ $( ".selector" ).dialog( "option", "stack", false );</code></pre>
   Initialize a dialog with the <code>title</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { title: 'Dialog Title' } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ title: 'Dialog Title' });</code></pre>
 </dd>
 
     
@@ -886,7 +941,7 @@ $( ".selector" ).dialog( "option", "title", 'Dialog Title' );</code></pre>
   Initialize a dialog with the <code>width</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { width: 460 } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ width: 460 });</code></pre>
 </dd>
 
     
@@ -928,7 +983,7 @@ $( ".selector" ).dialog( "option", "width", 460 );</code></pre>
   Initialize a dialog with the <code>zIndex</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).dialog( { zIndex: 3999 } );</code></pre>
+<pre><code>$( ".selector" ).dialog({ zIndex: 3999 });</code></pre>
 </dd>
 
     
@@ -952,33 +1007,72 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
-<li class="event" id="event-beforeclose">
+<li class="event" id="event-create">
   <div class="event-header">
-    <h3 class="event-name"><a href="#event-beforeclose">beforeclose</a></h3>
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">dialogcreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when dialog is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).dialog({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>dialogcreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "dialogcreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
+<li class="event" id="event-beforeClose">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-beforeClose">beforeClose</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
         <dd class="event-type">dialogbeforeclose</dd>
     </dl>
   </div>
   <div class="event-description">
-    <p>This event is triggered when a dialog attempts to close. If the beforeclose event handler (callback function) returns false, the close will be prevented.</p>
+    <p>This event is triggered when a dialog attempts to close. If the beforeClose event handler (callback function) returns false, the close will be prevented.</p>
   </div>
   <div class="event-examples">
     <h4>Code examples</h4>
     <dl class="event-examples-list">
     
 <dt>
-  Supply a callback function to handle the <code>beforeclose</code> event as an init option.
+  Supply a callback function to handle the <code>beforeClose</code> event as an init option.
 </dt>
 <dd>
 <pre><code>$( ".selector" ).dialog({
-   beforeclose: function(event, ui) { ... }
+   beforeClose: function(event, ui) { ... }
 });</code></pre>
 </dd>
 
     
 <dt>
-  Bind to the <code>beforeclose</code> event by type: <code>dialogbeforeclose</code>.
+  Bind to the <code>beforeClose</code> event by type: <code>dialogbeforeclose</code>.
 </dt>
 <dd>
 <pre><code>$( ".selector" ).bind( "dialogbeforeclose", function(event, ui) {
@@ -1074,7 +1168,7 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
     <h3 class="event-name"><a href="#event-dragStart">dragStart</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dragStart</dd>
+        <dd class="event-type">dialogdragstart</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -1095,10 +1189,10 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 
     
 <dt>
-  Bind to the <code>dragStart</code> event by type: <code>dragStart</code>.
+  Bind to the <code>dragStart</code> event by type: <code>dialogdragstart</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "dragStart", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "dialogdragstart", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -1113,7 +1207,7 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
     <h3 class="event-name"><a href="#event-drag">drag</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">drag</dd>
+        <dd class="event-type">dialogdrag</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -1134,10 +1228,10 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 
     
 <dt>
-  Bind to the <code>drag</code> event by type: <code>drag</code>.
+  Bind to the <code>drag</code> event by type: <code>dialogdrag</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "drag", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "dialogdrag", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -1152,7 +1246,7 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
     <h3 class="event-name"><a href="#event-dragStop">dragStop</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dragStop</dd>
+        <dd class="event-type">dialogdragstop</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -1173,10 +1267,10 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 
     
 <dt>
-  Bind to the <code>dragStop</code> event by type: <code>dragStop</code>.
+  Bind to the <code>dragStop</code> event by type: <code>dialogdragstop</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "dragStop", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "dialogdragstop", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -1191,7 +1285,7 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
     <h3 class="event-name"><a href="#event-resizeStart">resizeStart</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">resizeStart</dd>
+        <dd class="event-type">dialogresizestart</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -1212,10 +1306,10 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 
     
 <dt>
-  Bind to the <code>resizeStart</code> event by type: <code>resizeStart</code>.
+  Bind to the <code>resizeStart</code> event by type: <code>dialogresizestart</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "resizeStart", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "dialogresizestart", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -1230,11 +1324,11 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
     <h3 class="event-name"><a href="#event-resize">resize</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">resize</dd>
+        <dd class="event-type">dialogresize</dd>
     </dl>
   </div>
   <div class="event-description">
-    <p>This event is triggered when the dialog is resized.</p>
+    <p>This event is triggered when the dialog is resized. <a href="http://www.jsfiddle.net/Jp7TM/18/" class="external text" title="http://www.jsfiddle.net/Jp7TM/18/">demo</a></p>
   </div>
   <div class="event-examples">
     <h4>Code examples</h4>
@@ -1251,10 +1345,10 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 
     
 <dt>
-  Bind to the <code>resize</code> event by type: <code>resize</code>.
+  Bind to the <code>resize</code> event by type: <code>dialogresize</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "resize", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "dialogresize", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -1269,7 +1363,7 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
     <h3 class="event-name"><a href="#event-resizeStop">resizeStop</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">resizeStop</dd>
+        <dd class="event-type">dialogresizestop</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -1290,10 +1384,10 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 
     
 <dt>
-  Bind to the <code>resizeStop</code> event by type: <code>resizeStop</code>.
+  Bind to the <code>resizeStop</code> event by type: <code>dialogresizestop</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "resizeStop", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "dialogresizestop", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -1435,6 +1529,28 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.dialog( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple dialog options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -1573,10 +1689,10 @@ $( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 62123 bytes
-Post-expand include size: 103888 bytes
-Template argument size: 58089 bytes
+Pre-expand include size: 66533 bytes
+Post-expand include size: 111315 bytes
+Template argument size: 61320 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3775-1!1!0!!en!2 and timestamp 20100318122801 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3775-1!1!0!!en!2 and timestamp 20110413160317 -->
diff --git a/development-bundle/docs/draggable.html b/development-bundle/docs/draggable.html
index 3c81bd2..4f534b7 100644
--- a/development-bundle/docs/draggable.html
+++ b/development-bundle/docs/draggable.html
@@ -19,11 +19,16 @@
 <li><b>ui.position</b> - current position of the helper as { top, left } object, relative to the offset element</li>
 <li><b>ui.offset</b> - current absolute position of the helper as { top, left } object, relative to page</li>
 </ul>
+<p><br />
+</p>
+<p>To manipulate the position of a draggable during drag, you can either <a href="http://jsbin.com/etako/edit" class="external text" title="http://jsbin.com/etako/edit">use a wrapper as the draggable helper</a> and position the wrapped element with absolute positioning, or  you can correct internal values like so: <code>$(this).data('draggable').offset.click.top -= x</code>.</p>
     </div>
     <div id="overview-dependencies">
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Widget</li>
+<li>UI Mouse</li>
 </ul>
     </div>
     <div id="overview-example">
@@ -41,7 +46,7 @@ Initialize a draggable with default options.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <style type="text/css">
     #draggable { width: 100px; height: 70px; background: silver; }
@@ -90,7 +95,7 @@ Initialize a draggable with default options.<br />
   Initialize a draggable with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ disabled: true });</code></pre>
 </dd>
 
     
@@ -132,7 +137,7 @@ $( ".selector" ).draggable( "option", "disabled", true );</code></pre>
   Initialize a draggable with the <code>addClasses</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { addClasses: false } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ addClasses: false });</code></pre>
 </dd>
 
     
@@ -174,7 +179,7 @@ $( ".selector" ).draggable( "option", "addClasses", false );</code></pre>
   Initialize a draggable with the <code>appendTo</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { appendTo: 'body' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ appendTo: 'body' });</code></pre>
 </dd>
 
     
@@ -216,7 +221,7 @@ $( ".selector" ).draggable( "option", "appendTo", 'body' );</code></pre>
   Initialize a draggable with the <code>axis</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { axis: 'x' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ axis: 'x' });</code></pre>
 </dd>
 
     
@@ -258,7 +263,7 @@ $( ".selector" ).draggable( "option", "axis", 'x' );</code></pre>
   Initialize a draggable with the <code>cancel</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { cancel: 'button' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ cancel: 'button' });</code></pre>
 </dd>
 
     
@@ -301,7 +306,7 @@ $( ".selector" ).draggable( "option", "cancel", 'button' );</code></pre>
   Initialize a draggable with the <code>connectToSortable</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { connectToSortable: 'ul#myList' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ connectToSortable: 'ul#myList' });</code></pre>
 </dd>
 
     
@@ -343,7 +348,7 @@ $( ".selector" ).draggable( "option", "connectToSortable", 'ul#myList' );</code>
   Initialize a draggable with the <code>containment</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { containment: 'parent' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ containment: 'parent' });</code></pre>
 </dd>
 
     
@@ -385,7 +390,7 @@ $( ".selector" ).draggable( "option", "containment", 'parent' );</code></pre>
   Initialize a draggable with the <code>cursor</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { cursor: 'crosshair' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ cursor: 'crosshair' });</code></pre>
 </dd>
 
     
@@ -417,7 +422,7 @@ $( ".selector" ).draggable( "option", "cursor", 'crosshair' );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Moves the dragging 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: <code>{ top, left, right, bottom }</code>.</p>
+    <p>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: <code>{ top, left, right, bottom }</code>.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -427,7 +432,7 @@ $( ".selector" ).draggable( "option", "cursor", 'crosshair' );</code></pre>
   Initialize a draggable with the <code>cursorAt</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { cursorAt: { left: 5 } } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ cursorAt: { left: 5 } });</code></pre>
 </dd>
 
     
@@ -469,7 +474,7 @@ $( ".selector" ).draggable( "option", "cursorAt", { left: 5 } );</code></pre>
   Initialize a draggable with the <code>delay</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { delay: 500 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ delay: 500 });</code></pre>
 </dd>
 
     
@@ -511,7 +516,7 @@ $( ".selector" ).draggable( "option", "delay", 500 );</code></pre>
   Initialize a draggable with the <code>distance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { distance: 30 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ distance: 30 });</code></pre>
 </dd>
 
     
@@ -553,7 +558,7 @@ $( ".selector" ).draggable( "option", "distance", 30 );</code></pre>
   Initialize a draggable with the <code>grid</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { grid: [50, 20] } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ grid: [50, 20] });</code></pre>
 </dd>
 
     
@@ -595,7 +600,7 @@ $( ".selector" ).draggable( "option", "grid", [50, 20] );</code></pre>
   Initialize a draggable with the <code>handle</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { handle: 'h2' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ handle: 'h2' });</code></pre>
 </dd>
 
     
@@ -637,7 +642,7 @@ $( ".selector" ).draggable( "option", "handle", 'h2' );</code></pre>
   Initialize a draggable with the <code>helper</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { helper: 'clone' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ helper: 'clone' });</code></pre>
 </dd>
 
     
@@ -679,7 +684,7 @@ $( ".selector" ).draggable( "option", "helper", 'clone' );</code></pre>
   Initialize a draggable with the <code>iframeFix</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { iframeFix: true } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ iframeFix: true });</code></pre>
 </dd>
 
     
@@ -721,7 +726,7 @@ $( ".selector" ).draggable( "option", "iframeFix", true );</code></pre>
   Initialize a draggable with the <code>opacity</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { opacity: 0.35 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ opacity: 0.35 });</code></pre>
 </dd>
 
     
@@ -763,7 +768,7 @@ $( ".selector" ).draggable( "option", "opacity", 0.35 );</code></pre>
   Initialize a draggable with the <code>refreshPositions</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { refreshPositions: true } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ refreshPositions: true });</code></pre>
 </dd>
 
     
@@ -805,7 +810,7 @@ $( ".selector" ).draggable( "option", "refreshPositions", true );</code></pre>
   Initialize a draggable with the <code>revert</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { revert: true } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ revert: true });</code></pre>
 </dd>
 
     
@@ -847,7 +852,7 @@ $( ".selector" ).draggable( "option", "revert", true );</code></pre>
   Initialize a draggable with the <code>revertDuration</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { revertDuration: 1000 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ revertDuration: 1000 });</code></pre>
 </dd>
 
     
@@ -889,7 +894,7 @@ $( ".selector" ).draggable( "option", "revertDuration", 1000 );</code></pre>
   Initialize a draggable with the <code>scope</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { scope: 'tasks' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ scope: 'tasks' });</code></pre>
 </dd>
 
     
@@ -931,7 +936,7 @@ $( ".selector" ).draggable( "option", "scope", 'tasks' );</code></pre>
   Initialize a draggable with the <code>scroll</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { scroll: false } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ scroll: false });</code></pre>
 </dd>
 
     
@@ -973,7 +978,7 @@ $( ".selector" ).draggable( "option", "scroll", false );</code></pre>
   Initialize a draggable with the <code>scrollSensitivity</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { scrollSensitivity: 40 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ scrollSensitivity: 40 });</code></pre>
 </dd>
 
     
@@ -1015,7 +1020,7 @@ $( ".selector" ).draggable( "option", "scrollSensitivity", 40 );</code></pre>
   Initialize a draggable with the <code>scrollSpeed</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { scrollSpeed: 40 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ scrollSpeed: 40 });</code></pre>
 </dd>
 
     
@@ -1057,7 +1062,7 @@ $( ".selector" ).draggable( "option", "scrollSpeed", 40 );</code></pre>
   Initialize a draggable with the <code>snap</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { snap: true } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ snap: true });</code></pre>
 </dd>
 
     
@@ -1099,7 +1104,7 @@ $( ".selector" ).draggable( "option", "snap", true );</code></pre>
   Initialize a draggable with the <code>snapMode</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { snapMode: 'outer' } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ snapMode: 'outer' });</code></pre>
 </dd>
 
     
@@ -1141,7 +1146,7 @@ $( ".selector" ).draggable( "option", "snapMode", 'outer' );</code></pre>
   Initialize a draggable with the <code>snapTolerance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { snapTolerance: 40 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ snapTolerance: 40 });</code></pre>
 </dd>
 
     
@@ -1165,7 +1170,7 @@ $( ".selector" ).draggable( "option", "snapTolerance", 40 );</code></pre>
     <h3 class="option-name"><a href="#option-stack">stack</a></h3>
     <dl>
       <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Object</dd>
+        <dd class="option-type">Selector</dd>
       
       <dt class="option-default-label">Default:</dt>
         <dd class="option-default">false</dd>
@@ -1173,7 +1178,7 @@ $( ".selector" ).draggable( "option", "snapTolerance", 40 );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Controls the z-Index of the defined group (key 'group' in the hash, accepts jQuery selector) automatically, always brings to front the dragged item. Very useful in things like window managers. Optionally, a 'min' key can be set, so the zIndex cannot go below that value.</p>
+    <p>Controls the z-Index of the set of elements that match the selector, always brings to front the dragged item. Very useful in things like window managers.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -1183,7 +1188,7 @@ $( ".selector" ).draggable( "option", "snapTolerance", 40 );</code></pre>
   Initialize a draggable with the <code>stack</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { stack: { group: 'products', min: 50 } } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ stack: ".products" });</code></pre>
 </dd>
 
     
@@ -1194,7 +1199,7 @@ $( ".selector" ).draggable( "option", "snapTolerance", 40 );</code></pre>
 <pre><code>//getter
 var stack = $( ".selector" ).draggable( "option", "stack" );
 //setter
-$( ".selector" ).draggable( "option", "stack", { group: 'products', min: 50 } );</code></pre>
+$( ".selector" ).draggable( "option", "stack", ".products" );</code></pre>
 </dd>
 
     </dl>
@@ -1225,7 +1230,7 @@ $( ".selector" ).draggable( "option", "stack", { group: 'products', min: 50 } );
   Initialize a draggable with the <code>zIndex</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).draggable( { zIndex: 2700 } );</code></pre>
+<pre><code>$( ".selector" ).draggable({ zIndex: 2700 });</code></pre>
 </dd>
 
     
@@ -1249,6 +1254,45 @@ $( ".selector" ).draggable( "option", "zIndex", 2700 );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">dragcreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when draggable is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).draggable({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>dragcreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "dragcreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-start">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-start">start</a></h3>
@@ -1459,6 +1503,28 @@ $( ".selector" ).draggable( "option", "zIndex", 2700 );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.draggable( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple draggable options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -1502,10 +1568,10 @@ $( ".selector" ).draggable( "option", "zIndex", 2700 );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 58480 bytes
-Post-expand include size: 102326 bytes
-Template argument size: 57454 bytes
+Pre-expand include size: 61392 bytes
+Post-expand include size: 107565 bytes
+Template argument size: 58710 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3768-1!1!0!!en!2 and timestamp 20100318122743 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3768-1!1!0!!en!2 and timestamp 20110413160309 -->
diff --git a/development-bundle/docs/droppable.html b/development-bundle/docs/droppable.html
index 113d732..2ee68e6 100644
--- a/development-bundle/docs/droppable.html
+++ b/development-bundle/docs/droppable.html
@@ -24,6 +24,8 @@
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Widget</li>
+<li>UI Mouse</li>
 <li><a href="http://docs.jquery.com/UI/Draggable" title="UI/Draggable">UI Draggable</a></li>
 </ul>
     </div>
@@ -45,7 +47,7 @@ Makes the div droppable (a drop target for a draggable).<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <style type="text/css">
     #draggable { width: 75px; height: 25px; background: silver; padding: 10px; }
@@ -99,7 +101,7 @@ Makes the div droppable (a drop target for a draggable).<br />
   Initialize a droppable with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ disabled: true });</code></pre>
 </dd>
 
     
@@ -141,7 +143,7 @@ $( ".selector" ).droppable( "option", "disabled", true );</code></pre>
   Initialize a droppable with the <code>accept</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { accept: '.special' } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ accept: '.special' });</code></pre>
 </dd>
 
     
@@ -183,7 +185,7 @@ $( ".selector" ).droppable( "option", "accept", '.special' );</code></pre>
   Initialize a droppable with the <code>activeClass</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { activeClass: '.ui-state-highlight' } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ activeClass: 'ui-state-highlight' });</code></pre>
 </dd>
 
     
@@ -194,7 +196,7 @@ $( ".selector" ).droppable( "option", "accept", '.special' );</code></pre>
 <pre><code>//getter
 var activeClass = $( ".selector" ).droppable( "option", "activeClass" );
 //setter
-$( ".selector" ).droppable( "option", "activeClass", '.ui-state-highlight' );</code></pre>
+$( ".selector" ).droppable( "option", "activeClass", 'ui-state-highlight' );</code></pre>
 </dd>
 
     </dl>
@@ -225,7 +227,7 @@ $( ".selector" ).droppable( "option", "activeClass", '.ui-state-highlight' );</c
   Initialize a droppable with the <code>addClasses</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { addClasses: false } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ addClasses: false });</code></pre>
 </dd>
 
     
@@ -267,7 +269,7 @@ $( ".selector" ).droppable( "option", "addClasses", false );</code></pre>
   Initialize a droppable with the <code>greedy</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { greedy: true } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ greedy: true });</code></pre>
 </dd>
 
     
@@ -309,7 +311,7 @@ $( ".selector" ).droppable( "option", "greedy", true );</code></pre>
   Initialize a droppable with the <code>hoverClass</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { hoverClass: 'drophover' } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ hoverClass: 'drophover' });</code></pre>
 </dd>
 
     
@@ -351,7 +353,7 @@ $( ".selector" ).droppable( "option", "hoverClass", 'drophover' );</code></pre>
   Initialize a droppable with the <code>scope</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { scope: 'tasks' } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ scope: 'tasks' });</code></pre>
 </dd>
 
     
@@ -401,7 +403,7 @@ $( ".selector" ).droppable( "option", "scope", 'tasks' );</code></pre>
   Initialize a droppable with the <code>tolerance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).droppable( { tolerance: 'fit' } );</code></pre>
+<pre><code>$( ".selector" ).droppable({ tolerance: 'fit' });</code></pre>
 </dd>
 
     
@@ -425,6 +427,45 @@ $( ".selector" ).droppable( "option", "tolerance", 'fit' );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">dropcreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when droppable is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).droppable({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>dropcreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "dropcreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-activate">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-activate">activate</a></h3>
@@ -714,6 +755,28 @@ ui.draggable represents the draggable.</p>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.droppable( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple droppable options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -757,10 +820,10 @@ ui.draggable represents the draggable.</p>
 </div>
 
 </p><!-- 
-Pre-expand include size: 30837 bytes
-Post-expand include size: 49718 bytes
-Template argument size: 26138 bytes
+Pre-expand include size: 33718 bytes
+Post-expand include size: 53508 bytes
+Template argument size: 26843 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3769-1!1!0!!en!2 and timestamp 20100318122746 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3769-1!1!0!!en!2 and timestamp 20110413160310 -->
diff --git a/development-bundle/docs/effect.html b/development-bundle/docs/effect.html
index 30e48af..9826900 100644
--- a/development-bundle/docs/effect.html
+++ b/development-bundle/docs/effect.html
@@ -34,7 +34,7 @@ Apply the effect explode if you click on the element.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <script src="http://ui.jquery.com/latest/ui/effects.explode.js"></script>
@@ -140,4 +140,4 @@ Template argument size: 5498 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2612-1!1!0!!en!2 and timestamp 20100318115815 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2612-1!1!0!!en!2 and timestamp 20110413154211 -->
diff --git a/development-bundle/docs/hide.html b/development-bundle/docs/hide.html
index 5579538..1ad4a50 100644
--- a/development-bundle/docs/hide.html
+++ b/development-bundle/docs/hide.html
@@ -35,7 +35,7 @@ Apply the effect slide if you click on the p to hide a div.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <script src="http://ui.jquery.com/latest/ui/effects.slide.js"></script>
@@ -109,7 +109,7 @@ Apply the effect slide if you click on the p to hide a div.<br />
     </dl>
   </div>
   <div class="option-description">
-    <p>A string representing one of the three predefined speeds ("slow", "normal", or "fast") or the number of milliseconds to run the animation (e.g. 1000).</p>
+    <p>A string representing one of the predefined speeds ("slow" or "fast") or the number of milliseconds to run the animation (e.g. 1000).</p>
   </div>
 </li>
 
@@ -136,9 +136,9 @@ Apply the effect slide if you click on the p to hide a div.<br />
 
 </p><!-- 
 Pre-expand include size: 6354 bytes
-Post-expand include size: 8761 bytes
-Template argument size: 5487 bytes
+Post-expand include size: 8727 bytes
+Template argument size: 5453 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2614-1!1!0!!en!2 and timestamp 20100318115851 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2614-1!1!0!!en!2 and timestamp 20110413153543 -->
diff --git a/development-bundle/docs/position.html b/development-bundle/docs/position.html
index 5057a0c..8d9f04c 100644
--- a/development-bundle/docs/position.html
+++ b/development-bundle/docs/position.html
@@ -8,8 +8,9 @@
   <div id="overview">
     <h2 class="top-header">Overview</h2>
     <div id="overview-main">
-        <p>Utility script for absolutely positioning any widget relative to the window, document, a particular element, or the cursor/mouse.</p>
-<p>Do not need ui.core.js or effects.core.js.</p>
+        <p>Utility script for positioning any widget relative to the window, document, a particular element, or the cursor/mouse.</p>
+<p><em>Note: jQuery UI does not support positioning hidden elements.</em></p>
+<p>Does not need ui.core.js or effects.core.js.</p>
     </div>
     <div id="overview-dependencies">
         <h3>Dependencies</h3>
@@ -56,7 +57,7 @@ $(document).mousemove(function(ev){
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <style type="text/css">
 #targetElement { width:240px;height:200px;background-color:#999;margin:30px auto; }
@@ -152,12 +153,12 @@ $(document).mousemove(function(ev){
     <h3 class="option-name"><a href="#option-of">of</a></h3>
     <dl>
       <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector</dd>
+        <dd class="option-type">Selector, Element, jQuery, Event</dd>
       
     </dl>
   </div>
   <div class="option-description">
-    <p>Element to position against. You can use a browser event object contains pageX and pageY values. Example: "#top-menu"</p>
+    <p>Element to position against. If you provide a selector, the first matching element will be used. If you provide a jQuery object, the first element will be used. If you provide an event object, the pageX and pageY properties will be used. Example: "#top-menu"</p>
   </div>
 </li>
 
@@ -198,9 +199,9 @@ $(document).mousemove(function(ev){
 </li>
 
 
-<li class="option" id="option-by">
+<li class="option" id="option-using">
   <div class="option-header">
-    <h3 class="option-name"><a href="#option-by">by</a></h3>
+    <h3 class="option-name"><a href="#option-using">using</a></h3>
     <dl>
       <dt class="option-type-label">Type:</dt>
         <dd class="option-type">Function</dd>
@@ -212,33 +213,15 @@ $(document).mousemove(function(ev){
   </div>
 </li>
 
-
-<li class="option" id="option-bgiframe">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-bgiframe">bgiframe</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">true</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Applies the bgiframe plugin when set to true. Only applies when bgiframe is actually loaded, nothing happens otherwise.</p>
-  </div>
-</li>
-
     </ul>
   </div>
 </div>
 
 </p><!-- 
-Pre-expand include size: 7818 bytes
-Post-expand include size: 11708 bytes
-Template argument size: 7898 bytes
+Pre-expand include size: 7109 bytes
+Post-expand include size: 10873 bytes
+Template argument size: 7571 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3784-1!1!0!!en!2 and timestamp 20100318122014 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3784-1!1!0!!en!2 and timestamp 20110413160320 -->
diff --git a/development-bundle/docs/progressbar.html b/development-bundle/docs/progressbar.html
index 4f1505d..fe2a30a 100644
--- a/development-bundle/docs/progressbar.html
+++ b/development-bundle/docs/progressbar.html
@@ -22,6 +22,7 @@ This is a determinate progress bar, meaning that it should only be used in situa
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Widget</li>
 </ul>
     </div>
     <div id="overview-example">
@@ -39,7 +40,7 @@ A simple jQuery UI Progressbar.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -86,7 +87,7 @@ A simple jQuery UI Progressbar.<br />
   Initialize a progressbar with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).progressbar( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).progressbar({ disabled: true });</code></pre>
 </dd>
 
     
@@ -128,7 +129,7 @@ $( ".selector" ).progressbar( "option", "disabled", true );</code></pre>
   Initialize a progressbar with the <code>value</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).progressbar( { value: 37 } );</code></pre>
+<pre><code>$( ".selector" ).progressbar({ value: 37 });</code></pre>
 </dd>
 
     
@@ -152,6 +153,45 @@ $( ".selector" ).progressbar( "option", "value", 37 );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">progressbarcreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when progressbar is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).progressbar({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>progressbarcreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "progressbarcreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-change">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-change">change</a></h3>
@@ -190,6 +230,45 @@ $( ".selector" ).progressbar( "option", "value", 37 );</code></pre>
   </div>
 </li>
 
+
+<li class="event" id="event-complete">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-complete">complete</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">progressbarcomplete</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when the value of the progressbar reaches the maximum value of 100.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>complete</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).progressbar({
+   complete: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>complete</code> event by type: <code>progressbarcomplete</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "progressbarcomplete", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
     </ul>
   </div>
   <div id="methods">
@@ -284,6 +363,28 @@ $( ".selector" ).progressbar( "option", "value", 37 );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.progressbar( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple progressbar options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -350,10 +451,10 @@ $( ".selector" ).progressbar( "option", "value", 37 );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 17428 bytes
-Post-expand include size: 20557 bytes
-Template argument size: 8366 bytes
+Pre-expand include size: 21686 bytes
+Post-expand include size: 27328 bytes
+Template argument size: 10881 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3780-1!1!0!!en!2 and timestamp 20100318122802 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3780-1!1!0!!en!2 and timestamp 20110413160318 -->
diff --git a/development-bundle/docs/removeClass.html b/development-bundle/docs/removeClass.html
index 43f6cff..cde94f1 100644
--- a/development-bundle/docs/removeClass.html
+++ b/development-bundle/docs/removeClass.html
@@ -34,7 +34,7 @@ Removes the class 'selected' from the matched elements with a one second transit
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <style type="text/css">
@@ -104,10 +104,10 @@ Removes the class 'selected' from the matched elements with a one second transit
 </div>
 
 </p><!-- 
-Pre-expand include size: 5297 bytes
-Post-expand include size: 7164 bytes
-Template argument size: 4498 bytes
+Pre-expand include size: 5276 bytes
+Post-expand include size: 7063 bytes
+Template argument size: 4443 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2607-1!1!0!!en!2 and timestamp 20100318115911 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2607-1!1!0!!en!2 and timestamp 20110413154312 -->
diff --git a/development-bundle/docs/resizable.html b/development-bundle/docs/resizable.html
index e993600..1b0385e 100644
--- a/development-bundle/docs/resizable.html
+++ b/development-bundle/docs/resizable.html
@@ -25,6 +25,8 @@
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Widget</li>
+<li>UI Mouse</li>
 </ul>
     </div>
     <div id="overview-example">
@@ -42,7 +44,7 @@ A simple jQuery UI Resizable.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <style type="text/css">
     #resizable { width: 100px; height: 100px; background: silver; }
@@ -91,7 +93,7 @@ A simple jQuery UI Resizable.<br />
   Initialize a resizable with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ disabled: true });</code></pre>
 </dd>
 
     
@@ -133,7 +135,7 @@ $( ".selector" ).resizable( "option", "disabled", true );</code></pre>
   Initialize a resizable with the <code>alsoResize</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { alsoResize: '.other' } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ alsoResize: '.other' });</code></pre>
 </dd>
 
     
@@ -175,7 +177,7 @@ $( ".selector" ).resizable( "option", "alsoResize", '.other' );</code></pre>
   Initialize a resizable with the <code>animate</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { animate: true } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ animate: true });</code></pre>
 </dd>
 
     
@@ -217,7 +219,7 @@ $( ".selector" ).resizable( "option", "animate", true );</code></pre>
   Initialize a resizable with the <code>animateDuration</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { animateDuration: 500 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ animateDuration: 500 });</code></pre>
 </dd>
 
     
@@ -259,7 +261,7 @@ $( ".selector" ).resizable( "option", "animateDuration", 500 );</code></pre>
   Initialize a resizable with the <code>animateEasing</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { animateEasing: 'swing' } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ animateEasing: 'swing' });</code></pre>
 </dd>
 
     
@@ -301,7 +303,7 @@ $( ".selector" ).resizable( "option", "animateEasing", 'swing' );</code></pre>
   Initialize a resizable with the <code>aspectRatio</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { aspectRatio: .75 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ aspectRatio: .75 });</code></pre>
 </dd>
 
     
@@ -343,7 +345,7 @@ $( ".selector" ).resizable( "option", "aspectRatio", .75 );</code></pre>
   Initialize a resizable with the <code>autoHide</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { autoHide: true } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ autoHide: true });</code></pre>
 </dd>
 
     
@@ -385,7 +387,7 @@ $( ".selector" ).resizable( "option", "autoHide", true );</code></pre>
   Initialize a resizable with the <code>cancel</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { cancel: ':input,option' } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ cancel: ':input,option' });</code></pre>
 </dd>
 
     
@@ -427,7 +429,7 @@ $( ".selector" ).resizable( "option", "cancel", ':input,option' );</code></pre>
   Initialize a resizable with the <code>containment</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { containment: 'parent' } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ containment: 'parent' });</code></pre>
 </dd>
 
     
@@ -469,7 +471,7 @@ $( ".selector" ).resizable( "option", "containment", 'parent' );</code></pre>
   Initialize a resizable with the <code>delay</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { delay: 20 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ delay: 20 });</code></pre>
 </dd>
 
     
@@ -511,7 +513,7 @@ $( ".selector" ).resizable( "option", "delay", 20 );</code></pre>
   Initialize a resizable with the <code>distance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { distance: 20 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ distance: 20 });</code></pre>
 </dd>
 
     
@@ -553,7 +555,7 @@ $( ".selector" ).resizable( "option", "distance", 20 );</code></pre>
   Initialize a resizable with the <code>ghost</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { ghost: true } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ ghost: true });</code></pre>
 </dd>
 
     
@@ -595,7 +597,7 @@ $( ".selector" ).resizable( "option", "ghost", true );</code></pre>
   Initialize a resizable with the <code>grid</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { grid: [50, 50] } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ grid: [50, 50] });</code></pre>
 </dd>
 
     
@@ -638,7 +640,7 @@ $( ".selector" ).resizable( "option", "grid", [50, 50] );</code></pre>
   Initialize a resizable with the <code>handles</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { handles: 'n, e, s, w' } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ handles: 'n, e, s, w' });</code></pre>
 </dd>
 
     
@@ -680,7 +682,7 @@ $( ".selector" ).resizable( "option", "handles", 'n, e, s, w' );</code></pre>
   Initialize a resizable with the <code>helper</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { helper: 'ui-state-highlight' } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ helper: 'ui-state-highlight' });</code></pre>
 </dd>
 
     
@@ -722,7 +724,7 @@ $( ".selector" ).resizable( "option", "helper", 'ui-state-highlight' );</code></
   Initialize a resizable with the <code>maxHeight</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { maxHeight: 300 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ maxHeight: 300 });</code></pre>
 </dd>
 
     
@@ -764,7 +766,7 @@ $( ".selector" ).resizable( "option", "maxHeight", 300 );</code></pre>
   Initialize a resizable with the <code>maxWidth</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { maxWidth: 250 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ maxWidth: 250 });</code></pre>
 </dd>
 
     
@@ -806,7 +808,7 @@ $( ".selector" ).resizable( "option", "maxWidth", 250 );</code></pre>
   Initialize a resizable with the <code>minHeight</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { minHeight: 150 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ minHeight: 150 });</code></pre>
 </dd>
 
     
@@ -848,7 +850,7 @@ $( ".selector" ).resizable( "option", "minHeight", 150 );</code></pre>
   Initialize a resizable with the <code>minWidth</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).resizable( { minWidth: 75 } );</code></pre>
+<pre><code>$( ".selector" ).resizable({ minWidth: 75 });</code></pre>
 </dd>
 
     
@@ -872,6 +874,45 @@ $( ".selector" ).resizable( "option", "minWidth", 75 );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">resizecreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when resizable is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).resizable({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>resizecreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "resizecreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-start">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-start">start</a></h3>
@@ -1082,6 +1123,28 @@ $( ".selector" ).resizable( "option", "minWidth", 75 );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.resizable( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple resizable options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -1129,10 +1192,10 @@ $( ".selector" ).resizable( "option", "minWidth", 75 );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 44828 bytes
-Post-expand include size: 76451 bytes
-Template argument size: 41675 bytes
+Pre-expand include size: 47634 bytes
+Post-expand include size: 79001 bytes
+Template argument size: 41937 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3770-1!1!0!!en!2 and timestamp 20100318122749 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3770-1!1!0!!en!2 and timestamp 20110413160310 -->
diff --git a/development-bundle/docs/selectable.html b/development-bundle/docs/selectable.html
index a43ada5..1b4bcab 100644
--- a/development-bundle/docs/selectable.html
+++ b/development-bundle/docs/selectable.html
@@ -17,6 +17,8 @@
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Widget</li>
+<li>UI Mouse</li>
 </ul>
     </div>
     <div id="overview-example">
@@ -34,7 +36,7 @@ A simple jQuery UI Selectable.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <style type="text/css">
 #selectable .ui-selecting {
@@ -95,7 +97,7 @@ A simple jQuery UI Selectable.<br />
   Initialize a selectable with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).selectable( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).selectable({ disabled: true });</code></pre>
 </dd>
 
     
@@ -137,7 +139,7 @@ $( ".selector" ).selectable( "option", "disabled", true );</code></pre>
   Initialize a selectable with the <code>autoRefresh</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).selectable( { autoRefresh: false } );</code></pre>
+<pre><code>$( ".selector" ).selectable({ autoRefresh: false });</code></pre>
 </dd>
 
     
@@ -179,7 +181,7 @@ $( ".selector" ).selectable( "option", "autoRefresh", false );</code></pre>
   Initialize a selectable with the <code>cancel</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).selectable( { cancel: ':input,option' } );</code></pre>
+<pre><code>$( ".selector" ).selectable({ cancel: ':input,option' });</code></pre>
 </dd>
 
     
@@ -221,7 +223,7 @@ $( ".selector" ).selectable( "option", "cancel", ':input,option' );</code></pre>
   Initialize a selectable with the <code>delay</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).selectable( { delay: 20 } );</code></pre>
+<pre><code>$( ".selector" ).selectable({ delay: 20 });</code></pre>
 </dd>
 
     
@@ -263,7 +265,7 @@ $( ".selector" ).selectable( "option", "delay", 20 );</code></pre>
   Initialize a selectable with the <code>distance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).selectable( { distance: 20 } );</code></pre>
+<pre><code>$( ".selector" ).selectable({ distance: 20 });</code></pre>
 </dd>
 
     
@@ -305,7 +307,7 @@ $( ".selector" ).selectable( "option", "distance", 20 );</code></pre>
   Initialize a selectable with the <code>filter</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).selectable( { filter: 'li' } );</code></pre>
+<pre><code>$( ".selector" ).selectable({ filter: 'li' });</code></pre>
 </dd>
 
     
@@ -353,7 +355,7 @@ $( ".selector" ).selectable( "option", "filter", 'li' );</code></pre>
   Initialize a selectable with the <code>tolerance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).selectable( { tolerance: 'fit' } );</code></pre>
+<pre><code>$( ".selector" ).selectable({ tolerance: 'fit' });</code></pre>
 </dd>
 
     
@@ -377,12 +379,51 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">selectablecreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when selectable is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).selectable({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>selectablecreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "selectablecreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-selected">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-selected">selected</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">selected</dd>
+        <dd class="event-type">selectableselected</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -403,10 +444,10 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
 
     
 <dt>
-  Bind to the <code>selected</code> event by type: <code>selected</code>.
+  Bind to the <code>selected</code> event by type: <code>selectableselected</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "selected", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "selectableselected", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -421,7 +462,7 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
     <h3 class="event-name"><a href="#event-selecting">selecting</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">selecting</dd>
+        <dd class="event-type">selectableselecting</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -442,10 +483,10 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
 
     
 <dt>
-  Bind to the <code>selecting</code> event by type: <code>selecting</code>.
+  Bind to the <code>selecting</code> event by type: <code>selectableselecting</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "selecting", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "selectableselecting", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -538,7 +579,7 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
     <h3 class="event-name"><a href="#event-unselected">unselected</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">unselected</dd>
+        <dd class="event-type">selectableunselected</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -559,10 +600,10 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
 
     
 <dt>
-  Bind to the <code>unselected</code> event by type: <code>unselected</code>.
+  Bind to the <code>unselected</code> event by type: <code>selectableunselected</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "unselected", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "selectableunselected", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -577,7 +618,7 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
     <h3 class="event-name"><a href="#event-unselecting">unselecting</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">unselecting</dd>
+        <dd class="event-type">selectableunselecting</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -598,10 +639,10 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
 
     
 <dt>
-  Bind to the <code>unselecting</code> event by type: <code>unselecting</code>.
+  Bind to the <code>unselecting</code> event by type: <code>selectableunselecting</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "unselecting", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "selectableunselecting", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -704,6 +745,28 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.selectable( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple selectable options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -776,10 +839,10 @@ $( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 31791 bytes
-Post-expand include size: 49251 bytes
-Template argument size: 25851 bytes
+Pre-expand include size: 34703 bytes
+Post-expand include size: 54220 bytes
+Template argument size: 27222 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3771-1!1!0!!en!2 and timestamp 20100318122751 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3771-1!1!0!!en!2 and timestamp 20110413160311 -->
diff --git a/development-bundle/docs/show.html b/development-bundle/docs/show.html
index 3936647..7df77a3 100644
--- a/development-bundle/docs/show.html
+++ b/development-bundle/docs/show.html
@@ -35,7 +35,7 @@ Apply the effect slide if you click on the p to show a div.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <script src="http://ui.jquery.com/latest/ui/effects.slide.js"></script>
@@ -109,7 +109,7 @@ Apply the effect slide if you click on the p to show a div.<br />
     </dl>
   </div>
   <div class="option-description">
-    <p>A string representing one of the three predefined speeds ("slow", "normal", or "fast") or the number of milliseconds to run the animation (e.g. 1000).</p>
+    <p>A string representing one of the predefined speeds ("slow" or "fast") or the number of milliseconds to run the animation (e.g. 1000).</p>
   </div>
 </li>
 
@@ -136,9 +136,9 @@ Apply the effect slide if you click on the p to show a div.<br />
 
 </p><!-- 
 Pre-expand include size: 6354 bytes
-Post-expand include size: 8760 bytes
-Template argument size: 5486 bytes
+Post-expand include size: 8726 bytes
+Template argument size: 5452 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2613-1!1!0!!en!2 and timestamp 20100318115911 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2613-1!1!0!!en!2 and timestamp 20110413153813 -->
diff --git a/development-bundle/docs/slider.html b/development-bundle/docs/slider.html
index b244a61..4a7c9f1 100644
--- a/development-bundle/docs/slider.html
+++ b/development-bundle/docs/slider.html
@@ -43,7 +43,7 @@ A simple jQuery UI Slider.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
     <style type="text/css">
     #slider { margin: 10px; }
@@ -92,7 +92,7 @@ A simple jQuery UI Slider.<br />
   Initialize a slider with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).slider({ disabled: true });</code></pre>
 </dd>
 
     
@@ -134,7 +134,7 @@ $( ".selector" ).slider( "option", "disabled", true );</code></pre>
   Initialize a slider with the <code>animate</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { animate: true } );</code></pre>
+<pre><code>$( ".selector" ).slider({ animate: true });</code></pre>
 </dd>
 
     
@@ -176,7 +176,7 @@ $( ".selector" ).slider( "option", "animate", true );</code></pre>
   Initialize a slider with the <code>max</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { max: 7 } );</code></pre>
+<pre><code>$( ".selector" ).slider({ max: 7 });</code></pre>
 </dd>
 
     
@@ -218,7 +218,7 @@ $( ".selector" ).slider( "option", "max", 7 );</code></pre>
   Initialize a slider with the <code>min</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { min: -7 } );</code></pre>
+<pre><code>$( ".selector" ).slider({ min: -7 });</code></pre>
 </dd>
 
     
@@ -260,7 +260,7 @@ $( ".selector" ).slider( "option", "min", -7 );</code></pre>
   Initialize a slider with the <code>orientation</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { orientation: 'vertical' } );</code></pre>
+<pre><code>$( ".selector" ).slider({ orientation: 'vertical' });</code></pre>
 </dd>
 
     
@@ -302,7 +302,7 @@ $( ".selector" ).slider( "option", "orientation", 'vertical' );</code></pre>
   Initialize a slider with the <code>range</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { range: 'min' } );</code></pre>
+<pre><code>$( ".selector" ).slider({ range: 'min' });</code></pre>
 </dd>
 
     
@@ -344,7 +344,7 @@ $( ".selector" ).slider( "option", "range", 'min' );</code></pre>
   Initialize a slider with the <code>step</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { step: 5 } );</code></pre>
+<pre><code>$( ".selector" ).slider({ step: 5 });</code></pre>
 </dd>
 
     
@@ -386,7 +386,7 @@ $( ".selector" ).slider( "option", "step", 5 );</code></pre>
   Initialize a slider with the <code>value</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { value: 37 } );</code></pre>
+<pre><code>$( ".selector" ).slider({ value: 37 });</code></pre>
 </dd>
 
     
@@ -428,7 +428,7 @@ $( ".selector" ).slider( "option", "value", 37 );</code></pre>
   Initialize a slider with the <code>values</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).slider( { values: [1,5,9] } );</code></pre>
+<pre><code>$( ".selector" ).slider({ values: [1,5,9] });</code></pre>
 </dd>
 
     
@@ -452,6 +452,45 @@ $( ".selector" ).slider( "option", "values", [1,5,9] );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">slidecreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when slider is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).slider({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>slidecreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "slidecreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-start">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-start">start</a></h3>
@@ -702,6 +741,28 @@ $( ".selector" ).slider( "option", "values", [1,5,9] );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.slider( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple slider options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -790,10 +851,10 @@ $( ".selector" ).slider( "option", "values", [1,5,9] );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 33572 bytes
-Post-expand include size: 51848 bytes
-Template argument size: 26995 bytes
+Pre-expand include size: 36451 bytes
+Post-expand include size: 55582 bytes
+Template argument size: 27644 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3776-1!1!0!!en!2 and timestamp 20100318122802 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3776-1!1!0!!en!2 and timestamp 20110413160318 -->
diff --git a/development-bundle/docs/sortable.html b/development-bundle/docs/sortable.html
index 565b00e..3f9a030 100644
--- a/development-bundle/docs/sortable.html
+++ b/development-bundle/docs/sortable.html
@@ -26,6 +26,8 @@
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
+<li>UI Widget</li>
+<li>UI Mouse</li>
 </ul>
     </div>
     <div id="overview-example">
@@ -43,7 +45,7 @@ A simple jQuery UI Sortable.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -96,7 +98,7 @@ A simple jQuery UI Sortable.<br />
   Initialize a sortable with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ disabled: true });</code></pre>
 </dd>
 
     
@@ -138,7 +140,7 @@ $( ".selector" ).sortable( "option", "disabled", true );</code></pre>
   Initialize a sortable with the <code>appendTo</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { appendTo: 'body' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ appendTo: 'body' });</code></pre>
 </dd>
 
     
@@ -180,7 +182,7 @@ $( ".selector" ).sortable( "option", "appendTo", 'body' );</code></pre>
   Initialize a sortable with the <code>axis</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { axis: 'x' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ axis: 'x' });</code></pre>
 </dd>
 
     
@@ -222,7 +224,7 @@ $( ".selector" ).sortable( "option", "axis", 'x' );</code></pre>
   Initialize a sortable with the <code>cancel</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { cancel: 'button' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ cancel: 'button' });</code></pre>
 </dd>
 
     
@@ -264,7 +266,7 @@ $( ".selector" ).sortable( "option", "cancel", 'button' );</code></pre>
   Initialize a sortable with the <code>connectWith</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { connectWith: '.otherlist' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ connectWith: '.otherlist' });</code></pre>
 </dd>
 
     
@@ -296,7 +298,8 @@ $( ".selector" ).sortable( "option", "connectWith", '.otherlist' );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Constrains dragging to within the bounds of the specified element - can be a DOM element, 'parent', 'document', 'window', or a jQuery selector.</p>
+    <p>Constrains dragging to within the bounds of the specified element - can be a DOM element, 'parent', 'document', 'window', or a jQuery selector.
+</p><p>Note: the element specified for containment must have a calculated width and height (though it need not be explicit), so 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.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -306,7 +309,7 @@ $( ".selector" ).sortable( "option", "connectWith", '.otherlist' );</code></pre>
   Initialize a sortable with the <code>containment</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { containment: 'parent' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ containment: 'parent' });</code></pre>
 </dd>
 
     
@@ -348,7 +351,7 @@ $( ".selector" ).sortable( "option", "containment", 'parent' );</code></pre>
   Initialize a sortable with the <code>cursor</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { cursor: 'crosshair' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ cursor: 'crosshair' });</code></pre>
 </dd>
 
     
@@ -390,7 +393,7 @@ $( ".selector" ).sortable( "option", "cursor", 'crosshair' );</code></pre>
   Initialize a sortable with the <code>cursorAt</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { cursorAt: 'top' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ cursorAt: 'top' });</code></pre>
 </dd>
 
     
@@ -432,7 +435,7 @@ $( ".selector" ).sortable( "option", "cursorAt", 'top' );</code></pre>
   Initialize a sortable with the <code>delay</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { delay: 500 } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ delay: 500 });</code></pre>
 </dd>
 
     
@@ -474,7 +477,7 @@ $( ".selector" ).sortable( "option", "delay", 500 );</code></pre>
   Initialize a sortable with the <code>distance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { distance: 30 } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ distance: 30 });</code></pre>
 </dd>
 
     
@@ -516,7 +519,7 @@ $( ".selector" ).sortable( "option", "distance", 30 );</code></pre>
   Initialize a sortable with the <code>dropOnEmpty</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { dropOnEmpty: false } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ dropOnEmpty: false });</code></pre>
 </dd>
 
     
@@ -558,7 +561,7 @@ $( ".selector" ).sortable( "option", "dropOnEmpty", false );</code></pre>
   Initialize a sortable with the <code>forceHelperSize</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { forceHelperSize: true } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ forceHelperSize: true });</code></pre>
 </dd>
 
     
@@ -600,7 +603,7 @@ $( ".selector" ).sortable( "option", "forceHelperSize", true );</code></pre>
   Initialize a sortable with the <code>forcePlaceholderSize</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { forcePlaceholderSize: true } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ forcePlaceholderSize: true });</code></pre>
 </dd>
 
     
@@ -642,7 +645,7 @@ $( ".selector" ).sortable( "option", "forcePlaceholderSize", true );</code></pre
   Initialize a sortable with the <code>grid</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { grid: [50, 20] } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ grid: [50, 20] });</code></pre>
 </dd>
 
     
@@ -684,7 +687,7 @@ $( ".selector" ).sortable( "option", "grid", [50, 20] );</code></pre>
   Initialize a sortable with the <code>handle</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { handle: 'h2' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ handle: 'h2' });</code></pre>
 </dd>
 
     
@@ -726,7 +729,7 @@ $( ".selector" ).sortable( "option", "handle", 'h2' );</code></pre>
   Initialize a sortable with the <code>helper</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { helper: 'clone' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ helper: 'clone' });</code></pre>
 </dd>
 
     
@@ -768,7 +771,7 @@ $( ".selector" ).sortable( "option", "helper", 'clone' );</code></pre>
   Initialize a sortable with the <code>items</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { items: 'li' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ items: 'li' });</code></pre>
 </dd>
 
     
@@ -810,7 +813,7 @@ $( ".selector" ).sortable( "option", "items", 'li' );</code></pre>
   Initialize a sortable with the <code>opacity</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { opacity: 0.6 } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ opacity: 0.6 });</code></pre>
 </dd>
 
     
@@ -852,7 +855,7 @@ $( ".selector" ).sortable( "option", "opacity", 0.6 );</code></pre>
   Initialize a sortable with the <code>placeholder</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { placeholder: 'ui-state-highlight' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ placeholder: 'ui-state-highlight' });</code></pre>
 </dd>
 
     
@@ -894,7 +897,7 @@ $( ".selector" ).sortable( "option", "placeholder", 'ui-state-highlight' );</cod
   Initialize a sortable with the <code>revert</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { revert: true } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ revert: true });</code></pre>
 </dd>
 
     
@@ -936,7 +939,7 @@ $( ".selector" ).sortable( "option", "revert", true );</code></pre>
   Initialize a sortable with the <code>scroll</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { scroll: false } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ scroll: false });</code></pre>
 </dd>
 
     
@@ -978,7 +981,7 @@ $( ".selector" ).sortable( "option", "scroll", false );</code></pre>
   Initialize a sortable with the <code>scrollSensitivity</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { scrollSensitivity: 40 } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ scrollSensitivity: 40 });</code></pre>
 </dd>
 
     
@@ -1020,7 +1023,7 @@ $( ".selector" ).sortable( "option", "scrollSensitivity", 40 );</code></pre>
   Initialize a sortable with the <code>scrollSpeed</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { scrollSpeed: 40 } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ scrollSpeed: 40 });</code></pre>
 </dd>
 
     
@@ -1068,7 +1071,7 @@ $( ".selector" ).sortable( "option", "scrollSpeed", 40 );</code></pre>
   Initialize a sortable with the <code>tolerance</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { tolerance: 'pointer' } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ tolerance: 'pointer' });</code></pre>
 </dd>
 
     
@@ -1110,7 +1113,7 @@ $( ".selector" ).sortable( "option", "tolerance", 'pointer' );</code></pre>
   Initialize a sortable with the <code>zIndex</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).sortable( { zIndex: 5 } );</code></pre>
+<pre><code>$( ".selector" ).sortable({ zIndex: 5 });</code></pre>
 </dd>
 
     
@@ -1134,6 +1137,45 @@ $( ".selector" ).sortable( "option", "zIndex", 5 );</code></pre>
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">sortcreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when sortable is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).sortable({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>sortcreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "sortcreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-start">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-start">start</a></h3>
@@ -1256,7 +1298,7 @@ $( ".selector" ).sortable( "option", "zIndex", 5 );</code></pre>
     <h3 class="event-name"><a href="#event-beforeStop">beforeStop</a></h3>
     <dl>
       <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortbeforeStop</dd>
+        <dd class="event-type">sortbeforestop</dd>
     </dl>
   </div>
   <div class="event-description">
@@ -1277,10 +1319,10 @@ $( ".selector" ).sortable( "option", "zIndex", 5 );</code></pre>
 
     
 <dt>
-  Bind to the <code>beforeStop</code> event by type: <code>sortbeforeStop</code>.
+  Bind to the <code>beforeStop</code> event by type: <code>sortbeforestop</code>.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).bind( "sortbeforeStop", function(event, ui) {
+<pre><code>$( ".selector" ).bind( "sortbeforestop", function(event, ui) {
   ...
 });</code></pre>
 </dd>
@@ -1695,6 +1737,28 @@ $( ".selector" ).sortable( "option", "zIndex", 5 );</code></pre>
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.sortable( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple sortable options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -1862,7 +1926,8 @@ $( ".selector" ).sortable( "option", "zIndex", 5 );</code></pre>
   <h3>Sample markup with jQuery UI CSS Framework classes</h3>
   <ul class="<strong>ui-sortable</strong>"><br />
    <li></li><br />
-   <li></li><br />
+   <li class="<strong>ui-sortable-helper</strong>"></li><br />
+   <li class="<strong>ui-sortable-placeholder</strong>"></li><br />
    <li></li><br />
 </ul>
   <p class="theme-note">
@@ -1879,10 +1944,10 @@ $( ".selector" ).sortable( "option", "zIndex", 5 );</code></pre>
 </div>
 
 </p><!-- 
-Pre-expand include size: 72190 bytes
-Post-expand include size: 126876 bytes
-Template argument size: 72301 bytes
+Pre-expand include size: 75037 bytes
+Post-expand include size: 131543 bytes
+Template argument size: 73917 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3772-1!1!0!!en!2 and timestamp 20100318122752 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3772-1!1!0!!en!2 and timestamp 20110413160312 -->
diff --git a/development-bundle/docs/switchClass.html b/development-bundle/docs/switchClass.html
index d3fc092..45424c9 100644
--- a/development-bundle/docs/switchClass.html
+++ b/development-bundle/docs/switchClass.html
@@ -34,7 +34,7 @@ Switch the class 'highlight' to 'blue' when a paragraph is clicked with a one se
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <style type="text/css">
@@ -126,4 +126,4 @@ Template argument size: 4812 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2609-1!1!0!!en!2 and timestamp 20100318115912 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2609-1!1!0!!en!2 and timestamp 20110413154448 -->
diff --git a/development-bundle/docs/tabs.html b/development-bundle/docs/tabs.html
index 31020f4..e5a0975 100644
--- a/development-bundle/docs/tabs.html
+++ b/development-bundle/docs/tabs.html
@@ -13,6 +13,7 @@
     <div id="overview-main">
         <p>Tabs are generally used to break content into multiple sections that can be swapped to save space, much like an accordion.</p>
 <p>By default a tab widget will swap between tabbed sections onClick, but the events can be changed to onHover through an option. Tab content can be loaded via Ajax by setting an href on a tab.</p>
+<p><em>NOTE: Tabs created dynamically using .tabs( "add", ... ) are given an id of ui-tabs-NUM, where NUM is an auto-incrementing id. If you use this naming convention for your own elements, you may encounter problems.</em></p>
 <table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div>
 <ul>
 <li class="toclevel-1"><a href="#Events"><span class="tocnumber">1</span> <span class="toctext">Events</span></a></li>
@@ -173,11 +174,8 @@ resizeMap() will call Google Maps' checkResize() on the particular map.
         <h3>Dependencies</h3>
         <ul>
 <li>UI Core</li>
-<li>To use the cookie option: <a href="http://plugins.jquery.com/project/cookie" class="external text" title="http://plugins.jquery.com/project/cookie">jquery.cookie.js</a></li>
-<li>Required CSS:
-<pre>.ui-tabs .ui-tabs-hide {
-     display: none;
-}</pre></li>
+<li>UI Widget</li>
+<li><strong>Optional:</strong> <a href="http://plugins.jquery.com/project/cookie" class="external text" title="http://plugins.jquery.com/project/cookie">jquery.cookie.js</a> for use with <a href="http://jqueryui.com/demos/tabs/#option-cookie" class="external text" title="http://jqueryui.com/demos/tabs/#option-cookie">cookie option</a> (also included in development-bundle>external folder.)</li>
 </ul>
     </div>
     <div id="overview-example">
@@ -195,7 +193,7 @@ A simple jQuery UI Tabs.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   
   <script>
@@ -260,7 +258,7 @@ A simple jQuery UI Tabs.<br />
   Initialize a tabs with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { disabled: true } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ disabled: true });</code></pre>
 </dd>
 
     
@@ -302,7 +300,7 @@ $( ".selector" ).tabs( "option", "disabled", true );</code></pre>
   Initialize a tabs with the <code>ajaxOptions</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { ajaxOptions: { async: false } } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ ajaxOptions: { async: false } });</code></pre>
 </dd>
 
     
@@ -344,7 +342,7 @@ $( ".selector" ).tabs( "option", "ajaxOptions", { async: false } );</code></pre>
   Initialize a tabs with the <code>cache</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { cache: true } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ cache: true });</code></pre>
 </dd>
 
     
@@ -386,7 +384,7 @@ $( ".selector" ).tabs( "option", "cache", true );</code></pre>
   Initialize a tabs with the <code>collapsible</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { collapsible: true } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ collapsible: true });</code></pre>
 </dd>
 
     
@@ -418,7 +416,7 @@ $( ".selector" ).tabs( "option", "collapsible", true );</code></pre>
     </dl>
   </div>
   <div class="option-description">
-    <p>Store the latest selected tab in a cookie. The cookie is then used to determine the initially selected tab if the <i>selected</i> option is not defined. Requires cookie plugin. The object needs to have key/value pairs of the form the cookie plugin expects as options. Available options (example): { expires: 7, path: '/', domain: 'jquery.com', secure: true }. Since jQuery UI 1.7 it is also possible to define the cookie name being used via <i>name</i> property.</p>
+    <p>Store the latest selected tab in a cookie. The cookie is then used to determine the initially selected tab if the <i>selected</i> option is not defined. Requires <a href="http://plugins.jquery.com/project/cookie" class="external text" title="http://plugins.jquery.com/project/cookie">cookie plugin</a>, which can also be found in the development-bundle>external folder from the download builder. The object needs to have key/value pairs of the form the cookie plugin expects as options. Available options (example): { expires: 7, path: '/', domain: 'jquery.com', secure: true }. Since jQuery UI 1.7 it is also possible to define the cookie name being used via <i>name</i> property.</p>
   </div>
   <div class="option-examples">
     <h4>Code examples</h4>
@@ -428,7 +426,7 @@ $( ".selector" ).tabs( "option", "collapsible", true );</code></pre>
   Initialize a tabs with the <code>cookie</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { cookie: { expires: 30 } } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ cookie: { expires: 30 } });</code></pre>
 </dd>
 
     
@@ -470,7 +468,7 @@ $( ".selector" ).tabs( "option", "cookie", { expires: 30 } );</code></pre>
   Initialize a tabs with the <code>deselectable</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { deselectable: true } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ deselectable: true });</code></pre>
 </dd>
 
     
@@ -512,7 +510,7 @@ $( ".selector" ).tabs( "option", "deselectable", true );</code></pre>
   Initialize a tabs with the <code>disabled</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { disabled: [1, 2] } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ disabled: [1, 2] });</code></pre>
 </dd>
 
     
@@ -554,7 +552,7 @@ $( ".selector" ).tabs( "option", "disabled", [1, 2] );</code></pre>
   Initialize a tabs with the <code>event</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { event: 'mouseover' } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ event: 'mouseover' });</code></pre>
 </dd>
 
     
@@ -596,7 +594,7 @@ $( ".selector" ).tabs( "option", "event", 'mouseover' );</code></pre>
   Initialize a tabs with the <code>fx</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { fx: { opacity: 'toggle' } } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ fx: { opacity: 'toggle' } });</code></pre>
 </dd>
 
     
@@ -638,7 +636,7 @@ $( ".selector" ).tabs( "option", "fx", { opacity: 'toggle' } );</code></pre>
   Initialize a tabs with the <code>idPrefix</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { idPrefix: 'ui-tabs-primary' } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ idPrefix: 'ui-tabs-primary' });</code></pre>
 </dd>
 
     
@@ -680,7 +678,7 @@ $( ".selector" ).tabs( "option", "idPrefix", 'ui-tabs-primary' );</code></pre>
   Initialize a tabs with the <code>panelTemplate</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { panelTemplate: '<li></li>' } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ panelTemplate: '<li></li>' });</code></pre>
 </dd>
 
     
@@ -722,7 +720,7 @@ $( ".selector" ).tabs( "option", "panelTemplate", '<li></li>' );</co
   Initialize a tabs with the <code>selected</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { selected: 3 } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ selected: 3 });</code></pre>
 </dd>
 
     
@@ -764,7 +762,7 @@ $( ".selector" ).tabs( "option", "selected", 3 );</code></pre>
   Initialize a tabs with the <code>spinner</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { spinner: 'Retrieving data...' } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ spinner: 'Retrieving data...' });</code></pre>
 </dd>
 
     
@@ -806,7 +804,7 @@ $( ".selector" ).tabs( "option", "spinner", 'Retrieving data...' );</code></pre>
   Initialize a tabs with the <code>tabTemplate</code> option specified.
 </dt>
 <dd>
-<pre><code>$( ".selector" ).tabs( { tabTemplate: '<div><a href="#{href}"><span>#{label}</span></a></div>' } );</code></pre>
+<pre><code>$( ".selector" ).tabs({ tabTemplate: '<div><a href="#{href}"><span>#{label}</span></a></div>' });</code></pre>
 </dd>
 
     
@@ -830,6 +828,45 @@ $( ".selector" ).tabs( "option", "tabTemplate", '<div><a href="#&#1
     <h2 class="top-header">Events</h2>
     <ul class="events-list">
       
+<li class="event" id="event-create">
+  <div class="event-header">
+    <h3 class="event-name"><a href="#event-create">create</a></h3>
+    <dl>
+      <dt class="event-type-label">Type:</dt>
+        <dd class="event-type">tabscreate</dd>
+    </dl>
+  </div>
+  <div class="event-description">
+    <p>This event is triggered when tabs is created.</p>
+  </div>
+  <div class="event-examples">
+    <h4>Code examples</h4>
+    <dl class="event-examples-list">
+    
+<dt>
+  Supply a callback function to handle the <code>create</code> event as an init option.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).tabs({
+   create: function(event, ui) { ... }
+});</code></pre>
+</dd>
+
+    
+<dt>
+  Bind to the <code>create</code> event by type: <code>tabscreate</code>.
+</dt>
+<dd>
+<pre><code>$( ".selector" ).bind( "tabscreate", function(event, ui) {
+  ...
+});</code></pre>
+</dd>
+
+    </dl>
+  </div>
+</li>
+
+
 <li class="event" id="event-select">
   <div class="event-header">
     <h3 class="event-name"><a href="#event-select">select</a></h3>
@@ -1196,6 +1233,28 @@ $( ".selector" ).tabs( "option", "tabTemplate", '<div><a href="#&#1
 </li>
 
 
+<li class="method" id="method-option">
+  <div class="method-header">
+    <h3 class="method-name"><a href="#method-option">option</a></h3>
+    <dl>
+      <dt class="method-signature-label">Signature:</dt>
+        <dd class="method-signature">.tabs( "option"
+
+, options
+
+
+
+
+
+)</dd>
+    </dl>
+  </div>
+  <div class="method-description">
+    <p>Set multiple tabs options at once by providing an options object.</p>
+  </div>
+</li>
+
+
 <li class="method" id="method-widget">
   <div class="method-header">
     <h3 class="method-name"><a href="#method-widget">widget</a></h3>
@@ -1279,7 +1338,7 @@ $( ".selector" ).tabs( "option", "tabTemplate", '<div><a href="#&#1
     </dl>
   </div>
   <div class="method-description">
-    <p>Enable a disabled tab.  To enable more than one tab at once reset the disabled property like: <code>$('#example').data('disabled.tabs', []);</code>. The second argument is the zero-based index of the tab to be enabled.</p>
+    <p>Enable a disabled tab.  To enable more than one tab at once reset the disabled property like: <code>$('#example').tabs("option","disabled",[]);</code>. The second argument is the zero-based index of the tab to be enabled.</p>
   </div>
 </li>
 
@@ -1301,7 +1360,7 @@ $( ".selector" ).tabs( "option", "tabTemplate", '<div><a href="#&#1
     </dl>
   </div>
   <div class="method-description">
-    <p>Disable a tab. The selected tab cannot be disabled. To disable more than one tab at once use: <code>$('#example').data('disabled.tabs', [1, 2, 3]);</code>  The second argument is the zero-based index of the tab to be disabled.</p>
+    <p>Disable a tab. The selected tab cannot be disabled. To disable more than one tab at once use: <code>$('#example').tabs("option","disabled", [1, 2, 3]);</code>  The second argument is the zero-based index of the tab to be disabled.</p>
   </div>
 </li>
 
@@ -1481,10 +1540,10 @@ $( ".selector" ).tabs( "option", "tabTemplate", '<div><a href="#&#1
 </div>
 
 </p><!-- 
-Pre-expand include size: 54838 bytes
-Post-expand include size: 94599 bytes
-Template argument size: 56912 bytes
+Pre-expand include size: 57707 bytes
+Post-expand include size: 98888 bytes
+Template argument size: 58128 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3777-1!1!0!!en!2 and timestamp 20100318122804 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3777-1!1!0!!en!2 and timestamp 20110413160319 -->
diff --git a/development-bundle/docs/toggle.html b/development-bundle/docs/toggle.html
index da9c2ea..26c792c 100644
--- a/development-bundle/docs/toggle.html
+++ b/development-bundle/docs/toggle.html
@@ -35,7 +35,7 @@ Apply the effect slide if you click on the p to toggle a div.<br />
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <script src="http://ui.jquery.com/latest/ui/effects.slide.js"></script>
@@ -109,7 +109,7 @@ Apply the effect slide if you click on the p to toggle a div.<br />
     </dl>
   </div>
   <div class="option-description">
-    <p>Durations are given in milliseconds; higher values indicate slower animations, not faster ones. The strings 'fast' and 'slow' can be supplied to indicate durations of 200 and 600  milliseconds, respectively.</p>
+    <p>A string representing one of the predefined speeds ("slow" or "fast") or the number of milliseconds to run the animation (e.g. 1000).</p>
   </div>
 </li>
 
@@ -136,9 +136,9 @@ Apply the effect slide if you click on the p to toggle a div.<br />
 
 </p><!-- 
 Pre-expand include size: 6372 bytes
-Post-expand include size: 8945 bytes
-Template argument size: 5663 bytes
+Post-expand include size: 8797 bytes
+Template argument size: 5515 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2615-1!1!0!!en!2 and timestamp 20100318115835 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2615-1!1!0!!en!2 and timestamp 20110413154256 -->
diff --git a/development-bundle/docs/toggleClass.html b/development-bundle/docs/toggleClass.html
index ff7fb76..d1b45d4 100644
--- a/development-bundle/docs/toggleClass.html
+++ b/development-bundle/docs/toggleClass.html
@@ -34,7 +34,7 @@ Adds the 'selected' class if it is not present, and removes the 'selected' class
 <html>
 <head>
   <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
-  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
+  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"></script>
   <script src="http://ui.jquery.com/latest/ui/effects.core.js"></script>
 <style type="text/css">
@@ -102,10 +102,10 @@ Adds the 'selected' class if it is not present, and removes the 'selected' class
 </div>
 
 </p><!-- 
-Pre-expand include size: 5271 bytes
-Post-expand include size: 7027 bytes
-Template argument size: 4437 bytes
+Pre-expand include size: 5251 bytes
+Post-expand include size: 6929 bytes
+Template argument size: 4383 bytes
 Maximum: 2097152 bytes
 -->
 
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2608-1!1!0!!en!2 and timestamp 20100318115912 -->
+<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2608-1!1!0!!en!2 and timestamp 20110413154341 -->
diff --git a/development-bundle/themes/base/images/ui-anim_basic_16x16.gif b/development-bundle/themes/base/images/ui-anim_basic_16x16.gif
deleted file mode 100644
index 085ccae..0000000
Binary files a/development-bundle/themes/base/images/ui-anim_basic_16x16.gif and /dev/null differ
diff --git a/development-bundle/themes/base/jquery.ui.accordion.css b/development-bundle/themes/base/jquery.ui.accordion.css
index acd7f5e..1881566 100644
--- a/development-bundle/themes/base/jquery.ui.accordion.css
+++ b/development-bundle/themes/base/jquery.ui.accordion.css
@@ -1,5 +1,14 @@
-/* Accordion
-----------------------------------*/
+/*
+ * jQuery UI Accordion 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
 .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
 .ui-accordion .ui-accordion-li-fix { display: inline; }
 .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
@@ -7,4 +16,4 @@
 .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
\ No newline at end of file
+.ui-accordion .ui-accordion-content-active { display: block; }
diff --git a/development-bundle/themes/base/jquery.ui.all.css b/development-bundle/themes/base/jquery.ui.all.css
index 6ee0fdf..c4eab8f 100644
--- a/development-bundle/themes/base/jquery.ui.all.css
+++ b/development-bundle/themes/base/jquery.ui.all.css
@@ -1,2 +1,11 @@
+/*
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming
+ */
 @import "jquery.ui.base.css";
 @import "jquery.ui.theme.css";
diff --git a/development-bundle/themes/base/jquery.ui.autocomplete.css b/development-bundle/themes/base/jquery.ui.autocomplete.css
index bdd41e1..7b6e11b 100644
--- a/development-bundle/themes/base/jquery.ui.autocomplete.css
+++ b/development-bundle/themes/base/jquery.ui.autocomplete.css
@@ -1,18 +1,32 @@
-/* Autocomplete
-----------------------------------*/
+/*
+ * jQuery UI Autocomplete 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
 .ui-autocomplete { position: absolute; cursor: default; }	
-.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
 
-/* Menu
-----------------------------------*/
+/*
+ * jQuery UI Menu 1.8.12
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
 .ui-menu {
 	list-style:none;
 	padding: 2px;
 	margin: 0;
 	display:block;
+	float: left;
 }
 .ui-menu .ui-menu {
 	margin-top: -3px;
@@ -20,6 +34,9 @@
 .ui-menu .ui-menu-item {
 	margin:0;
 	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
 	width: 100%;
 }
 .ui-menu .ui-menu-item a {
@@ -31,5 +48,6 @@
 }
 .ui-menu .ui-menu-item a.ui-state-hover,
 .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
 	margin: -1px;
 }
diff --git a/development-bundle/themes/base/jquery.ui.base.css b/development-bundle/themes/base/jquery.ui.base.css
index 4011708..f52ee39 100644
--- a/development-bundle/themes/base/jquery.ui.base.css
+++ b/development-bundle/themes/base/jquery.ui.base.css
@@ -1,5 +1,6 @@
 @import url("jquery.ui.core.css");
 @import url("jquery.ui.resizable.css");
+ at import url("jquery.ui.selectable.css");
 @import url("jquery.ui.accordion.css");
 @import url("jquery.ui.autocomplete.css");
 @import url("jquery.ui.button.css");
diff --git a/development-bundle/themes/base/jquery.ui.button.css b/development-bundle/themes/base/jquery.ui.button.css
index 47777a4..5b2cd75 100644
--- a/development-bundle/themes/base/jquery.ui.button.css
+++ b/development-bundle/themes/base/jquery.ui.button.css
@@ -1,6 +1,12 @@
-/* Button
-----------------------------------*/
-
+/*
+ * jQuery UI Button 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
 .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
@@ -11,15 +17,17 @@ button.ui-button-icons-only { width: 3.7em; }
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
 .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 .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.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 .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, .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 .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-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; }
 .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
 
 /*button sets*/
@@ -28,8 +36,3 @@ input.ui-button { padding: .4em 1em; }
 
 /* workarounds */
 button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-
-
-
-
-
diff --git a/development-bundle/themes/base/jquery.ui.core.css b/development-bundle/themes/base/jquery.ui.core.css
index b3e8193..e58bb4d 100644
--- a/development-bundle/themes/base/jquery.ui.core.css
+++ b/development-bundle/themes/base/jquery.ui.core.css
@@ -1,13 +1,17 @@
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
 
 /* Layout helpers
 ----------------------------------*/
 .ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,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:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
 .ui-helper-clearfix { display: inline-block; }
diff --git a/development-bundle/themes/base/jquery.ui.datepicker.css b/development-bundle/themes/base/jquery.ui.datepicker.css
index a1116e6..61225b8 100644
--- a/development-bundle/themes/base/jquery.ui.datepicker.css
+++ b/development-bundle/themes/base/jquery.ui.datepicker.css
@@ -1,6 +1,13 @@
-/* Datepicker
-----------------------------------*/
-.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+/*
+ * jQuery UI Datepicker 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.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; }
diff --git a/development-bundle/themes/base/jquery.ui.dialog.css b/development-bundle/themes/base/jquery.ui.dialog.css
index f835464..f2965be 100644
--- a/development-bundle/themes/base/jquery.ui.dialog.css
+++ b/development-bundle/themes/base/jquery.ui.dialog.css
@@ -1,13 +1,21 @@
-/* Dialog
-----------------------------------*/
+/*
+ * jQuery UI Dialog 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
 .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
 .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
 .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
 .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
 .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.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: 14px; height: 14px; right: 3px; bottom: 3px; }
 .ui-draggable .ui-dialog-titlebar { cursor: move; }
diff --git a/development-bundle/themes/base/jquery.ui.progressbar.css b/development-bundle/themes/base/jquery.ui.progressbar.css
index bc0939e..9622a17 100644
--- a/development-bundle/themes/base/jquery.ui.progressbar.css
+++ b/development-bundle/themes/base/jquery.ui.progressbar.css
@@ -1,4 +1,11 @@
-/* Progressbar
-----------------------------------*/
+/*
+ * jQuery UI Progressbar 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
 .ui-progressbar { height:2em; text-align: left; }
 .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/development-bundle/themes/base/jquery.ui.resizable.css b/development-bundle/themes/base/jquery.ui.resizable.css
index 366643b..e0130e3 100644
--- a/development-bundle/themes/base/jquery.ui.resizable.css
+++ b/development-bundle/themes/base/jquery.ui.resizable.css
@@ -1,7 +1,19 @@
-/* Resizable
-----------------------------------*/
+/*
+ * jQuery UI Resizable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
 .ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;
+	/* http://bugs.jqueryui.com/ticket/7233
+	 - Resizable: resizable handles fail to work in IE if transparent and content overlaps
+	*/
+	background-image:url(data:);
+}
 .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; }
diff --git a/development-bundle/themes/base/jquery.ui.selectable.css b/development-bundle/themes/base/jquery.ui.selectable.css
new file mode 100644
index 0000000..1dbdb35
--- /dev/null
+++ b/development-bundle/themes/base/jquery.ui.selectable.css
@@ -0,0 +1,10 @@
+/*
+ * jQuery UI Selectable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
diff --git a/development-bundle/themes/base/jquery.ui.slider.css b/development-bundle/themes/base/jquery.ui.slider.css
index 07c6f4e..77ab7ac 100644
--- a/development-bundle/themes/base/jquery.ui.slider.css
+++ b/development-bundle/themes/base/jquery.ui.slider.css
@@ -1,5 +1,12 @@
-/* Slider
-----------------------------------*/
+/*
+ * jQuery UI Slider 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/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; }
diff --git a/development-bundle/themes/base/jquery.ui.tabs.css b/development-bundle/themes/base/jquery.ui.tabs.css
index 729758f..c1b533b 100644
--- a/development-bundle/themes/base/jquery.ui.tabs.css
+++ b/development-bundle/themes/base/jquery.ui.tabs.css
@@ -1,5 +1,12 @@
-/* Tabs
-----------------------------------*/
+/*
+ * jQuery UI Tabs 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
 .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
 .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: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
@@ -7,5 +14,5 @@
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
 .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
 .ui-tabs .ui-tabs-hide { display: none !important; }
diff --git a/development-bundle/themes/base/jquery.ui.theme.css b/development-bundle/themes/base/jquery.ui.theme.css
index 09c0a01..bc270fe 100644
--- a/development-bundle/themes/base/jquery.ui.theme.css
+++ b/development-bundle/themes/base/jquery.ui.theme.css
@@ -1,9 +1,14 @@
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-* To view and modify this theme, visit http://jqueryui.com/themeroller/
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/
+ */
 
 
 /* Component containers
@@ -18,24 +23,24 @@
 
 /* Interaction states
 ----------------------------------*/
-.ui-state-default, .ui-widget-content .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, .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-state-focus, .ui-widget-content .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, .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 { color: #212121/*{fcHover}*/; text-decoration: none; }
-.ui-state-active, .ui-widget-content .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, .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; }
 .ui-widget :active { outline: none; }
 
 /* Interaction Cues
 ----------------------------------*/
-.ui-state-highlight, .ui-widget-content .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 { color: #363636/*{fcHighlight}*/; }
-.ui-state-error, .ui-widget-content .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 { color: #cd0a0a/*{fcError}*/; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.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; }
 
 /* Icons
 ----------------------------------*/
diff --git a/development-bundle/themes/smoothness/jquery-ui-1.8.custom.css b/development-bundle/themes/smoothness/jquery-ui-1.8.12.custom.css
similarity index 74%
rename from development-bundle/themes/smoothness/jquery-ui-1.8.custom.css
rename to development-bundle/themes/smoothness/jquery-ui-1.8.12.custom.css
index a5e31ab..c85aaba 100644
--- a/development-bundle/themes/smoothness/jquery-ui-1.8.custom.css
+++ b/development-bundle/themes/smoothness/jquery-ui-1.8.12.custom.css
@@ -1,13 +1,17 @@
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
 
 /* Layout helpers
 ----------------------------------*/
 .ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,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:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
 .ui-helper-clearfix { display: inline-block; }
@@ -38,11 +42,16 @@
 
 
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
 
 
 /* Component containers
@@ -57,24 +66,24 @@
 
 /* Interaction states
 ----------------------------------*/
-.ui-state-default, .ui-widget-content .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, .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-state-focus, .ui-widget-content .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, .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 { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .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, .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; }
 .ui-widget :active { outline: none; }
 
 /* Interaction Cues
 ----------------------------------*/
-.ui-state-highlight, .ui-widget-content .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 { color: #363636; }
-.ui-state-error, .ui-widget-content .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 { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.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; }
 
 /* Icons
 ----------------------------------*/
@@ -283,10 +292,22 @@
 
 /* Overlays */
 .ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;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: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* Resizable
-----------------------------------*/
+.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: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*
+ * jQuery UI Resizable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
 .ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;
+	/* http://bugs.jqueryui.com/ticket/7233
+	 - Resizable: resizable handles fail to work in IE if transparent and content overlaps
+	*/
+	background-image:url(data:);
+}
 .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; }
@@ -295,8 +316,27 @@
 .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;}/* Accordion
-----------------------------------*/
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
+ * jQuery UI Selectable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
+/*
+ * jQuery UI Accordion 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
 .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
 .ui-accordion .ui-accordion-li-fix { display: inline; }
 .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
@@ -304,21 +344,36 @@
 .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }/* Autocomplete
-----------------------------------*/
+.ui-accordion .ui-accordion-content-active { display: block; }
+/*
+ * jQuery UI Autocomplete 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
 .ui-autocomplete { position: absolute; cursor: default; }	
-.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
 
-/* Menu
-----------------------------------*/
+/*
+ * jQuery UI Menu 1.8.12
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
 .ui-menu {
 	list-style:none;
 	padding: 2px;
 	margin: 0;
 	display:block;
+	float: left;
 }
 .ui-menu .ui-menu {
 	margin-top: -3px;
@@ -326,6 +381,9 @@
 .ui-menu .ui-menu-item {
 	margin:0;
 	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
 	width: 100%;
 }
 .ui-menu .ui-menu-item a {
@@ -337,11 +395,18 @@
 }
 .ui-menu .ui-menu-item a.ui-state-hover,
 .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
 	margin: -1px;
 }
-/* Button
-----------------------------------*/
-
+/*
+ * jQuery UI Button 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
 .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
@@ -352,15 +417,17 @@ button.ui-button-icons-only { width: 3.7em; }
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
 .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 .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.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 .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, .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 .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-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; }
 .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
 
 /*button sets*/
@@ -369,26 +436,36 @@ input.ui-button { padding: .4em 1em; }
 
 /* workarounds */
 button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-
-
-
-
-
-/* Dialog
-----------------------------------*/
+/*
+ * jQuery UI Dialog 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
 .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
 .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
 .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
 .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
 .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.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: 14px; height: 14px; right: 3px; bottom: 3px; }
 .ui-draggable .ui-dialog-titlebar { cursor: move; }
-/* Slider
-----------------------------------*/
+/*
+ * jQuery UI Slider 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/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; }
@@ -403,8 +480,15 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .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; }/* Tabs
-----------------------------------*/
+.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
+ * jQuery UI Tabs 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
 .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
 .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: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
@@ -412,11 +496,18 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
 .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
 .ui-tabs .ui-tabs-hide { display: none !important; }
-/* Datepicker
-----------------------------------*/
-.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+/*
+ * jQuery UI Datepicker 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.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; }
@@ -474,7 +565,14 @@ button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra pad
     left: -4px; /*must have*/
     width: 200px; /*must have*/
     height: 200px; /*must have*/
-}/* Progressbar
-----------------------------------*/
+}/*
+ * jQuery UI Progressbar 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
 .ui-progressbar { height:2em; text-align: left; }
 .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/development-bundle/themes/smoothness/jquery.ui.accordion.css b/development-bundle/themes/smoothness/jquery.ui.accordion.css
index acd7f5e..1881566 100644
--- a/development-bundle/themes/smoothness/jquery.ui.accordion.css
+++ b/development-bundle/themes/smoothness/jquery.ui.accordion.css
@@ -1,5 +1,14 @@
-/* Accordion
-----------------------------------*/
+/*
+ * jQuery UI Accordion 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Accordion#theming
+ */
+/* IE/Win - Fix animation bug - #4615 */
+.ui-accordion { width: 100%; }
 .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
 .ui-accordion .ui-accordion-li-fix { display: inline; }
 .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
@@ -7,4 +16,4 @@
 .ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
 .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
 .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
\ No newline at end of file
+.ui-accordion .ui-accordion-content-active { display: block; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.all.css b/development-bundle/themes/smoothness/jquery.ui.all.css
index 6ee0fdf..c4eab8f 100644
--- a/development-bundle/themes/smoothness/jquery.ui.all.css
+++ b/development-bundle/themes/smoothness/jquery.ui.all.css
@@ -1,2 +1,11 @@
+/*
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming
+ */
 @import "jquery.ui.base.css";
 @import "jquery.ui.theme.css";
diff --git a/development-bundle/themes/smoothness/jquery.ui.autocomplete.css b/development-bundle/themes/smoothness/jquery.ui.autocomplete.css
index bdd41e1..7b6e11b 100644
--- a/development-bundle/themes/smoothness/jquery.ui.autocomplete.css
+++ b/development-bundle/themes/smoothness/jquery.ui.autocomplete.css
@@ -1,18 +1,32 @@
-/* Autocomplete
-----------------------------------*/
+/*
+ * jQuery UI Autocomplete 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Autocomplete#theming
+ */
 .ui-autocomplete { position: absolute; cursor: default; }	
-.ui-autocomplete-loading { background: white url('images/ui-anim_basic_16x16.gif') right center no-repeat; }
 
 /* workarounds */
 * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
 
-/* Menu
-----------------------------------*/
+/*
+ * jQuery UI Menu 1.8.12
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Menu#theming
+ */
 .ui-menu {
 	list-style:none;
 	padding: 2px;
 	margin: 0;
 	display:block;
+	float: left;
 }
 .ui-menu .ui-menu {
 	margin-top: -3px;
@@ -20,6 +34,9 @@
 .ui-menu .ui-menu-item {
 	margin:0;
 	padding: 0;
+	zoom: 1;
+	float: left;
+	clear: left;
 	width: 100%;
 }
 .ui-menu .ui-menu-item a {
@@ -31,5 +48,6 @@
 }
 .ui-menu .ui-menu-item a.ui-state-hover,
 .ui-menu .ui-menu-item a.ui-state-active {
+	font-weight: normal;
 	margin: -1px;
 }
diff --git a/development-bundle/themes/smoothness/jquery.ui.base.css b/development-bundle/themes/smoothness/jquery.ui.base.css
index 4011708..f52ee39 100644
--- a/development-bundle/themes/smoothness/jquery.ui.base.css
+++ b/development-bundle/themes/smoothness/jquery.ui.base.css
@@ -1,5 +1,6 @@
 @import url("jquery.ui.core.css");
 @import url("jquery.ui.resizable.css");
+ at import url("jquery.ui.selectable.css");
 @import url("jquery.ui.accordion.css");
 @import url("jquery.ui.autocomplete.css");
 @import url("jquery.ui.button.css");
diff --git a/development-bundle/themes/smoothness/jquery.ui.button.css b/development-bundle/themes/smoothness/jquery.ui.button.css
index 47777a4..5b2cd75 100644
--- a/development-bundle/themes/smoothness/jquery.ui.button.css
+++ b/development-bundle/themes/smoothness/jquery.ui.button.css
@@ -1,6 +1,12 @@
-/* Button
-----------------------------------*/
-
+/*
+ * jQuery UI Button 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Button#theming
+ */
 .ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
 .ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
 button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
@@ -11,15 +17,17 @@ button.ui-button-icons-only { width: 3.7em; }
 .ui-button .ui-button-text { display: block; line-height: 1.4;  }
 .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 .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
+.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 .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, .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 .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-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; }
 .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
 
 /*button sets*/
@@ -28,8 +36,3 @@ input.ui-button { padding: .4em 1em; }
 
 /* workarounds */
 button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-
-
-
-
-
diff --git a/development-bundle/themes/smoothness/jquery.ui.core.css b/development-bundle/themes/smoothness/jquery.ui.core.css
index b3e8193..e58bb4d 100644
--- a/development-bundle/themes/smoothness/jquery.ui.core.css
+++ b/development-bundle/themes/smoothness/jquery.ui.core.css
@@ -1,13 +1,17 @@
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
 
 /* Layout helpers
 ----------------------------------*/
 .ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,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:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
 .ui-helper-clearfix { display: inline-block; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.datepicker.css b/development-bundle/themes/smoothness/jquery.ui.datepicker.css
index a1116e6..61225b8 100644
--- a/development-bundle/themes/smoothness/jquery.ui.datepicker.css
+++ b/development-bundle/themes/smoothness/jquery.ui.datepicker.css
@@ -1,6 +1,13 @@
-/* Datepicker
-----------------------------------*/
-.ui-datepicker { width: 17em; padding: .2em .2em 0; }
+/*
+ * jQuery UI Datepicker 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Datepicker#theming
+ */
+.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; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.dialog.css b/development-bundle/themes/smoothness/jquery.ui.dialog.css
index f835464..f2965be 100644
--- a/development-bundle/themes/smoothness/jquery.ui.dialog.css
+++ b/development-bundle/themes/smoothness/jquery.ui.dialog.css
@@ -1,13 +1,21 @@
-/* Dialog
-----------------------------------*/
+/*
+ * jQuery UI Dialog 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
 .ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .5em 1em .3em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .2em 0; } 
+.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
 .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
 .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
 .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
+.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
 .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
+.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: 14px; height: 14px; right: 3px; bottom: 3px; }
 .ui-draggable .ui-dialog-titlebar { cursor: move; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.progressbar.css b/development-bundle/themes/smoothness/jquery.ui.progressbar.css
index bc0939e..9622a17 100644
--- a/development-bundle/themes/smoothness/jquery.ui.progressbar.css
+++ b/development-bundle/themes/smoothness/jquery.ui.progressbar.css
@@ -1,4 +1,11 @@
-/* Progressbar
-----------------------------------*/
+/*
+ * jQuery UI Progressbar 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Progressbar#theming
+ */
 .ui-progressbar { height:2em; text-align: left; }
 .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
diff --git a/development-bundle/themes/smoothness/jquery.ui.resizable.css b/development-bundle/themes/smoothness/jquery.ui.resizable.css
index 366643b..e0130e3 100644
--- a/development-bundle/themes/smoothness/jquery.ui.resizable.css
+++ b/development-bundle/themes/smoothness/jquery.ui.resizable.css
@@ -1,7 +1,19 @@
-/* Resizable
-----------------------------------*/
+/*
+ * jQuery UI Resizable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
 .ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;
+	/* http://bugs.jqueryui.com/ticket/7233
+	 - Resizable: resizable handles fail to work in IE if transparent and content overlaps
+	*/
+	background-image:url(data:);
+}
 .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; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.selectable.css b/development-bundle/themes/smoothness/jquery.ui.selectable.css
new file mode 100644
index 0000000..1dbdb35
--- /dev/null
+++ b/development-bundle/themes/smoothness/jquery.ui.selectable.css
@@ -0,0 +1,10 @@
+/*
+ * jQuery UI Selectable 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Selectable#theming
+ */
+.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.slider.css b/development-bundle/themes/smoothness/jquery.ui.slider.css
index 07c6f4e..77ab7ac 100644
--- a/development-bundle/themes/smoothness/jquery.ui.slider.css
+++ b/development-bundle/themes/smoothness/jquery.ui.slider.css
@@ -1,5 +1,12 @@
-/* Slider
-----------------------------------*/
+/*
+ * jQuery UI Slider 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/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; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.tabs.css b/development-bundle/themes/smoothness/jquery.ui.tabs.css
index 729758f..c1b533b 100644
--- a/development-bundle/themes/smoothness/jquery.ui.tabs.css
+++ b/development-bundle/themes/smoothness/jquery.ui.tabs.css
@@ -1,5 +1,12 @@
-/* Tabs
-----------------------------------*/
+/*
+ * jQuery UI Tabs 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Tabs#theming
+ */
 .ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
 .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: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
@@ -7,5 +14,5 @@
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
 .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
 .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border: 0; padding: 1em 1.4em; background: none; }
+.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
 .ui-tabs .ui-tabs-hide { display: none !important; }
diff --git a/development-bundle/themes/smoothness/jquery.ui.theme.css b/development-bundle/themes/smoothness/jquery.ui.theme.css
index a61417c..4158b8e 100644
--- a/development-bundle/themes/smoothness/jquery.ui.theme.css
+++ b/development-bundle/themes/smoothness/jquery.ui.theme.css
@@ -1,11 +1,16 @@
 
 
 /*
-* jQuery UI CSS Framework
-* Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
-* Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
-*/
+ * jQuery UI CSS Framework 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ *
+ * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+ */
 
 
 /* Component containers
@@ -20,24 +25,24 @@
 
 /* Interaction states
 ----------------------------------*/
-.ui-state-default, .ui-widget-content .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, .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-state-focus, .ui-widget-content .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, .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 { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .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, .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; }
 .ui-widget :active { outline: none; }
 
 /* Interaction Cues
 ----------------------------------*/
-.ui-state-highlight, .ui-widget-content .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 { color: #363636; }
-.ui-state-error, .ui-widget-content .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 { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
+.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; }
 
 /* Icons
 ----------------------------------*/
diff --git a/development-bundle/ui/i18n/jquery-ui-i18n.js b/development-bundle/ui/i18n/jquery-ui-i18n.js
index 4862fc8..fbe5893 100644
--- a/development-bundle/ui/i18n/jquery-ui-i18n.js
+++ b/development-bundle/ui/i18n/jquery-ui-i18n.js
@@ -21,9 +21,31 @@ jQuery(function($){
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['af']);
 });
+/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
+/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem at yahoo.fr */
+
+jQuery(function($){
+	$.datepicker.regional['ar-DZ'] = {
+		closeText: 'إغلاق',
+		prevText: '&#x3c;السابق',
+		nextText: 'التالي&#x3e;',
+		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 Al Horani -- koko.dw at gmail.com */
-/* خالد الحوراني -- koko.dw at gmail.com */
+/* Khaled Alhourani -- me at 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'] = {
@@ -31,15 +53,15 @@ jQuery(function($){
 		prevText: '&#x3c;السابق',
 		nextText: 'التالي&#x3e;',
 		currentText: 'اليوم',
-		monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران',
+		monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
 		'تموز', 'آب', 'أيلول',	'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
-		monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
-		dayNames: ['السبت', 'الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة'],
-		dayNamesShort: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'],
-		dayNamesMin: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'],
+		monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
+		dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+		dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+		dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
 		weekHeader: 'أسبوع',
 		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
+		firstDay: 6,
   		isRTL: true,
 		showMonthAfterYear: false,
 		yearSuffix: ''};
@@ -225,7 +247,30 @@ jQuery(function($){
 		showMonthAfterYear: false,
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['el']);
-});/* English/UK initialisation for the jQuery UI date picker plugin. */
+});/* 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'] = {
@@ -248,6 +293,29 @@ jQuery(function($){
 		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 at ifrance.com). */
 jQuery(function($){
@@ -405,18 +473,18 @@ jQuery(function($){
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['fo']);
 });
-/* Swiss-French initialisation for the jQuery UI date picker plugin. */
+/* Swiss-French initialisation for the jQuery UI date picker plugin. */
 /* Written Martin Voelkle (martin.voelkle at e-tc.ch). */
 jQuery(function($){
 	$.datepicker.regional['fr-CH'] = {
 		closeText: 'Fermer',
-		prevText: '&#x3c;Pr�c',
+		prevText: '&#x3c;Préc',
 		nextText: 'Suiv&#x3e;',
 		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'],
+		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'],
@@ -428,27 +496,52 @@ jQuery(function($){
 		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) and Stéphane Nahmani (sholby at sholby.net). */
+/* Written by Keith Wood (kbwood{at}iinet.com.au),
+              Stéphane Nahmani (sholby at sholby.net),
+              Stéphane Raimbault <stephane.raimbault at gmail.com> */
 jQuery(function($){
 	$.datepicker.regional['fr'] = {
 		closeText: 'Fermer',
-		prevText: '&#x3c;Préc',
-		nextText: 'Suiv&#x3e;',
-		currentText: 'Courant',
+		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: ['Jan','Fév','Mar','Avr','Mai','Jun',
-		'Jul','Aoû','Sep','Oct','Nov','Déc'],
+		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: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
-		weekHeader: 'Sm',
+		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 <yortx.barry at gmail.com>. */
+jQuery(function($){
+	$.datepicker.regional['gl'] = {
+		closeText: 'Pechar',
+		prevText: '&#x3c;Ant',
+		nextText: 'Seg&#x3e;',
+		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($){
@@ -513,7 +606,7 @@ jQuery(function($){
 		dateFormat: 'yy-mm-dd',
 		firstDay: 1,
 		isRTL: false,
-		showMonthAfterYear: false,
+		showMonthAfterYear: true,
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['hu']);
 });
@@ -650,7 +743,30 @@ jQuery(function($){
 		showMonthAfterYear: false,
 		yearSuffix: 'ë…„'};
 	$.datepicker.setDefaults($.datepicker.regional['ko']);
-});/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
+});/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Dmitriy Karasyov (dmitriy.karasyov at gmail.com). */
+jQuery(function($){
+	$.datepicker.regional['kz'] = {
+		closeText: 'Жабу',
+		prevText: '&#x3c;Алдыңғы',
+		nextText: 'Келесі&#x3e;',
+		currentText: 'Бүгін',
+		monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым',
+		'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'],
+		monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау',
+		'Шіл','Там','Қыр','Қаз','Қар','Жел'],
+		dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'],
+		dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'],
+		dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'],
+		weekHeader: 'Не',
+		dateFormat: 'dd.mm.yy',
+		firstDay: 1,
+		isRTL: false,
+		showMonthAfterYear: false,
+		yearSuffix: ''};
+	$.datepicker.setDefaults($.datepicker.regional['kz']);
+});
+/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
 /* @author Arturas Paleicikas <arturas at avalon.lt> */
 jQuery(function($){
 	$.datepicker.regional['lt'] = {
@@ -694,7 +810,30 @@ jQuery(function($){
 		showMonthAfterYear: false,
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['lv']);
-});/* Malaysian initialisation for the jQuery UI date picker plugin. */
+});/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Saji Nediyanchath (saji89 at 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 at ronggeng.net). */
 jQuery(function($){
 	$.datepicker.regional['ms'] = {
@@ -740,26 +879,26 @@ jQuery(function($){
 	$.datepicker.setDefaults($.datepicker.regional.nl);
 });/* Norwegian initialisation for the jQuery UI date picker plugin. */
 /* Written by Naimdjon Takhirov (naimdjon at 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: 'yy-mm-dd',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['no']);
+  $.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 at gmail.com). */
@@ -773,11 +912,11 @@ jQuery(function($){
 		'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
 		monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
 		'Lip','Sie','Wrz','Pa','Lis','Gru'],
-		dayNames: ['Niedziela','Poniedzialek','Wtorek','Åšroda','Czwartek','PiÄ…tek','Sobota'],
+		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: 'yy-mm-dd',
+		dateFormat: 'dd.mm.yy',
 		firstDay: 1,
 		isRTL: false,
 		showMonthAfterYear: false,
@@ -796,9 +935,9 @@ jQuery(function($){
 		'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','Sabado'],
-		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
-		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
+		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,
@@ -806,7 +945,49 @@ jQuery(function($){
 		showMonthAfterYear: false,
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
-});/* Romanian initialisation for the jQuery UI date picker plugin.
+});/* Portuguese initialisation for the jQuery UI date picker plugin. */
+jQuery(function($){
+	$.datepicker.regional['pt'] = {
+		closeText: 'Fechar',
+		prevText: '&#x3c;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 at educa.ch). */
+jQuery(function($){
+	$.datepicker.regional['rm'] = {
+		closeText: 'Serrar',
+		prevText: '&#x3c;Suandant',
+		nextText: 'Precedent&#x3e;',
+		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 at walla.com)
  * and Ionut G. Stan (ionut.g.stan at gmail.com)
@@ -847,7 +1028,7 @@ jQuery(function($){
 		dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
 		dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
 		dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
-		weekHeader: 'Не',
+		weekHeader: 'Нед',
 		dateFormat: 'dd.mm.yy',
 		firstDay: 1,
 		isRTL: false,
@@ -871,7 +1052,7 @@ jQuery(function($){
 		dayNamesMin: ['Ne','Po','Ut','St','Å t','Pia','So'],
 		weekHeader: 'Ty',
 		dateFormat: 'dd.mm.yy',
-		firstDay: 0,
+		firstDay: 1,
 		isRTL: false,
 		showMonthAfterYear: false,
 		yearSuffix: ''};
@@ -1025,7 +1206,7 @@ jQuery(function($){
 		nextText: 'ถัดไป »',
 		currentText: 'วันนี้',
 		monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
-		'กรกฏาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
+		'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
 		monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
 		'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
 		dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
@@ -1038,6 +1219,28 @@ jQuery(function($){
 		showMonthAfterYear: false,
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['th']);
+});/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Abdurahmon Saidov (saidovab at gmail.com). */
+jQuery(function($){
+	$.datepicker.regional['tj'] = {
+		closeText: 'Идома',
+		prevText: '&#x3c;Қафо',
+		nextText: 'Пеш&#x3e;',
+		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 at karalamalar.net). */
 jQuery(function($){
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js b/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js
new file mode 100644
index 0000000..e0e1685
--- /dev/null
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js
@@ -0,0 +1,23 @@
+/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
+/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem at yahoo.fr */
+
+jQuery(function($){
+	$.datepicker.regional['ar-DZ'] = {
+		closeText: 'إغلاق',
+		prevText: '&#x3c;السابق',
+		nextText: 'التالي&#x3e;',
+		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']);
+});
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js b/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js
index c799b48..cfa6632 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js
@@ -1,6 +1,5 @@
 /* Arabic Translation for jQuery UI date picker plugin. */
-/* Khaled Al Horani -- koko.dw at gmail.com */
-/* خالد الحوراني -- koko.dw at gmail.com */
+/* Khaled Alhourani -- me at 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'] = {
@@ -8,15 +7,15 @@ jQuery(function($){
 		prevText: '&#x3c;السابق',
 		nextText: 'التالي&#x3e;',
 		currentText: 'اليوم',
-		monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران',
+		monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'مايو', 'حزيران',
 		'تموز', 'آب', 'أيلول',	'تشرين الأول', 'تشرين الثاني', 'كانون الأول'],
-		monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
-		dayNames: ['السبت', 'الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة'],
-		dayNamesShort: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'],
-		dayNamesMin: ['سبت', 'أحد', 'اثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'],
+		monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'],
+		dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+		dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
+		dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'],
 		weekHeader: 'أسبوع',
 		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
+		firstDay: 6,
   		isRTL: true,
 		showMonthAfterYear: false,
 		yearSuffix: ''};
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js b/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js
similarity index 76%
copy from development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js
copy to development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js
index aac7b61..c1a1020 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js
@@ -1,7 +1,7 @@
-/* English/UK initialisation for the jQuery UI date picker plugin. */
-/* Written by Stuart. */
+/* English/Australia initialisation for the jQuery UI date picker plugin. */
+/* Based on the en-GB initialisation. */
 jQuery(function($){
-	$.datepicker.regional['en-GB'] = {
+	$.datepicker.regional['en-AU'] = {
 		closeText: 'Done',
 		prevText: 'Prev',
 		nextText: 'Next',
@@ -19,5 +19,5 @@ jQuery(function($){
 		isRTL: false,
 		showMonthAfterYear: false,
 		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['en-GB']);
+	$.datepicker.setDefaults($.datepicker.regional['en-AU']);
 });
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js b/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js
similarity index 76%
copy from development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js
copy to development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js
index aac7b61..7819df0 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js
@@ -1,7 +1,7 @@
-/* English/UK initialisation for the jQuery UI date picker plugin. */
-/* Written by Stuart. */
+/* English/New Zealand initialisation for the jQuery UI date picker plugin. */
+/* Based on the en-GB initialisation. */
 jQuery(function($){
-	$.datepicker.regional['en-GB'] = {
+	$.datepicker.regional['en-NZ'] = {
 		closeText: 'Done',
 		prevText: 'Prev',
 		nextText: 'Next',
@@ -19,5 +19,5 @@ jQuery(function($){
 		isRTL: false,
 		showMonthAfterYear: false,
 		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['en-GB']);
+	$.datepicker.setDefaults($.datepicker.regional['en-NZ']);
 });
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js b/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js
index dafef16..38212d5 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js
@@ -1,15 +1,15 @@
-/* Swiss-French initialisation for the jQuery UI date picker plugin. */
+/* Swiss-French initialisation for the jQuery UI date picker plugin. */
 /* Written Martin Voelkle (martin.voelkle at e-tc.ch). */
 jQuery(function($){
 	$.datepicker.regional['fr-CH'] = {
 		closeText: 'Fermer',
-		prevText: '&#x3c;Préc',
+		prevText: '&#x3c;Préc',
 		nextText: 'Suiv&#x3e;',
 		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'],
+		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'],
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js b/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js
index 134bda6..74ea1c2 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js
@@ -1,23 +1,25 @@
 /* French initialisation for the jQuery UI date picker plugin. */
-/* Written by Keith Wood (kbwood{at}iinet.com.au) and Stéphane Nahmani (sholby at sholby.net). */
+/* Written by Keith Wood (kbwood{at}iinet.com.au),
+              Stéphane Nahmani (sholby at sholby.net),
+              Stéphane Raimbault <stephane.raimbault at gmail.com> */
 jQuery(function($){
 	$.datepicker.regional['fr'] = {
 		closeText: 'Fermer',
-		prevText: '&#x3c;Préc',
-		nextText: 'Suiv&#x3e;',
-		currentText: 'Courant',
+		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: ['Jan','Fév','Mar','Avr','Mai','Jun',
-		'Jul','Aoû','Sep','Oct','Nov','Déc'],
+		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: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
-		weekHeader: 'Sm',
+		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']);
-});
\ No newline at end of file
+});
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js b/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js
new file mode 100644
index 0000000..278403e
--- /dev/null
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js
@@ -0,0 +1,23 @@
+/* Galician localization for 'UI date picker' jQuery extension. */
+/* Translated by Jorge Barreiro <yortx.barry at gmail.com>. */
+jQuery(function($){
+	$.datepicker.regional['gl'] = {
+		closeText: 'Pechar',
+		prevText: '&#x3c;Ant',
+		nextText: 'Seg&#x3e;',
+		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']);
+});
\ No newline at end of file
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js b/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js
index 249e7b0..46e63f5 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js
@@ -17,7 +17,7 @@ jQuery(function($){
 		dateFormat: 'yy-mm-dd',
 		firstDay: 1,
 		isRTL: false,
-		showMonthAfterYear: false,
+		showMonthAfterYear: true,
 		yearSuffix: ''};
 	$.datepicker.setDefaults($.datepicker.regional['hu']);
 });
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js b/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js
new file mode 100644
index 0000000..f1f897b
--- /dev/null
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js
@@ -0,0 +1,23 @@
+/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Dmitriy Karasyov (dmitriy.karasyov at gmail.com). */
+jQuery(function($){
+	$.datepicker.regional['kz'] = {
+		closeText: 'Жабу',
+		prevText: '&#x3c;Алдыңғы',
+		nextText: 'Келесі&#x3e;',
+		currentText: 'Бүгін',
+		monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым',
+		'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'],
+		monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау',
+		'Шіл','Там','Қыр','Қаз','Қар','Жел'],
+		dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'],
+		dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'],
+		dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'],
+		weekHeader: 'Не',
+		dateFormat: 'dd.mm.yy',
+		firstDay: 1,
+		isRTL: false,
+		showMonthAfterYear: false,
+		yearSuffix: ''};
+	$.datepicker.setDefaults($.datepicker.regional['kz']);
+});
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js b/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js
new file mode 100644
index 0000000..753dba4
--- /dev/null
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js
@@ -0,0 +1,23 @@
+/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Saji Nediyanchath (saji89 at 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']);
+});
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-no.js b/development-bundle/ui/i18n/jquery.ui.datepicker-no.js
index 12b2356..2507043 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-no.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-no.js
@@ -1,23 +1,23 @@
 /* Norwegian initialisation for the jQuery UI date picker plugin. */
 /* Written by Naimdjon Takhirov (naimdjon at 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: 'yy-mm-dd',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['no']);
+  $.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']);
 });
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js b/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js
index 2d2d4d7..61fa29c 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js
@@ -10,11 +10,11 @@ jQuery(function($){
 		'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
 		monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
 		'Lip','Sie','Wrz','Pa','Lis','Gru'],
-		dayNames: ['Niedziela','Poniedzialek','Wtorek','Åšroda','Czwartek','PiÄ…tek','Sobota'],
+		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: 'yy-mm-dd',
+		dateFormat: 'dd.mm.yy',
 		firstDay: 1,
 		isRTL: false,
 		showMonthAfterYear: false,
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js b/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
index 3881863..3cc8c79 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
@@ -10,9 +10,9 @@ jQuery(function($){
 		'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','Sabado'],
-		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
-		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
+		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,
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js b/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js
similarity index 52%
copy from development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
copy to development-bundle/ui/i18n/jquery.ui.datepicker-pt.js
index 3881863..f09f5ae 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js
@@ -1,23 +1,22 @@
-/* Brazilian initialisation for the jQuery UI date picker plugin. */
-/* Written by Leonildo Costa Silva (leocsilva at gmail.com). */
+/* Portuguese initialisation for the jQuery UI date picker plugin. */
 jQuery(function($){
-	$.datepicker.regional['pt-BR'] = {
+	$.datepicker.regional['pt'] = {
 		closeText: 'Fechar',
 		prevText: '&#x3c;Anterior',
-		nextText: 'Próximo&#x3e;',
+		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','Sabado'],
-		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
-		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
-		weekHeader: 'Sm',
+		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-BR']);
+	$.datepicker.setDefaults($.datepicker.regional['pt']);
 });
\ No newline at end of file
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js b/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js
new file mode 100644
index 0000000..cf03cd4
--- /dev/null
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js
@@ -0,0 +1,21 @@
+/* Romansh initialisation for the jQuery UI date picker plugin. */
+/* Written by Yvonne Gienal (yvonne.gienal at educa.ch). */
+jQuery(function($){
+	$.datepicker.regional['rm'] = {
+		closeText: 'Serrar',
+		prevText: '&#x3c;Suandant',
+		nextText: 'Precedent&#x3e;',
+		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']);
+});
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js b/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js
index b8091f9..50a4613 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js
@@ -13,7 +13,7 @@ jQuery(function($){
 		dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'],
 		dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'],
 		dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'],
-		weekHeader: 'Не',
+		weekHeader: 'Нед',
 		dateFormat: 'dd.mm.yy',
 		firstDay: 1,
 		isRTL: false,
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js b/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js
index e8e73e6..8a6771c 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js
@@ -15,7 +15,7 @@ jQuery(function($){
 		dayNamesMin: ['Ne','Po','Ut','St','Å t','Pia','So'],
 		weekHeader: 'Ty',
 		dateFormat: 'dd.mm.yy',
-		firstDay: 0,
+		firstDay: 1,
 		isRTL: false,
 		showMonthAfterYear: false,
 		yearSuffix: ''};
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-th.js b/development-bundle/ui/i18n/jquery.ui.datepicker-th.js
index 978500a..c090c6b 100644
--- a/development-bundle/ui/i18n/jquery.ui.datepicker-th.js
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-th.js
@@ -7,7 +7,7 @@ jQuery(function($){
 		nextText: 'ถัดไป »',
 		currentText: 'วันนี้',
 		monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
-		'กรกฏาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
+		'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
 		monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
 		'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
 		dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
diff --git a/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js b/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js
new file mode 100644
index 0000000..ed66239
--- /dev/null
+++ b/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js
@@ -0,0 +1,23 @@
+/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
+/* Written by Abdurahmon Saidov (saidovab at gmail.com). */
+jQuery(function($){
+	$.datepicker.regional['tj'] = {
+		closeText: 'Идома',
+		prevText: '&#x3c;Қафо',
+		nextText: 'Пеш&#x3e;',
+		currentText: 'Имрӯз',
+		monthNames: ['Январ','Феврал','Март','Апрел','Май','Июн',
+		'Июл','Август','Сентябр','Октябр','Ноябр','Декабр'],
+		monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн',
+		'Июл','Авг','Сен','Окт','Ноя','Дек'],
+		dayNames: ['якшанбе','душанбе','сешанбе','чоршанбе','панҷшанбе','ҷумъа','шанбе'],
+		dayNamesShort: ['якш','душ','сеш','чор','пан','ҷум','шан'],
+		dayNamesMin: ['Як','Дш','Сш','Чш','Пш','Ҷм','Шн'],
+		weekHeader: 'Хф',
+		dateFormat: 'dd.mm.yy',
+		firstDay: 1,
+		isRTL: false,
+		showMonthAfterYear: false,
+		yearSuffix: ''};
+	$.datepicker.setDefaults($.datepicker.regional['tj']);
+});
\ No newline at end of file
diff --git a/development-bundle/ui/jquery-ui-1.8.custom.js b/development-bundle/ui/jquery-ui-1.8.12.custom.js
similarity index 77%
rename from development-bundle/ui/jquery-ui-1.8.custom.js
rename to development-bundle/ui/jquery-ui-1.8.12.custom.js
index 1c7f364..67856df 100644
--- a/development-bundle/ui/jquery-ui-1.8.custom.js
+++ b/development-bundle/ui/jquery-ui-1.8.12.custom.js
@@ -1,78 +1,33 @@
 /*!
- * jQuery UI 1.8
+ * jQuery UI 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI
  */
-;jQuery.ui || (function($) {
+(function( $, undefined ) {
 
-//Helper functions and ui object
-$.ui = {
-	version: "1.8",
-
-	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
-	plugin: {
-		add: function(module, option, set) {
-			var proto = $.ui[module].prototype;
-			for(var i in set) {
-				proto.plugins[i] = proto.plugins[i] || [];
-				proto.plugins[i].push([option, set[i]]);
-			}
-		},
-		call: function(instance, name, args) {
-			var set = instance.plugins[name];
-			if(!set || !instance.element[0].parentNode) { return; }
-
-			for (var i = 0; i < set.length; i++) {
-				if (instance.options[set[i][0]]) {
-					set[i][1].apply(instance.element, args);
-				}
-			}
-		}
-	},
-
-	contains: function(a, b) {
-		return document.compareDocumentPosition
-			? a.compareDocumentPosition(b) & 16
-			: a !== b && a.contains(b);
-	},
-
-	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;
-	},
-
-	isOverAxis: function(x, reference, size) {
-		//Determines when x coordinate is over "b" element axis
-		return (x > reference) && (x < (reference + size));
-	},
+// 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;
+}
 
-	isOver: function(y, x, top, left, height, width) {
-		//Determines when x, y coordinates is over "b" element
-		return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
-	},
+$.extend( $.ui, {
+	version: "1.8.12",
 
 	keyCode: {
+		ALT: 18,
 		BACKSPACE: 8,
 		CAPS_LOCK: 20,
 		COMMA: 188,
+		COMMAND: 91,
+		COMMAND_LEFT: 91, // COMMAND
+		COMMAND_RIGHT: 93,
 		CONTROL: 17,
 		DELETE: 46,
 		DOWN: 40,
@@ -82,6 +37,7 @@ $.ui = {
 		HOME: 36,
 		INSERT: 45,
 		LEFT: 37,
+		MENU: 93, // COMMAND_RIGHT
 		NUMPAD_ADD: 107,
 		NUMPAD_DECIMAL: 110,
 		NUMPAD_DIVIDE: 111,
@@ -95,42 +51,31 @@ $.ui = {
 		SHIFT: 16,
 		SPACE: 32,
 		TAB: 9,
-		UP: 38
+		UP: 38,
+		WINDOWS: 91 // COMMAND
 	}
-};
+});
 
-//jQuery plugins
+// plugins
 $.fn.extend({
 	_focus: $.fn.focus,
-	focus: function(delay, fn) {
-		return typeof delay === 'number'
-			? this.each(function() {
+	focus: function( delay, fn ) {
+		return typeof delay === "number" ?
+			this.each(function() {
 				var elem = this;
 				setTimeout(function() {
-					$(elem).focus();
-					(fn && fn.call(elem));
-				}, delay);
-			})
-			: this._focus.apply(this, arguments);
-	},
-	
-	enableSelection: function() {
-		return this
-			.attr('unselectable', 'off')
-			.css('MozUserSelect', '')
-			.unbind('selectstart.ui');
-	},
-
-	disableSelection: function() {
-		return this
-			.attr('unselectable', 'on')
-			.css('MozUserSelect', 'none')
-			.bind('selectstart.ui', function() { return false; });
+					$( elem ).focus();
+					if ( fn ) {
+						fn.call( elem );
+					}
+				}, delay );
+			}) :
+			this._focus.apply( this, arguments );
 	},
 
 	scrollParent: function() {
 		var scrollParent;
-		if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
+		if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
 			scrollParent = this.parents().filter(function() {
 				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
 			}).eq(0);
@@ -143,26 +88,25 @@ $.fn.extend({
 		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
 	},
 
-	zIndex: function(zIndex) {
-		if (zIndex !== undefined) {
-			return this.css('zIndex', zIndex);
+	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) {
+
+		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')
-				{
+				position = elem.css( "position" );
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
 					// IE returns 0 when zIndex is not specified
 					// other browsers return a string
 					// we ignore the case of nested elements with an explicit value of 0
 					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
-					value = parseInt(elem.css('zIndex'));
-					if (!isNaN(value) && value != 0) {
+					value = parseInt( elem.css( "zIndex" ), 10 );
+					if ( !isNaN( value ) && value !== 0 ) {
 						return value;
 					}
 				}
@@ -171,61 +115,232 @@ $.fn.extend({
 		}
 
 		return 0;
+	},
+
+	disableSelection: function() {
+		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
+			".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			});
+	},
+
+	enableSelection: function() {
+		return this.unbind( ".ui-disableSelection" );
 	}
 });
 
+$.each( [ "Width", "Height" ], function( i, name ) {
+	var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+		type = name.toLowerCase(),
+		orig = {
+			innerWidth: $.fn.innerWidth,
+			innerHeight: $.fn.innerHeight,
+			outerWidth: $.fn.outerWidth,
+			outerHeight: $.fn.outerHeight
+		};
 
-//Additional selectors
-$.extend($.expr[':'], {
-	data: function(elem, i, match) {
-		return !!$.data(elem, match[3]);
+	function reduce( elem, size, border, margin ) {
+		$.each( side, function() {
+			size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
+			if ( border ) {
+				size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
+			}
+			if ( margin ) {
+				size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
+			}
+		});
+		return size;
+	}
+
+	$.fn[ "inner" + name ] = function( size ) {
+		if ( size === undefined ) {
+			return orig[ "inner" + name ].call( this );
+		}
+
+		return this.each(function() {
+			$( this ).css( type, reduce( this, size ) + "px" );
+		});
+	};
+
+	$.fn[ "outer" + name] = function( size, margin ) {
+		if ( typeof size !== "number" ) {
+			return orig[ "outer" + name ].call( this, size );
+		}
+
+		return this.each(function() {
+			$( this).css( type, reduce( this, size, true, margin ) + "px" );
+		});
+	};
+});
+
+// selectors
+function visible( element ) {
+	return !$( element ).parents().andSelf().filter(function() {
+		return $.curCSS( this, "visibility" ) === "hidden" ||
+			$.expr.filters.hidden( this );
+	}).length;
+}
+
+$.extend( $.expr[ ":" ], {
+	data: function( elem, i, match ) {
+		return !!$.data( elem, match[ 3 ] );
 	},
 
-	focusable: function(element) {
+	focusable: function( element ) {
 		var nodeName = element.nodeName.toLowerCase(),
-			tabIndex = $.attr(element, 'tabindex');
-		return (/input|select|textarea|button|object/.test(nodeName)
+			tabIndex = $.attr( element, "tabindex" );
+		if ( "area" === nodeName ) {
+			var map = element.parentNode,
+				mapName = map.name,
+				img;
+			if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+				return false;
+			}
+			img = $( "img[usemap=#" + mapName + "]" )[0];
+			return !!img && visible( img );
+		}
+		return ( /input|select|textarea|button|object/.test( nodeName )
 			? !element.disabled
-			: 'a' == nodeName || 'area' == nodeName
-				? element.href || !isNaN(tabIndex)
-				: !isNaN(tabIndex))
+			: "a" == nodeName
+				? element.href || !isNaN( tabIndex )
+				: !isNaN( tabIndex ))
 			// the element and all of its ancestors must be visible
-			// the browser may report that the area is hidden
-			&& !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
+			&& visible( element );
 	},
 
-	tabbable: function(element) {
-		var tabIndex = $.attr(element, 'tabindex');
-		return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" );
+		return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
 	}
 });
 
-})(jQuery);
+// support
+$(function() {
+	var body = document.body,
+		div = body.appendChild( div = document.createElement( "div" ) );
+
+	$.extend( div.style, {
+		minHeight: "100px",
+		height: "auto",
+		padding: 0,
+		borderWidth: 0
+	});
+
+	$.support.minHeight = div.offsetHeight === 100;
+	$.support.selectstart = "onselectstart" in div;
+
+	// set display to none to avoid a layout bug in IE
+	// http://dev.jquery.com/ticket/4014
+	body.removeChild( div ).style.display = "none";
+});
+
+
+
+
+
+// deprecated
+$.extend( $.ui, {
+	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
+	plugin: {
+		add: function( module, option, set ) {
+			var proto = $.ui[ module ].prototype;
+			for ( var i in set ) {
+				proto.plugins[ i ] = proto.plugins[ i ] || [];
+				proto.plugins[ i ].push( [ option, set[ i ] ] );
+			}
+		},
+		call: function( instance, name, args ) {
+			var set = instance.plugins[ name ];
+			if ( !set || !instance.element[ 0 ].parentNode ) {
+				return;
+			}
+	
+			for ( var i = 0; i < set.length; i++ ) {
+				if ( instance.options[ set[ i ][ 0 ] ] ) {
+					set[ i ][ 1 ].apply( instance.element, args );
+				}
+			}
+		}
+	},
+	
+	// will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
+	contains: function( a, b ) {
+		return document.compareDocumentPosition ?
+			a.compareDocumentPosition( b ) & 16 :
+			a !== b && a.contains( b );
+	},
+	
+	// only used by resizable
+	hasScroll: function( el, a ) {
+	
+		//If overflow is hidden, the element might have extra content, but the user wants to hide it
+		if ( $( el ).css( "overflow" ) === "hidden") {
+			return false;
+		}
+	
+		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
+			has = false;
+	
+		if ( el[ scroll ] > 0 ) {
+			return true;
+		}
+	
+		// TODO: determine which cases actually cause this to happen
+		// if the element doesn't have the scroll set, see if it's possible to
+		// set the scroll
+		el[ scroll ] = 1;
+		has = ( el[ scroll ] > 0 );
+		el[ scroll ] = 0;
+		return has;
+	},
+	
+	// these are odd functions, fix the API or move into individual plugins
+	isOverAxis: function( x, reference, size ) {
+		//Determines when x coordinate is over "b" element axis
+		return ( x > reference ) && ( x < ( reference + size ) );
+	},
+	isOver: function( y, x, top, left, height, width ) {
+		//Determines when x, y coordinates is over "b" element
+		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
+	}
+});
+
+})( jQuery );
 /*!
- * jQuery UI Widget 1.8
+ * jQuery UI Widget 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Widget
  */
-(function( $ ) {
+(function( $, undefined ) {
 
-var _remove = $.fn.remove;
-
-$.fn.remove = function( selector, keepData ) {
-	return this.each(function() {
-		if ( !keepData ) {
-			if ( !selector || $.filter( selector, [ this ] ).length ) {
-				$( "*", this ).add( this ).each(function() {
-					$( this ).triggerHandler( "remove" );
-				});
-			}
+// jQuery 1.4+
+if ( $.cleanData ) {
+	var _cleanData = $.cleanData;
+	$.cleanData = function( elems ) {
+		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+			$( elem ).triggerHandler( "remove" );
 		}
-		return _remove.call( $(this), selector, keepData );
-	});
-};
+		_cleanData( elems );
+	};
+} else {
+	var _remove = $.fn.remove;
+	$.fn.remove = function( selector, keepData ) {
+		return this.each(function() {
+			if ( !keepData ) {
+				if ( !selector || $.filter( selector, [ this ] ).length ) {
+					$( "*", this ).add( [ this ] ).each(function() {
+						$( this ).triggerHandler( "remove" );
+					});
+				}
+			}
+			return _remove.call( $(this), selector, keepData );
+		});
+	};
+}
 
 $.widget = function( name, base, prototype ) {
 	var namespace = name.split( "." )[ 0 ],
@@ -260,7 +375,7 @@ $.widget = function( name, base, prototype ) {
 //			basePrototype[ key ] = $.extend( {}, val );
 //		}
 //	});
-	basePrototype.options = $.extend( {}, basePrototype.options );
+	basePrototype.options = $.extend( true, {}, basePrototype.options );
 	$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
 		namespace: namespace,
 		widgetName: name,
@@ -283,7 +398,7 @@ $.widget.bridge = function( name, object ) {
 			options;
 
 		// prevent calls to internal methods
-		if ( isMethodCall && options.substring( 0, 1 ) === "_" ) {
+		if ( isMethodCall && options.charAt( 0 ) === "_" ) {
 			return returnValue;
 		}
 
@@ -293,6 +408,15 @@ $.widget.bridge = function( name, object ) {
 					methodValue = instance && $.isFunction( instance[options] ) ?
 						instance[ options ].apply( instance, args ) :
 						instance;
+				// TODO: add this back in 1.9 and use $.error() (see #5972)
+//				if ( !instance ) {
+//					throw "cannot call methods on " + name + " prior to initialization; " +
+//						"attempted to call method '" + options + "'";
+//				}
+//				if ( !$.isFunction( instance[options] ) ) {
+//					throw "no such method '" + options + "' for " + name + " widget instance";
+//				}
+//				var methodValue = instance[ options ].apply( instance, args );
 				if ( methodValue !== instance && methodValue !== undefined ) {
 					returnValue = methodValue;
 					return false;
@@ -302,10 +426,7 @@ $.widget.bridge = function( name, object ) {
 			this.each(function() {
 				var instance = $.data( this, name );
 				if ( instance ) {
-					if ( options ) {
-						instance.option( options );
-					}
-					instance._init();
+					instance.option( options || {} )._init();
 				} else {
 					$.data( this, name, new object( options, this ) );
 				}
@@ -332,10 +453,11 @@ $.Widget.prototype = {
 	_createWidget: function( options, element ) {
 		// $.widget.bridge stores the plugin instance, but we do it anyway
 		// so that it's stored even before the _create function runs
-		this.element = $( element ).data( this.widgetName, this );
+		$.data( element, this.widgetName, this );
+		this.element = $( element );
 		this.options = $.extend( true, {},
 			this.options,
-			$.metadata && $.metadata.get( element )[ this.widgetName ],
+			this._getCreateOptions(),
 			options );
 
 		var self = this;
@@ -344,8 +466,12 @@ $.Widget.prototype = {
 		});
 
 		this._create();
+		this._trigger( "create" );
 		this._init();
 	},
+	_getCreateOptions: function() {
+		return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
+	},
 	_create: function() {},
 	_init: function() {},
 
@@ -358,7 +484,7 @@ $.Widget.prototype = {
 			.removeAttr( "aria-disabled" )
 			.removeClass(
 				this.widgetBaseClass + "-disabled " +
-				this.namespace + "-state-disabled" );
+				"ui-state-disabled" );
 	},
 
 	widget: function() {
@@ -366,12 +492,11 @@ $.Widget.prototype = {
 	},
 
 	option: function( key, value ) {
-		var options = key,
-			self = this;
+		var options = key;
 
 		if ( arguments.length === 0 ) {
 			// don't return a reference to the internal hash
-			return $.extend( {}, self.options );
+			return $.extend( {}, this.options );
 		}
 
 		if  (typeof key === "string" ) {
@@ -382,11 +507,17 @@ $.Widget.prototype = {
 			options[ key ] = value;
 		}
 
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var self = this;
 		$.each( options, function( key, value ) {
 			self._setOption( key, value );
 		});
 
-		return self;
+		return this;
 	},
 	_setOption: function( key, value ) {
 		this.options[ key ] = value;
@@ -395,7 +526,7 @@ $.Widget.prototype = {
 			this.widget()
 				[ value ? "addClass" : "removeClass"](
 					this.widgetBaseClass + "-disabled" + " " +
-					this.namespace + "-state-disabled" )
+					"ui-state-disabled" )
 				.attr( "aria-disabled", value );
 		}
 
@@ -438,18 +569,18 @@ $.Widget.prototype = {
 
 })( jQuery );
 /*!
- * jQuery UI Mouse 1.8
+ * jQuery UI Mouse 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Mouse
  *
  * Depends:
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.mouse", {
 	options: {
@@ -465,8 +596,8 @@ $.widget("ui.mouse", {
 				return self._mouseDown(event);
 			})
 			.bind('click.'+this.widgetName, function(event) {
-				if(self._preventClickEvent) {
-					self._preventClickEvent = false;
+				if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
+				    $.removeData(event.target, self.widgetName + '.preventClickEvent');
 					event.stopImmediatePropagation();
 					return false;
 				}
@@ -514,6 +645,11 @@ $.widget("ui.mouse", {
 			}
 		}
 
+		// 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 self._mouseMove(event);
@@ -525,18 +661,14 @@ $.widget("ui.mouse", {
 			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
 			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
-		// preventDefault() is used to prevent the selection of text here -
-		// however, in Safari, this causes select boxes not to be selectable
-		// anymore, so this fix is needed
-		($.browser.safari || event.preventDefault());
-
+		event.preventDefault();
 		event.originalEvent.mouseHandled = true;
 		return true;
 	},
 
 	_mouseMove: function(event) {
 		// IE mouseup check - mouseup happened when mouse was out of window
-		if ($.browser.msie && !event.button) {
+		if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {
 			return this._mouseUp(event);
 		}
 
@@ -561,7 +693,11 @@ $.widget("ui.mouse", {
 
 		if (this._mouseStarted) {
 			this._mouseStarted = false;
-			this._preventClickEvent = (event.target == this._mouseDownEvent.target);
+
+			if (event.target == this._mouseDownEvent.target) {
+			    $.data(event.target, this.widgetName + '.preventClickEvent', true);
+			}
+
 			this._mouseStop(event);
 		}
 
@@ -589,22 +725,21 @@ $.widget("ui.mouse", {
 
 })(jQuery);
 /*
- * jQuery UI Position 1.8
+ * jQuery UI Position 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Position
  */
-(function( $ ) {
+(function( $, undefined ) {
 
 $.ui = $.ui || {};
 
 var horizontalPositions = /left|center|right/,
-	horizontalDefault = "center",
 	verticalPositions = /top|center|bottom/,
-	verticalDefault = "center",
+	center = "center",
 	_position = $.fn.position,
 	_offset = $.fn.offset;
 
@@ -617,21 +752,23 @@ $.fn.position = function( options ) {
 	options = $.extend( {}, options );
 
 	var target = $( options.of ),
+		targetElem = target[0],
 		collision = ( options.collision || "flip" ).split( " " ),
 		offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
 		targetWidth,
 		targetHeight,
 		basePosition;
 
-	if ( options.of.nodeType === 9 ) {
+	if ( targetElem.nodeType === 9 ) {
 		targetWidth = target.width();
 		targetHeight = target.height();
 		basePosition = { top: 0, left: 0 };
-	} else if ( options.of.scrollTo && options.of.document ) {
+	// TODO: use $.isWindow() in 1.9
+	} else if ( targetElem.setTimeout ) {
 		targetWidth = target.width();
 		targetHeight = target.height();
 		basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
-	} else if ( options.of.preventDefault ) {
+	} else if ( targetElem.preventDefault ) {
 		// force left top to allow flipping
 		options.at = "left top";
 		targetWidth = targetHeight = 0;
@@ -648,13 +785,13 @@ $.fn.position = function( options ) {
 		var pos = ( options[this] || "" ).split( " " );
 		if ( pos.length === 1) {
 			pos = horizontalPositions.test( pos[0] ) ?
-				pos.concat( [verticalDefault] ) :
+				pos.concat( [center] ) :
 				verticalPositions.test( pos[0] ) ?
-					[ horizontalDefault ].concat( pos ) :
-					[ horizontalDefault, verticalDefault ];
+					[ center ].concat( pos ) :
+					[ center, center ];
 		}
-		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : horizontalDefault;
-		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : verticalDefault;
+		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
+		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
 		options[ this ] = pos;
 	});
 
@@ -672,13 +809,13 @@ $.fn.position = function( options ) {
 
 	if ( options.at[0] === "right" ) {
 		basePosition.left += targetWidth;
-	} else if (options.at[0] === horizontalDefault ) {
+	} else if ( options.at[0] === center ) {
 		basePosition.left += targetWidth / 2;
 	}
 
 	if ( options.at[1] === "bottom" ) {
 		basePosition.top += targetHeight;
-	} else if ( options.at[1] === verticalDefault ) {
+	} else if ( options.at[1] === center ) {
 		basePosition.top += targetHeight / 2;
 	}
 
@@ -689,20 +826,36 @@ $.fn.position = function( options ) {
 		var elem = $( this ),
 			elemWidth = elem.outerWidth(),
 			elemHeight = elem.outerHeight(),
-			position = $.extend( {}, basePosition );
+			marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,
+			marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,
+			collisionWidth = elemWidth + marginLeft +
+				( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),
+			collisionHeight = elemHeight + marginTop +
+				( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),
+			position = $.extend( {}, basePosition ),
+			collisionPosition;
 
 		if ( options.my[0] === "right" ) {
 			position.left -= elemWidth;
-		} else if ( options.my[0] === horizontalDefault ) {
+		} else if ( options.my[0] === center ) {
 			position.left -= elemWidth / 2;
 		}
 
 		if ( options.my[1] === "bottom" ) {
 			position.top -= elemHeight;
-		} else if ( options.my[1] === verticalDefault ) {
+		} else if ( options.my[1] === center ) {
 			position.top -= elemHeight / 2;
 		}
 
+		// prevent fractions (see #5280)
+		position.left = Math.round( position.left );
+		position.top = Math.round( position.top );
+
+		collisionPosition = {
+			left: position.left - marginLeft,
+			top: position.top - marginTop
+		};
+
 		$.each( [ "left", "top" ], function( i, dir ) {
 			if ( $.ui.position[ collision[i] ] ) {
 				$.ui.position[ collision[i] ][ dir ]( position, {
@@ -710,6 +863,9 @@ $.fn.position = function( options ) {
 					targetHeight: targetHeight,
 					elemWidth: elemWidth,
 					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
 					offset: offset,
 					my: options.my,
 					at: options.at
@@ -728,41 +884,44 @@ $.ui.position = {
 	fit: {
 		left: function( position, data ) {
 			var win = $( window ),
-				over = position.left + data.elemWidth - win.width() - win.scrollLeft();
-			position.left = over > 0 ? position.left - over : Math.max( 0, position.left );
+				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();
+			position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );
 		},
 		top: function( position, data ) {
 			var win = $( window ),
-				over = position.top + data.elemHeight - win.height() - win.scrollTop();
-			position.top = over > 0 ? position.top - over : Math.max( 0, position.top );
+				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();
+			position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );
 		}
 	},
 
 	flip: {
 		left: function( position, data ) {
-			if ( data.at[0] === "center" ) {
+			if ( data.at[0] === center ) {
 				return;
 			}
 			var win = $( window ),
-				over = position.left + data.elemWidth - win.width() - win.scrollLeft(),
+				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),
 				myOffset = data.my[ 0 ] === "left" ?
 					-data.elemWidth :
 					data.my[ 0 ] === "right" ?
 						data.elemWidth :
 						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					-data.targetWidth,
 				offset = -2 * data.offset[ 0 ];
-			position.left += position.left < 0 ?
-				myOffset + data.targetWidth + offset :
+			position.left += data.collisionPosition.left < 0 ?
+				myOffset + atOffset + offset :
 				over > 0 ?
-					myOffset - data.targetWidth + offset :
+					myOffset + atOffset + offset :
 					0;
 		},
 		top: function( position, data ) {
-			if ( data.at[1] === "center" ) {
+			if ( data.at[1] === center ) {
 				return;
 			}
 			var win = $( window ),
-				over = position.top + data.elemHeight - win.height() - win.scrollTop(),
+				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
 				myOffset = data.my[ 1 ] === "top" ?
 					-data.elemHeight :
 					data.my[ 1 ] === "bottom" ?
@@ -772,8 +931,8 @@ $.ui.position = {
 					data.targetHeight :
 					-data.targetHeight,
 				offset = -2 * data.offset[ 1 ];
-			position.top += position.top < 0 ?
-				myOffset + data.targetHeight + offset :
+			position.top += data.collisionPosition.top < 0 ?
+				myOffset + atOffset + offset :
 				over > 0 ?
 					myOffset + atOffset + offset :
 					0;
@@ -818,11 +977,11 @@ if ( !$.offset.setOffset ) {
 
 }( jQuery ));
 /*
- * jQuery UI Draggable 1.8
+ * jQuery UI Draggable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Draggables
  *
@@ -831,7 +990,7 @@ if ( !$.offset.setOffset ) {
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.draggable", $.ui.mouse, {
 	widgetEventPrefix: "drag",
@@ -1011,8 +1170,8 @@ $.widget("ui.draggable", $.ui.mouse, {
 			this.dropped = false;
 		}
 		
-		//if the original element is removed, don't bother to continue
-		if(!this.element[0] || !this.element[0].parentNode)
+		//if the original element is removed, don't bother to continue if helper is set to "original"
+		if((!this.element[0] || !this.element[0].parentNode) && 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))) {
@@ -1136,7 +1295,9 @@ $.widget("ui.draggable", $.ui.mouse, {
 	_cacheMargins: function() {
 		this.margins = {
 			left: (parseInt(this.element.css("marginLeft"),10) || 0),
-			top: (parseInt(this.element.css("marginTop"),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)
 		};
 	},
 
@@ -1152,10 +1313,10 @@ $.widget("ui.draggable", $.ui.mouse, {
 		var 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
+			(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) {
@@ -1164,10 +1325,10 @@ $.widget("ui.draggable", $.ui.mouse, {
 			var 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
+				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),
+				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0),
+				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 - this.margins.right,
+				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  - this.margins.bottom
 			];
 		} else if(o.containment.constructor == Array) {
 			this.containment = o.containment;
@@ -1278,7 +1439,7 @@ $.widget("ui.draggable", $.ui.mouse, {
 });
 
 $.extend($.ui.draggable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 $.ui.plugin.add("draggable", "connectToSortable", {
@@ -1294,7 +1455,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 					instance: sortable,
 					shouldRevert: sortable.options.revert
 				});
-				sortable._refreshItems();	//Do a one-time refresh at start to refresh the containerCache
+				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);
 			}
 		});
@@ -1615,11 +1776,11 @@ $.ui.plugin.add("draggable", "zIndex", {
 
 })(jQuery);
 /*
- * jQuery UI Droppable 1.8
+ * jQuery UI Droppable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Droppables
  *
@@ -1629,7 +1790,7 @@ $.ui.plugin.add("draggable", "zIndex", {
  *	jquery.ui.mouse.js
  *	jquery.ui.draggable.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.droppable", {
 	widgetEventPrefix: "drop",
@@ -1763,7 +1924,7 @@ $.widget("ui.droppable", {
 });
 
 $.extend($.ui.droppable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 $.ui.intersect = function(draggable, droppable, toleranceMode) {
@@ -1777,8 +1938,8 @@ $.ui.intersect = function(draggable, droppable, toleranceMode) {
 
 	switch (toleranceMode) {
 		case 'fit':
-			return (l < x1 && x2 < r
-				&& t < y1 && y2 < b);
+			return (l <= x1 && x2 <= r
+				&& t <= y1 && y2 <= b);
 			break;
 		case 'intersect':
 			return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
@@ -1828,11 +1989,11 @@ $.ui.ddmanager = {
 			for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item
 			m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; 									//If the element is not visible, continue
 
+			if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
+
 			m[i].offset = m[i].element.offset();
 			m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
 
-			if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
-
 		}
 
 	},
@@ -1900,11 +2061,11 @@ $.ui.ddmanager = {
 
 })(jQuery);
 /*
- * jQuery UI Resizable 1.8
+ * jQuery UI Resizable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Resizables
  *
@@ -1913,7 +2074,7 @@ $.ui.ddmanager = {
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.resizable", $.ui.mouse, {
 	widgetEventPrefix: "resize",
@@ -2223,10 +2384,10 @@ $.widget("ui.resizable", $.ui.mouse, {
 
 		if(this._helper) {
 			var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
-						soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
-							soffsetw = ista ? 0 : self.sizeDiff.width;
+				soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
+				soffsetw = ista ? 0 : self.sizeDiff.width;
 
-			var s = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
+			var s = { width: (self.helper.width()  - soffsetw), height: (self.helper.height() - soffseth) },
 				left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
 				top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
 
@@ -2420,7 +2581,7 @@ $.widget("ui.resizable", $.ui.mouse, {
 });
 
 $.extend($.ui.resizable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 /*
@@ -2429,28 +2590,29 @@ $.extend($.ui.resizable, {
 
 $.ui.plugin.add("resizable", "alsoResize", {
 
-	start: function(event, ui) {
-
+	start: function (event, ui) {
 		var self = $(this).data("resizable"), o = self.options;
 
-		var _store = function(exp) {
+		var _store = function (exp) {
 			$(exp).each(function() {
-				$(this).data("resizable-alsoresize", {
-					width: parseInt($(this).width(), 10), height: parseInt($(this).height(), 10),
-					left: parseInt($(this).css('left'), 10), top: parseInt($(this).css('top'), 10)
+				var el = $(this);
+				el.data("resizable-alsoresize", {
+					width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
+					left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10),
+					position: el.css('position') // to reset Opera on stop()
 				});
 			});
 		};
 
 		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, c) { _store(exp); }); }
+			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){
+	resize: function (event, ui) {
 		var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
 
 		var delta = {
@@ -2458,18 +2620,19 @@ $.ui.plugin.add("resizable", "alsoResize", {
 			top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
 		},
 
-		_alsoResize = function(exp, c) {
+		_alsoResize = function (exp, c) {
 			$(exp).each(function() {
-				var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, css = c && c.length ? c : ['width', 'height', 'top', 'left'];
+				var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+					css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
-				$.each(css || ['width', 'height', 'top', 'left'], function(i, prop) {
+				$.each(css, function (i, prop) {
 					var sum = (start[prop]||0) + (delta[prop]||0);
 					if (sum && sum >= 0)
 						style[prop] = sum || null;
 				});
 
-				//Opera fixing relative position
-				if (/relative/.test(el.css('position')) && $.browser.opera) {
+				// Opera fixing relative position
+				if ($.browser.opera && /relative/.test(el.css('position'))) {
 					self._revertToRelativePosition = true;
 					el.css({ position: 'absolute', top: 'auto', left: 'auto' });
 				}
@@ -2479,22 +2642,33 @@ $.ui.plugin.add("resizable", "alsoResize", {
 		};
 
 		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-			$.each(o.alsoResize, function(exp, c) { _alsoResize(exp, c); });
+			$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
 		}else{
 			_alsoResize(o.alsoResize);
 		}
 	},
 
-	stop: function(event, ui){
-		var self = $(this).data("resizable");
+	stop: function (event, ui) {
+		var self = $(this).data("resizable"), o = self.options;
 
-		//Opera fixing relative position
-		if (self._revertToRelativePosition && $.browser.opera) {
+		var _reset = function (exp) {
+			$(exp).each(function() {
+				var el = $(this);
+				// reset position for Opera - no need to verify it was changed
+				el.css({ position: el.data("resizable-alsoresize").position });
+			});
+		};
+
+		if (self._revertToRelativePosition) {
 			self._revertToRelativePosition = false;
-			el.css({ position: 'relative' });
+			if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
+				$.each(o.alsoResize, function (exp) { _reset(exp); });
+			}else{
+				_reset(o.alsoResize);
+			}
 		}
 
-		$(this).removeData("resizable-alsoresize-start");
+		$(this).removeData("resizable-alsoresize");
 	}
 });
 
@@ -2699,11 +2873,11 @@ var isNumber = function(value) {
 
 })(jQuery);
 /*
- * jQuery UI Selectable 1.8
+ * jQuery UI Selectable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Selectables
  *
@@ -2712,7 +2886,7 @@ var isNumber = function(value) {
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.selectable", $.ui.mouse, {
 	options: {
@@ -2756,9 +2930,7 @@ $.widget("ui.selectable", $.ui.mouse, {
 
 		this._mouseInit();
 
-		this.helper = $(document.createElement('div'))
-			.css({border:'1px dotted black'})
-			.addClass("ui-selectable-helper");
+		this.helper = $("<div class='ui-selectable-helper'></div>");
 	},
 
 	destroy: function() {
@@ -2791,8 +2963,6 @@ $.widget("ui.selectable", $.ui.mouse, {
 		$(options.appendTo).append(this.helper);
 		// position helper (lasso)
 		this.helper.css({
-			"z-index": 100,
-			"position": "absolute",
 			"left": event.clientX,
 			"top": event.clientY,
 			"width": 0,
@@ -2821,14 +2991,23 @@ $.widget("ui.selectable", $.ui.mouse, {
 		$(event.target).parents().andSelf().each(function() {
 			var selectee = $.data(this, "selectable-item");
 			if (selectee) {
-				selectee.$element.removeClass("ui-unselecting").addClass('ui-selecting');
-				selectee.unselecting = false;
-				selectee.selecting = true;
-				selectee.selected = true;
-				// selectable SELECTING callback
-				self._trigger("selecting", event, {
-					selecting: selectee.element
-				});
+				var doSelect = !event.metaKey || !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) {
+					self._trigger("selecting", event, {
+						selecting: selectee.element
+					});
+				} else {
+					self._trigger("unselecting", event, {
+						unselecting: selectee.element
+					});
+				}
 				return false;
 			}
 		});
@@ -2955,16 +3134,16 @@ $.widget("ui.selectable", $.ui.mouse, {
 });
 
 $.extend($.ui.selectable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 })(jQuery);
 /*
- * jQuery UI Sortable 1.8
+ * jQuery UI Sortable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Sortables
  *
@@ -2973,7 +3152,7 @@ $.extend($.ui.selectable, {
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.sortable", $.ui.mouse, {
 	widgetEventPrefix: "sort",
@@ -3010,8 +3189,8 @@ $.widget("ui.sortable", $.ui.mouse, {
 		//Get the items
 		this.refresh();
 
-		//Let's determine if the items are floating
-		this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false;
+		//Let's determine if the items are being displayed horizontally
+		this.floating = this.items.length ? (/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();
@@ -3034,6 +3213,18 @@ $.widget("ui.sortable", $.ui.mouse, {
 		return this;
 	},
 
+	_setOption: function(key, value){
+		if ( key === "disabled" ) {
+			this.options[ key ] = value;
+	
+			this.widget()
+				[ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );
+		} 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) {
 
 		if (this.reverting) {
@@ -3309,7 +3500,7 @@ $.widget("ui.sortable", $.ui.mouse, {
 
 		if(this.dragging) {
 
-			this._mouseUp();
+			this._mouseUp({ target: null });
 
 			if(this.options.helper == "original")
 				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
@@ -3327,21 +3518,23 @@ $.widget("ui.sortable", $.ui.mouse, {
 
 		}
 
-		//$(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();
+		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
-		});
+			$.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);
+			if(this.domPosition.prev) {
+				$(this.domPosition.prev).after(this.currentItem);
+			} else {
+				$(this.domPosition.parent).prepend(this.currentItem);
+			}
 		}
 
 		return this;
@@ -3358,6 +3551,10 @@ $.widget("ui.sortable", $.ui.mouse, {
 			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('&');
 
 	},
@@ -3558,6 +3755,10 @@ $.widget("ui.sortable", $.ui.mouse, {
 		for (var i = this.items.length - 1; i >= 0; i--){
 			var 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;
+
 			var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
 
 			if (!fast) {
@@ -4010,16 +4211,16 @@ $.widget("ui.sortable", $.ui.mouse, {
 });
 
 $.extend($.ui.sortable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 })(jQuery);
 /*
- * jQuery UI Accordion 1.8
+ * jQuery UI Accordion 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Accordion
  *
@@ -4027,12 +4228,12 @@ $.extend($.ui.sortable, {
  *	jquery.ui.core.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
-$.widget("ui.accordion", {
+$.widget( "ui.accordion", {
 	options: {
 		active: 0,
-		animated: 'slide',
+		animated: "slide",
 		autoHeight: true,
 		clearStyle: false,
 		collapsible: false,
@@ -4045,329 +4246,398 @@ $.widget("ui.accordion", {
 		},
 		navigation: false,
 		navigationFilter: function() {
-			return this.href.toLowerCase() == location.href.toLowerCase();
+			return this.href.toLowerCase() === location.href.toLowerCase();
 		}
 	},
+
 	_create: function() {
+		var self = this,
+			options = self.options;
 
-		var o = this.options, self = this;
-		this.running = 0;
+		self.running = 0;
 
-		this.element.addClass("ui-accordion ui-widget ui-helper-reset");
-		
-		// in lack of child-selectors in CSS we need to mark top-LIs in a UL-accordion for some IE-fix
-		if (this.element[0].nodeName == "UL") {
-			this.element.children("li").addClass("ui-accordion-li-fix");
-		}
-
-		this.headers = this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
-			.bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); })
-			.bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); })
-			.bind("focus.accordion", function(){ $(this).addClass('ui-state-focus'); })
-			.bind("blur.accordion", function(){ $(this).removeClass('ui-state-focus'); });
+		self.element
+			.addClass( "ui-accordion ui-widget ui-helper-reset" )
+			// in lack of child-selectors in CSS
+			// we need to mark top-LIs in a UL-accordion for some IE-fix
+			.children( "li" )
+				.addClass( "ui-accordion-li-fix" );
+
+		self.headers = self.element.find( options.header )
+			.addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )
+			.bind( "mouseenter.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).addClass( "ui-state-hover" );
+			})
+			.bind( "mouseleave.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).removeClass( "ui-state-hover" );
+			})
+			.bind( "focus.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).addClass( "ui-state-focus" );
+			})
+			.bind( "blur.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).removeClass( "ui-state-focus" );
+			});
 
-		this.headers
-			.next()
-				.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
+		self.headers.next()
+			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
 
-		if ( o.navigation ) {
-			var current = this.element.find("a").filter(o.navigationFilter);
+		if ( options.navigation ) {
+			var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
 			if ( current.length ) {
-				var header = current.closest(".ui-accordion-header");
+				var header = current.closest( ".ui-accordion-header" );
 				if ( header.length ) {
 					// anchor within header
-					this.active = header;
+					self.active = header;
 				} else {
 					// anchor within content
-					this.active = current.closest(".ui-accordion-content").prev();
+					self.active = current.closest( ".ui-accordion-content" ).prev();
 				}
 			}
 		}
 
-		this.active = this._findActive(this.active || o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
-		this.active.next().addClass('ui-accordion-content-active');
-
-		//Append icon elements
-		this._createIcons();
-
-		// IE7-/Win - Extra vertical space in lists fixed
-		if ($.browser.msie) {
-			this.element.find('a').css('zoom', '1');
-		}
-
-		this.resize();
+		self.active = self._findActive( self.active || options.active )
+			.addClass( "ui-state-default ui-state-active" )
+			.toggleClass( "ui-corner-all" )
+			.toggleClass( "ui-corner-top" );
+		self.active.next().addClass( "ui-accordion-content-active" );
 
-		//ARIA
-		this.element.attr('role','tablist');
+		self._createIcons();
+		self.resize();
+		
+		// ARIA
+		self.element.attr( "role", "tablist" );
 
-		this.headers
-			.attr('role','tab')
-			.bind('keydown', function(event) { return self._keydown(event); })
+		self.headers
+			.attr( "role", "tab" )
+			.bind( "keydown.accordion", function( event ) {
+				return self._keydown( event );
+			})
 			.next()
-			.attr('role','tabpanel');
+				.attr( "role", "tabpanel" );
 
-		this.headers
-			.not(this.active || "")
-			.attr('aria-expanded','false')
-			.attr("tabIndex", "-1")
+		self.headers
+			.not( self.active || "" )
+			.attr({
+				"aria-expanded": "false",
+				"aria-selected": "false",
+				tabIndex: -1
+			})
 			.next()
-			.hide();
+				.hide();
 
 		// make sure at least one header is in the tab order
-		if (!this.active.length) {
-			this.headers.eq(0).attr('tabIndex','0');
+		if ( !self.active.length ) {
+			self.headers.eq( 0 ).attr( "tabIndex", 0 );
 		} else {
-			this.active
-				.attr('aria-expanded','true')
-				.attr('tabIndex', '0');
+			self.active
+				.attr({
+					"aria-expanded": "true",
+					"aria-selected": "true",
+					tabIndex: 0
+				});
 		}
 
-		// only need links in taborder for Safari
-		if (!$.browser.safari)
-			this.headers.find('a').attr('tabIndex','-1');
+		// only need links in tab order for Safari
+		if ( !$.browser.safari ) {
+			self.headers.find( "a" ).attr( "tabIndex", -1 );
+		}
 
-		if (o.event) {
-			this.headers.bind((o.event) + ".accordion", function(event) {
-				self._clickHandler.call(self, event, this);
+		if ( options.event ) {
+			self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {
+				self._clickHandler.call( self, event, this );
 				event.preventDefault();
 			});
 		}
-
 	},
-	
+
 	_createIcons: function() {
-		var o = this.options;
-		if (o.icons) {
-			$("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
-			this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
-			this.element.addClass("ui-accordion-icons");
+		var options = this.options;
+		if ( options.icons ) {
+			$( "<span></span>" )
+				.addClass( "ui-icon " + options.icons.header )
+				.prependTo( this.headers );
+			this.active.children( ".ui-icon" )
+				.toggleClass(options.icons.header)
+				.toggleClass(options.icons.headerSelected);
+			this.element.addClass( "ui-accordion-icons" );
 		}
 	},
-	
+
 	_destroyIcons: function() {
-		this.headers.children(".ui-icon").remove();
-		this.element.removeClass("ui-accordion-icons");
+		this.headers.children( ".ui-icon" ).remove();
+		this.element.removeClass( "ui-accordion-icons" );
 	},
 
 	destroy: function() {
-		var o = this.options;
+		var options = this.options;
 
 		this.element
-			.removeClass("ui-accordion ui-widget ui-helper-reset")
-			.removeAttr("role")
-			.unbind('.accordion')
-			.removeData('accordion');
+			.removeClass( "ui-accordion ui-widget ui-helper-reset" )
+			.removeAttr( "role" );
 
 		this.headers
-			.unbind(".accordion")
-			.removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
-			.removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");
+			.unbind( ".accordion" )
+			.removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-expanded" )
+			.removeAttr( "aria-selected" )
+			.removeAttr( "tabIndex" );
 
-		this.headers.find("a").removeAttr("tabindex");
+		this.headers.find( "a" ).removeAttr( "tabIndex" );
 		this._destroyIcons();
-		var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
-		if (o.autoHeight || o.fillHeight) {
-			contents.css("height", "");
+		var contents = this.headers.next()
+			.css( "display", "" )
+			.removeAttr( "role" )
+			.removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" );
+		if ( options.autoHeight || options.fillHeight ) {
+			contents.css( "height", "" );
 		}
 
-		return this;
+		return $.Widget.prototype.destroy.call( this );
 	},
-	
-	_setOption: function(key, value) {
-		$.Widget.prototype._setOption.apply(this, arguments);
+
+	_setOption: function( key, value ) {
+		$.Widget.prototype._setOption.apply( this, arguments );
 			
-		if (key == "active") {
-			this.activate(value);
+		if ( key == "active" ) {
+			this.activate( value );
 		}
-		if (key == "icons") {
+		if ( key == "icons" ) {
 			this._destroyIcons();
-			if (value) {
+			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())
+				[ value ? "addClass" : "removeClass" ](
+					"ui-accordion-disabled ui-state-disabled" );
+		}
 	},
 
-	_keydown: function(event) {
-
-		var o = this.options, keyCode = $.ui.keyCode;
-
-		if (o.disabled || event.altKey || event.ctrlKey)
+	_keydown: function( event ) {
+		if ( this.options.disabled || event.altKey || event.ctrlKey ) {
 			return;
+		}
 
-		var length = this.headers.length;
-		var currentIndex = this.headers.index(event.target);
-		var toFocus = false;
+		var keyCode = $.ui.keyCode,
+			length = this.headers.length,
+			currentIndex = this.headers.index( event.target ),
+			toFocus = false;
 
-		switch(event.keyCode) {
+		switch ( event.keyCode ) {
 			case keyCode.RIGHT:
 			case keyCode.DOWN:
-				toFocus = this.headers[(currentIndex + 1) % length];
+				toFocus = this.headers[ ( currentIndex + 1 ) % length ];
 				break;
 			case keyCode.LEFT:
 			case keyCode.UP:
-				toFocus = this.headers[(currentIndex - 1 + length) % length];
+				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
 				break;
 			case keyCode.SPACE:
 			case keyCode.ENTER:
-				this._clickHandler({ target: event.target }, event.target);
+				this._clickHandler( { target: event.target }, event.target );
 				event.preventDefault();
 		}
 
-		if (toFocus) {
-			$(event.target).attr('tabIndex','-1');
-			$(toFocus).attr('tabIndex','0');
+		if ( toFocus ) {
+			$( event.target ).attr( "tabIndex", -1 );
+			$( toFocus ).attr( "tabIndex", 0 );
 			toFocus.focus();
 			return false;
 		}
 
 		return true;
-
 	},
 
 	resize: function() {
+		var options = this.options,
+			maxHeight;
 
-		var o = this.options, maxHeight;
-
-		if (o.fillSpace) {
-			
-			if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); }
+		if ( options.fillSpace ) {
+			if ( $.browser.msie ) {
+				var defOverflow = this.element.parent().css( "overflow" );
+				this.element.parent().css( "overflow", "hidden");
+			}
 			maxHeight = this.element.parent().height();
-			if($.browser.msie) { this.element.parent().css('overflow', defOverflow); }
-	
+			if ($.browser.msie) {
+				this.element.parent().css( "overflow", defOverflow );
+			}
+
 			this.headers.each(function() {
-				maxHeight -= $(this).outerHeight(true);
+				maxHeight -= $( this ).outerHeight( true );
 			});
 
-			this.headers.next().each(function() {
-    		   $(this).height(Math.max(0, maxHeight - $(this).innerHeight() + $(this).height()));
-			}).css('overflow', 'auto');
-
-		} else if ( o.autoHeight ) {
+			this.headers.next()
+				.each(function() {
+					$( this ).height( Math.max( 0, maxHeight -
+						$( this ).innerHeight() + $( this ).height() ) );
+				})
+				.css( "overflow", "auto" );
+		} else if ( options.autoHeight ) {
 			maxHeight = 0;
-			this.headers.next().each(function() {
-				maxHeight = Math.max(maxHeight, $(this).height());
-			}).height(maxHeight);
+			this.headers.next()
+				.each(function() {
+					maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
+				})
+				.height( maxHeight );
 		}
 
 		return this;
 	},
 
-	activate: function(index) {
+	activate: function( index ) {
 		// TODO this gets called on init, changing the option without an explicit call for that
 		this.options.active = index;
 		// call clickHandler with custom event
-		var active = this._findActive(index)[0];
-		this._clickHandler({ target: active }, active);
+		var active = this._findActive( index )[ 0 ];
+		this._clickHandler( { target: active }, active );
 
 		return this;
 	},
 
-	_findActive: function(selector) {
+	_findActive: function( selector ) {
 		return selector
-			? typeof selector == "number"
-				? this.headers.filter(":eq(" + selector + ")")
-				: this.headers.not(this.headers.not(selector))
+			? typeof selector === "number"
+				? this.headers.filter( ":eq(" + selector + ")" )
+				: this.headers.not( this.headers.not( selector ) )
 			: selector === false
-				? $([])
-				: this.headers.filter(":eq(0)");
+				? $( [] )
+				: this.headers.filter( ":eq(0)" );
 	},
 
-	// TODO isn't event.target enough? why the seperate target argument?
-	_clickHandler: function(event, target) {
-
-		var o = this.options;
-		if (o.disabled)
+	// TODO isn't event.target enough? why the separate target argument?
+	_clickHandler: function( event, target ) {
+		var options = this.options;
+		if ( options.disabled ) {
 			return;
+		}
 
 		// called only when using activate(false) to close all parts programmatically
-		if (!event.target) {
-			if (!o.collapsible)
+		if ( !event.target ) {
+			if ( !options.collapsible ) {
 				return;
-			this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
-				.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
-			this.active.next().addClass('ui-accordion-content-active');
+			}
+			this.active
+				.removeClass( "ui-state-active ui-corner-top" )
+				.addClass( "ui-state-default ui-corner-all" )
+				.children( ".ui-icon" )
+					.removeClass( options.icons.headerSelected )
+					.addClass( options.icons.header );
+			this.active.next().addClass( "ui-accordion-content-active" );
 			var toHide = this.active.next(),
 				data = {
-					options: o,
-					newHeader: $([]),
-					oldHeader: o.active,
-					newContent: $([]),
+					options: options,
+					newHeader: $( [] ),
+					oldHeader: options.active,
+					newContent: $( [] ),
 					oldContent: toHide
 				},
-				toShow = (this.active = $([]));
-			this._toggle(toShow, toHide, data);
+				toShow = ( this.active = $( [] ) );
+			this._toggle( toShow, toHide, data );
 			return;
 		}
 
 		// get the click target
-		var clicked = $(event.currentTarget || target);
-		var clickedIsActive = clicked[0] == this.active[0];
-		
+		var clicked = $( event.currentTarget || target ),
+			clickedIsActive = clicked[0] === this.active[0];
+
 		// TODO the option is changed, is that correct?
 		// TODO if it is correct, shouldn't that happen after determining that the click is valid?
-		o.active = o.collapsible && clickedIsActive ? false : $('.ui-accordion-header', this.element).index(clicked);
+		options.active = options.collapsible && clickedIsActive ?
+			false :
+			this.headers.index( clicked );
 
 		// if animations are still active, or the active header is the target, ignore click
-		if (this.running || (!o.collapsible && clickedIsActive)) {
+		if ( this.running || ( !options.collapsible && clickedIsActive ) ) {
 			return;
 		}
 
-		// switch classes
-		this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
-			.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
-		if (!clickedIsActive) {
-			clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
-				.find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
-			clicked.next().addClass('ui-accordion-content-active');
-		}
-
 		// find elements to show and hide
-		var toShow = clicked.next(),
+		var active = this.active,
+			toShow = clicked.next(),
 			toHide = this.active.next(),
 			data = {
-				options: o,
-				newHeader: clickedIsActive && o.collapsible ? $([]) : clicked,
+				options: options,
+				newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
 				oldHeader: this.active,
-				newContent: clickedIsActive && o.collapsible ? $([]) : toShow,
+				newContent: clickedIsActive && options.collapsible ? $([]) : toShow,
 				oldContent: toHide
 			},
 			down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
 
+		// 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(toShow, toHide, data, clickedIsActive, down);
+		this._toggle( toShow, toHide, data, clickedIsActive, down );
 
-		return;
+		// switch classes
+		active
+			.removeClass( "ui-state-active ui-corner-top" )
+			.addClass( "ui-state-default ui-corner-all" )
+			.children( ".ui-icon" )
+				.removeClass( options.icons.headerSelected )
+				.addClass( options.icons.header );
+		if ( !clickedIsActive ) {
+			clicked
+				.removeClass( "ui-state-default ui-corner-all" )
+				.addClass( "ui-state-active ui-corner-top" )
+				.children( ".ui-icon" )
+					.removeClass( options.icons.header )
+					.addClass( options.icons.headerSelected );
+			clicked
+				.next()
+				.addClass( "ui-accordion-content-active" );
+		}
 
+		return;
 	},
 
-	_toggle: function(toShow, toHide, data, clickedIsActive, down) {
-
-		var o = this.options, self = this;
+	_toggle: function( toShow, toHide, data, clickedIsActive, down ) {
+		var self = this,
+			options = self.options;
 
-		this.toShow = toShow;
-		this.toHide = toHide;
-		this.data = data;
+		self.toShow = toShow;
+		self.toHide = toHide;
+		self.data = data;
 
-		var complete = function() { if(!self) return; return self._completed.apply(self, arguments); };
+		var complete = function() {
+			if ( !self ) {
+				return;
+			}
+			return self._completed.apply( self, arguments );
+		};
 
 		// trigger changestart event
-		this._trigger("changestart", null, this.data);
+		self._trigger( "changestart", null, self.data );
 
 		// count elements to animate
-		this.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
-		if (o.animated) {
+		self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
 
+		if ( options.animated ) {
 			var animOptions = {};
 
-			if ( o.collapsible && clickedIsActive ) {
+			if ( options.collapsible && clickedIsActive ) {
 				animOptions = {
-					toShow: $([]),
+					toShow: $( [] ),
 					toHide: toHide,
 					complete: complete,
 					down: down,
-					autoHeight: o.autoHeight || o.fillSpace
+					autoHeight: options.autoHeight || options.fillSpace
 				};
 			} else {
 				animOptions = {
@@ -4375,101 +4645,120 @@ $.widget("ui.accordion", {
 					toHide: toHide,
 					complete: complete,
 					down: down,
-					autoHeight: o.autoHeight || o.fillSpace
+					autoHeight: options.autoHeight || options.fillSpace
 				};
 			}
 
-			if (!o.proxied) {
-				o.proxied = o.animated;
+			if ( !options.proxied ) {
+				options.proxied = options.animated;
 			}
 
-			if (!o.proxiedDuration) {
-				o.proxiedDuration = o.duration;
+			if ( !options.proxiedDuration ) {
+				options.proxiedDuration = options.duration;
 			}
 
-			o.animated = $.isFunction(o.proxied) ?
-				o.proxied(animOptions) : o.proxied;
+			options.animated = $.isFunction( options.proxied ) ?
+				options.proxied( animOptions ) :
+				options.proxied;
 
-			o.duration = $.isFunction(o.proxiedDuration) ?
-				o.proxiedDuration(animOptions) : o.proxiedDuration;
+			options.duration = $.isFunction( options.proxiedDuration ) ?
+				options.proxiedDuration( animOptions ) :
+				options.proxiedDuration;
 
 			var animations = $.ui.accordion.animations,
-				duration = o.duration,
-				easing = o.animated;
+				duration = options.duration,
+				easing = options.animated;
 
-			if (easing && !animations[easing] && !$.easing[easing]) {
-				easing = 'slide';
+			if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
+				easing = "slide";
 			}
-			if (!animations[easing]) {
-				animations[easing] = function(options) {
-					this.slide(options, {
+			if ( !animations[ easing ] ) {
+				animations[ easing ] = function( options ) {
+					this.slide( options, {
 						easing: easing,
 						duration: duration || 700
 					});
 				};
 			}
 
-			animations[easing](animOptions);
-
+			animations[ easing ]( animOptions );
 		} else {
-
-			if (o.collapsible && clickedIsActive) {
+			if ( options.collapsible && clickedIsActive ) {
 				toShow.toggle();
 			} else {
 				toHide.hide();
 				toShow.show();
 			}
 
-			complete(true);
-
+			complete( true );
 		}
 
 		// TODO assert that the blur and focus triggers are really necessary, remove otherwise
-		toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur();
-		toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus();
-
+		toHide.prev()
+			.attr({
+				"aria-expanded": "false",
+				"aria-selected": "false",
+				tabIndex: -1
+			})
+			.blur();
+		toShow.prev()
+			.attr({
+				"aria-expanded": "true",
+				"aria-selected": "true",
+				tabIndex: 0
+			})
+			.focus();
 	},
 
-	_completed: function(cancel) {
-
-		var o = this.options;
-
+	_completed: function( cancel ) {
 		this.running = cancel ? 0 : --this.running;
-		if (this.running) return;
+		if ( this.running ) {
+			return;
+		}
 
-		if (o.clearStyle) {
-			this.toShow.add(this.toHide).css({
+		if ( this.options.clearStyle ) {
+			this.toShow.add( this.toHide ).css({
 				height: "",
 				overflow: ""
 			});
 		}
-		
+
 		// other classes are removed before the animation; this one needs to stay until completed
-		this.toHide.removeClass("ui-accordion-content-active");
+		this.toHide.removeClass( "ui-accordion-content-active" );
+		// Work around for rendering bug in IE (#5421)
+		if ( this.toHide.length ) {
+			this.toHide.parent()[0].className = this.toHide.parent()[0].className;
+		}
 
-		this._trigger('change', null, this.data);
+		this._trigger( "change", null, this.data );
 	}
-
 });
 
-
-$.extend($.ui.accordion, {
-	version: "1.8",
+$.extend( $.ui.accordion, {
+	version: "1.8.12",
 	animations: {
-		slide: function(options, additions) {
+		slide: function( options, additions ) {
 			options = $.extend({
 				easing: "swing",
 				duration: 300
-			}, options, additions);
+			}, options, additions );
 			if ( !options.toHide.size() ) {
-				options.toShow.animate({height: "show"}, options);
+				options.toShow.animate({
+					height: "show",
+					paddingTop: "show",
+					paddingBottom: "show"
+				}, options );
 				return;
 			}
 			if ( !options.toShow.size() ) {
-				options.toHide.animate({height: "hide"}, options);
+				options.toHide.animate({
+					height: "hide",
+					paddingTop: "hide",
+					paddingBottom: "hide"
+				}, options );
 				return;
 			}
-			var overflow = options.toShow.css('overflow'),
+			var overflow = options.toShow.css( "overflow" ),
 				percentDone = 0,
 				showProps = {},
 				hideProps = {},
@@ -4478,45 +4767,57 @@ $.extend($.ui.accordion, {
 			// fix width before calculating height of hidden element
 			var s = options.toShow;
 			originalWidth = s[0].style.width;
-			s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) );
-			
-			$.each(fxAttrs, function(i, prop) {
-				hideProps[prop] = 'hide';
-				
-				var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/);
-				showProps[prop] = {
-					value: parts[1],
-					unit: parts[2] || 'px'
+			s.width( parseInt( s.parent().width(), 10 )
+				- parseInt( s.css( "paddingLeft" ), 10 )
+				- parseInt( s.css( "paddingRight" ), 10 )
+				- ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )
+				- ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );
+
+			$.each( fxAttrs, function( i, prop ) {
+				hideProps[ prop ] = "hide";
+
+				var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ );
+				showProps[ prop ] = {
+					value: parts[ 1 ],
+					unit: parts[ 2 ] || "px"
 				};
 			});
-			options.toShow.css({ height: 0, overflow: 'hidden' }).show();
-			options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{
-				step: function(now, settings) {
+			options.toShow.css({ height: 0, overflow: "hidden" }).show();
+			options.toHide
+				.filter( ":hidden" )
+					.each( options.complete )
+				.end()
+				.filter( ":visible" )
+				.animate( hideProps, {
+				step: function( now, settings ) {
 					// only calculate the percent when animating height
 					// IE gets very inconsistent results when animating elements
 					// with small values, which is common for padding
-					if (settings.prop == 'height') {
+					if ( settings.prop == "height" ) {
 						percentDone = ( settings.end - settings.start === 0 ) ? 0 :
-							(settings.now - settings.start) / (settings.end - settings.start);
+							( settings.now - settings.start ) / ( settings.end - settings.start );
 					}
-					
-					options.toShow[0].style[settings.prop] =
-						(percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit;
+
+					options.toShow[ 0 ].style[ settings.prop ] =
+						( percentDone * showProps[ settings.prop ].value )
+						+ showProps[ settings.prop ].unit;
 				},
 				duration: options.duration,
 				easing: options.easing,
 				complete: function() {
 					if ( !options.autoHeight ) {
-						options.toShow.css("height", "");
+						options.toShow.css( "height", "" );
 					}
-					options.toShow.css("width", originalWidth);
-					options.toShow.css({overflow: overflow});
+					options.toShow.css({
+						width: originalWidth,
+						overflow: overflow
+					});
 					options.complete();
 				}
 			});
 		},
-		bounceslide: function(options) {
-			this.slide(options, {
+		bounceslide: function( options ) {
+			this.slide( options, {
 				easing: options.down ? "easeOutBounce" : "swing",
 				duration: options.down ? 1000 : 200
 			});
@@ -4524,13 +4825,13 @@ $.extend($.ui.accordion, {
 	}
 });
 
-})(jQuery);
+})( jQuery );
 /*
- * jQuery UI Autocomplete 1.8
+ * jQuery UI Autocomplete 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Autocomplete
  *
@@ -4539,16 +4840,32 @@ $.extend($.ui.accordion, {
  *	jquery.ui.widget.js
  *	jquery.ui.position.js
  */
-(function( $ ) {
+(function( $, undefined ) {
+
+// used to prevent race conditions with remote data sources
+var requestIndex = 0;
 
 $.widget( "ui.autocomplete", {
 	options: {
+		appendTo: "body",
+		autoFocus: false,
+		delay: 300,
 		minLength: 1,
-		delay: 300
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null
 	},
+
+	pending: 0,
+
 	_create: function() {
 		var self = this,
-			doc = this.element[ 0 ].ownerDocument;
+			doc = this.element[ 0 ].ownerDocument,
+			suppressKeyPress;
+
 		this.element
 			.addClass( "ui-autocomplete-input" )
 			.attr( "autocomplete", "off" )
@@ -4559,6 +4876,11 @@ $.widget( "ui.autocomplete", {
 				"aria-haspopup": "true"
 			})
 			.bind( "keydown.autocomplete", function( event ) {
+				if ( self.options.disabled || self.element.attr( "readonly" ) ) {
+					return;
+				}
+
+				suppressKeyPress = false;
 				var keyCode = $.ui.keyCode;
 				switch( event.keyCode ) {
 				case keyCode.PAGE_UP:
@@ -4578,8 +4900,12 @@ $.widget( "ui.autocomplete", {
 					event.preventDefault();
 					break;
 				case keyCode.ENTER:
-					// when menu is open or has focus
+				case keyCode.NUMPAD_ENTER:
+					// when menu is open and has focus
 					if ( self.menu.active ) {
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
 						event.preventDefault();
 					}
 					//passthrough - ENTER and TAB both select the current element
@@ -4587,35 +4913,49 @@ $.widget( "ui.autocomplete", {
 					if ( !self.menu.active ) {
 						return;
 					}
-					self.menu.select();
+					self.menu.select( event );
 					break;
 				case keyCode.ESCAPE:
 					self.element.val( self.term );
 					self.close( event );
 					break;
-				case keyCode.SHIFT:
-				case keyCode.CONTROL:
-				case 18:
-					// ignore metakeys (shift, ctrl, alt)
-					break;
 				default:
 					// keypress is triggered before the input value is changed
 					clearTimeout( self.searching );
 					self.searching = setTimeout(function() {
-						self.search( null, event );
+						// only search if the value has changed
+						if ( self.term != self.element.val() ) {
+							self.selectedItem = null;
+							self.search( null, event );
+						}
 					}, self.options.delay );
 					break;
 				}
 			})
+			.bind( "keypress.autocomplete", function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					event.preventDefault();
+				}
+			})
 			.bind( "focus.autocomplete", function() {
+				if ( self.options.disabled ) {
+					return;
+				}
+
+				self.selectedItem = null;
 				self.previous = self.element.val();
 			})
 			.bind( "blur.autocomplete", function( event ) {
+				if ( self.options.disabled ) {
+					return;
+				}
+
 				clearTimeout( self.searching );
 				// clicks on the menu (or a button to trigger a search) will cause a blur event
-				// TODO try to implement this without a timeout, see clearTimeout in search()
 				self.closing = setTimeout(function() {
 					self.close( event );
+					self._change( event );
 				}, 150 );
 			});
 		this._initSource();
@@ -4624,29 +4964,73 @@ $.widget( "ui.autocomplete", {
 		};
 		this.menu = $( "<ul></ul>" )
 			.addClass( "ui-autocomplete" )
-			.appendTo( "body", doc )
+			.appendTo( $( this.options.appendTo || "body", doc )[0] )
+			// prevent the close-on-blur in case of a "slow" click on the menu (long mousedown)
+			.mousedown(function( event ) {
+				// clicking on the scrollbar causes focus to shift to the body
+				// but we can't detect a mouseup or a click immediately afterward
+				// so we have to track the next mousedown and close the menu if
+				// the user clicks somewhere outside of the autocomplete
+				var menuElement = self.menu.element[ 0 ];
+				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+					setTimeout(function() {
+						$( document ).one( 'mousedown', function( event ) {
+							if ( event.target !== self.element[ 0 ] &&
+								event.target !== menuElement &&
+								!$.ui.contains( menuElement, event.target ) ) {
+								self.close();
+							}
+						});
+					}, 1 );
+				}
+
+				// use another timeout to make sure the blur-event-handler on the input was already triggered
+				setTimeout(function() {
+					clearTimeout( self.closing );
+				}, 13);
+			})
 			.menu({
 				focus: function( event, ui ) {
 					var item = ui.item.data( "item.autocomplete" );
-					if ( false !== self._trigger( "focus", null, { item: item } ) ) {
-						// use value to match what will end up in the input
-						self.element.val( item.value );
+					if ( false !== self._trigger( "focus", event, { item: item } ) ) {
+						// use value to match what will end up in the input, if it was a key event
+						if ( /^key/.test(event.originalEvent.type) ) {
+							self.element.val( item.value );
+						}
 					}
 				},
 				selected: function( event, ui ) {
-					var item = ui.item.data( "item.autocomplete" );
-					if ( false !== self._trigger( "select", event, { item: item } ) ) {
-						self.element.val( item.value );
-					}
-					self.close( event );
-					self.previous = self.element.val();
+					var item = ui.item.data( "item.autocomplete" ),
+						previous = self.previous;
+
 					// only trigger when focus was lost (click on menu)
 					if ( self.element[0] !== doc.activeElement ) {
 						self.element.focus();
+						self.previous = previous;
+						// #6109 - IE triggers two focus events and the second
+						// is asynchronous, so we need to reset the previous
+						// term synchronously and asynchronously :-(
+						setTimeout(function() {
+							self.previous = previous;
+							self.selectedItem = item;
+						}, 1);
+					}
+
+					if ( false !== self._trigger( "select", event, { item: item } ) ) {
+						self.element.val( item.value );
 					}
+					// reset the term after the select event
+					// this allows custom select handling to work properly
+					self.term = self.element.val();
+
+					self.close( event );
+					self.selectedItem = item;
 				},
 				blur: function( event, ui ) {
-					if ( self.menu.element.is(":visible") ) {
+					// don't set the value of the text field if it's already correct
+					// this prevents moving the cursor unnecessarily
+					if ( self.menu.element.is(":visible") &&
+						( self.element.val() !== self.term ) ) {
 						self.element.val( self.term );
 					}
 				}
@@ -4663,7 +5047,7 @@ $.widget( "ui.autocomplete", {
 
 	destroy: function() {
 		this.element
-			.removeClass( "ui-autocomplete-input ui-widget ui-widget-content" )
+			.removeClass( "ui-autocomplete-input" )
 			.removeAttr( "autocomplete" )
 			.removeAttr( "role" )
 			.removeAttr( "aria-autocomplete" )
@@ -4672,29 +5056,50 @@ $.widget( "ui.autocomplete", {
 		$.Widget.prototype.destroy.call( this );
 	},
 
-	_setOption: function( key ) {
+	_setOption: function( key, value ) {
 		$.Widget.prototype._setOption.apply( this, arguments );
 		if ( key === "source" ) {
 			this._initSource();
 		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
 	},
 
 	_initSource: function() {
-		var array,
+		var self = this,
+			array,
 			url;
 		if ( $.isArray(this.options.source) ) {
 			array = this.options.source;
 			this.source = function( request, response ) {
-				// escape regex characters
-				var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
-				response( $.grep( array, function(value) {
-					return matcher.test( value.label || value.value || value );
-				}) );
+				response( $.ui.autocomplete.filter(array, request.term) );
 			};
 		} else if ( typeof this.options.source === "string" ) {
 			url = this.options.source;
 			this.source = function( request, response ) {
-				$.getJSON( url, request, response );
+				if ( self.xhr ) {
+					self.xhr.abort();
+				}
+				self.xhr = $.ajax({
+					url: url,
+					data: request,
+					dataType: "json",
+					autocompleteRequest: ++requestIndex,
+					success: function( data, status ) {
+						if ( this.autocompleteRequest === requestIndex ) {
+							response( data );
+						}
+					},
+					error: function() {
+						if ( this.autocompleteRequest === requestIndex ) {
+							response( [] );
+						}
+					}
+				});
 			};
 		} else {
 			this.source = this.options.source;
@@ -4703,12 +5108,16 @@ $.widget( "ui.autocomplete", {
 
 	search: function( value, event ) {
 		value = value != null ? value : this.element.val();
+
+		// always save the actual value, not the one passed as an argument
+		this.term = this.element.val();
+
 		if ( value.length < this.options.minLength ) {
 			return this.close( event );
 		}
 
 		clearTimeout( this.closing );
-		if ( this._trigger("search") === false ) {
+		if ( this._trigger( "search", event ) === false ) {
 			return;
 		}
 
@@ -4716,34 +5125,38 @@ $.widget( "ui.autocomplete", {
 	},
 
 	_search: function( value ) {
-		this.term = this.element
-			.addClass( "ui-autocomplete-loading" )
-			// always save the actual value, not the one passed as an argument
-			.val();
+		this.pending++;
+		this.element.addClass( "ui-autocomplete-loading" );
 
 		this.source( { term: value }, this.response );
 	},
 
 	_response: function( content ) {
-		if ( content.length ) {
+		if ( !this.options.disabled && content && content.length ) {
 			content = this._normalize( content );
 			this._suggest( content );
 			this._trigger( "open" );
 		} else {
 			this.close();
 		}
-		this.element.removeClass( "ui-autocomplete-loading" );
+		this.pending--;
+		if ( !this.pending ) {
+			this.element.removeClass( "ui-autocomplete-loading" );
+		}
 	},
 
 	close: function( event ) {
 		clearTimeout( this.closing );
 		if ( this.menu.element.is(":visible") ) {
-			this._trigger( "close", event );
 			this.menu.element.hide();
 			this.menu.deactivate();
+			this._trigger( "close", event );
 		}
+	},
+	
+	_change: function( event ) {
 		if ( this.previous !== this.element.val() ) {
-			this._trigger( "change", event );
+			this._trigger( "change", event, { item: this.selectedItem } );
 		}
 	},
 
@@ -4768,26 +5181,33 @@ $.widget( "ui.autocomplete", {
 
 	_suggest: function( items ) {
 		var ul = this.menu.element
-				.empty()
-				.zIndex( this.element.zIndex() + 1 ),
-			menuWidth,
-			textWidth;
+			.empty()
+			.zIndex( this.element.zIndex() + 1 );
 		this._renderMenu( ul, items );
 		// TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate
 		this.menu.deactivate();
 		this.menu.refresh();
-		this.menu.element.show().position({
-			my: "left top",
-			at: "left bottom",
-			of: this.element,
-			collision: "none"
-		});
 
-		menuWidth = ul.width( "" ).width();
-		textWidth = this.element.width();
-		ul.width( Math.max( menuWidth, textWidth ) );
+		// size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend({
+			of: this.element
+		}, this.options.position ));
+
+		if ( this.options.autoFocus ) {
+			this.menu.next( new $.Event("mouseover") );
+		}
 	},
-	
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+			ul.width( "" ).outerWidth(),
+			this.element.outerWidth()
+		) );
+	},
+
 	_renderMenu: function( ul, items ) {
 		var self = this;
 		$.each( items, function( index, item ) {
@@ -4798,7 +5218,7 @@ $.widget( "ui.autocomplete", {
 	_renderItem: function( ul, item) {
 		return $( "<li></li>" )
 			.data( "item.autocomplete", item )
-			.append( "<a>" + item.label + "</a>" )
+			.append( $( "<a></a>" ).text( item.label ) )
 			.appendTo( ul );
 	},
 
@@ -4813,7 +5233,7 @@ $.widget( "ui.autocomplete", {
 			this.menu.deactivate();
 			return;
 		}
-		this.menu[ direction ]();
+		this.menu[ direction ]( event );
 	},
 
 	widget: function() {
@@ -4823,7 +5243,13 @@ $.widget( "ui.autocomplete", {
 
 $.extend( $.ui.autocomplete, {
 	escapeRegex: function( value ) {
-		return value.replace( /([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1" );
+		return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+	},
+	filter: function(array, term) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
+		return $.grep( array, function(value) {
+			return matcher.test( value.label || value.value || value );
+		});
 	}
 });
 
@@ -4836,9 +5262,9 @@ $.extend( $.ui.autocomplete, {
  * it for the next release. You're welcome to give it a try anyway and give us feedback,
  * as long as you're okay with migrating your code later on. We can help with that, too.
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Menu
  *
@@ -4857,10 +5283,13 @@ $.widget("ui.menu", {
 				role: "listbox",
 				"aria-activedescendant": "ui-active-menuitem"
 			})
-			.click(function(e) {
+			.click(function( event ) {
+				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
+					return;
+				}
 				// temporary
-				e.preventDefault();
-				self.select();
+				event.preventDefault();
+				self.select( event );
 			});
 		this.refresh();
 	},
@@ -4877,15 +5306,15 @@ $.widget("ui.menu", {
 			.addClass("ui-corner-all")
 			.attr("tabindex", -1)
 			// mouseenter doesn't work with event delegation
-			.mouseenter(function() {
-				self.activate($(this).parent());
+			.mouseenter(function( event ) {
+				self.activate( event, $(this).parent() );
 			})
 			.mouseleave(function() {
 				self.deactivate();
 			});
 	},
 
-	activate: function(item) {
+	activate: function( event, item ) {
 		this.deactivate();
 		if (this.hasScroll()) {
 			var offset = item.offset().top - this.element.offset().top,
@@ -4893,7 +5322,7 @@ $.widget("ui.menu", {
 				elementHeight = this.element.height();
 			if (offset < 0) {
 				this.element.attr("scrollTop", scroll + offset);
-			} else if (offset > elementHeight) {
+			} else if (offset >= elementHeight) {
 				this.element.attr("scrollTop", scroll + offset - elementHeight + item.height());
 			}
 		}
@@ -4902,7 +5331,7 @@ $.widget("ui.menu", {
 				.addClass("ui-state-hover")
 				.attr("id", "ui-active-menuitem")
 			.end();
-		this._trigger("focus", null, { item: item });
+		this._trigger("focus", event, { item: item });
 	},
 
 	deactivate: function() {
@@ -4915,46 +5344,46 @@ $.widget("ui.menu", {
 		this.active = null;
 	},
 
-	next: function() {
-		this.move("next", "li:first");
+	next: function(event) {
+		this.move("next", ".ui-menu-item:first", event);
 	},
 
-	previous: function() {
-		this.move("prev", "li:last");
+	previous: function(event) {
+		this.move("prev", ".ui-menu-item:last", event);
 	},
 
 	first: function() {
-		return this.active && !this.active.prev().length;
+		return this.active && !this.active.prevAll(".ui-menu-item").length;
 	},
 
 	last: function() {
-		return this.active && !this.active.next().length;
+		return this.active && !this.active.nextAll(".ui-menu-item").length;
 	},
 
-	move: function(direction, edge) {
+	move: function(direction, edge, event) {
 		if (!this.active) {
-			this.activate(this.element.children(edge));
+			this.activate(event, this.element.children(edge));
 			return;
 		}
-		var next = this.active[direction]();
+		var next = this.active[direction + "All"](".ui-menu-item").eq(0);
 		if (next.length) {
-			this.activate(next);
+			this.activate(event, next);
 		} else {
-			this.activate(this.element.children(edge));
+			this.activate(event, this.element.children(edge));
 		}
 	},
 
 	// TODO merge with previousPage
-	nextPage: function() {
+	nextPage: function(event) {
 		if (this.hasScroll()) {
 			// TODO merge with no-scroll-else
 			if (!this.active || this.last()) {
-				this.activate(this.element.children(":first"));
+				this.activate(event, this.element.children(".ui-menu-item:first"));
 				return;
 			}
 			var base = this.active.offset().top,
 				height = this.element.height(),
-				result = this.element.children("li").filter(function() {
+				result = this.element.children(".ui-menu-item").filter(function() {
 					var close = $(this).offset().top - base - height + $(this).height();
 					// TODO improve approximation
 					return close < 10 && close > -10;
@@ -4962,26 +5391,27 @@ $.widget("ui.menu", {
 
 			// TODO try to catch this earlier when scrollTop indicates the last page anyway
 			if (!result.length) {
-				result = this.element.children(":last");
+				result = this.element.children(".ui-menu-item:last");
 			}
-			this.activate(result);
+			this.activate(event, result);
 		} else {
-			this.activate(this.element.children(!this.active || this.last() ? ":first" : ":last"));
+			this.activate(event, this.element.children(".ui-menu-item")
+				.filter(!this.active || this.last() ? ":first" : ":last"));
 		}
 	},
 
 	// TODO merge with nextPage
-	previousPage: function() {
+	previousPage: function(event) {
 		if (this.hasScroll()) {
 			// TODO merge with no-scroll-else
 			if (!this.active || this.first()) {
-				this.activate(this.element.children(":last"));
+				this.activate(event, this.element.children(".ui-menu-item:last"));
 				return;
 			}
 
 			var base = this.active.offset().top,
 				height = this.element.height();
-				result = this.element.children("li").filter(function() {
+				result = this.element.children(".ui-menu-item").filter(function() {
 					var close = $(this).offset().top - base + height - $(this).height();
 					// TODO improve approximation
 					return close < 10 && close > -10;
@@ -4989,11 +5419,12 @@ $.widget("ui.menu", {
 
 			// TODO try to catch this earlier when scrollTop indicates the last page anyway
 			if (!result.length) {
-				result = this.element.children(":first");
+				result = this.element.children(".ui-menu-item:first");
 			}
-			this.activate(result);
+			this.activate(event, result);
 		} else {
-			this.activate(this.element.children(!this.active || this.first() ? ":last" : ":first"));
+			this.activate(event, this.element.children(".ui-menu-item")
+				.filter(!this.active || this.first() ? ":last" : ":first"));
 		}
 	},
 
@@ -5001,18 +5432,18 @@ $.widget("ui.menu", {
 		return this.element.height() < this.element.attr("scrollHeight");
 	},
 
-	select: function() {
-		this._trigger("selected", null, { item: this.active });
+	select: function( event ) {
+		this._trigger("selected", event, { item: this.active });
 	}
 });
 
 }(jQuery));
 /*
- * jQuery UI Button 1.8
+ * jQuery UI Button 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Button
  *
@@ -5020,12 +5451,12 @@ $.widget("ui.menu", {
  *	jquery.ui.core.js
  *	jquery.ui.widget.js
  */
-(function( $ ) {
+(function( $, undefined ) {
 
 var lastActive,
 	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
-	otherClasses = "ui-state-hover ui-state-active " +
-		"ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only",
+	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( event ) {
 		$( ":ui-button", event.target.form ).each(function() {
 			var inst = $( this ).data( "button" );
@@ -5053,6 +5484,7 @@ var lastActive,
 
 $.widget( "ui.button", {
 	options: {
+		disabled: null,
 		text: true,
 		label: null,
 		icons: {
@@ -5065,6 +5497,10 @@ $.widget( "ui.button", {
 			.unbind( "reset.button" )
 			.bind( "reset.button", formResetHandler );
 
+		if ( typeof this.options.disabled !== "boolean" ) {
+			this.options.disabled = this.element.attr( "disabled" );
+		}
+
 		this._determineButtonType();
 		this.hasTitle = !!this.buttonElement.attr( "title" );
 
@@ -5186,26 +5622,30 @@ $.widget( "ui.button", {
 	},
 
 	_determineButtonType: function() {
-		
+
 		if ( this.element.is(":checkbox") ) {
 			this.type = "checkbox";
+		} else if ( this.element.is(":radio") ) {
+			this.type = "radio";
+		} else if ( this.element.is("input") ) {
+			this.type = "input";
 		} else {
-			if ( this.element.is(":radio") ) {
-				this.type = "radio";
-			} else {
-				if ( this.element.is("input") ) {
-					this.type = "input";
-				} else {
-					this.type = "button";
-				}
-			}
+			this.type = "button";
 		}
-		
+
 		if ( this.type === "checkbox" || this.type === "radio" ) {
 			// we don't search against the document in case the element
 			// is disconnected from the DOM
-			this.buttonElement = this.element.parents().last()
-				.find( "[for=" + this.element.attr("id") + "]" );
+			var ancestor = this.element.parents().filter(":last"),
+				labelSelector = "label[for=" + this.element.attr("id") + "]";
+			this.buttonElement = ancestor.find( labelSelector );
+			if ( !this.buttonElement.length ) {
+				ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
+				this.buttonElement = ancestor.filter( labelSelector );
+				if ( !this.buttonElement.length ) {
+					this.buttonElement = ancestor.find( labelSelector );
+				}
+			}
 			this.element.addClass( "ui-helper-hidden-accessible" );
 
 			var checked = this.element.is( ":checked" );
@@ -5226,7 +5666,7 @@ $.widget( "ui.button", {
 		this.element
 			.removeClass( "ui-helper-hidden-accessible" );
 		this.buttonElement
-			.removeClass( baseClasses + " " + otherClasses )
+			.removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
 			.removeAttr( "role" )
 			.removeAttr( "aria-pressed" )
 			.html( this.buttonElement.find(".ui-button-text").html() );
@@ -5287,41 +5727,50 @@ $.widget( "ui.button", {
 			}
 			return;
 		}
-		var buttonElement = this.buttonElement,
+		var buttonElement = this.buttonElement.removeClass( typeClasses ),
 			buttonText = $( "<span></span>" )
 				.addClass( "ui-button-text" )
 				.html( this.options.label )
 				.appendTo( buttonElement.empty() )
 				.text(),
 			icons = this.options.icons,
-			multipleIcons = icons.primary && icons.secondary;
+			multipleIcons = icons.primary && icons.secondary,
+			buttonClasses = [];  
+
 		if ( icons.primary || icons.secondary ) {
-			buttonElement.addClass( "ui-button-text-icon" +
-				( multipleIcons ? "s" : "" ) );
+			if ( this.options.text ) {
+				buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
+			}
+
 			if ( icons.primary ) {
 				buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
 			}
+
 			if ( icons.secondary ) {
 				buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
 			}
+
 			if ( !this.options.text ) {
-				buttonElement
-					.addClass( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" )
-					.removeClass( "ui-button-text-icons ui-button-text-icon" );
+				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
+
 				if ( !this.hasTitle ) {
 					buttonElement.attr( "title", buttonText );
 				}
 			}
 		} else {
-			buttonElement.addClass( "ui-button-text-only" );
+			buttonClasses.push( "ui-button-text-only" );
 		}
+		buttonElement.addClass( buttonClasses.join( " " ) );
 	}
 });
 
 $.widget( "ui.buttonset", {
+	options: {
+		items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"
+	},
+
 	_create: function() {
 		this.element.addClass( "ui-buttonset" );
-		this._init();
 	},
 	
 	_init: function() {
@@ -5337,7 +5786,7 @@ $.widget( "ui.buttonset", {
 	},
 	
 	refresh: function() {
-		this.buttons = this.element.find( ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" )
+		this.buttons = this.element.find( this.options.items )
 			.filter( ":ui-button" )
 				.button( "refresh" )
 			.end()
@@ -5365,7 +5814,7 @@ $.widget( "ui.buttonset", {
 			})
 				.removeClass( "ui-corner-left ui-corner-right" )
 			.end()
-			.button( "destroy" )
+			.button( "destroy" );
 
 		$.Widget.prototype.destroy.call( this );
 	}
@@ -5373,11 +5822,11 @@ $.widget( "ui.buttonset", {
 
 }( jQuery ) );
 /*
- * jQuery UI Dialog 1.8
+ * jQuery UI Dialog 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Dialog
  *
@@ -5390,13 +5839,40 @@ $.widget( "ui.buttonset", {
  *	jquery.ui.position.js
  *	jquery.ui.resizable.js
  */
-(function($) {
+(function( $, undefined ) {
 
 var uiDialogClasses =
-	'ui-dialog ' +
-	'ui-widget ' +
-	'ui-widget-content ' +
-	'ui-corner-all ';
+		'ui-dialog ' +
+		'ui-widget ' +
+		'ui-widget-content ' +
+		'ui-corner-all ',
+	sizeRelatedOptions = {
+		buttons: true,
+		height: true,
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true,
+		width: true
+	},
+	resizableRelatedOptions = {
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true
+	},
+	// support for jQuery 1.3.2 - handle common attrFn methods for dialog
+	attrFn = $.attrFn || {
+		val: true,
+		css: true,
+		html: true,
+		text: true,
+		data: true,
+		width: true,
+		height: true,
+		offset: true,
+		click: true
+	};
 
 $.widget("ui.dialog", {
 	options: {
@@ -5413,7 +5889,18 @@ $.widget("ui.dialog", {
 		minHeight: 150,
 		minWidth: 150,
 		modal: false,
-		position: 'center',
+		position: {
+			my: 'center',
+			at: 'center',
+			collision: 'fit',
+			// ensure that the titlebar is never outside the document
+			using: function(pos) {
+				var topOffset = $(this).css(pos).offset().top;
+				if (topOffset < 0) {
+					$(this).css('top', pos.top - topOffset);
+				}
+			}
+		},
 		resizable: true,
 		show: null,
 		stack: true,
@@ -5421,13 +5908,19 @@ $.widget("ui.dialog", {
 		width: 300,
 		zIndex: 1000
 	},
+
 	_create: function() {
 		this.originalTitle = this.element.attr('title');
+		// #5742 - .attr() might return a DOMElement
+		if ( typeof this.originalTitle !== "string" ) {
+			this.originalTitle = "";
+		}
 
+		this.options.title = this.options.title || this.originalTitle;
 		var self = this,
 			options = self.options,
 
-			title = options.title || self.originalTitle || ' ',
+			title = options.title || ' ',
 			titleId = $.ui.dialog.getTitleId(self.element),
 
 			uiDialog = (self.uiDialog = $('<div></div>'))
@@ -5535,6 +6028,7 @@ $.widget("ui.dialog", {
 			uiDialog.bgiframe();
 		}
 	},
+
 	_init: function() {
 		if ( this.options.autoOpen ) {
 			this.open();
@@ -5561,14 +6055,14 @@ $.widget("ui.dialog", {
 
 		return self;
 	},
-	
+
 	widget: function() {
 		return this.uiDialog;
 	},
 
 	close: function(event) {
 		var self = this,
-			maxZ;
+			maxZ, thisZ;
 		
 		if (false === self._trigger('beforeClose', event)) {
 			return;
@@ -5597,7 +6091,10 @@ $.widget("ui.dialog", {
 			maxZ = 0;
 			$('.ui-dialog').each(function() {
 				if (this !== self.uiDialog[0]) {
-					maxZ = Math.max(maxZ, $(this).css('z-index'));
+					thisZ = $(this).css('z-index');
+					if(!isNaN(thisZ)) {
+						maxZ = Math.max(maxZ, thisZ);
+					}
 				}
 			});
 			$.ui.dialog.maxZ = maxZ;
@@ -5616,12 +6113,12 @@ $.widget("ui.dialog", {
 		var self = this,
 			options = self.options,
 			saveScroll;
-		
+
 		if ((options.modal && !force) ||
 			(!options.stack && !options.modal)) {
 			return self._trigger('focus', event);
 		}
-		
+
 		if (options.zIndex > $.ui.dialog.maxZ) {
 			$.ui.dialog.maxZ = options.zIndex;
 		}
@@ -5649,9 +6146,6 @@ $.widget("ui.dialog", {
 			uiDialog = self.uiDialog;
 
 		self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
-		if (uiDialog.next().length) {
-			uiDialog.appendTo('body');
-		}
 		self._size();
 		self._position(options.position);
 		uiDialog.show(options.show);
@@ -5663,11 +6157,11 @@ $.widget("ui.dialog", {
 				if (event.keyCode !== $.ui.keyCode.TAB) {
 					return;
 				}
-	
+
 				var tabbables = $(':tabbable', this),
 					first = tabbables.filter(':first'),
 					last  = tabbables.filter(':last');
-	
+
 				if (event.target === last[0] && !event.shiftKey) {
 					first.focus(1);
 					return false;
@@ -5680,15 +6174,12 @@ $.widget("ui.dialog", {
 
 		// set focus to the first tabbable element in the content area or the first button
 		// if there are no tabbable elements, set focus on the dialog itself
-		$([])
-			.add(uiDialog.find('.ui-dialog-content :tabbable:first'))
-			.add(uiDialog.find('.ui-dialog-buttonpane :tabbable:first'))
-			.add(uiDialog)
-			.filter(':first')
-			.focus();
+		$(self.element.find(':tabbable').get().concat(
+			uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
+				uiDialog.get()))).eq(0).focus();
 
-		self._trigger('open');
 		self._isOpen = true;
+		self._trigger('open');
 
 		return self;
 	},
@@ -5701,7 +6192,10 @@ $.widget("ui.dialog", {
 					'ui-dialog-buttonpane ' +
 					'ui-widget-content ' +
 					'ui-helper-clearfix'
-				);
+				),
+			uiButtonSet = $( "<div></div>" )
+				.addClass( "ui-dialog-buttonset" )
+				.appendTo( uiDialogButtonPane );
 
 		// if we already have a button pane, remove it
 		self.uiDialog.find('.ui-dialog-buttonpane').remove();
@@ -5712,11 +6206,26 @@ $.widget("ui.dialog", {
 			});
 		}
 		if (hasButtons) {
-			$.each(buttons, function(name, fn) {
+			$.each(buttons, function(name, props) {
+				props = $.isFunction( props ) ?
+					{ click: props, text: name } :
+					props;
 				var button = $('<button type="button"></button>')
-					.text(name)
-					.click(function() { fn.apply(self.element[0], arguments); })
-					.appendTo(uiDialogButtonPane);
+					.click(function() {
+						props.click.apply(self.element[0], arguments);
+					})
+					.appendTo(uiButtonSet);
+				// can't use .attr( props, true ) with jQuery 1.3.2.
+				$.each( props, function( key, value ) {
+					if ( key === "click" ) {
+						return;
+					}
+					if ( key in attrFn ) {
+						button[ key ]( value );
+					} else {
+						button.attr( key, value );
+					}
+				});
 				if ($.fn.button) {
 					button.button();
 				}
@@ -5824,40 +6333,34 @@ $.widget("ui.dialog", {
 			offset = [0, 0],
 			isVisible;
 
-		position = position || $.ui.dialog.prototype.options.position;
+		if (position) {
+			// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
+	//		if (typeof position == 'string' || $.isArray(position)) {
+	//			myAt = $.isArray(position) ? position : position.split(' ');
 
-		// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
-//		if (typeof position == 'string' || $.isArray(position)) {
-//			myAt = $.isArray(position) ? position : position.split(' ');
+			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];
+				}
 
-		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;
+					}
+				});
 
-			$.each(['left', 'top'], function(i, offsetPosition) {
-				if (+myAt[i] === myAt[i]) {
-					offset[i] = myAt[i];
-					myAt[i] = offsetPosition;
-				}
-			});
-		} else if (typeof position === 'object') {
-			if ('left' in position) {
-				myAt[0] = 'left';
-				offset[0] = position.left;
-			} else if ('right' in position) {
-				myAt[0] = 'right';
-				offset[0] = -position.right;
-			}
+				position = {
+					my: myAt.join(" "),
+					at: myAt.join(" "),
+					offset: offset.join(" ")
+				};
+			} 
 
-			if ('top' in position) {
-				myAt[1] = 'top';
-				offset[1] = position.top;
-			} else if ('bottom' in position) {
-				myAt[1] = 'bottom';
-				offset[1] = -position.bottom;
-			}
+			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
@@ -5868,31 +6371,40 @@ $.widget("ui.dialog", {
 		this.uiDialog
 			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
 			.css({ top: 0, left: 0 })
-			.position({
-				my: myAt.join(' '),
-				at: myAt.join(' '),
-				offset: offset.join(' '),
-				of: window,
-				collision: 'fit',
-				// ensure that the titlebar is never outside the document
-				using: function(pos) {
-					var topOffset = $(this).css(pos).offset().top;
-					if (topOffset < 0) {
-						$(this).css('top', pos.top - topOffset);
-					}
-				}
-			});
+			.position($.extend({ of: window }, position));
 		if (!isVisible) {
 			this.uiDialog.hide();
 		}
 	},
 
-	_setOption: function(key, value){
+	_setOptions: function( options ) {
 		var self = this,
-			uiDialog = self.uiDialog,
-			isResizable = uiDialog.is(':data(resizable)'),
+			resizableOptions = {},
 			resize = false;
-		
+
+		$.each( options, function( key, value ) {
+			self._setOption( key, value );
+			
+			if ( key in sizeRelatedOptions ) {
+				resize = true;
+			}
+			if ( key in resizableRelatedOptions ) {
+				resizableOptions[ key ] = value;
+			}
+		});
+
+		if ( resize ) {
+			this._size();
+		}
+		if ( this.uiDialog.is( ":data(resizable)" ) ) {
+			this.uiDialog.resizable( "option", resizableOptions );
+		}
+	},
+
+	_setOption: function(key, value){
+		var self = this,
+			uiDialog = self.uiDialog;
+
 		switch (key) {
 			//handling of deprecated beforeclose (vs beforeClose) option
 			//Ticket #4669 http://dev.jqueryui.com/ticket/4669
@@ -5904,7 +6416,7 @@ $.widget("ui.dialog", {
 				self._createButtons(value);
 				break;
 			case "closeText":
-				// convert whatever was passed in to a string, for text() to not throw up
+				// ensure that we always pass a string
 				self.uiDialogTitlebarCloseText.text("" + value);
 				break;
 			case "dialogClass":
@@ -5920,44 +6432,21 @@ $.widget("ui.dialog", {
 				}
 				break;
 			case "draggable":
-				if (value) {
-					self._makeDraggable();
-				} else {
-					uiDialog.draggable('destroy');
+				var isDraggable = uiDialog.is( ":data(draggable)" );
+				if ( isDraggable && !value ) {
+					uiDialog.draggable( "destroy" );
 				}
-				break;
-			case "height":
-				resize = true;
-				break;
-			case "maxHeight":
-				if (isResizable) {
-					uiDialog.resizable('option', 'maxHeight', value);
-				}
-				resize = true;
-				break;
-			case "maxWidth":
-				if (isResizable) {
-					uiDialog.resizable('option', 'maxWidth', value);
-				}
-				resize = true;
-				break;
-			case "minHeight":
-				if (isResizable) {
-					uiDialog.resizable('option', 'minHeight', value);
-				}
-				resize = true;
-				break;
-			case "minWidth":
-				if (isResizable) {
-					uiDialog.resizable('option', 'minWidth', value);
+				
+				if ( !isDraggable && value ) {
+					self._makeDraggable();
 				}
-				resize = true;
 				break;
 			case "position":
 				self._position(value);
 				break;
 			case "resizable":
 				// currently resizable, becoming non-resizable
+				var isResizable = uiDialog.is( ":data(resizable)" );
 				if (isResizable && !value) {
 					uiDialog.resizable('destroy');
 				}
@@ -5976,15 +6465,9 @@ $.widget("ui.dialog", {
 				// convert whatever was passed in o a string, for html() to not throw up
 				$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' '));
 				break;
-			case "width":
-				resize = true;
-				break;
 		}
 
 		$.Widget.prototype._setOption.apply(self, arguments);
-		if (resize) {
-			self._size();
-		}
 	},
 
 	_size: function() {
@@ -5992,12 +6475,20 @@ $.widget("ui.dialog", {
 		 * divs will both have width and height set, so we need to reset them
 		 */
 		var options = this.options,
-			nonContentHeight;
+			nonContentHeight,
+			minContentHeight,
+			isVisible = this.uiDialog.is( ":visible" );
 
 		// reset content sizing
-		// hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)
-		this.element.css('width', 'auto')
-			.hide();
+		this.element.show().css({
+			width: 'auto',
+			minHeight: 0,
+			height: 0
+		});
+
+		if (options.minWidth > options.width) {
+			options.width = options.minWidth;
+		}
 
 		// reset wrapper sizing
 		// determine the height of all the non-content elements
@@ -6006,16 +6497,26 @@ $.widget("ui.dialog", {
 				width: options.width
 			})
 			.height();
-
-		this.element
-			.css(options.height === 'auto' ? {
-					minHeight: Math.max(options.minHeight - nonContentHeight, 0),
-					height: 'auto'
-				} : {
-					minHeight: 0,
-					height: Math.max(options.height - nonContentHeight, 0)				
-			})
-			.show();
+		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
+		
+		if ( options.height === "auto" ) {
+			// only needed for IE6 support
+			if ( $.support.minHeight ) {
+				this.element.css({
+					minHeight: minContentHeight,
+					height: "auto"
+				});
+			} else {
+				this.uiDialog.show();
+				var autoHeight = this.element.css( "height", "auto" ).height();
+				if ( !isVisible ) {
+					this.uiDialog.hide();
+				}
+				this.element.height( Math.max( autoHeight, minContentHeight ) );
+			}
+		} else {
+			this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
+		}
 
 		if (this.uiDialog.is(':data(resizable)')) {
 			this.uiDialog.resizable('option', 'minHeight', this._minHeight());
@@ -6024,7 +6525,7 @@ $.widget("ui.dialog", {
 });
 
 $.extend($.ui.dialog, {
-	version: "1.8",
+	version: "1.8.12",
 
 	uuid: 0,
 	maxZ: 0,
@@ -6060,7 +6561,10 @@ $.extend($.ui.dialog.overlay, {
 				if ($.ui.dialog.overlay.instances.length) {
 					$(document).bind($.ui.dialog.overlay.events, function(event) {
 						// stop events if the z-index of the target is < the z-index of the overlay
-						return ($(event.target).zIndex() >= $.ui.dialog.overlay.maxZ);
+						// we cannot return true when we don't want to cancel the event (#3523)
+						if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
+							return false;
+						}
 					});
 				}
 			}, 1);
@@ -6095,7 +6599,10 @@ $.extend($.ui.dialog.overlay, {
 	},
 
 	destroy: function($el) {
-		this.oldInstances.push(this.instances.splice($.inArray($el, this.instances), 1)[0]);
+		var indexOf = $.inArray($el, this.instances);
+		if (indexOf != -1){
+			this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
+		}
 
 		if (this.instances.length === 0) {
 			$([document, window]).unbind('.dialog-overlay');
@@ -6193,11 +6700,11 @@ $.extend($.ui.dialog.overlay.prototype, {
 
 }(jQuery));
 /*
- * jQuery UI Slider 1.8
+ * jQuery UI Slider 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Slider
  *
@@ -6206,29 +6713,32 @@ $.extend($.ui.dialog.overlay.prototype, {
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-
-(function($) {
+(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, {
+$.widget( "ui.slider", $.ui.mouse, {
+
 	widgetEventPrefix: "slide",
+
 	options: {
 		animate: false,
 		distance: 0,
 		max: 100,
 		min: 0,
-		orientation: 'horizontal',
+		orientation: "horizontal",
 		range: false,
 		step: 1,
 		value: 0,
 		values: null
 	},
+
 	_create: function() {
+		var self = this,
+			o = this.options;
 
-		var self = this, o = this.options;
 		this._keySliding = false;
 		this._mouseSliding = false;
 		this._animateOff = true;
@@ -6237,197 +6747,218 @@ $.widget("ui.slider", $.ui.mouse, {
 		this._mouseInit();
 
 		this.element
-			.addClass("ui-slider"
-				+ " ui-slider-" + this.orientation
-				+ " ui-widget"
-				+ " ui-widget-content"
-				+ " ui-corner-all");
+			.addClass( "ui-slider" +
+				" ui-slider-" + this.orientation +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all" );
 		
-		if (o.disabled) {
-			this.element.addClass('ui-slider-disabled ui-disabled');
+		if ( o.disabled ) {
+			this.element.addClass( "ui-slider-disabled ui-disabled" );
 		}
 
 		this.range = $([]);
 
-		if (o.range) {
-
-			if (o.range === true) {
-				this.range = $('<div></div>');
-				if (!o.values) o.values = [this._valueMin(), this._valueMin()];
-				if (o.values.length && o.values.length != 2) {
-					o.values = [o.values[0], o.values[0]];
+		if ( o.range ) {
+			if ( o.range === true ) {
+				this.range = $( "<div></div>" );
+				if ( !o.values ) {
+					o.values = [ this._valueMin(), this._valueMin() ];
+				}
+				if ( o.values.length && o.values.length !== 2 ) {
+					o.values = [ o.values[0], o.values[0] ];
 				}
 			} else {
-				this.range = $('<div></div>');
+				this.range = $( "<div></div>" );
 			}
 
 			this.range
-				.appendTo(this.element)
-				.addClass("ui-slider-range");
+				.appendTo( this.element )
+				.addClass( "ui-slider-range" );
 
-			if (o.range == "min" || o.range == "max") {
-				this.range.addClass("ui-slider-range-" + o.range);
+			if ( o.range === "min" || o.range === "max" ) {
+				this.range.addClass( "ui-slider-range-" + o.range );
 			}
 
 			// note: this isn't the most fittingly semantic framework class for this element,
 			// but worked best visually with a variety of themes
-			this.range.addClass("ui-widget-header");
-
+			this.range.addClass( "ui-widget-header" );
 		}
 
-		if ($(".ui-slider-handle", this.element).length == 0)
-			$('<a href="#"></a>')
-				.appendTo(this.element)
-				.addClass("ui-slider-handle");
+		if ( $( ".ui-slider-handle", this.element ).length === 0 ) {
+			$( "<a href='#'></a>" )
+				.appendTo( this.element )
+				.addClass( "ui-slider-handle" );
+		}
 
-		if (o.values && o.values.length) {
-			while ($(".ui-slider-handle", this.element).length < o.values.length)
-				$('<a href="#"></a>')
-					.appendTo(this.element)
-					.addClass("ui-slider-handle");
+		if ( o.values && o.values.length ) {
+			while ( $(".ui-slider-handle", this.element).length < o.values.length ) {
+				$( "<a href='#'></a>" )
+					.appendTo( this.element )
+					.addClass( "ui-slider-handle" );
+			}
 		}
 
-		this.handles = $(".ui-slider-handle", this.element)
-			.addClass("ui-state-default"
-				+ " ui-corner-all");
+		this.handles = $( ".ui-slider-handle", this.element )
+			.addClass( "ui-state-default" +
+				" ui-corner-all" );
 
-		this.handle = this.handles.eq(0);
+		this.handle = this.handles.eq( 0 );
 
-		this.handles.add(this.range).filter("a")
-			.click(function(event) {
+		this.handles.add( this.range ).filter( "a" )
+			.click(function( event ) {
 				event.preventDefault();
 			})
 			.hover(function() {
-				if (!o.disabled) {
-					$(this).addClass('ui-state-hover');
+				if ( !o.disabled ) {
+					$( this ).addClass( "ui-state-hover" );
 				}
 			}, function() {
-				$(this).removeClass('ui-state-hover');
+				$( this ).removeClass( "ui-state-hover" );
 			})
 			.focus(function() {
-				if (!o.disabled) {
-					$(".ui-slider .ui-state-focus").removeClass('ui-state-focus'); $(this).addClass('ui-state-focus');
+				if ( !o.disabled ) {
+					$( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
+					$( this ).addClass( "ui-state-focus" );
 				} else {
-					$(this).blur();
+					$( this ).blur();
 				}
 			})
 			.blur(function() {
-				$(this).removeClass('ui-state-focus');
+				$( this ).removeClass( "ui-state-focus" );
 			});
 
-		this.handles.each(function(i) {
-			$(this).data("index.ui-slider-handle", i);
+		this.handles.each(function( i ) {
+			$( this ).data( "index.ui-slider-handle", i );
 		});
 
-		this.handles.keydown(function(event) {
-
-			var ret = true;
-
-			var index = $(this).data("index.ui-slider-handle");
-
-			if (self.options.disabled)
-				return;
-
-			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:
-					ret = false;
-					if (!self._keySliding) {
-						self._keySliding = true;
-						$(this).addClass("ui-state-active");
-						self._start(event, index);
-					}
-					break;
-			}
-
-			var curVal, newVal, step = self._step();
-			if (self.options.values && self.options.values.length) {
-				curVal = newVal = self.values(index);
-			} else {
-				curVal = newVal = self.value();
-			}
-
-			switch (event.keyCode) {
-				case $.ui.keyCode.HOME:
-					newVal = self._valueMin();
-					break;
-				case $.ui.keyCode.END:
-					newVal = self._valueMax();
-					break;
-				case $.ui.keyCode.PAGE_UP:
-					newVal = curVal + ((self._valueMax() - self._valueMin()) / numPages);
-					break;
-				case $.ui.keyCode.PAGE_DOWN:
-					newVal = curVal - ((self._valueMax() - self._valueMin()) / numPages);
-					break;
-				case $.ui.keyCode.UP:
-				case $.ui.keyCode.RIGHT:
-					if(curVal == self._valueMax()) return;
-					newVal = curVal + step;
-					break;
-				case $.ui.keyCode.DOWN:
-				case $.ui.keyCode.LEFT:
-					if(curVal == self._valueMin()) return;
-					newVal = curVal - step;
-					break;
-			}
-
-			self._slide(event, index, newVal);
-
-			return ret;
-
-		}).keyup(function(event) {
-
-			var index = $(this).data("index.ui-slider-handle");
-
-			if (self._keySliding) {
-				self._keySliding = false;
-				self._stop(event, index);
-				self._change(event, index);
-				$(this).removeClass("ui-state-active");
-			}
-
-		});
+		this.handles
+			.keydown(function( event ) {
+				var ret = true,
+					index = $( this ).data( "index.ui-slider-handle" ),
+					allowed,
+					curVal,
+					newVal,
+					step;
+	
+				if ( self.options.disabled ) {
+					return;
+				}
+	
+				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:
+						ret = false;
+						if ( !self._keySliding ) {
+							self._keySliding = true;
+							$( this ).addClass( "ui-state-active" );
+							allowed = self._start( event, index );
+							if ( allowed === false ) {
+								return;
+							}
+						}
+						break;
+				}
+	
+				step = self.options.step;
+				if ( self.options.values && self.options.values.length ) {
+					curVal = newVal = self.values( index );
+				} else {
+					curVal = newVal = self.value();
+				}
+	
+				switch ( event.keyCode ) {
+					case $.ui.keyCode.HOME:
+						newVal = self._valueMin();
+						break;
+					case $.ui.keyCode.END:
+						newVal = self._valueMax();
+						break;
+					case $.ui.keyCode.PAGE_UP:
+						newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );
+						break;
+					case $.ui.keyCode.PAGE_DOWN:
+						newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );
+						break;
+					case $.ui.keyCode.UP:
+					case $.ui.keyCode.RIGHT:
+						if ( curVal === self._valueMax() ) {
+							return;
+						}
+						newVal = self._trimAlignValue( curVal + step );
+						break;
+					case $.ui.keyCode.DOWN:
+					case $.ui.keyCode.LEFT:
+						if ( curVal === self._valueMin() ) {
+							return;
+						}
+						newVal = self._trimAlignValue( curVal - step );
+						break;
+				}
+	
+				self._slide( event, index, newVal );
+	
+				return ret;
+	
+			})
+			.keyup(function( event ) {
+				var index = $( this ).data( "index.ui-slider-handle" );
+	
+				if ( self._keySliding ) {
+					self._keySliding = false;
+					self._stop( event, index );
+					self._change( event, index );
+					$( this ).removeClass( "ui-state-active" );
+				}
+	
+			});
 
 		this._refreshValue();
 
 		this._animateOff = false;
-
 	},
 
 	destroy: function() {
-
 		this.handles.remove();
 		this.range.remove();
 
 		this.element
-			.removeClass("ui-slider"
-				+ " ui-slider-horizontal"
-				+ " ui-slider-vertical"
-				+ " ui-slider-disabled"
-				+ " ui-widget"
-				+ " ui-widget-content"
-				+ " ui-corner-all")
-			.removeData("slider")
-			.unbind(".slider");
+			.removeClass( "ui-slider" +
+				" ui-slider-horizontal" +
+				" ui-slider-vertical" +
+				" ui-slider-disabled" +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all" )
+			.removeData( "slider" )
+			.unbind( ".slider" );
 
 		this._mouseDestroy();
 
 		return this;
 	},
 
-	_mouseCapture: function(event) {
+	_mouseCapture: function( event ) {
+		var o = this.options,
+			position,
+			normValue,
+			distance,
+			closestHandle,
+			self,
+			index,
+			allowed,
+			offset,
+			mouseOverHandle;
 
-		var o = this.options;
-
-		if (o.disabled)
+		if ( o.disabled ) {
 			return false;
+		}
 
 		this.elementSize = {
 			width: this.element.outerWidth(),
@@ -6435,16 +6966,15 @@ $.widget("ui.slider", $.ui.mouse, {
 		};
 		this.elementOffset = this.element.offset();
 
-		var position = { x: event.pageX, y: event.pageY };
-		var normValue = this._normValueFromMouse(position);
-
-		var distance = this._valueMax() - this._valueMin() + 1, closestHandle;
-		var self = this, index;
-		this.handles.each(function(i) {
-			var thisDistance = Math.abs(normValue - self.values(i));
-			if (distance > thisDistance) {
+		position = { x: event.pageX, y: event.pageY };
+		normValue = this._normValueFromMouse( position );
+		distance = this._valueMax() - this._valueMin() + 1;
+		self = this;
+		this.handles.each(function( i ) {
+			var thisDistance = Math.abs( normValue - self.values(i) );
+			if ( distance > thisDistance ) {
 				distance = thisDistance;
-				closestHandle = $(this);
+				closestHandle = $( this );
 				index = i;
 			}
 		});
@@ -6452,216 +6982,221 @@ $.widget("ui.slider", $.ui.mouse, {
 		// workaround for bug #3736 (if both handles of a range are at 0,
 		// the first is always used as the one with least distance,
 		// and moving it is obviously prevented by preventing negative ranges)
-		if(o.range == true && this.values(1) == o.min) {
-			closestHandle = $(this.handles[++index]);
+		if( o.range === true && this.values(1) === o.min ) {
+			index += 1;
+			closestHandle = $( this.handles[index] );
 		}
 
-		this._start(event, index);
+		allowed = this._start( event, index );
+		if ( allowed === false ) {
+			return false;
+		}
 		this._mouseSliding = true;
 
 		self._handleIndex = index;
 
 		closestHandle
-			.addClass("ui-state-active")
+			.addClass( "ui-state-active" )
 			.focus();
 		
-		var offset = closestHandle.offset();
-		var mouseOverHandle = !$(event.target).parents().andSelf().is('.ui-slider-handle');
+		offset = closestHandle.offset();
+		mouseOverHandle = !$( event.target ).parents().andSelf().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)
+			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)
 		};
 
-		normValue = this._normValueFromMouse(position);
-		this._slide(event, index, normValue);
+		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
+			this._slide( event, index, normValue );
+		}
 		this._animateOff = true;
 		return true;
-
 	},
 
-	_mouseStart: function(event) {
+	_mouseStart: function( event ) {
 		return true;
 	},
 
-	_mouseDrag: function(event) {
-
-		var position = { x: event.pageX, y: event.pageY };
-		var normValue = this._normValueFromMouse(position);
+	_mouseDrag: function( event ) {
+		var position = { x: event.pageX, y: event.pageY },
+			normValue = this._normValueFromMouse( position );
 		
-		this._slide(event, this._handleIndex, normValue);
+		this._slide( event, this._handleIndex, normValue );
 
 		return false;
-
 	},
 
-	_mouseStop: function(event) {
-
-		this.handles.removeClass("ui-state-active");
+	_mouseStop: function( event ) {
+		this.handles.removeClass( "ui-state-active" );
 		this._mouseSliding = false;
-		this._stop(event, this._handleIndex);
-		this._change(event, this._handleIndex);
+
+		this._stop( event, this._handleIndex );
+		this._change( event, this._handleIndex );
+
 		this._handleIndex = null;
 		this._clickOffset = null;
-
 		this._animateOff = false;
-		return false;
 
+		return false;
 	},
 	
 	_detectOrientation: function() {
-		this.orientation = this.options.orientation == 'vertical' ? 'vertical' : 'horizontal';
+		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
 	},
 
-	_normValueFromMouse: function(position) {
+	_normValueFromMouse: function( position ) {
+		var pixelTotal,
+			pixelMouse,
+			percentMouse,
+			valueTotal,
+			valueMouse;
 
-		var pixelTotal, pixelMouse;
-		if ('horizontal' == this.orientation) {
+		if ( this.orientation === "horizontal" ) {
 			pixelTotal = this.elementSize.width;
-			pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
+			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);
+			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
 		}
 
-		var percentMouse = (pixelMouse / pixelTotal);
-		if (percentMouse > 1) percentMouse = 1;
-		if (percentMouse < 0) percentMouse = 0;
-		if ('vertical' == this.orientation)
+		percentMouse = ( pixelMouse / pixelTotal );
+		if ( percentMouse > 1 ) {
+			percentMouse = 1;
+		}
+		if ( percentMouse < 0 ) {
+			percentMouse = 0;
+		}
+		if ( this.orientation === "vertical" ) {
 			percentMouse = 1 - percentMouse;
+		}
 
-		var valueTotal = this._valueMax() - this._valueMin(),
-			valueMouse = percentMouse * valueTotal,
-			valueMouseModStep = valueMouse % this.options.step,
-			normValue = this._valueMin() + valueMouse - valueMouseModStep;
-
-		if (valueMouseModStep > (this.options.step / 2))
-			normValue += this.options.step;
-
-		// Since JavaScript has problems with large floats, round
-		// the final value to 5 digits after the decimal point (see #4124)
-		return parseFloat(normValue.toFixed(5));
+		valueTotal = this._valueMax() - this._valueMin();
+		valueMouse = this._valueMin() + percentMouse * valueTotal;
 
+		return this._trimAlignValue( valueMouse );
 	},
 
-	_start: function(event, index) {
+	_start: function( event, index ) {
 		var uiHash = {
-			handle: this.handles[index],
+			handle: this.handles[ index ],
 			value: this.value()
 		};
-		if (this.options.values && this.options.values.length) {
-			uiHash.value = this.values(index);
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
 			uiHash.values = this.values();
 		}
-		this._trigger("start", event, uiHash);
+		return this._trigger( "start", event, uiHash );
 	},
 
-	_slide: function(event, index, newVal) {
-
-		var handle = this.handles[index];
+	_slide: function( event, index, newVal ) {
+		var otherVal,
+			newValues,
+			allowed;
 
-		if (this.options.values && this.options.values.length) {
+		if ( this.options.values && this.options.values.length ) {
+			otherVal = this.values( index ? 0 : 1 );
 
-			var 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 ( ( this.options.values.length === 2 && this.options.range === true ) && 
+					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
+				) {
+				newVal = otherVal;
 			}
 
-			if (newVal != this.values(index)) {
-				var newValues = this.values();
-				newValues[index] = newVal;
+			if ( newVal !== this.values( index ) ) {
+				newValues = this.values();
+				newValues[ index ] = newVal;
 				// A slide can be canceled by returning false from the slide callback
-				var allowed = this._trigger("slide", event, {
-					handle: this.handles[index],
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
 					value: newVal,
 					values: newValues
-				});
-				var otherVal = this.values(index ? 0 : 1);
-				if (allowed !== false) {
-					this.values(index, newVal, true);
+				} );
+				otherVal = this.values( index ? 0 : 1 );
+				if ( allowed !== false ) {
+					this.values( index, newVal, true );
 				}
 			}
-
 		} else {
-
-			if (newVal != this.value()) {
+			if ( newVal !== this.value() ) {
 				// A slide can be canceled by returning false from the slide callback
-				var allowed = this._trigger("slide", event, {
-					handle: this.handles[index],
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
 					value: newVal
-				});
-				if (allowed !== false) {
-					this.value(newVal);
+				} );
+				if ( allowed !== false ) {
+					this.value( newVal );
 				}
-					
 			}
-
 		}
-
 	},
 
-	_stop: function(event, index) {
+	_stop: function( event, index ) {
 		var uiHash = {
-			handle: this.handles[index],
+			handle: this.handles[ index ],
 			value: this.value()
 		};
-		if (this.options.values && this.options.values.length) {
-			uiHash.value = this.values(index);
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
 			uiHash.values = this.values();
 		}
-		this._trigger("stop", event, uiHash);
+
+		this._trigger( "stop", event, uiHash );
 	},
 
-	_change: function(event, index) {
-		if (!this._keySliding && !this._mouseSliding) {
+	_change: function( event, index ) {
+		if ( !this._keySliding && !this._mouseSliding ) {
 			var uiHash = {
-				handle: this.handles[index],
+				handle: this.handles[ index ],
 				value: this.value()
 			};
-			if (this.options.values && this.options.values.length) {
-				uiHash.value = this.values(index);
+			if ( this.options.values && this.options.values.length ) {
+				uiHash.value = this.values( index );
 				uiHash.values = this.values();
 			}
-			this._trigger("change", event, uiHash);
+
+			this._trigger( "change", event, uiHash );
 		}
 	},
 
-	value: function(newValue) {
-
-		if (arguments.length) {
-			this.options.value = this._trimValue(newValue);
+	value: function( newValue ) {
+		if ( arguments.length ) {
+			this.options.value = this._trimAlignValue( newValue );
 			this._refreshValue();
-			this._change(null, 0);
+			this._change( null, 0 );
+			return;
 		}
 
 		return this._value();
-
 	},
 
-	values: function(index, newValue) {
+	values: function( index, newValue ) {
+		var vals,
+			newValues,
+			i;
 
-		if (arguments.length > 1) {
-			this.options.values[index] = this._trimValue(newValue);
+		if ( arguments.length > 1 ) {
+			this.options.values[ index ] = this._trimAlignValue( newValue );
 			this._refreshValue();
-			this._change(null, index);
+			this._change( null, index );
+			return;
 		}
 
-		if (arguments.length) {
-			if ($.isArray(arguments[0])) {
-				var vals = this.options.values, newValues = arguments[0];
-				for (var i = 0, l = vals.length; i < l; i++) {
-					vals[i] = this._trimValue(newValues[i]);
-					this._change(null, i);
+		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);
+				if ( this.options.values && this.options.values.length ) {
+					return this._values( index );
 				} else {
 					return this.value();
 				}
@@ -6669,164 +7204,191 @@ $.widget("ui.slider", $.ui.mouse, {
 		} else {
 			return this._values();
 		}
-
 	},
 
-	_setOption: function(key, value) {
-		
+	_setOption: function( key, value ) {
 		var i,
 			valsLength = 0;
-		if ( jQuery.isArray(this.options.values) ) {
+
+		if ( $.isArray( this.options.values ) ) {
 			valsLength = this.options.values.length;
-		};
+		}
 
-		$.Widget.prototype._setOption.apply(this, arguments);
+		$.Widget.prototype._setOption.apply( this, arguments );
 
-		switch (key) {
-			case 'disabled':
-				if (value) {
-					this.handles.filter(".ui-state-focus").blur();
-					this.handles.removeClass("ui-state-hover");
-					this.handles.attr("disabled", "disabled");
-					this.element.addClass("ui-disabled");
+		switch ( key ) {
+			case "disabled":
+				if ( value ) {
+					this.handles.filter( ".ui-state-focus" ).blur();
+					this.handles.removeClass( "ui-state-hover" );
+					this.handles.attr( "disabled", "disabled" );
+					this.element.addClass( "ui-disabled" );
 				} else {
-					this.handles.removeAttr("disabled");
-					this.element.removeClass("ui-disabled");
+					this.handles.removeAttr( "disabled" );
+					this.element.removeClass( "ui-disabled" );
 				}
-			case 'orientation':
-
+				break;
+			case "orientation":
 				this._detectOrientation();
-				
 				this.element
-					.removeClass("ui-slider-horizontal ui-slider-vertical")
-					.addClass("ui-slider-" + this.orientation);
+					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
+					.addClass( "ui-slider-" + this.orientation );
 				this._refreshValue();
 				break;
-			case 'value':
+			case "value":
 				this._animateOff = true;
 				this._refreshValue();
-				this._change(null, 0);
+				this._change( null, 0 );
 				this._animateOff = false;
 				break;
-			case 'values':
+			case "values":
 				this._animateOff = true;
 				this._refreshValue();
-				for (i = 0; i < valsLength; i++) {
-					this._change(null, i);
+				for ( i = 0; i < valsLength; i += 1 ) {
+					this._change( null, i );
 				}
 				this._animateOff = false;
 				break;
 		}
-
-	},
-
-	_step: function() {
-		var step = this.options.step;
-		return step;
 	},
 
+	//internal value getter
+	// _value() returns value trimmed by min and max, aligned by step
 	_value: function() {
-		//internal value getter
-		// _value() returns value trimmed by min and max
 		var val = this.options.value;
-		val = this._trimValue(val);
+		val = this._trimAlignValue( val );
 
 		return val;
 	},
 
-	_values: function(index) {
-		//internal values getter
-		// _values() returns array of values trimmed by min and max
-		// _values(index) returns single value trimmed by min and max
+	//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) {
-			var val = this.options.values[index];
-			val = this._trimValue(val);
+		if ( arguments.length ) {
+			val = this.options.values[ index ];
+			val = this._trimAlignValue( val );
 
 			return val;
 		} else {
 			// .slice() creates a copy of the array
 			// this copy gets trimmed by min and max and then returned
-			var vals = this.options.values.slice();
-			for (var i = 0, l = vals.length; i < l; i++) {
-				vals[i] = this._trimValue(vals[i]);
+			vals = this.options.values.slice();
+			for ( i = 0; i < vals.length; i+= 1) {
+				vals[ i ] = this._trimAlignValue( vals[ i ] );
 			}
 
 			return vals;
 		}
-
 	},
 	
-	_trimValue: function(val) {
-		if (val < this._valueMin()) val = this._valueMin();
-		if (val > this._valueMax()) val = this._valueMax();
+	// 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;
 
-		return val;
+		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() {
-		var valueMin = this.options.min;
-		return valueMin;
+		return this.options.min;
 	},
 
 	_valueMax: function() {
-		var valueMax = this.options.max;
-		return valueMax;
+		return this.options.max;
 	},
 	
 	_refreshValue: function() {
-
-		var oRange = this.options.range, o = this.options, self = this;
-		var animate = (!this._animateOff) ? o.animate : false;
-
-		if (this.options.values && this.options.values.length) {
-			var vp0, vp1;
-			this.handles.each(function(i, j) {
-				var valPercent = (self.values(i) - self._valueMin()) / (self._valueMax() - self._valueMin()) * 100;
-				var _set = {}; _set[self.orientation == 'horizontal' ? 'left' : 'bottom'] = valPercent + '%';
-				$(this).stop(1,1)[animate ? 'animate' : 'css'](_set, o.animate);
-				if (self.options.range === true) {
-					if (self.orientation == 'horizontal') {
-						(i == 0) && self.range.stop(1,1)[animate ? 'animate' : 'css']({ left: valPercent + '%' }, o.animate);
-						(i == 1) && self.range[animate ? 'animate' : 'css']({ width: (valPercent - lastValPercent) + '%' }, { queue: false, duration: o.animate });
+		var oRange = this.options.range,
+			o = this.options,
+			self = this,
+			animate = ( !this._animateOff ) ? o.animate : false,
+			valPercent,
+			_set = {},
+			lastValPercent,
+			value,
+			valueMin,
+			valueMax;
+
+		if ( this.options.values && this.options.values.length ) {
+			this.handles.each(function( i, j ) {
+				valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
+				_set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+				if ( self.options.range === true ) {
+					if ( self.orientation === "horizontal" ) {
+						if ( i === 0 ) {
+							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
 					} else {
-						(i == 0) && self.range.stop(1,1)[animate ? 'animate' : 'css']({ bottom: (valPercent) + '%' }, o.animate);
-						(i == 1) && self.range[animate ? 'animate' : 'css']({ height: (valPercent - lastValPercent) + '%' }, { queue: false, duration: o.animate });
+						if ( i === 0 ) {
+							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
 					}
 				}
 				lastValPercent = valPercent;
 			});
 		} else {
-			var value = this.value(),
-				valueMin = this._valueMin(),
-				valueMax = this._valueMax(),
-				valPercent = valueMax != valueMin
-					? (value - valueMin) / (valueMax - valueMin) * 100
-					: 0;
-			var _set = {}; _set[self.orientation == 'horizontal' ? 'left' : 'bottom'] = valPercent + '%';
-			this.handle.stop(1,1)[animate ? 'animate' : 'css'](_set, o.animate);
+			value = this.value();
+			valueMin = this._valueMin();
+			valueMax = this._valueMax();
+			valPercent = ( valueMax !== valueMin ) ?
+					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
+					0;
+			_set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+			this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
 
-			(oRange == "min") && (this.orientation == "horizontal") && this.range.stop(1,1)[animate ? 'animate' : 'css']({ width: valPercent + '%' }, o.animate);
-			(oRange == "max") && (this.orientation == "horizontal") && this.range[animate ? 'animate' : 'css']({ width: (100 - valPercent) + '%' }, { queue: false, duration: o.animate });
-			(oRange == "min") && (this.orientation == "vertical") && this.range.stop(1,1)[animate ? 'animate' : 'css']({ height: valPercent + '%' }, o.animate);
-			(oRange == "max") && (this.orientation == "vertical") && this.range[animate ? 'animate' : 'css']({ height: (100 - valPercent) + '%' }, { queue: false, duration: 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 } );
+			}
 		}
-
 	}
-	
+
 });
 
-$.extend($.ui.slider, {
-	version: "1.8"
+$.extend( $.ui.slider, {
+	version: "1.8.12"
 });
 
-})(jQuery);
+}(jQuery));
 /*
- * jQuery UI Tabs 1.8
+ * jQuery UI Tabs 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Tabs
  *
@@ -6834,12 +7396,20 @@ $.extend($.ui.slider, {
  *	jquery.ui.core.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 var tabId = 0,
 	listId = 0;
 
-$.widget("ui.tabs", {
+function getNextTabId() {
+	return ++tabId;
+}
+
+function getNextListId() {
+	return ++listId;
+}
+
+$.widget( "ui.tabs", {
 	options: {
 		add: null,
 		ajaxOptions: null,
@@ -6849,619 +7419,650 @@ $.widget("ui.tabs", {
 		disable: null,
 		disabled: [],
 		enable: null,
-		event: 'click',
+		event: "click",
 		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
-		idPrefix: 'ui-tabs-',
+		idPrefix: "ui-tabs-",
 		load: null,
-		panelTemplate: '<div></div>',
+		panelTemplate: "<div></div>",
 		remove: null,
 		select: null,
 		show: null,
-		spinner: '<em>Loading…</em>',
-		tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>'
+		spinner: "<em>Loading…</em>",
+		tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
 	},
+
 	_create: function() {
-		this._tabify(true);
+		this._tabify( true );
 	},
 
-	_setOption: function(key, value) {
-		if (key == 'selected') {
-			if (this.options.collapsible && value == this.options.selected) {
+	_setOption: function( key, value ) {
+		if ( key == "selected" ) {
+			if (this.options.collapsible && value == this.options.selected ) {
 				return;
 			}
-			this.select(value);
-		}
-		else {
-			this.options[key] = value;
+			this.select( value );
+		} else {
+			this.options[ key ] = value;
 			this._tabify();
 		}
 	},
 
-	_tabId: function(a) {
-		return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '') ||
-			this.options.idPrefix + (++tabId);
+	_tabId: function( a ) {
+		return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
+			this.options.idPrefix + getNextTabId();
 	},
 
-	_sanitizeSelector: function(hash) {
-		return hash.replace(/:/g, '\\:'); // we need this because an id may contain a ":"
+	_sanitizeSelector: function( hash ) {
+		// we need this because an id may contain a ":"
+		return hash.replace( /:/g, "\\:" );
 	},
 
 	_cookie: function() {
-		var cookie = this.cookie || (this.cookie = this.options.cookie.name || 'ui-tabs-' + (++listId));
-		return $.cookie.apply(null, [cookie].concat($.makeArray(arguments)));
+		var cookie = this.cookie ||
+			( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() );
+		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
 	},
 
-	_ui: function(tab, panel) {
+	_ui: function( tab, panel ) {
 		return {
 			tab: tab,
 			panel: panel,
-			index: this.anchors.index(tab)
+			index: this.anchors.index( tab )
 		};
 	},
 
 	_cleanup: function() {
 		// restore all former loading tabs labels
-		this.lis.filter('.ui-state-processing').removeClass('ui-state-processing')
-				.find('span:data(label.tabs)')
+		this.lis.filter( ".ui-state-processing" )
+			.removeClass( "ui-state-processing" )
+			.find( "span:data(label.tabs)" )
 				.each(function() {
-					var el = $(this);
-					el.html(el.data('label.tabs')).removeData('label.tabs');
+					var el = $( this );
+					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
 				});
 	},
 
-	_tabify: function(init) {
-
-		this.list = this.element.find('ol,ul').eq(0);
-		this.lis = $('li:has(a[href])', this.list);
-		this.anchors = this.lis.map(function() { return $('a', this)[0]; });
-		this.panels = $([]);
-
-		var self = this, o = this.options;
+	_tabify: function( init ) {
+		var self = this,
+			o = this.options,
+			fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
 
-		var fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
-		this.anchors.each(function(i, a) {
-			var href = $(a).attr('href');
+		this.list = this.element.find( "ol,ul" ).eq( 0 );
+		this.lis = $( " > li:has(a[href])", this.list );
+		this.anchors = this.lis.map(function() {
+			return $( "a", this )[ 0 ];
+		});
+		this.panels = $( [] );
 
+		this.anchors.each(function( i, a ) {
+			var href = $( a ).attr( "href" );
 			// For dynamically created HTML that contains a hash as href IE < 8 expands
 			// such href to the full page url with hash and then misinterprets tab as ajax.
 			// Same consideration applies for an added tab with a fragment identifier
 			// since a[href=#fragment-identifier] does unexpectedly not match.
 			// Thus normalize href attribute...
-			var hrefBase = href.split('#')[0], baseEl;
-			if (hrefBase && (hrefBase === location.toString().split('#')[0] ||
-					(baseEl = $('base')[0]) && hrefBase === baseEl.href)) {
+			var hrefBase = href.split( "#" )[ 0 ],
+				baseEl;
+			if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] ||
+					( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) {
 				href = a.hash;
 				a.href = href;
 			}
 
 			// inline tab
-			if (fragmentId.test(href)) {
-				self.panels = self.panels.add(self._sanitizeSelector(href));
-			}
-
+			if ( fragmentId.test( href ) ) {
+				self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
 			// remote tab
-			else if (href != '#') { // prevent loading the page itself if href is just "#"
-				$.data(a, 'href.tabs', href); // required for restore on destroy
+			// prevent loading the page itself if href is just "#"
+			} else if ( href && href !== "#" ) {
+				// required for restore on destroy
+				$.data( a, "href.tabs", href );
 
 				// TODO until #3808 is fixed strip fragment identifier from url
 				// (IE fails to load from such url)
-				$.data(a, 'load.tabs', href.replace(/#.*$/, '')); // mutable data
-
-				var id = self._tabId(a);
-				a.href = '#' + id;
-				var $panel = $('#' + id);
-				if (!$panel.length) {
-					$panel = $(o.panelTemplate).attr('id', id).addClass('ui-tabs-panel ui-widget-content ui-corner-bottom')
-						.insertAfter(self.panels[i - 1] || self.list);
-					$panel.data('destroy.tabs', true);
+				$.data( a, "load.tabs", href.replace( /#.*$/, "" ) );
+
+				var id = self._tabId( a );
+				a.href = "#" + id;
+				var $panel = self.element.find( "#" + id );
+				if ( !$panel.length ) {
+					$panel = $( o.panelTemplate )
+						.attr( "id", id )
+						.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
+						.insertAfter( self.panels[ i - 1 ] || self.list );
+					$panel.data( "destroy.tabs", true );
 				}
-				self.panels = self.panels.add($panel);
-			}
-
+				self.panels = self.panels.add( $panel );
 			// invalid tab href
-			else {
-				o.disabled.push(i);
+			} else {
+				o.disabled.push( i );
 			}
 		});
 
 		// initialization from scratch
-		if (init) {
-
+		if ( init ) {
 			// attach necessary classes for styling
-			this.element.addClass('ui-tabs ui-widget ui-widget-content ui-corner-all');
-			this.list.addClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all');
-			this.lis.addClass('ui-state-default ui-corner-top');
-			this.panels.addClass('ui-tabs-panel ui-widget-content ui-corner-bottom');
+			this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" );
+			this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
+			this.lis.addClass( "ui-state-default ui-corner-top" );
+			this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" );
 
 			// Selected tab
 			// use "selected" option or try to retrieve:
 			// 1. from fragment identifier in url
 			// 2. from cookie
 			// 3. from selected class attribute on <li>
-			if (o.selected === undefined) {
-				if (location.hash) {
-					this.anchors.each(function(i, a) {
-						if (a.hash == location.hash) {
+			if ( o.selected === undefined ) {
+				if ( location.hash ) {
+					this.anchors.each(function( i, a ) {
+						if ( a.hash == location.hash ) {
 							o.selected = i;
-							return false; // break
+							return false;
 						}
 					});
 				}
-				if (typeof o.selected != 'number' && o.cookie) {
-					o.selected = parseInt(self._cookie(), 10);
+				if ( typeof o.selected !== "number" && o.cookie ) {
+					o.selected = parseInt( self._cookie(), 10 );
 				}
-				if (typeof o.selected != 'number' && this.lis.filter('.ui-tabs-selected').length) {
-					o.selected = this.lis.index(this.lis.filter('.ui-tabs-selected'));
+				if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) {
+					o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
 				}
-				o.selected = o.selected || (this.lis.length ? 0 : -1);
-			}
-			else if (o.selected === null) { // usage of null is deprecated, TODO remove in next release
+				o.selected = o.selected || ( this.lis.length ? 0 : -1 );
+			} else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release
 				o.selected = -1;
 			}
 
 			// sanity check - default to first tab...
-			o.selected = ((o.selected >= 0 && this.anchors[o.selected]) || o.selected < 0) ? o.selected : 0;
+			o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )
+				? o.selected
+				: 0;
 
 			// Take disabling tabs via class attribute from HTML
 			// into account and update option properly.
 			// A selected tab cannot become disabled.
-			o.disabled = $.unique(o.disabled.concat(
-				$.map(this.lis.filter('.ui-state-disabled'),
-					function(n, i) { return self.lis.index(n); } )
-			)).sort();
+			o.disabled = $.unique( o.disabled.concat(
+				$.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {
+					return self.lis.index( n );
+				})
+			) ).sort();
 
-			if ($.inArray(o.selected, o.disabled) != -1) {
-				o.disabled.splice($.inArray(o.selected, o.disabled), 1);
+			if ( $.inArray( o.selected, o.disabled ) != -1 ) {
+				o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );
 			}
 
 			// highlight selected tab
-			this.panels.addClass('ui-tabs-hide');
-			this.lis.removeClass('ui-tabs-selected ui-state-active');
-			if (o.selected >= 0 && this.anchors.length) { // check for length avoids error when initializing empty list
-				this.panels.eq(o.selected).removeClass('ui-tabs-hide');
-				this.lis.eq(o.selected).addClass('ui-tabs-selected ui-state-active');
+			this.panels.addClass( "ui-tabs-hide" );
+			this.lis.removeClass( "ui-tabs-selected ui-state-active" );
+			// check for length avoids error when initializing empty list
+			if ( o.selected >= 0 && this.anchors.length ) {
+				self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" );
+				this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" );
 
 				// seems to be expected behavior that the show callback is fired
-				self.element.queue("tabs", function() {
-					self._trigger('show', null, self._ui(self.anchors[o.selected], self.panels[o.selected]));
+				self.element.queue( "tabs", function() {
+					self._trigger( "show", null,
+						self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );
 				});
-				
-				this.load(o.selected);
+
+				this.load( o.selected );
 			}
 
 			// clean up to avoid memory leaks in certain versions of IE 6
-			$(window).bind('unload', function() {
-				self.lis.add(self.anchors).unbind('.tabs');
+			// TODO: namespace this event
+			$( window ).bind( "unload", function() {
+				self.lis.add( self.anchors ).unbind( ".tabs" );
 				self.lis = self.anchors = self.panels = null;
 			});
-
-		}
 		// update selected after add/remove
-		else {
-			o.selected = this.lis.index(this.lis.filter('.ui-tabs-selected'));
+		} else {
+			o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
 		}
 
 		// update collapsible
-		this.element[o.collapsible ? 'addClass' : 'removeClass']('ui-tabs-collapsible');
+		// TODO: use .toggleClass()
+		this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" );
 
 		// set or update cookie after init and add/remove respectively
-		if (o.cookie) {
-			this._cookie(o.selected, o.cookie);
+		if ( o.cookie ) {
+			this._cookie( o.selected, o.cookie );
 		}
 
 		// disable tabs
-		for (var i = 0, li; (li = this.lis[i]); i++) {
-			$(li)[$.inArray(i, o.disabled) != -1 &&
-				!$(li).hasClass('ui-tabs-selected') ? 'addClass' : 'removeClass']('ui-state-disabled');
+		for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {
+			$( li )[ $.inArray( i, o.disabled ) != -1 &&
+				// TODO: use .toggleClass()
+				!$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" );
 		}
 
 		// reset cache if switching from cached to not cached
-		if (o.cache === false) {
-			this.anchors.removeData('cache.tabs');
+		if ( o.cache === false ) {
+			this.anchors.removeData( "cache.tabs" );
 		}
 
 		// remove all handlers before, tabify may run on existing tabs after add or option change
-		this.lis.add(this.anchors).unbind('.tabs');
+		this.lis.add( this.anchors ).unbind( ".tabs" );
 
-		if (o.event != 'mouseover') {
-			var addState = function(state, el) {
-				if (el.is(':not(.ui-state-disabled)')) {
-					el.addClass('ui-state-' + state);
+		if ( o.event !== "mouseover" ) {
+			var addState = function( state, el ) {
+				if ( el.is( ":not(.ui-state-disabled)" ) ) {
+					el.addClass( "ui-state-" + state );
 				}
 			};
-			var removeState = function(state, el) {
-				el.removeClass('ui-state-' + state);
+			var removeState = function( state, el ) {
+				el.removeClass( "ui-state-" + state );
 			};
-			this.lis.bind('mouseover.tabs', function() {
-				addState('hover', $(this));
+			this.lis.bind( "mouseover.tabs" , function() {
+				addState( "hover", $( this ) );
 			});
-			this.lis.bind('mouseout.tabs', function() {
-				removeState('hover', $(this));
+			this.lis.bind( "mouseout.tabs", function() {
+				removeState( "hover", $( this ) );
 			});
-			this.anchors.bind('focus.tabs', function() {
-				addState('focus', $(this).closest('li'));
+			this.anchors.bind( "focus.tabs", function() {
+				addState( "focus", $( this ).closest( "li" ) );
 			});
-			this.anchors.bind('blur.tabs', function() {
-				removeState('focus', $(this).closest('li'));
+			this.anchors.bind( "blur.tabs", function() {
+				removeState( "focus", $( this ).closest( "li" ) );
 			});
 		}
 
 		// set up animations
 		var hideFx, showFx;
-		if (o.fx) {
-			if ($.isArray(o.fx)) {
-				hideFx = o.fx[0];
-				showFx = o.fx[1];
-			}
-			else {
+		if ( o.fx ) {
+			if ( $.isArray( o.fx ) ) {
+				hideFx = o.fx[ 0 ];
+				showFx = o.fx[ 1 ];
+			} else {
 				hideFx = showFx = o.fx;
 			}
 		}
 
 		// Reset certain styles left over from animation
 		// and prevent IE's ClearType bug...
-		function resetStyle($el, fx) {
-			$el.css({ display: '' });
-			if (!$.support.opacity && fx.opacity) {
-				$el[0].style.removeAttribute('filter');
+		function resetStyle( $el, fx ) {
+			$el.css( "display", "" );
+			if ( !$.support.opacity && fx.opacity ) {
+				$el[ 0 ].style.removeAttribute( "filter" );
 			}
 		}
 
 		// Show a tab...
-		var showTab = showFx ?
-			function(clicked, $show) {
-				$(clicked).closest('li').addClass('ui-tabs-selected ui-state-active');
-				$show.hide().removeClass('ui-tabs-hide') // avoid flicker that way
-					.animate(showFx, showFx.duration || 'normal', function() {
-						resetStyle($show, showFx);
-						self._trigger('show', null, self._ui(clicked, $show[0]));
+		var showTab = showFx
+			? function( clicked, $show ) {
+				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
+				$show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way
+					.animate( showFx, showFx.duration || "normal", function() {
+						resetStyle( $show, showFx );
+						self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
 					});
-			} :
-			function(clicked, $show) {
-				$(clicked).closest('li').addClass('ui-tabs-selected ui-state-active');
-				$show.removeClass('ui-tabs-hide');
-				self._trigger('show', null, self._ui(clicked, $show[0]));
+			}
+			: function( clicked, $show ) {
+				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
+				$show.removeClass( "ui-tabs-hide" );
+				self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
 			};
 
 		// Hide a tab, $show is optional...
-		var hideTab = hideFx ?
-			function(clicked, $hide) {
-				$hide.animate(hideFx, hideFx.duration || 'normal', function() {
-					self.lis.removeClass('ui-tabs-selected ui-state-active');
-					$hide.addClass('ui-tabs-hide');
-					resetStyle($hide, hideFx);
-					self.element.dequeue("tabs");
+		var hideTab = hideFx
+			? function( clicked, $hide ) {
+				$hide.animate( hideFx, hideFx.duration || "normal", function() {
+					self.lis.removeClass( "ui-tabs-selected ui-state-active" );
+					$hide.addClass( "ui-tabs-hide" );
+					resetStyle( $hide, hideFx );
+					self.element.dequeue( "tabs" );
 				});
-			} :
-			function(clicked, $hide, $show) {
-				self.lis.removeClass('ui-tabs-selected ui-state-active');
-				$hide.addClass('ui-tabs-hide');
-				self.element.dequeue("tabs");
+			}
+			: function( clicked, $hide, $show ) {
+				self.lis.removeClass( "ui-tabs-selected ui-state-active" );
+				$hide.addClass( "ui-tabs-hide" );
+				self.element.dequeue( "tabs" );
 			};
 
 		// attach tab event handler, unbind to avoid duplicates from former tabifying...
-		this.anchors.bind(o.event + '.tabs', function() {
-			var el = this, $li = $(this).closest('li'), $hide = self.panels.filter(':not(.ui-tabs-hide)'),
-					$show = $(self._sanitizeSelector(this.hash));
+		this.anchors.bind( o.event + ".tabs", function() {
+			var el = this,
+				$li = $(el).closest( "li" ),
+				$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
+				$show = self.element.find( self._sanitizeSelector( el.hash ) );
 
 			// If tab is already selected and not collapsible or tab disabled or
 			// or is already loading or click callback returns false stop here.
 			// Check if click handler returns false last so that it is not executed
 			// for a disabled or loading tab!
-			if (($li.hasClass('ui-tabs-selected') && !o.collapsible) ||
-				$li.hasClass('ui-state-disabled') ||
-				$li.hasClass('ui-state-processing') ||
-				self._trigger('select', null, self._ui(this, $show[0])) === false) {
+			if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
+				$li.hasClass( "ui-state-disabled" ) ||
+				$li.hasClass( "ui-state-processing" ) ||
+				self.panels.filter( ":animated" ).length ||
+				self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
 				this.blur();
 				return false;
 			}
 
-			o.selected = self.anchors.index(this);
+			o.selected = self.anchors.index( this );
 
 			self.abort();
 
 			// if tab may be closed
-			if (o.collapsible) {
-				if ($li.hasClass('ui-tabs-selected')) {
+			if ( o.collapsible ) {
+				if ( $li.hasClass( "ui-tabs-selected" ) ) {
 					o.selected = -1;
 
-					if (o.cookie) {
-						self._cookie(o.selected, o.cookie);
+					if ( o.cookie ) {
+						self._cookie( o.selected, o.cookie );
 					}
 
-					self.element.queue("tabs", function() {
-						hideTab(el, $hide);
-					}).dequeue("tabs");
-					
+					self.element.queue( "tabs", function() {
+						hideTab( el, $hide );
+					}).dequeue( "tabs" );
+
 					this.blur();
 					return false;
-				}
-				else if (!$hide.length) {
-					if (o.cookie) {
-						self._cookie(o.selected, o.cookie);
+				} else if ( !$hide.length ) {
+					if ( o.cookie ) {
+						self._cookie( o.selected, o.cookie );
 					}
-					
-					self.element.queue("tabs", function() {
-						showTab(el, $show);
+
+					self.element.queue( "tabs", function() {
+						showTab( el, $show );
 					});
 
-					self.load(self.anchors.index(this)); // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
-					
+					// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
+					self.load( self.anchors.index( this ) );
+
 					this.blur();
 					return false;
 				}
 			}
 
-			if (o.cookie) {
-				self._cookie(o.selected, o.cookie);
+			if ( o.cookie ) {
+				self._cookie( o.selected, o.cookie );
 			}
 
 			// show new tab
-			if ($show.length) {
-				if ($hide.length) {
-					self.element.queue("tabs", function() {
-						hideTab(el, $hide);
+			if ( $show.length ) {
+				if ( $hide.length ) {
+					self.element.queue( "tabs", function() {
+						hideTab( el, $hide );
 					});
 				}
-				self.element.queue("tabs", function() {
-					showTab(el, $show);
+				self.element.queue( "tabs", function() {
+					showTab( el, $show );
 				});
-				
-				self.load(self.anchors.index(this));
-			}
-			else {
-				throw 'jQuery UI Tabs: Mismatching fragment identifier.';
+
+				self.load( self.anchors.index( this ) );
+			} else {
+				throw "jQuery UI Tabs: Mismatching fragment identifier.";
 			}
 
 			// Prevent IE from keeping other link focussed when using the back button
 			// and remove dotted border from clicked link. This is controlled via CSS
 			// in modern browsers; blur() removes focus from address bar in Firefox
 			// which can become a usability and annoying problem with tabs('rotate').
-			if ($.browser.msie) {
+			if ( $.browser.msie ) {
 				this.blur();
 			}
-
 		});
 
 		// disable click in any case
-		this.anchors.bind('click.tabs', function(){return false;});
+		this.anchors.bind( "click.tabs", function(){
+			return false;
+		});
+	},
 
+    _getIndex: function( index ) {
+		// meta-function to give users option to provide a href string instead of a numerical index.
+		// also sanitizes numerical indexes to valid values.
+		if ( typeof index == "string" ) {
+			index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) );
+		}
+
+		return index;
 	},
 
 	destroy: function() {
 		var o = this.options;
 
 		this.abort();
-		
-		this.element.unbind('.tabs')
-			.removeClass('ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible')
-			.removeData('tabs');
 
-		this.list.removeClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all');
+		this.element
+			.unbind( ".tabs" )
+			.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" )
+			.removeData( "tabs" );
+
+		this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
 
 		this.anchors.each(function() {
-			var href = $.data(this, 'href.tabs');
-			if (href) {
+			var href = $.data( this, "href.tabs" );
+			if ( href ) {
 				this.href = href;
 			}
-			var $this = $(this).unbind('.tabs');
-			$.each(['href', 'load', 'cache'], function(i, prefix) {
-				$this.removeData(prefix + '.tabs');
+			var $this = $( this ).unbind( ".tabs" );
+			$.each( [ "href", "load", "cache" ], function( i, prefix ) {
+				$this.removeData( prefix + ".tabs" );
 			});
 		});
 
-		this.lis.unbind('.tabs').add(this.panels).each(function() {
-			if ($.data(this, 'destroy.tabs')) {
-				$(this).remove();
-			}
-			else {
-				$(this).removeClass([
-					'ui-state-default',
-					'ui-corner-top',
-					'ui-tabs-selected',
-					'ui-state-active',
-					'ui-state-hover',
-					'ui-state-focus',
-					'ui-state-disabled',
-					'ui-tabs-panel',
-					'ui-widget-content',
-					'ui-corner-bottom',
-					'ui-tabs-hide'
-				].join(' '));
+		this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {
+			if ( $.data( this, "destroy.tabs" ) ) {
+				$( this ).remove();
+			} else {
+				$( this ).removeClass([
+					"ui-state-default",
+					"ui-corner-top",
+					"ui-tabs-selected",
+					"ui-state-active",
+					"ui-state-hover",
+					"ui-state-focus",
+					"ui-state-disabled",
+					"ui-tabs-panel",
+					"ui-widget-content",
+					"ui-corner-bottom",
+					"ui-tabs-hide"
+				].join( " " ) );
 			}
 		});
 
-		if (o.cookie) {
-			this._cookie(null, o.cookie);
+		if ( o.cookie ) {
+			this._cookie( null, o.cookie );
 		}
 
 		return this;
 	},
 
-	add: function(url, label, index) {
-		if (index === undefined) {
-			index = this.anchors.length; // append by default
+	add: function( url, label, index ) {
+		if ( index === undefined ) {
+			index = this.anchors.length;
 		}
 
-		var self = this, o = this.options,
-			$li = $(o.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label)),
-			id = !url.indexOf('#') ? url.replace('#', '') : this._tabId($('a', $li)[0]);
+		var self = this,
+			o = this.options,
+			$li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ),
+			id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] );
 
-		$li.addClass('ui-state-default ui-corner-top').data('destroy.tabs', true);
+		$li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );
 
 		// try to find an existing element before creating a new one
-		var $panel = $('#' + id);
-		if (!$panel.length) {
-			$panel = $(o.panelTemplate).attr('id', id).data('destroy.tabs', true);
+		var $panel = self.element.find( "#" + id );
+		if ( !$panel.length ) {
+			$panel = $( o.panelTemplate )
+				.attr( "id", id )
+				.data( "destroy.tabs", true );
 		}
-		$panel.addClass('ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide');
+		$panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" );
 
-		if (index >= this.lis.length) {
-			$li.appendTo(this.list);
-			$panel.appendTo(this.list[0].parentNode);
-		}
-		else {
-			$li.insertBefore(this.lis[index]);
-			$panel.insertBefore(this.panels[index]);
+		if ( index >= this.lis.length ) {
+			$li.appendTo( this.list );
+			$panel.appendTo( this.list[ 0 ].parentNode );
+		} else {
+			$li.insertBefore( this.lis[ index ] );
+			$panel.insertBefore( this.panels[ index ] );
 		}
 
-		o.disabled = $.map(o.disabled,
-			function(n, i) { return n >= index ? ++n : n; });
+		o.disabled = $.map( o.disabled, function( n, i ) {
+			return n >= index ? ++n : n;
+		});
 
 		this._tabify();
 
-		if (this.anchors.length == 1) { // after tabify
+		if ( this.anchors.length == 1 ) {
 			o.selected = 0;
-			$li.addClass('ui-tabs-selected ui-state-active');
-			$panel.removeClass('ui-tabs-hide');
-			this.element.queue("tabs", function() {
-				self._trigger('show', null, self._ui(self.anchors[0], self.panels[0]));
+			$li.addClass( "ui-tabs-selected ui-state-active" );
+			$panel.removeClass( "ui-tabs-hide" );
+			this.element.queue( "tabs", function() {
+				self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
 			});
-				
-			this.load(0);
+
+			this.load( 0 );
 		}
 
-		// callback
-		this._trigger('add', null, this._ui(this.anchors[index], this.panels[index]));
+		this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
 		return this;
 	},
 
-	remove: function(index) {
-		var o = this.options, $li = this.lis.eq(index).remove(),
-			$panel = this.panels.eq(index).remove();
+	remove: function( index ) {
+		index = this._getIndex( index );
+		var o = this.options,
+			$li = this.lis.eq( index ).remove(),
+			$panel = this.panels.eq( index ).remove();
 
 		// If selected tab was removed focus tab to the right or
 		// in case the last tab was removed the tab to the left.
-		if ($li.hasClass('ui-tabs-selected') && this.anchors.length > 1) {
-			this.select(index + (index + 1 < this.anchors.length ? 1 : -1));
+		if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {
+			this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );
 		}
 
-		o.disabled = $.map($.grep(o.disabled, function(n, i) { return n != index; }),
-			function(n, i) { return n >= index ? --n : n; });
+		o.disabled = $.map(
+			$.grep( o.disabled, function(n, i) {
+				return n != index;
+			}),
+			function( n, i ) {
+				return n >= index ? --n : n;
+			});
 
 		this._tabify();
 
-		// callback
-		this._trigger('remove', null, this._ui($li.find('a')[0], $panel[0]));
+		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
 		return this;
 	},
 
-	enable: function(index) {
+	enable: function( index ) {
+		index = this._getIndex( index );
 		var o = this.options;
-		if ($.inArray(index, o.disabled) == -1) {
+		if ( $.inArray( index, o.disabled ) == -1 ) {
 			return;
 		}
 
-		this.lis.eq(index).removeClass('ui-state-disabled');
-		o.disabled = $.grep(o.disabled, function(n, i) { return n != index; });
+		this.lis.eq( index ).removeClass( "ui-state-disabled" );
+		o.disabled = $.grep( o.disabled, function( n, i ) {
+			return n != index;
+		});
 
-		// callback
-		this._trigger('enable', null, this._ui(this.anchors[index], this.panels[index]));
+		this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
 		return this;
 	},
 
-	disable: function(index) {
+	disable: function( index ) {
+		index = this._getIndex( index );
 		var self = this, o = this.options;
-		if (index != o.selected) { // cannot disable already selected tab
-			this.lis.eq(index).addClass('ui-state-disabled');
+		// cannot disable already selected tab
+		if ( index != o.selected ) {
+			this.lis.eq( index ).addClass( "ui-state-disabled" );
 
-			o.disabled.push(index);
+			o.disabled.push( index );
 			o.disabled.sort();
 
-			// callback
-			this._trigger('disable', null, this._ui(this.anchors[index], this.panels[index]));
+			this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
 		}
 
 		return this;
 	},
 
-	select: function(index) {
-		if (typeof index == 'string') {
-			index = this.anchors.index(this.anchors.filter('[href$=' + index + ']'));
-		}
-		else if (index === null) { // usage of null is deprecated, TODO remove in next release
-			index = -1;
-		}
-		if (index == -1 && this.options.collapsible) {
-			index = this.options.selected;
+	select: function( index ) {
+		index = this._getIndex( index );
+		if ( index == -1 ) {
+			if ( this.options.collapsible && this.options.selected != -1 ) {
+				index = this.options.selected;
+			} else {
+				return this;
+			}
 		}
-
-		this.anchors.eq(index).trigger(this.options.event + '.tabs');
+		this.anchors.eq( index ).trigger( this.options.event + ".tabs" );
 		return this;
 	},
 
-	load: function(index) {
-		var self = this, o = this.options, a = this.anchors.eq(index)[0], url = $.data(a, 'load.tabs');
+	load: function( index ) {
+		index = this._getIndex( index );
+		var self = this,
+			o = this.options,
+			a = this.anchors.eq( index )[ 0 ],
+			url = $.data( a, "load.tabs" );
 
 		this.abort();
 
 		// not remote or from cache
-		if (!url || this.element.queue("tabs").length !== 0 && $.data(a, 'cache.tabs')) {
-			this.element.dequeue("tabs");
+		if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) {
+			this.element.dequeue( "tabs" );
 			return;
 		}
 
 		// load remote from here on
-		this.lis.eq(index).addClass('ui-state-processing');
+		this.lis.eq( index ).addClass( "ui-state-processing" );
 
-		if (o.spinner) {
-			var span = $('span', a);
-			span.data('label.tabs', span.html()).html(o.spinner);
+		if ( o.spinner ) {
+			var span = $( "span", a );
+			span.data( "label.tabs", span.html() ).html( o.spinner );
 		}
 
-		this.xhr = $.ajax($.extend({}, o.ajaxOptions, {
+		this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
 			url: url,
-			success: function(r, s) {
-				$(self._sanitizeSelector(a.hash)).html(r);
+			success: function( r, s ) {
+				self.element.find( self._sanitizeSelector( a.hash ) ).html( r );
 
 				// take care of tab labels
 				self._cleanup();
 
-				if (o.cache) {
-					$.data(a, 'cache.tabs', true); // if loaded once do not load them again
+				if ( o.cache ) {
+					$.data( a, "cache.tabs", true );
 				}
 
-				// callbacks
-				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
+				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
 				try {
-					o.ajaxOptions.success(r, s);
+					o.ajaxOptions.success( r, s );
 				}
-				catch (e) {}
+				catch ( e ) {}
 			},
-			error: function(xhr, s, e) {
+			error: function( xhr, s, e ) {
 				// take care of tab labels
 				self._cleanup();
 
-				// callbacks
-				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
+				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
 				try {
 					// Passing index avoid a race condition when this method is
 					// called after the user has selected another tab.
 					// Pass the anchor that initiated this request allows
 					// loadError to manipulate the tab content panel via $(a.hash)
-					o.ajaxOptions.error(xhr, s, index, a);
+					o.ajaxOptions.error( xhr, s, index, a );
 				}
-				catch (e) {}
+				catch ( e ) {}
 			}
-		}));
+		} ) );
 
 		// last, so that load event is fired before show...
-		self.element.dequeue("tabs");
+		self.element.dequeue( "tabs" );
 
 		return this;
 	},
 
 	abort: function() {
 		// stop possibly running animations
-		this.element.queue([]);
-		this.panels.stop(false, true);
+		this.element.queue( [] );
+		this.panels.stop( false, true );
 
 		// "tabs" queue must not contain more than two elements,
 		// which are the callbacks for the latest clicked tab...
-		this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2));
+		this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) );
 
 		// terminate pending requests from other tabs
-		if (this.xhr) {
+		if ( this.xhr ) {
 			this.xhr.abort();
 			delete this.xhr;
 		}
@@ -7471,19 +8072,18 @@ $.widget("ui.tabs", {
 		return this;
 	},
 
-	url: function(index, url) {
-		this.anchors.eq(index).removeData('cache.tabs').data('load.tabs', url);
+	url: function( index, url ) {
+		this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url );
 		return this;
 	},
 
 	length: function() {
 		return this.anchors.length;
 	}
-
 });
 
-$.extend($.ui.tabs, {
-	version: '1.8'
+$.extend( $.ui.tabs, {
+	version: "1.8.12"
 });
 
 /*
@@ -7493,46 +8093,45 @@ $.extend($.ui.tabs, {
 /*
  * Rotate
  */
-$.extend($.ui.tabs.prototype, {
+$.extend( $.ui.tabs.prototype, {
 	rotation: null,
-	rotate: function(ms, continuing) {
+	rotate: function( ms, continuing ) {
+		var self = this,
+			o = this.options;
 
-		var self = this, o = this.options;
-		
-		var rotate = self._rotate || (self._rotate = function(e) {
-			clearTimeout(self.rotation);
+		var rotate = self._rotate || ( self._rotate = function( e ) {
+			clearTimeout( self.rotation );
 			self.rotation = setTimeout(function() {
 				var t = o.selected;
 				self.select( ++t < self.anchors.length ? t : 0 );
-			}, ms);
+			}, ms );
 			
-			if (e) {
+			if ( e ) {
 				e.stopPropagation();
 			}
 		});
-		
-		var stop = self._unrotate || (self._unrotate = !continuing ?
-			function(e) {
+
+		var stop = self._unrotate || ( self._unrotate = !continuing
+			? function(e) {
 				if (e.clientX) { // in case of a true click
 					self.rotate(null);
 				}
-			} :
-			function(e) {
+			}
+			: function( e ) {
 				t = o.selected;
 				rotate();
 			});
 
 		// start rotation
-		if (ms) {
-			this.element.bind('tabsshow', rotate);
-			this.anchors.bind(o.event + '.tabs', stop);
+		if ( ms ) {
+			this.element.bind( "tabsshow", rotate );
+			this.anchors.bind( o.event + ".tabs", stop );
 			rotate();
-		}
 		// stop rotation
-		else {
-			clearTimeout(self.rotation);
-			this.element.unbind('tabsshow', rotate);
-			this.anchors.unbind(o.event + '.tabs', stop);
+		} else {
+			clearTimeout( self.rotation );
+			this.element.unbind( "tabsshow", rotate );
+			this.anchors.unbind( o.event + ".tabs", stop );
 			delete this._rotate;
 			delete this._unrotate;
 		}
@@ -7541,23 +8140,22 @@ $.extend($.ui.tabs.prototype, {
 	}
 });
 
-})(jQuery);
+})( jQuery );
 /*
- * jQuery UI Datepicker 1.8
+ * jQuery UI Datepicker 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Datepicker
  *
  * Depends:
  *	jquery.ui.core.js
  */
+(function( $, undefined ) {
 
-(function($) { // hide the namespace
-
-$.extend($.ui, { datepicker: { version: "1.8" } });
+$.extend($.ui, { datepicker: { version: "1.8.12" } });
 
 var PROP_NAME = 'datepicker';
 var dpuuid = new Date().getTime();
@@ -7605,7 +8203,7 @@ function Datepicker() {
 	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: 'show', // Name of jQuery animation for popup
+		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
@@ -7632,7 +8230,7 @@ function Datepicker() {
 			// 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: '_default', // Duration of display/closure
+		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
@@ -7652,7 +8250,7 @@ function Datepicker() {
 		autoSize: false // True to size the input for the date format, false to leave as is
 	};
 	$.extend(this._defaults, this.regional['']);
-	this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>');
+	this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>');
 }
 
 $.extend(Datepicker.prototype, {
@@ -7697,8 +8295,10 @@ $.extend(Datepicker.prototype, {
 		}
 		var nodeName = target.nodeName.toLowerCase();
 		var inline = (nodeName == 'div' || nodeName == 'span');
-		if (!target.id)
-			target.id = 'dp' + (++this.uuid);
+		if (!target.id) {
+			this.uuid += 1;
+			target.id = 'dp' + this.uuid;
+		}
 		var inst = this._newInst($(target), inline);
 		inst.settings = $.extend({}, settings || {}, inlineSettings || {});
 		if (nodeName == 'input') {
@@ -7710,7 +8310,7 @@ $.extend(Datepicker.prototype, {
 
 	/* 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
+		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
@@ -7815,6 +8415,7 @@ $.extend(Datepicker.prototype, {
 		this._setDate(inst, this._getDefaultDate(inst), true);
 		this._updateDatepicker(inst);
 		this._updateAlternate(inst);
+		inst.dpDiv.show();
 	},
 
 	/* Pop-up the date picker in a "dialog" box.
@@ -7829,7 +8430,8 @@ $.extend(Datepicker.prototype, {
 	_dialogDatepicker: function(input, date, onSelect, settings, pos) {
 		var inst = this._dialogInst; // internal instance
 		if (!inst) {
-			var id = 'dp' + (++this.uuid);
+			this.uuid += 1;
+			var id = 'dp' + this.uuid;
 			this._dialogInput = $('<input type="text" id="' + id +
 				'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
 			this._dialogInput.keydown(this._doKeyDown);
@@ -7985,7 +8587,14 @@ $.extend(Datepicker.prototype, {
 				this._hideDatepicker();
 			}
 			var date = this._getDateDatepicker(target, true);
+			var minDate = this._getMinMaxDate(inst, 'min');
+			var 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);
 			this._attachments($(target), inst);
 			this._autoSize(inst);
 			this._setDateDatepicker(target, date);
@@ -8041,8 +8650,8 @@ $.extend(Datepicker.prototype, {
 				case 9: $.datepicker._hideDatepicker();
 						handled = false;
 						break; // hide on tab out
-				case 13: var sel = $('td.' + $.datepicker._dayOverClass, inst.dpDiv).
-							add($('td.' + $.datepicker._currentClass, inst.dpDiv));
+				case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+									$.datepicker._currentClass + ')', inst.dpDiv);
 						if (sel[0])
 							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
 						else
@@ -8106,7 +8715,7 @@ $.extend(Datepicker.prototype, {
 		if ($.datepicker._get(inst, 'constrainInput')) {
 			var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
 			var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
-			return event.ctrlKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
+			return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
 		}
 	},
 
@@ -8166,6 +8775,8 @@ $.extend(Datepicker.prototype, {
 		}
 		var 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);
@@ -8180,10 +8791,12 @@ $.extend(Datepicker.prototype, {
 			var duration = $.datepicker._get(inst, 'duration');
 			var postProcess = function() {
 				$.datepicker._datepickerShowing = true;
-				var borders = $.datepicker._getBorders(inst.dpDiv);
-				inst.dpDiv.find('iframe.ui-datepicker-cover'). // IE6- only
-					css({left: -borders[0], top: -borders[1],
+				var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
+				if( !! cover.length ){
+					var borders = $.datepicker._getBorders(inst.dpDiv);
+					cover.css({left: -borders[0], top: -borders[1],
 						width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
+				}
 			};
 			inst.dpDiv.zIndex($(input).zIndex()+1);
 			if ($.effects && $.effects[showAnim])
@@ -8202,12 +8815,12 @@ $.extend(Datepicker.prototype, {
 	_updateDatepicker: function(inst) {
 		var self = this;
 		var borders = $.datepicker._getBorders(inst.dpDiv);
-		inst.dpDiv.empty().append(this._generateHTML(inst))
-			.find('iframe.ui-datepicker-cover') // IE6- only
-				.css({left: -borders[0], top: -borders[1],
-					width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
-			.end()
-			.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
+		inst.dpDiv.empty().append(this._generateHTML(inst));
+		var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
+		if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
+			cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
+		}
+		inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
 				.bind('mouseout', function(){
 					$(this).removeClass('ui-state-hover');
 					if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
@@ -8237,8 +8850,21 @@ $.extend(Datepicker.prototype, {
 		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
 			'Class']('ui-datepicker-rtl');
 		if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
-				inst.input.is(':visible') && !inst.input.is(':disabled'))
+				// #6694 - don't focus the input if it's already focused
+				// this breaks the change event in IE
+				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 ){
+			var origyearshtml = inst.yearshtml;
+			setTimeout(function(){
+				//assure that inst.yearshtml didn't change.
+				if( origyearshtml === 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.
@@ -8278,7 +8904,7 @@ $.extend(Datepicker.prototype, {
 	_findPos: function(obj) {
 		var inst = this._getInst(obj);
 		var isRTL = this._get(inst, 'isRTL');
-        while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
+        while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
             obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
         }
         var position = $(obj).offset();
@@ -8388,8 +9014,11 @@ $.extend(Datepicker.prototype, {
 	_clickMonthYear: function(id) {
 		var target = $(id);
 		var inst = this._getInst(target[0]);
-		if (inst.input && inst._selectingMonthYear && !$.browser.msie)
-			inst.input.focus();
+		if (inst.input && inst._selectingMonthYear) {
+			setTimeout(function() {
+				inst.input.focus();
+			}, 0);
+		}
 		inst._selectingMonthYear = !inst._selectingMonthYear;
 	},
 
@@ -8489,6 +9118,8 @@ $.extend(Datepicker.prototype, {
 		if (value == '')
 			return null;
 		var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
+		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
+				new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
 		var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
 		var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
 		var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
@@ -8507,9 +9138,9 @@ $.extend(Datepicker.prototype, {
 		};
 		// Extract a number from the string value
 		var getNumber = function(match) {
-			lookAhead(match);
+			var isDoubled = lookAhead(match);
 			var size = (match == '@' ? 14 : (match == '!' ? 20 :
-				(match == 'y' ? 4 : (match == 'o' ? 3 : 2))));
+				(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
 			var digits = new RegExp('^\\d{1,' + size + '}');
 			var num = value.substring(iValue).match(digits);
 			if (!num)
@@ -8521,7 +9152,7 @@ $.extend(Datepicker.prototype, {
 		var getName = function(match, shortNames, longNames) {
 			var names = (lookAhead(match) ? longNames : shortNames);
 			for (var i = 0; i < names.length; i++) {
-				if (value.substr(iValue, names[i].length) == names[i]) {
+				if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) {
 					iValue += names[i].length;
 					return i + 1;
 				}
@@ -8601,7 +9232,7 @@ $.extend(Datepicker.prototype, {
 		}
 		var 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/*
+			throw 'Invalid date'; // E.g. 31/02/00
 		return date;
 	},
 
@@ -8839,16 +9470,16 @@ $.extend(Datepicker.prototype, {
 			}
 			return new Date(year, month, day);
 		};
-		date = (date == null ? defaultDate : (typeof date == 'string' ? offsetString(date) :
-			(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : date)));
-		date = (date && date.toString() == 'Invalid Date' ? defaultDate : date);
-		if (date) {
-			date.setHours(0);
-			date.setMinutes(0);
-			date.setSeconds(0);
-			date.setMilliseconds(0);
+		var 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(date);
+		return this._daylightSavingAdjust(newDate);
 	},
 
 	/* Handle switch to/from daylight saving.
@@ -8865,13 +9496,13 @@ $.extend(Datepicker.prototype, {
 
 	/* Set the date(s) directly. */
 	_setDate: function(inst, date, noChange) {
-		var clear = !(date);
+		var clear = !date;
 		var origMonth = inst.selectedMonth;
 		var origYear = inst.selectedYear;
-		date = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
-		inst.selectedDay = inst.currentDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = inst.currentYear = date.getFullYear();
+		var 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);
@@ -9087,32 +9718,43 @@ $.extend(Datepicker.prototype, {
 		if (!showMonthAfterYear)
 			html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
 		// year selection
-		if (secondary || !changeYear)
-			html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
-		else {
-			// determine range of years to display
-			var years = this._get(inst, 'yearRange').split(':');
-			var thisYear = new Date().getFullYear();
-			var 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);
-			};
-			var year = determineYear(years[0]);
-			var endYear = Math.max(year, determineYear(years[1] || ''));
-			year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
-			endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
-			html += '<select class="ui-datepicker-year" ' +
-				'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
-				'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
-				'>';
-			for (; year <= endYear; year++) {
-				html += '<option value="' + year + '"' +
-					(year == drawYear ? ' selected="selected"' : '') +
-					'>' + year + '</option>';
+		if ( !inst.yearshtml ) {
+			inst.yearshtml = '';
+			if (secondary || !changeYear)
+				html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
+			else {
+				// determine range of years to display
+				var years = this._get(inst, 'yearRange').split(':');
+				var thisYear = new Date().getFullYear();
+				var 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);
+				};
+				var year = determineYear(years[0]);
+				var 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 += '<select class="ui-datepicker-year" ' +
+					'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
+					'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
+					'>';
+				for (; year <= endYear; year++) {
+					inst.yearshtml += '<option value="' + year + '"' +
+						(year == drawYear ? ' selected="selected"' : '') +
+						'>' + year + '</option>';
+				}
+				inst.yearshtml += '</select>';
+				//when showing there is no need for later update
+				if( ! $.browser.mozilla ){
+					html += inst.yearshtml;
+					inst.yearshtml = null;
+				} else {
+					// will be replaced later with inst.yearshtml
+					html += '<select class="ui-datepicker-year"><option value="' + drawYear + '" selected="selected">' + drawYear + '</option></select>';
+				}
 			}
-			html += '</select>';
 		}
 		html += this._get(inst, 'yearSuffix');
 		if (showMonthAfterYear)
@@ -9140,9 +9782,9 @@ $.extend(Datepicker.prototype, {
 	_restrictMinMax: function(inst, date) {
 		var minDate = this._getMinMaxDate(inst, 'min');
 		var maxDate = this._getMinMaxDate(inst, 'max');
-		date = (minDate && date < minDate ? minDate : date);
-		date = (maxDate && date > maxDate ? maxDate : date);
-		return date;
+		var newDate = (minDate && date < minDate ? minDate : date);
+		newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
+		return newDate;
 	},
 
 	/* Notify change of month/year. */
@@ -9166,7 +9808,7 @@ $.extend(Datepicker.prototype, {
 
 	/* Find the number of days in a given month. */
 	_getDaysInMonth: function(year, month) {
-		return 32 - new Date(year, month, 32).getDate();
+		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
 	},
 
 	/* Find the day of the week of the first of a month. */
@@ -9236,7 +9878,12 @@ function isArray(a) {
                     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).
@@ -9262,7 +9909,7 @@ $.fn.datepicker = function(options){
 $.datepicker = new Datepicker(); // singleton instance
 $.datepicker.initialized = false;
 $.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.8";
+$.datepicker.version = "1.8.12";
 
 // Workaround for #4055
 // Add another global to avoid noConflict issues with inline event handlers
@@ -9270,11 +9917,11 @@ window['DP_jQuery_' + dpuuid] = $;
 
 })(jQuery);
 /*
- * jQuery UI Progressbar 1.8
+ * jQuery UI Progressbar 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Progressbar
  *
@@ -9282,25 +9929,30 @@ window['DP_jQuery_' + dpuuid] = $;
  *   jquery.ui.core.js
  *   jquery.ui.widget.js
  */
-(function( $ ) {
+(function( $, undefined ) {
 
 $.widget( "ui.progressbar", {
 	options: {
-		value: 0
+		value: 0,
+		max: 100
 	},
+
+	min: 0,
+
 	_create: function() {
 		this.element
 			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
 			.attr({
 				role: "progressbar",
-				"aria-valuemin": this._valueMin(),
-				"aria-valuemax": this._valueMax(),
+				"aria-valuemin": this.min,
+				"aria-valuemax": this.options.max,
 				"aria-valuenow": this._value()
 			});
 
 		this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
 			.appendTo( this.element );
 
+		this.oldValue = this._value();
 		this._refreshValue();
 	},
 
@@ -9327,12 +9979,12 @@ $.widget( "ui.progressbar", {
 	},
 
 	_setOption: function( key, value ) {
-		switch ( key ) {
-			case "value":
-				this.options.value = value;
-				this._refreshValue();
-				this._trigger( "change" );
-				break;
+		if ( key === "value" ) {
+			this.options.value = value;
+			this._refreshValue();
+			if ( this._value() === this.options.max ) {
+				this._trigger( "complete" );
+			}
 		}
 
 		$.Widget.prototype._setOption.apply( this, arguments );
@@ -9344,48 +9996,45 @@ $.widget( "ui.progressbar", {
 		if ( typeof val !== "number" ) {
 			val = 0;
 		}
-		if ( val < this._valueMin() ) {
-			val = this._valueMin();
-		}
-		if ( val > this._valueMax() ) {
-			val = this._valueMax();
-		}
-
-		return val;
+		return Math.min( this.options.max, Math.max( this.min, val ) );
 	},
 
-	_valueMin: function() {
-		return 0;
-	},
-
-	_valueMax: function() {
-		return 100;
+	_percentage: function() {
+		return 100 * this._value() / this.options.max;
 	},
 
 	_refreshValue: function() {
 		var value = this.value();
+		var percentage = this._percentage();
+
+		if ( this.oldValue !== value ) {
+			this.oldValue = value;
+			this._trigger( "change" );
+		}
+
 		this.valueDiv
-			[ value === this._valueMax() ? "addClass" : "removeClass"]( "ui-corner-right" )
-			.width( value + "%" );
+			.toggle( value > this.min )
+			.toggleClass( "ui-corner-right", value === this.options.max )
+			.width( percentage.toFixed(0) + "%" );
 		this.element.attr( "aria-valuenow", value );
 	}
 });
 
 $.extend( $.ui.progressbar, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 })( jQuery );
 /*
- * jQuery UI Effects 1.8
+ * jQuery UI Effects 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/
  */
-;jQuery.effects || (function($) {
+;jQuery.effects || (function($, undefined) {
 
 $.effects = {};
 
@@ -9397,7 +10046,7 @@ $.effects = {};
 
 // override the animation for color styles
 $.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
-	'borderRightColor', 'borderTopColor', 'color', 'outlineColor'],
+	'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
 function(i, attr) {
 	$.fx.step[attr] = function(fx) {
 		if (!fx.colorInit) {
@@ -9609,8 +10258,7 @@ $.effects.animateClass = function(value, duration, easing, callback) {
 		easing = null;
 	}
 
-	return this.each(function() {
-
+	return this.queue('fx', function() {
 		var that = $(this),
 			originalStyleAttr = that.attr('style') || ' ',
 			originalStyle = filterStyles(getElementStyles.call(this)),
@@ -9638,6 +10286,13 @@ $.effects.animateClass = function(value, duration, easing, callback) {
 			}
 			if (callback) { callback.apply(this, arguments); }
 		});
+
+		// $.animate adds a function to the end of the queue
+		// but we want it at the front
+		var queue = $.queue(this),
+			anim = queue.splice(queue.length - 1, 1)[0];
+		queue.splice(1, 0, anim);
+		$.dequeue(this);
 	});
 };
 
@@ -9679,7 +10334,7 @@ $.fn.extend({
 /******************************************************************************/
 
 $.extend($.effects, {
-	version: "1.8",
+	version: "1.8.12",
 
 	// Saves a set of properties in a data storage
 	save: function(element, set) {
@@ -9760,7 +10415,7 @@ $.extend($.effects, {
 					props[pos] = 'auto';
 				}
 			});
-			element.css({position: 'relative', top: 0, left: 0 });
+			element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
 		}
 
 		return wrapper.css(props).show();
@@ -9796,44 +10451,72 @@ function _normalizeArguments(effect, options, speed, callback) {
 		speed = null;
 		options = {};
 	}
-	if ($.isFunction(speed)) {
-		callback = speed;
-		speed = null;
-	}
-	if (typeof options == 'number' || $.fx.speeds[options]) {
+        if (typeof options == 'number' || $.fx.speeds[options]) {
 		callback = speed;
 		speed = options;
 		options = {};
 	}
+	if ($.isFunction(speed)) {
+		callback = speed;
+		speed = null;
+	}
 
 	options = options || {};
 
 	speed = speed || options.duration;
 	speed = $.fx.off ? 0 : typeof speed == 'number'
-		? speed : $.fx.speeds[speed] || $.fx.speeds._default;
+		? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;
 
 	callback = callback || options.complete;
 
 	return [effect, options, speed, callback];
 }
 
+function standardSpeed( speed ) {
+	// valid standard speeds
+	if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
+		return true;
+	}
+	
+	// invalid strings - treat as "normal" speed
+	if ( typeof speed === "string" && !$.effects[ speed ] ) {
+		return true;
+	}
+	
+	return false;
+}
+
 $.fn.extend({
 	effect: function(effect, options, speed, callback) {
 		var args = _normalizeArguments.apply(this, arguments),
-			// TODO: make effects takes actual parameters instead of a hash
+			// TODO: make effects take actual parameters instead of a hash
 			args2 = {
 				options: args[1],
 				duration: args[2],
 				callback: args[3]
 			},
+			mode = args2.options.mode,
 			effectMethod = $.effects[effect];
 		
-		return effectMethod && !$.fx.off ? effectMethod.call(this, args2) : this;
+		if ( $.fx.off || !effectMethod ) {
+			// delegate to the original method (e.g., .show()) if possible
+			if ( mode ) {
+				return this[ mode ]( args2.duration, args2.callback );
+			} else {
+				return this.each(function() {
+					if ( args2.callback ) {
+						args2.callback.call( this );
+					}
+				});
+			}
+		}
+		
+		return effectMethod.call(this, args2);
 	},
 
 	_show: $.fn.show,
 	show: function(speed) {
-		if (!speed || typeof speed == 'number' || $.fx.speeds[speed]) {
+		if ( standardSpeed( speed ) ) {
 			return this._show.apply(this, arguments);
 		} else {
 			var args = _normalizeArguments.apply(this, arguments);
@@ -9844,7 +10527,7 @@ $.fn.extend({
 
 	_hide: $.fn.hide,
 	hide: function(speed) {
-		if (!speed || typeof speed == 'number' || $.fx.speeds[speed]) {
+		if ( standardSpeed( speed ) ) {
 			return this._hide.apply(this, arguments);
 		} else {
 			var args = _normalizeArguments.apply(this, arguments);
@@ -9853,11 +10536,10 @@ $.fn.extend({
 		}
 	},
 
-	// jQuery core overloads toggle and create _toggle
+	// jQuery core overloads toggle and creates _toggle
 	__toggle: $.fn.toggle,
 	toggle: function(speed) {
-		if (!speed || typeof speed == 'number' || $.fx.speeds[speed] ||
-			typeof speed == 'boolean' || $.isFunction(speed)) {
+		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
 			return this.__toggle.apply(this, arguments);
 		} else {
 			var args = _normalizeArguments.apply(this, arguments);
@@ -10091,25 +10773,25 @@ $.extend($.easing,
 
 })(jQuery);
 /*
- * jQuery UI Effects Blind 1.8
+ * jQuery UI Effects Blind 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Blind
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.blind = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
@@ -10140,25 +10822,25 @@ $.effects.blind = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Bounce 1.8
+ * jQuery UI Effects Bounce 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Bounce
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.bounce = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
@@ -10218,25 +10900,25 @@ $.effects.bounce = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Clip 1.8
+ * jQuery UI Effects Clip 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Clip
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.clip = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left','height','width'];
+		var el = $(this), props = ['position','top','bottom','left','right','height','width'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
@@ -10272,25 +10954,25 @@ $.effects.clip = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Drop 1.8
+ * jQuery UI Effects Drop 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Drop
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.drop = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left','opacity'];
+		var el = $(this), props = ['position','top','bottom','left','right','opacity'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
@@ -10322,18 +11004,18 @@ $.effects.drop = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Explode 1.8
+ * jQuery UI Effects Explode 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Explode
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.explode = function(o) {
 
@@ -10401,25 +11083,57 @@ $.effects.explode = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Fold 1.8
+ * jQuery UI Effects Fade 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * http://docs.jquery.com/UI/Effects/Fade
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function( $, undefined ) {
+
+$.effects.fade = function(o) {
+	return this.queue(function() {
+		var elem = $(this),
+			mode = $.effects.setMode(elem, o.options.mode || 'hide');
+
+		elem.animate({ opacity: mode }, {
+			queue: false,
+			duration: o.duration,
+			easing: o.options.easing,
+			complete: function() {
+				(o.callback && o.callback.apply(this, arguments));
+				elem.dequeue();
+			}
+		});
+	});
+};
+
+})(jQuery);
+/*
+ * jQuery UI Effects Fold 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Fold
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.fold = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
@@ -10457,18 +11171,18 @@ $.effects.fold = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Highlight 1.8
+ * jQuery UI Effects Highlight 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Highlight
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.highlight = function(o) {
 	return this.queue(function() {
@@ -10507,18 +11221,18 @@ $.effects.highlight = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Pulsate 1.8
+ * jQuery UI Effects Pulsate 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Pulsate
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.pulsate = function(o) {
 	return this.queue(function() {
@@ -10558,18 +11272,18 @@ $.effects.pulsate = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Scale 1.8
+ * jQuery UI Effects Scale 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Scale
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.puff = function(o) {
 	return this.queue(function() {
@@ -10643,8 +11357,8 @@ $.effects.size = function(o) {
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left','width','height','overflow','opacity'];
-		var props1 = ['position','top','left','overflow','opacity']; // Always restore
+		var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity'];
+		var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore
 		var props2 = ['width','height','overflow']; // Copy for children
 		var cProps = ['fontSize'];
 		var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];
@@ -10736,25 +11450,25 @@ $.effects.size = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Shake 1.8
+ * jQuery UI Effects Shake 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Shake
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.shake = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
@@ -10793,25 +11507,25 @@ $.effects.shake = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Slide 1.8
+ * jQuery UI Effects Slide 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Slide
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.slide = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
@@ -10823,7 +11537,7 @@ $.effects.slide = function(o) {
 		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
 		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
 		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true}));
-		if (mode == 'show') el.css(ref, motion == 'pos' ? -distance : distance); // Shift
+		if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift
 
 		// Animation
 		var animation = {};
@@ -10843,18 +11557,18 @@ $.effects.slide = function(o) {
 
 })(jQuery);
 /*
- * jQuery UI Effects Transfer 1.8
+ * jQuery UI Effects Transfer 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Transfer
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.transfer = function(o) {
 	return this.queue(function() {
diff --git a/development-bundle/ui/jquery.effects.blind.js b/development-bundle/ui/jquery.effects.blind.js
index 0ee920a..be9e4dd 100644
--- a/development-bundle/ui/jquery.effects.blind.js
+++ b/development-bundle/ui/jquery.effects.blind.js
@@ -1,23 +1,23 @@
 /*
- * jQuery UI Effects Blind 1.8
+ * jQuery UI Effects Blind 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Blind
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.blind = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
diff --git a/development-bundle/ui/jquery.effects.bounce.js b/development-bundle/ui/jquery.effects.bounce.js
index f919390..4e27b51 100644
--- a/development-bundle/ui/jquery.effects.bounce.js
+++ b/development-bundle/ui/jquery.effects.bounce.js
@@ -1,23 +1,23 @@
 /*
- * jQuery UI Effects Bounce 1.8
+ * jQuery UI Effects Bounce 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Bounce
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.bounce = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
diff --git a/development-bundle/ui/jquery.effects.clip.js b/development-bundle/ui/jquery.effects.clip.js
index 21da3a1..71493c0 100644
--- a/development-bundle/ui/jquery.effects.clip.js
+++ b/development-bundle/ui/jquery.effects.clip.js
@@ -1,23 +1,23 @@
 /*
- * jQuery UI Effects Clip 1.8
+ * jQuery UI Effects Clip 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Clip
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.clip = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left','height','width'];
+		var el = $(this), props = ['position','top','bottom','left','right','height','width'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
diff --git a/development-bundle/ui/jquery.effects.core.js b/development-bundle/ui/jquery.effects.core.js
index bd10d8a..5c63352 100644
--- a/development-bundle/ui/jquery.effects.core.js
+++ b/development-bundle/ui/jquery.effects.core.js
@@ -1,13 +1,13 @@
 /*
- * jQuery UI Effects 1.8
+ * jQuery UI Effects 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/
  */
-;jQuery.effects || (function($) {
+;jQuery.effects || (function($, undefined) {
 
 $.effects = {};
 
@@ -19,7 +19,7 @@ $.effects = {};
 
 // override the animation for color styles
 $.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
-	'borderRightColor', 'borderTopColor', 'color', 'outlineColor'],
+	'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
 function(i, attr) {
 	$.fx.step[attr] = function(fx) {
 		if (!fx.colorInit) {
@@ -231,8 +231,7 @@ $.effects.animateClass = function(value, duration, easing, callback) {
 		easing = null;
 	}
 
-	return this.each(function() {
-
+	return this.queue('fx', function() {
 		var that = $(this),
 			originalStyleAttr = that.attr('style') || ' ',
 			originalStyle = filterStyles(getElementStyles.call(this)),
@@ -260,6 +259,13 @@ $.effects.animateClass = function(value, duration, easing, callback) {
 			}
 			if (callback) { callback.apply(this, arguments); }
 		});
+
+		// $.animate adds a function to the end of the queue
+		// but we want it at the front
+		var queue = $.queue(this),
+			anim = queue.splice(queue.length - 1, 1)[0];
+		queue.splice(1, 0, anim);
+		$.dequeue(this);
 	});
 };
 
@@ -301,7 +307,7 @@ $.fn.extend({
 /******************************************************************************/
 
 $.extend($.effects, {
-	version: "1.8",
+	version: "1.8.12",
 
 	// Saves a set of properties in a data storage
 	save: function(element, set) {
@@ -382,7 +388,7 @@ $.extend($.effects, {
 					props[pos] = 'auto';
 				}
 			});
-			element.css({position: 'relative', top: 0, left: 0 });
+			element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
 		}
 
 		return wrapper.css(props).show();
@@ -418,44 +424,72 @@ function _normalizeArguments(effect, options, speed, callback) {
 		speed = null;
 		options = {};
 	}
-	if ($.isFunction(speed)) {
-		callback = speed;
-		speed = null;
-	}
-	if (typeof options == 'number' || $.fx.speeds[options]) {
+        if (typeof options == 'number' || $.fx.speeds[options]) {
 		callback = speed;
 		speed = options;
 		options = {};
 	}
+	if ($.isFunction(speed)) {
+		callback = speed;
+		speed = null;
+	}
 
 	options = options || {};
 
 	speed = speed || options.duration;
 	speed = $.fx.off ? 0 : typeof speed == 'number'
-		? speed : $.fx.speeds[speed] || $.fx.speeds._default;
+		? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default;
 
 	callback = callback || options.complete;
 
 	return [effect, options, speed, callback];
 }
 
+function standardSpeed( speed ) {
+	// valid standard speeds
+	if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) {
+		return true;
+	}
+	
+	// invalid strings - treat as "normal" speed
+	if ( typeof speed === "string" && !$.effects[ speed ] ) {
+		return true;
+	}
+	
+	return false;
+}
+
 $.fn.extend({
 	effect: function(effect, options, speed, callback) {
 		var args = _normalizeArguments.apply(this, arguments),
-			// TODO: make effects takes actual parameters instead of a hash
+			// TODO: make effects take actual parameters instead of a hash
 			args2 = {
 				options: args[1],
 				duration: args[2],
 				callback: args[3]
 			},
+			mode = args2.options.mode,
 			effectMethod = $.effects[effect];
 		
-		return effectMethod && !$.fx.off ? effectMethod.call(this, args2) : this;
+		if ( $.fx.off || !effectMethod ) {
+			// delegate to the original method (e.g., .show()) if possible
+			if ( mode ) {
+				return this[ mode ]( args2.duration, args2.callback );
+			} else {
+				return this.each(function() {
+					if ( args2.callback ) {
+						args2.callback.call( this );
+					}
+				});
+			}
+		}
+		
+		return effectMethod.call(this, args2);
 	},
 
 	_show: $.fn.show,
 	show: function(speed) {
-		if (!speed || typeof speed == 'number' || $.fx.speeds[speed]) {
+		if ( standardSpeed( speed ) ) {
 			return this._show.apply(this, arguments);
 		} else {
 			var args = _normalizeArguments.apply(this, arguments);
@@ -466,7 +500,7 @@ $.fn.extend({
 
 	_hide: $.fn.hide,
 	hide: function(speed) {
-		if (!speed || typeof speed == 'number' || $.fx.speeds[speed]) {
+		if ( standardSpeed( speed ) ) {
 			return this._hide.apply(this, arguments);
 		} else {
 			var args = _normalizeArguments.apply(this, arguments);
@@ -475,11 +509,10 @@ $.fn.extend({
 		}
 	},
 
-	// jQuery core overloads toggle and create _toggle
+	// jQuery core overloads toggle and creates _toggle
 	__toggle: $.fn.toggle,
 	toggle: function(speed) {
-		if (!speed || typeof speed == 'number' || $.fx.speeds[speed] ||
-			typeof speed == 'boolean' || $.isFunction(speed)) {
+		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
 			return this.__toggle.apply(this, arguments);
 		} else {
 			var args = _normalizeArguments.apply(this, arguments);
diff --git a/development-bundle/ui/jquery.effects.drop.js b/development-bundle/ui/jquery.effects.drop.js
index 3ef988d..2e52d1d 100644
--- a/development-bundle/ui/jquery.effects.drop.js
+++ b/development-bundle/ui/jquery.effects.drop.js
@@ -1,23 +1,23 @@
 /*
- * jQuery UI Effects Drop 1.8
+ * jQuery UI Effects Drop 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Drop
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.drop = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left','opacity'];
+		var el = $(this), props = ['position','top','bottom','left','right','opacity'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
diff --git a/development-bundle/ui/jquery.effects.explode.js b/development-bundle/ui/jquery.effects.explode.js
index be61997..15ef4ce 100644
--- a/development-bundle/ui/jquery.effects.explode.js
+++ b/development-bundle/ui/jquery.effects.explode.js
@@ -1,16 +1,16 @@
 /*
- * jQuery UI Effects Explode 1.8
+ * jQuery UI Effects Explode 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Explode
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.explode = function(o) {
 
diff --git a/development-bundle/ui/jquery.effects.fade.js b/development-bundle/ui/jquery.effects.fade.js
new file mode 100644
index 0000000..fec691d
--- /dev/null
+++ b/development-bundle/ui/jquery.effects.fade.js
@@ -0,0 +1,32 @@
+/*
+ * jQuery UI Effects Fade 1.8.12
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Effects/Fade
+ *
+ * Depends:
+ *	jquery.effects.core.js
+ */
+(function( $, undefined ) {
+
+$.effects.fade = function(o) {
+	return this.queue(function() {
+		var elem = $(this),
+			mode = $.effects.setMode(elem, o.options.mode || 'hide');
+
+		elem.animate({ opacity: mode }, {
+			queue: false,
+			duration: o.duration,
+			easing: o.options.easing,
+			complete: function() {
+				(o.callback && o.callback.apply(this, arguments));
+				elem.dequeue();
+			}
+		});
+	});
+};
+
+})(jQuery);
diff --git a/development-bundle/ui/jquery.effects.fold.js b/development-bundle/ui/jquery.effects.fold.js
index f62c10b..543164f 100644
--- a/development-bundle/ui/jquery.effects.fold.js
+++ b/development-bundle/ui/jquery.effects.fold.js
@@ -1,23 +1,23 @@
 /*
- * jQuery UI Effects Fold 1.8
+ * jQuery UI Effects Fold 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Fold
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.fold = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
diff --git a/development-bundle/ui/jquery.effects.highlight.js b/development-bundle/ui/jquery.effects.highlight.js
index bca41f5..14fb1d5 100644
--- a/development-bundle/ui/jquery.effects.highlight.js
+++ b/development-bundle/ui/jquery.effects.highlight.js
@@ -1,16 +1,16 @@
 /*
- * jQuery UI Effects Highlight 1.8
+ * jQuery UI Effects Highlight 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Highlight
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.highlight = function(o) {
 	return this.queue(function() {
diff --git a/development-bundle/ui/jquery.effects.pulsate.js b/development-bundle/ui/jquery.effects.pulsate.js
index c938824..9e2b153 100644
--- a/development-bundle/ui/jquery.effects.pulsate.js
+++ b/development-bundle/ui/jquery.effects.pulsate.js
@@ -1,16 +1,16 @@
 /*
- * jQuery UI Effects Pulsate 1.8
+ * jQuery UI Effects Pulsate 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Pulsate
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.pulsate = function(o) {
 	return this.queue(function() {
diff --git a/development-bundle/ui/jquery.effects.scale.js b/development-bundle/ui/jquery.effects.scale.js
index 27d18c5..dec1f13 100644
--- a/development-bundle/ui/jquery.effects.scale.js
+++ b/development-bundle/ui/jquery.effects.scale.js
@@ -1,16 +1,16 @@
 /*
- * jQuery UI Effects Scale 1.8
+ * jQuery UI Effects Scale 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Scale
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.puff = function(o) {
 	return this.queue(function() {
@@ -84,8 +84,8 @@ $.effects.size = function(o) {
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left','width','height','overflow','opacity'];
-		var props1 = ['position','top','left','overflow','opacity']; // Always restore
+		var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity'];
+		var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore
 		var props2 = ['width','height','overflow']; // Copy for children
 		var cProps = ['fontSize'];
 		var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom'];
diff --git a/development-bundle/ui/jquery.effects.shake.js b/development-bundle/ui/jquery.effects.shake.js
index 064cf29..fef174f 100644
--- a/development-bundle/ui/jquery.effects.shake.js
+++ b/development-bundle/ui/jquery.effects.shake.js
@@ -1,23 +1,23 @@
 /*
- * jQuery UI Effects Shake 1.8
+ * jQuery UI Effects Shake 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Shake
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.shake = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
diff --git a/development-bundle/ui/jquery.effects.slide.js b/development-bundle/ui/jquery.effects.slide.js
index 797ec1b..2179dbf 100644
--- a/development-bundle/ui/jquery.effects.slide.js
+++ b/development-bundle/ui/jquery.effects.slide.js
@@ -1,23 +1,23 @@
 /*
- * jQuery UI Effects Slide 1.8
+ * jQuery UI Effects Slide 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Slide
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.slide = function(o) {
 
 	return this.queue(function() {
 
 		// Create element
-		var el = $(this), props = ['position','top','left'];
+		var el = $(this), props = ['position','top','bottom','left','right'];
 
 		// Set options
 		var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
@@ -29,7 +29,7 @@ $.effects.slide = function(o) {
 		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
 		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
 		var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true}));
-		if (mode == 'show') el.css(ref, motion == 'pos' ? -distance : distance); // Shift
+		if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift
 
 		// Animation
 		var animation = {};
diff --git a/development-bundle/ui/jquery.effects.transfer.js b/development-bundle/ui/jquery.effects.transfer.js
index ecdba0a..875ef10 100644
--- a/development-bundle/ui/jquery.effects.transfer.js
+++ b/development-bundle/ui/jquery.effects.transfer.js
@@ -1,16 +1,16 @@
 /*
- * jQuery UI Effects Transfer 1.8
+ * jQuery UI Effects Transfer 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Effects/Transfer
  *
  * Depends:
  *	jquery.effects.core.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.effects.transfer = function(o) {
 	return this.queue(function() {
diff --git a/development-bundle/ui/jquery.ui.accordion.js b/development-bundle/ui/jquery.ui.accordion.js
index 8ad255f..b1a9674 100644
--- a/development-bundle/ui/jquery.ui.accordion.js
+++ b/development-bundle/ui/jquery.ui.accordion.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Accordion 1.8
+ * jQuery UI Accordion 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Accordion
  *
@@ -11,12 +11,12 @@
  *	jquery.ui.core.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
-$.widget("ui.accordion", {
+$.widget( "ui.accordion", {
 	options: {
 		active: 0,
-		animated: 'slide',
+		animated: "slide",
 		autoHeight: true,
 		clearStyle: false,
 		collapsible: false,
@@ -29,329 +29,398 @@ $.widget("ui.accordion", {
 		},
 		navigation: false,
 		navigationFilter: function() {
-			return this.href.toLowerCase() == location.href.toLowerCase();
+			return this.href.toLowerCase() === location.href.toLowerCase();
 		}
 	},
-	_create: function() {
-
-		var o = this.options, self = this;
-		this.running = 0;
-
-		this.element.addClass("ui-accordion ui-widget ui-helper-reset");
-		
-		// in lack of child-selectors in CSS we need to mark top-LIs in a UL-accordion for some IE-fix
-		if (this.element[0].nodeName == "UL") {
-			this.element.children("li").addClass("ui-accordion-li-fix");
-		}
 
-		this.headers = this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
-			.bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); })
-			.bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); })
-			.bind("focus.accordion", function(){ $(this).addClass('ui-state-focus'); })
-			.bind("blur.accordion", function(){ $(this).removeClass('ui-state-focus'); });
+	_create: function() {
+		var self = this,
+			options = self.options;
+
+		self.running = 0;
+
+		self.element
+			.addClass( "ui-accordion ui-widget ui-helper-reset" )
+			// in lack of child-selectors in CSS
+			// we need to mark top-LIs in a UL-accordion for some IE-fix
+			.children( "li" )
+				.addClass( "ui-accordion-li-fix" );
+
+		self.headers = self.element.find( options.header )
+			.addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" )
+			.bind( "mouseenter.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).addClass( "ui-state-hover" );
+			})
+			.bind( "mouseleave.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).removeClass( "ui-state-hover" );
+			})
+			.bind( "focus.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).addClass( "ui-state-focus" );
+			})
+			.bind( "blur.accordion", function() {
+				if ( options.disabled ) {
+					return;
+				}
+				$( this ).removeClass( "ui-state-focus" );
+			});
 
-		this.headers
-			.next()
-				.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
+		self.headers.next()
+			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
 
-		if ( o.navigation ) {
-			var current = this.element.find("a").filter(o.navigationFilter);
+		if ( options.navigation ) {
+			var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
 			if ( current.length ) {
-				var header = current.closest(".ui-accordion-header");
+				var header = current.closest( ".ui-accordion-header" );
 				if ( header.length ) {
 					// anchor within header
-					this.active = header;
+					self.active = header;
 				} else {
 					// anchor within content
-					this.active = current.closest(".ui-accordion-content").prev();
+					self.active = current.closest( ".ui-accordion-content" ).prev();
 				}
 			}
 		}
 
-		this.active = this._findActive(this.active || o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
-		this.active.next().addClass('ui-accordion-content-active');
+		self.active = self._findActive( self.active || options.active )
+			.addClass( "ui-state-default ui-state-active" )
+			.toggleClass( "ui-corner-all" )
+			.toggleClass( "ui-corner-top" );
+		self.active.next().addClass( "ui-accordion-content-active" );
 
-		//Append icon elements
-		this._createIcons();
-
-		// IE7-/Win - Extra vertical space in lists fixed
-		if ($.browser.msie) {
-			this.element.find('a').css('zoom', '1');
-		}
-
-		this.resize();
-
-		//ARIA
-		this.element.attr('role','tablist');
-
-		this.headers
-			.attr('role','tab')
-			.bind('keydown', function(event) { return self._keydown(event); })
+		self._createIcons();
+		self.resize();
+		
+		// ARIA
+		self.element.attr( "role", "tablist" );
+
+		self.headers
+			.attr( "role", "tab" )
+			.bind( "keydown.accordion", function( event ) {
+				return self._keydown( event );
+			})
 			.next()
-			.attr('role','tabpanel');
-
-		this.headers
-			.not(this.active || "")
-			.attr('aria-expanded','false')
-			.attr("tabIndex", "-1")
+				.attr( "role", "tabpanel" );
+
+		self.headers
+			.not( self.active || "" )
+			.attr({
+				"aria-expanded": "false",
+				"aria-selected": "false",
+				tabIndex: -1
+			})
 			.next()
-			.hide();
+				.hide();
 
 		// make sure at least one header is in the tab order
-		if (!this.active.length) {
-			this.headers.eq(0).attr('tabIndex','0');
+		if ( !self.active.length ) {
+			self.headers.eq( 0 ).attr( "tabIndex", 0 );
 		} else {
-			this.active
-				.attr('aria-expanded','true')
-				.attr('tabIndex', '0');
+			self.active
+				.attr({
+					"aria-expanded": "true",
+					"aria-selected": "true",
+					tabIndex: 0
+				});
 		}
 
-		// only need links in taborder for Safari
-		if (!$.browser.safari)
-			this.headers.find('a').attr('tabIndex','-1');
+		// only need links in tab order for Safari
+		if ( !$.browser.safari ) {
+			self.headers.find( "a" ).attr( "tabIndex", -1 );
+		}
 
-		if (o.event) {
-			this.headers.bind((o.event) + ".accordion", function(event) {
-				self._clickHandler.call(self, event, this);
+		if ( options.event ) {
+			self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) {
+				self._clickHandler.call( self, event, this );
 				event.preventDefault();
 			});
 		}
-
 	},
-	
+
 	_createIcons: function() {
-		var o = this.options;
-		if (o.icons) {
-			$("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
-			this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
-			this.element.addClass("ui-accordion-icons");
+		var options = this.options;
+		if ( options.icons ) {
+			$( "<span></span>" )
+				.addClass( "ui-icon " + options.icons.header )
+				.prependTo( this.headers );
+			this.active.children( ".ui-icon" )
+				.toggleClass(options.icons.header)
+				.toggleClass(options.icons.headerSelected);
+			this.element.addClass( "ui-accordion-icons" );
 		}
 	},
-	
+
 	_destroyIcons: function() {
-		this.headers.children(".ui-icon").remove();
-		this.element.removeClass("ui-accordion-icons");
+		this.headers.children( ".ui-icon" ).remove();
+		this.element.removeClass( "ui-accordion-icons" );
 	},
 
 	destroy: function() {
-		var o = this.options;
+		var options = this.options;
 
 		this.element
-			.removeClass("ui-accordion ui-widget ui-helper-reset")
-			.removeAttr("role")
-			.unbind('.accordion')
-			.removeData('accordion');
+			.removeClass( "ui-accordion ui-widget ui-helper-reset" )
+			.removeAttr( "role" );
 
 		this.headers
-			.unbind(".accordion")
-			.removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
-			.removeAttr("role").removeAttr("aria-expanded").removeAttr("tabindex");
-
-		this.headers.find("a").removeAttr("tabindex");
+			.unbind( ".accordion" )
+			.removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
+			.removeAttr( "role" )
+			.removeAttr( "aria-expanded" )
+			.removeAttr( "aria-selected" )
+			.removeAttr( "tabIndex" );
+
+		this.headers.find( "a" ).removeAttr( "tabIndex" );
 		this._destroyIcons();
-		var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
-		if (o.autoHeight || o.fillHeight) {
-			contents.css("height", "");
+		var contents = this.headers.next()
+			.css( "display", "" )
+			.removeAttr( "role" )
+			.removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" );
+		if ( options.autoHeight || options.fillHeight ) {
+			contents.css( "height", "" );
 		}
 
-		return this;
+		return $.Widget.prototype.destroy.call( this );
 	},
-	
-	_setOption: function(key, value) {
-		$.Widget.prototype._setOption.apply(this, arguments);
+
+	_setOption: function( key, value ) {
+		$.Widget.prototype._setOption.apply( this, arguments );
 			
-		if (key == "active") {
-			this.activate(value);
+		if ( key == "active" ) {
+			this.activate( value );
 		}
-		if (key == "icons") {
+		if ( key == "icons" ) {
 			this._destroyIcons();
-			if (value) {
+			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())
+				[ value ? "addClass" : "removeClass" ](
+					"ui-accordion-disabled ui-state-disabled" );
+		}
 	},
 
-	_keydown: function(event) {
-
-		var o = this.options, keyCode = $.ui.keyCode;
-
-		if (o.disabled || event.altKey || event.ctrlKey)
+	_keydown: function( event ) {
+		if ( this.options.disabled || event.altKey || event.ctrlKey ) {
 			return;
+		}
 
-		var length = this.headers.length;
-		var currentIndex = this.headers.index(event.target);
-		var toFocus = false;
+		var keyCode = $.ui.keyCode,
+			length = this.headers.length,
+			currentIndex = this.headers.index( event.target ),
+			toFocus = false;
 
-		switch(event.keyCode) {
+		switch ( event.keyCode ) {
 			case keyCode.RIGHT:
 			case keyCode.DOWN:
-				toFocus = this.headers[(currentIndex + 1) % length];
+				toFocus = this.headers[ ( currentIndex + 1 ) % length ];
 				break;
 			case keyCode.LEFT:
 			case keyCode.UP:
-				toFocus = this.headers[(currentIndex - 1 + length) % length];
+				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
 				break;
 			case keyCode.SPACE:
 			case keyCode.ENTER:
-				this._clickHandler({ target: event.target }, event.target);
+				this._clickHandler( { target: event.target }, event.target );
 				event.preventDefault();
 		}
 
-		if (toFocus) {
-			$(event.target).attr('tabIndex','-1');
-			$(toFocus).attr('tabIndex','0');
+		if ( toFocus ) {
+			$( event.target ).attr( "tabIndex", -1 );
+			$( toFocus ).attr( "tabIndex", 0 );
 			toFocus.focus();
 			return false;
 		}
 
 		return true;
-
 	},
 
 	resize: function() {
+		var options = this.options,
+			maxHeight;
 
-		var o = this.options, maxHeight;
-
-		if (o.fillSpace) {
-			
-			if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); }
+		if ( options.fillSpace ) {
+			if ( $.browser.msie ) {
+				var defOverflow = this.element.parent().css( "overflow" );
+				this.element.parent().css( "overflow", "hidden");
+			}
 			maxHeight = this.element.parent().height();
-			if($.browser.msie) { this.element.parent().css('overflow', defOverflow); }
-	
+			if ($.browser.msie) {
+				this.element.parent().css( "overflow", defOverflow );
+			}
+
 			this.headers.each(function() {
-				maxHeight -= $(this).outerHeight(true);
+				maxHeight -= $( this ).outerHeight( true );
 			});
 
-			this.headers.next().each(function() {
-    		   $(this).height(Math.max(0, maxHeight - $(this).innerHeight() + $(this).height()));
-			}).css('overflow', 'auto');
-
-		} else if ( o.autoHeight ) {
+			this.headers.next()
+				.each(function() {
+					$( this ).height( Math.max( 0, maxHeight -
+						$( this ).innerHeight() + $( this ).height() ) );
+				})
+				.css( "overflow", "auto" );
+		} else if ( options.autoHeight ) {
 			maxHeight = 0;
-			this.headers.next().each(function() {
-				maxHeight = Math.max(maxHeight, $(this).height());
-			}).height(maxHeight);
+			this.headers.next()
+				.each(function() {
+					maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
+				})
+				.height( maxHeight );
 		}
 
 		return this;
 	},
 
-	activate: function(index) {
+	activate: function( index ) {
 		// TODO this gets called on init, changing the option without an explicit call for that
 		this.options.active = index;
 		// call clickHandler with custom event
-		var active = this._findActive(index)[0];
-		this._clickHandler({ target: active }, active);
+		var active = this._findActive( index )[ 0 ];
+		this._clickHandler( { target: active }, active );
 
 		return this;
 	},
 
-	_findActive: function(selector) {
+	_findActive: function( selector ) {
 		return selector
-			? typeof selector == "number"
-				? this.headers.filter(":eq(" + selector + ")")
-				: this.headers.not(this.headers.not(selector))
+			? typeof selector === "number"
+				? this.headers.filter( ":eq(" + selector + ")" )
+				: this.headers.not( this.headers.not( selector ) )
 			: selector === false
-				? $([])
-				: this.headers.filter(":eq(0)");
+				? $( [] )
+				: this.headers.filter( ":eq(0)" );
 	},
 
-	// TODO isn't event.target enough? why the seperate target argument?
-	_clickHandler: function(event, target) {
-
-		var o = this.options;
-		if (o.disabled)
+	// TODO isn't event.target enough? why the separate target argument?
+	_clickHandler: function( event, target ) {
+		var options = this.options;
+		if ( options.disabled ) {
 			return;
+		}
 
 		// called only when using activate(false) to close all parts programmatically
-		if (!event.target) {
-			if (!o.collapsible)
+		if ( !event.target ) {
+			if ( !options.collapsible ) {
 				return;
-			this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
-				.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
-			this.active.next().addClass('ui-accordion-content-active');
+			}
+			this.active
+				.removeClass( "ui-state-active ui-corner-top" )
+				.addClass( "ui-state-default ui-corner-all" )
+				.children( ".ui-icon" )
+					.removeClass( options.icons.headerSelected )
+					.addClass( options.icons.header );
+			this.active.next().addClass( "ui-accordion-content-active" );
 			var toHide = this.active.next(),
 				data = {
-					options: o,
-					newHeader: $([]),
-					oldHeader: o.active,
-					newContent: $([]),
+					options: options,
+					newHeader: $( [] ),
+					oldHeader: options.active,
+					newContent: $( [] ),
 					oldContent: toHide
 				},
-				toShow = (this.active = $([]));
-			this._toggle(toShow, toHide, data);
+				toShow = ( this.active = $( [] ) );
+			this._toggle( toShow, toHide, data );
 			return;
 		}
 
 		// get the click target
-		var clicked = $(event.currentTarget || target);
-		var clickedIsActive = clicked[0] == this.active[0];
-		
+		var clicked = $( event.currentTarget || target ),
+			clickedIsActive = clicked[0] === this.active[0];
+
 		// TODO the option is changed, is that correct?
 		// TODO if it is correct, shouldn't that happen after determining that the click is valid?
-		o.active = o.collapsible && clickedIsActive ? false : $('.ui-accordion-header', this.element).index(clicked);
+		options.active = options.collapsible && clickedIsActive ?
+			false :
+			this.headers.index( clicked );
 
 		// if animations are still active, or the active header is the target, ignore click
-		if (this.running || (!o.collapsible && clickedIsActive)) {
+		if ( this.running || ( !options.collapsible && clickedIsActive ) ) {
 			return;
 		}
 
-		// switch classes
-		this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
-			.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
-		if (!clickedIsActive) {
-			clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
-				.find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
-			clicked.next().addClass('ui-accordion-content-active');
-		}
-
 		// find elements to show and hide
-		var toShow = clicked.next(),
+		var active = this.active,
+			toShow = clicked.next(),
 			toHide = this.active.next(),
 			data = {
-				options: o,
-				newHeader: clickedIsActive && o.collapsible ? $([]) : clicked,
+				options: options,
+				newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
 				oldHeader: this.active,
-				newContent: clickedIsActive && o.collapsible ? $([]) : toShow,
+				newContent: clickedIsActive && options.collapsible ? $([]) : toShow,
 				oldContent: toHide
 			},
 			down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
 
+		// 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(toShow, toHide, data, clickedIsActive, down);
+		this._toggle( toShow, toHide, data, clickedIsActive, down );
 
-		return;
+		// switch classes
+		active
+			.removeClass( "ui-state-active ui-corner-top" )
+			.addClass( "ui-state-default ui-corner-all" )
+			.children( ".ui-icon" )
+				.removeClass( options.icons.headerSelected )
+				.addClass( options.icons.header );
+		if ( !clickedIsActive ) {
+			clicked
+				.removeClass( "ui-state-default ui-corner-all" )
+				.addClass( "ui-state-active ui-corner-top" )
+				.children( ".ui-icon" )
+					.removeClass( options.icons.header )
+					.addClass( options.icons.headerSelected );
+			clicked
+				.next()
+				.addClass( "ui-accordion-content-active" );
+		}
 
+		return;
 	},
 
-	_toggle: function(toShow, toHide, data, clickedIsActive, down) {
+	_toggle: function( toShow, toHide, data, clickedIsActive, down ) {
+		var self = this,
+			options = self.options;
 
-		var o = this.options, self = this;
+		self.toShow = toShow;
+		self.toHide = toHide;
+		self.data = data;
 
-		this.toShow = toShow;
-		this.toHide = toHide;
-		this.data = data;
-
-		var complete = function() { if(!self) return; return self._completed.apply(self, arguments); };
+		var complete = function() {
+			if ( !self ) {
+				return;
+			}
+			return self._completed.apply( self, arguments );
+		};
 
 		// trigger changestart event
-		this._trigger("changestart", null, this.data);
+		self._trigger( "changestart", null, self.data );
 
 		// count elements to animate
-		this.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
-		if (o.animated) {
+		self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
 
+		if ( options.animated ) {
 			var animOptions = {};
 
-			if ( o.collapsible && clickedIsActive ) {
+			if ( options.collapsible && clickedIsActive ) {
 				animOptions = {
-					toShow: $([]),
+					toShow: $( [] ),
 					toHide: toHide,
 					complete: complete,
 					down: down,
-					autoHeight: o.autoHeight || o.fillSpace
+					autoHeight: options.autoHeight || options.fillSpace
 				};
 			} else {
 				animOptions = {
@@ -359,101 +428,120 @@ $.widget("ui.accordion", {
 					toHide: toHide,
 					complete: complete,
 					down: down,
-					autoHeight: o.autoHeight || o.fillSpace
+					autoHeight: options.autoHeight || options.fillSpace
 				};
 			}
 
-			if (!o.proxied) {
-				o.proxied = o.animated;
+			if ( !options.proxied ) {
+				options.proxied = options.animated;
 			}
 
-			if (!o.proxiedDuration) {
-				o.proxiedDuration = o.duration;
+			if ( !options.proxiedDuration ) {
+				options.proxiedDuration = options.duration;
 			}
 
-			o.animated = $.isFunction(o.proxied) ?
-				o.proxied(animOptions) : o.proxied;
+			options.animated = $.isFunction( options.proxied ) ?
+				options.proxied( animOptions ) :
+				options.proxied;
 
-			o.duration = $.isFunction(o.proxiedDuration) ?
-				o.proxiedDuration(animOptions) : o.proxiedDuration;
+			options.duration = $.isFunction( options.proxiedDuration ) ?
+				options.proxiedDuration( animOptions ) :
+				options.proxiedDuration;
 
 			var animations = $.ui.accordion.animations,
-				duration = o.duration,
-				easing = o.animated;
+				duration = options.duration,
+				easing = options.animated;
 
-			if (easing && !animations[easing] && !$.easing[easing]) {
-				easing = 'slide';
+			if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
+				easing = "slide";
 			}
-			if (!animations[easing]) {
-				animations[easing] = function(options) {
-					this.slide(options, {
+			if ( !animations[ easing ] ) {
+				animations[ easing ] = function( options ) {
+					this.slide( options, {
 						easing: easing,
 						duration: duration || 700
 					});
 				};
 			}
 
-			animations[easing](animOptions);
-
+			animations[ easing ]( animOptions );
 		} else {
-
-			if (o.collapsible && clickedIsActive) {
+			if ( options.collapsible && clickedIsActive ) {
 				toShow.toggle();
 			} else {
 				toHide.hide();
 				toShow.show();
 			}
 
-			complete(true);
-
+			complete( true );
 		}
 
 		// TODO assert that the blur and focus triggers are really necessary, remove otherwise
-		toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur();
-		toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus();
-
+		toHide.prev()
+			.attr({
+				"aria-expanded": "false",
+				"aria-selected": "false",
+				tabIndex: -1
+			})
+			.blur();
+		toShow.prev()
+			.attr({
+				"aria-expanded": "true",
+				"aria-selected": "true",
+				tabIndex: 0
+			})
+			.focus();
 	},
 
-	_completed: function(cancel) {
-
-		var o = this.options;
-
+	_completed: function( cancel ) {
 		this.running = cancel ? 0 : --this.running;
-		if (this.running) return;
+		if ( this.running ) {
+			return;
+		}
 
-		if (o.clearStyle) {
-			this.toShow.add(this.toHide).css({
+		if ( this.options.clearStyle ) {
+			this.toShow.add( this.toHide ).css({
 				height: "",
 				overflow: ""
 			});
 		}
-		
+
 		// other classes are removed before the animation; this one needs to stay until completed
-		this.toHide.removeClass("ui-accordion-content-active");
+		this.toHide.removeClass( "ui-accordion-content-active" );
+		// Work around for rendering bug in IE (#5421)
+		if ( this.toHide.length ) {
+			this.toHide.parent()[0].className = this.toHide.parent()[0].className;
+		}
 
-		this._trigger('change', null, this.data);
+		this._trigger( "change", null, this.data );
 	}
-
 });
 
-
-$.extend($.ui.accordion, {
-	version: "1.8",
+$.extend( $.ui.accordion, {
+	version: "1.8.12",
 	animations: {
-		slide: function(options, additions) {
+		slide: function( options, additions ) {
 			options = $.extend({
 				easing: "swing",
 				duration: 300
-			}, options, additions);
+			}, options, additions );
 			if ( !options.toHide.size() ) {
-				options.toShow.animate({height: "show"}, options);
+				options.toShow.animate({
+					height: "show",
+					paddingTop: "show",
+					paddingBottom: "show"
+				}, options );
 				return;
 			}
 			if ( !options.toShow.size() ) {
-				options.toHide.animate({height: "hide"}, options);
+				options.toHide.animate({
+					height: "hide",
+					paddingTop: "hide",
+					paddingBottom: "hide"
+				}, options );
 				return;
 			}
-			var overflow = options.toShow.css('overflow'),
+			var overflow = options.toShow.css( "overflow" ),
 				percentDone = 0,
 				showProps = {},
 				hideProps = {},
@@ -462,45 +550,57 @@ $.extend($.ui.accordion, {
 			// fix width before calculating height of hidden element
 			var s = options.toShow;
 			originalWidth = s[0].style.width;
-			s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) );
-			
-			$.each(fxAttrs, function(i, prop) {
-				hideProps[prop] = 'hide';
-				
-				var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/);
-				showProps[prop] = {
-					value: parts[1],
-					unit: parts[2] || 'px'
+			s.width( parseInt( s.parent().width(), 10 )
+				- parseInt( s.css( "paddingLeft" ), 10 )
+				- parseInt( s.css( "paddingRight" ), 10 )
+				- ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 )
+				- ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) );
+
+			$.each( fxAttrs, function( i, prop ) {
+				hideProps[ prop ] = "hide";
+
+				var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ );
+				showProps[ prop ] = {
+					value: parts[ 1 ],
+					unit: parts[ 2 ] || "px"
 				};
 			});
-			options.toShow.css({ height: 0, overflow: 'hidden' }).show();
-			options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{
-				step: function(now, settings) {
+			options.toShow.css({ height: 0, overflow: "hidden" }).show();
+			options.toHide
+				.filter( ":hidden" )
+					.each( options.complete )
+				.end()
+				.filter( ":visible" )
+				.animate( hideProps, {
+				step: function( now, settings ) {
 					// only calculate the percent when animating height
 					// IE gets very inconsistent results when animating elements
 					// with small values, which is common for padding
-					if (settings.prop == 'height') {
+					if ( settings.prop == "height" ) {
 						percentDone = ( settings.end - settings.start === 0 ) ? 0 :
-							(settings.now - settings.start) / (settings.end - settings.start);
+							( settings.now - settings.start ) / ( settings.end - settings.start );
 					}
-					
-					options.toShow[0].style[settings.prop] =
-						(percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit;
+
+					options.toShow[ 0 ].style[ settings.prop ] =
+						( percentDone * showProps[ settings.prop ].value )
+						+ showProps[ settings.prop ].unit;
 				},
 				duration: options.duration,
 				easing: options.easing,
 				complete: function() {
 					if ( !options.autoHeight ) {
-						options.toShow.css("height", "");
+						options.toShow.css( "height", "" );
 					}
-					options.toShow.css("width", originalWidth);
-					options.toShow.css({overflow: overflow});
+					options.toShow.css({
+						width: originalWidth,
+						overflow: overflow
+					});
 					options.complete();
 				}
 			});
 		},
-		bounceslide: function(options) {
-			this.slide(options, {
+		bounceslide: function( options ) {
+			this.slide( options, {
 				easing: options.down ? "easeOutBounce" : "swing",
 				duration: options.down ? 1000 : 200
 			});
@@ -508,4 +608,4 @@ $.extend($.ui.accordion, {
 	}
 });
 
-})(jQuery);
+})( jQuery );
diff --git a/development-bundle/ui/jquery.ui.autocomplete.js b/development-bundle/ui/jquery.ui.autocomplete.js
index b4280cb..63fd119 100644
--- a/development-bundle/ui/jquery.ui.autocomplete.js
+++ b/development-bundle/ui/jquery.ui.autocomplete.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Autocomplete 1.8
+ * jQuery UI Autocomplete 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Autocomplete
  *
@@ -12,16 +12,32 @@
  *	jquery.ui.widget.js
  *	jquery.ui.position.js
  */
-(function( $ ) {
+(function( $, undefined ) {
+
+// used to prevent race conditions with remote data sources
+var requestIndex = 0;
 
 $.widget( "ui.autocomplete", {
 	options: {
+		appendTo: "body",
+		autoFocus: false,
+		delay: 300,
 		minLength: 1,
-		delay: 300
+		position: {
+			my: "left top",
+			at: "left bottom",
+			collision: "none"
+		},
+		source: null
 	},
+
+	pending: 0,
+
 	_create: function() {
 		var self = this,
-			doc = this.element[ 0 ].ownerDocument;
+			doc = this.element[ 0 ].ownerDocument,
+			suppressKeyPress;
+
 		this.element
 			.addClass( "ui-autocomplete-input" )
 			.attr( "autocomplete", "off" )
@@ -32,6 +48,11 @@ $.widget( "ui.autocomplete", {
 				"aria-haspopup": "true"
 			})
 			.bind( "keydown.autocomplete", function( event ) {
+				if ( self.options.disabled || self.element.attr( "readonly" ) ) {
+					return;
+				}
+
+				suppressKeyPress = false;
 				var keyCode = $.ui.keyCode;
 				switch( event.keyCode ) {
 				case keyCode.PAGE_UP:
@@ -51,8 +72,12 @@ $.widget( "ui.autocomplete", {
 					event.preventDefault();
 					break;
 				case keyCode.ENTER:
-					// when menu is open or has focus
+				case keyCode.NUMPAD_ENTER:
+					// when menu is open and has focus
 					if ( self.menu.active ) {
+						// #6055 - Opera still allows the keypress to occur
+						// which causes forms to submit
+						suppressKeyPress = true;
 						event.preventDefault();
 					}
 					//passthrough - ENTER and TAB both select the current element
@@ -60,35 +85,49 @@ $.widget( "ui.autocomplete", {
 					if ( !self.menu.active ) {
 						return;
 					}
-					self.menu.select();
+					self.menu.select( event );
 					break;
 				case keyCode.ESCAPE:
 					self.element.val( self.term );
 					self.close( event );
 					break;
-				case keyCode.SHIFT:
-				case keyCode.CONTROL:
-				case 18:
-					// ignore metakeys (shift, ctrl, alt)
-					break;
 				default:
 					// keypress is triggered before the input value is changed
 					clearTimeout( self.searching );
 					self.searching = setTimeout(function() {
-						self.search( null, event );
+						// only search if the value has changed
+						if ( self.term != self.element.val() ) {
+							self.selectedItem = null;
+							self.search( null, event );
+						}
 					}, self.options.delay );
 					break;
 				}
 			})
+			.bind( "keypress.autocomplete", function( event ) {
+				if ( suppressKeyPress ) {
+					suppressKeyPress = false;
+					event.preventDefault();
+				}
+			})
 			.bind( "focus.autocomplete", function() {
+				if ( self.options.disabled ) {
+					return;
+				}
+
+				self.selectedItem = null;
 				self.previous = self.element.val();
 			})
 			.bind( "blur.autocomplete", function( event ) {
+				if ( self.options.disabled ) {
+					return;
+				}
+
 				clearTimeout( self.searching );
 				// clicks on the menu (or a button to trigger a search) will cause a blur event
-				// TODO try to implement this without a timeout, see clearTimeout in search()
 				self.closing = setTimeout(function() {
 					self.close( event );
+					self._change( event );
 				}, 150 );
 			});
 		this._initSource();
@@ -97,29 +136,73 @@ $.widget( "ui.autocomplete", {
 		};
 		this.menu = $( "<ul></ul>" )
 			.addClass( "ui-autocomplete" )
-			.appendTo( "body", doc )
+			.appendTo( $( this.options.appendTo || "body", doc )[0] )
+			// prevent the close-on-blur in case of a "slow" click on the menu (long mousedown)
+			.mousedown(function( event ) {
+				// clicking on the scrollbar causes focus to shift to the body
+				// but we can't detect a mouseup or a click immediately afterward
+				// so we have to track the next mousedown and close the menu if
+				// the user clicks somewhere outside of the autocomplete
+				var menuElement = self.menu.element[ 0 ];
+				if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+					setTimeout(function() {
+						$( document ).one( 'mousedown', function( event ) {
+							if ( event.target !== self.element[ 0 ] &&
+								event.target !== menuElement &&
+								!$.ui.contains( menuElement, event.target ) ) {
+								self.close();
+							}
+						});
+					}, 1 );
+				}
+
+				// use another timeout to make sure the blur-event-handler on the input was already triggered
+				setTimeout(function() {
+					clearTimeout( self.closing );
+				}, 13);
+			})
 			.menu({
 				focus: function( event, ui ) {
 					var item = ui.item.data( "item.autocomplete" );
-					if ( false !== self._trigger( "focus", null, { item: item } ) ) {
-						// use value to match what will end up in the input
-						self.element.val( item.value );
+					if ( false !== self._trigger( "focus", event, { item: item } ) ) {
+						// use value to match what will end up in the input, if it was a key event
+						if ( /^key/.test(event.originalEvent.type) ) {
+							self.element.val( item.value );
+						}
 					}
 				},
 				selected: function( event, ui ) {
-					var item = ui.item.data( "item.autocomplete" );
-					if ( false !== self._trigger( "select", event, { item: item } ) ) {
-						self.element.val( item.value );
-					}
-					self.close( event );
-					self.previous = self.element.val();
+					var item = ui.item.data( "item.autocomplete" ),
+						previous = self.previous;
+
 					// only trigger when focus was lost (click on menu)
 					if ( self.element[0] !== doc.activeElement ) {
 						self.element.focus();
+						self.previous = previous;
+						// #6109 - IE triggers two focus events and the second
+						// is asynchronous, so we need to reset the previous
+						// term synchronously and asynchronously :-(
+						setTimeout(function() {
+							self.previous = previous;
+							self.selectedItem = item;
+						}, 1);
 					}
+
+					if ( false !== self._trigger( "select", event, { item: item } ) ) {
+						self.element.val( item.value );
+					}
+					// reset the term after the select event
+					// this allows custom select handling to work properly
+					self.term = self.element.val();
+
+					self.close( event );
+					self.selectedItem = item;
 				},
 				blur: function( event, ui ) {
-					if ( self.menu.element.is(":visible") ) {
+					// don't set the value of the text field if it's already correct
+					// this prevents moving the cursor unnecessarily
+					if ( self.menu.element.is(":visible") &&
+						( self.element.val() !== self.term ) ) {
 						self.element.val( self.term );
 					}
 				}
@@ -136,7 +219,7 @@ $.widget( "ui.autocomplete", {
 
 	destroy: function() {
 		this.element
-			.removeClass( "ui-autocomplete-input ui-widget ui-widget-content" )
+			.removeClass( "ui-autocomplete-input" )
 			.removeAttr( "autocomplete" )
 			.removeAttr( "role" )
 			.removeAttr( "aria-autocomplete" )
@@ -145,29 +228,50 @@ $.widget( "ui.autocomplete", {
 		$.Widget.prototype.destroy.call( this );
 	},
 
-	_setOption: function( key ) {
+	_setOption: function( key, value ) {
 		$.Widget.prototype._setOption.apply( this, arguments );
 		if ( key === "source" ) {
 			this._initSource();
 		}
+		if ( key === "appendTo" ) {
+			this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] )
+		}
+		if ( key === "disabled" && value && this.xhr ) {
+			this.xhr.abort();
+		}
 	},
 
 	_initSource: function() {
-		var array,
+		var self = this,
+			array,
 			url;
 		if ( $.isArray(this.options.source) ) {
 			array = this.options.source;
 			this.source = function( request, response ) {
-				// escape regex characters
-				var matcher = new RegExp( $.ui.autocomplete.escapeRegex(request.term), "i" );
-				response( $.grep( array, function(value) {
-					return matcher.test( value.label || value.value || value );
-				}) );
+				response( $.ui.autocomplete.filter(array, request.term) );
 			};
 		} else if ( typeof this.options.source === "string" ) {
 			url = this.options.source;
 			this.source = function( request, response ) {
-				$.getJSON( url, request, response );
+				if ( self.xhr ) {
+					self.xhr.abort();
+				}
+				self.xhr = $.ajax({
+					url: url,
+					data: request,
+					dataType: "json",
+					autocompleteRequest: ++requestIndex,
+					success: function( data, status ) {
+						if ( this.autocompleteRequest === requestIndex ) {
+							response( data );
+						}
+					},
+					error: function() {
+						if ( this.autocompleteRequest === requestIndex ) {
+							response( [] );
+						}
+					}
+				});
 			};
 		} else {
 			this.source = this.options.source;
@@ -176,12 +280,16 @@ $.widget( "ui.autocomplete", {
 
 	search: function( value, event ) {
 		value = value != null ? value : this.element.val();
+
+		// always save the actual value, not the one passed as an argument
+		this.term = this.element.val();
+
 		if ( value.length < this.options.minLength ) {
 			return this.close( event );
 		}
 
 		clearTimeout( this.closing );
-		if ( this._trigger("search") === false ) {
+		if ( this._trigger( "search", event ) === false ) {
 			return;
 		}
 
@@ -189,34 +297,38 @@ $.widget( "ui.autocomplete", {
 	},
 
 	_search: function( value ) {
-		this.term = this.element
-			.addClass( "ui-autocomplete-loading" )
-			// always save the actual value, not the one passed as an argument
-			.val();
+		this.pending++;
+		this.element.addClass( "ui-autocomplete-loading" );
 
 		this.source( { term: value }, this.response );
 	},
 
 	_response: function( content ) {
-		if ( content.length ) {
+		if ( !this.options.disabled && content && content.length ) {
 			content = this._normalize( content );
 			this._suggest( content );
 			this._trigger( "open" );
 		} else {
 			this.close();
 		}
-		this.element.removeClass( "ui-autocomplete-loading" );
+		this.pending--;
+		if ( !this.pending ) {
+			this.element.removeClass( "ui-autocomplete-loading" );
+		}
 	},
 
 	close: function( event ) {
 		clearTimeout( this.closing );
 		if ( this.menu.element.is(":visible") ) {
-			this._trigger( "close", event );
 			this.menu.element.hide();
 			this.menu.deactivate();
+			this._trigger( "close", event );
 		}
+	},
+	
+	_change: function( event ) {
 		if ( this.previous !== this.element.val() ) {
-			this._trigger( "change", event );
+			this._trigger( "change", event, { item: this.selectedItem } );
 		}
 	},
 
@@ -241,26 +353,33 @@ $.widget( "ui.autocomplete", {
 
 	_suggest: function( items ) {
 		var ul = this.menu.element
-				.empty()
-				.zIndex( this.element.zIndex() + 1 ),
-			menuWidth,
-			textWidth;
+			.empty()
+			.zIndex( this.element.zIndex() + 1 );
 		this._renderMenu( ul, items );
 		// TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate
 		this.menu.deactivate();
 		this.menu.refresh();
-		this.menu.element.show().position({
-			my: "left top",
-			at: "left bottom",
-			of: this.element,
-			collision: "none"
-		});
 
-		menuWidth = ul.width( "" ).width();
-		textWidth = this.element.width();
-		ul.width( Math.max( menuWidth, textWidth ) );
+		// size and position menu
+		ul.show();
+		this._resizeMenu();
+		ul.position( $.extend({
+			of: this.element
+		}, this.options.position ));
+
+		if ( this.options.autoFocus ) {
+			this.menu.next( new $.Event("mouseover") );
+		}
+	},
+
+	_resizeMenu: function() {
+		var ul = this.menu.element;
+		ul.outerWidth( Math.max(
+			ul.width( "" ).outerWidth(),
+			this.element.outerWidth()
+		) );
 	},
-	
+
 	_renderMenu: function( ul, items ) {
 		var self = this;
 		$.each( items, function( index, item ) {
@@ -271,7 +390,7 @@ $.widget( "ui.autocomplete", {
 	_renderItem: function( ul, item) {
 		return $( "<li></li>" )
 			.data( "item.autocomplete", item )
-			.append( "<a>" + item.label + "</a>" )
+			.append( $( "<a></a>" ).text( item.label ) )
 			.appendTo( ul );
 	},
 
@@ -286,7 +405,7 @@ $.widget( "ui.autocomplete", {
 			this.menu.deactivate();
 			return;
 		}
-		this.menu[ direction ]();
+		this.menu[ direction ]( event );
 	},
 
 	widget: function() {
@@ -296,7 +415,13 @@ $.widget( "ui.autocomplete", {
 
 $.extend( $.ui.autocomplete, {
 	escapeRegex: function( value ) {
-		return value.replace( /([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1" );
+		return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+	},
+	filter: function(array, term) {
+		var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
+		return $.grep( array, function(value) {
+			return matcher.test( value.label || value.value || value );
+		});
 	}
 });
 
@@ -309,9 +434,9 @@ $.extend( $.ui.autocomplete, {
  * it for the next release. You're welcome to give it a try anyway and give us feedback,
  * as long as you're okay with migrating your code later on. We can help with that, too.
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Menu
  *
@@ -330,10 +455,13 @@ $.widget("ui.menu", {
 				role: "listbox",
 				"aria-activedescendant": "ui-active-menuitem"
 			})
-			.click(function(e) {
+			.click(function( event ) {
+				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
+					return;
+				}
 				// temporary
-				e.preventDefault();
-				self.select();
+				event.preventDefault();
+				self.select( event );
 			});
 		this.refresh();
 	},
@@ -350,15 +478,15 @@ $.widget("ui.menu", {
 			.addClass("ui-corner-all")
 			.attr("tabindex", -1)
 			// mouseenter doesn't work with event delegation
-			.mouseenter(function() {
-				self.activate($(this).parent());
+			.mouseenter(function( event ) {
+				self.activate( event, $(this).parent() );
 			})
 			.mouseleave(function() {
 				self.deactivate();
 			});
 	},
 
-	activate: function(item) {
+	activate: function( event, item ) {
 		this.deactivate();
 		if (this.hasScroll()) {
 			var offset = item.offset().top - this.element.offset().top,
@@ -366,7 +494,7 @@ $.widget("ui.menu", {
 				elementHeight = this.element.height();
 			if (offset < 0) {
 				this.element.attr("scrollTop", scroll + offset);
-			} else if (offset > elementHeight) {
+			} else if (offset >= elementHeight) {
 				this.element.attr("scrollTop", scroll + offset - elementHeight + item.height());
 			}
 		}
@@ -375,7 +503,7 @@ $.widget("ui.menu", {
 				.addClass("ui-state-hover")
 				.attr("id", "ui-active-menuitem")
 			.end();
-		this._trigger("focus", null, { item: item });
+		this._trigger("focus", event, { item: item });
 	},
 
 	deactivate: function() {
@@ -388,46 +516,46 @@ $.widget("ui.menu", {
 		this.active = null;
 	},
 
-	next: function() {
-		this.move("next", "li:first");
+	next: function(event) {
+		this.move("next", ".ui-menu-item:first", event);
 	},
 
-	previous: function() {
-		this.move("prev", "li:last");
+	previous: function(event) {
+		this.move("prev", ".ui-menu-item:last", event);
 	},
 
 	first: function() {
-		return this.active && !this.active.prev().length;
+		return this.active && !this.active.prevAll(".ui-menu-item").length;
 	},
 
 	last: function() {
-		return this.active && !this.active.next().length;
+		return this.active && !this.active.nextAll(".ui-menu-item").length;
 	},
 
-	move: function(direction, edge) {
+	move: function(direction, edge, event) {
 		if (!this.active) {
-			this.activate(this.element.children(edge));
+			this.activate(event, this.element.children(edge));
 			return;
 		}
-		var next = this.active[direction]();
+		var next = this.active[direction + "All"](".ui-menu-item").eq(0);
 		if (next.length) {
-			this.activate(next);
+			this.activate(event, next);
 		} else {
-			this.activate(this.element.children(edge));
+			this.activate(event, this.element.children(edge));
 		}
 	},
 
 	// TODO merge with previousPage
-	nextPage: function() {
+	nextPage: function(event) {
 		if (this.hasScroll()) {
 			// TODO merge with no-scroll-else
 			if (!this.active || this.last()) {
-				this.activate(this.element.children(":first"));
+				this.activate(event, this.element.children(".ui-menu-item:first"));
 				return;
 			}
 			var base = this.active.offset().top,
 				height = this.element.height(),
-				result = this.element.children("li").filter(function() {
+				result = this.element.children(".ui-menu-item").filter(function() {
 					var close = $(this).offset().top - base - height + $(this).height();
 					// TODO improve approximation
 					return close < 10 && close > -10;
@@ -435,26 +563,27 @@ $.widget("ui.menu", {
 
 			// TODO try to catch this earlier when scrollTop indicates the last page anyway
 			if (!result.length) {
-				result = this.element.children(":last");
+				result = this.element.children(".ui-menu-item:last");
 			}
-			this.activate(result);
+			this.activate(event, result);
 		} else {
-			this.activate(this.element.children(!this.active || this.last() ? ":first" : ":last"));
+			this.activate(event, this.element.children(".ui-menu-item")
+				.filter(!this.active || this.last() ? ":first" : ":last"));
 		}
 	},
 
 	// TODO merge with nextPage
-	previousPage: function() {
+	previousPage: function(event) {
 		if (this.hasScroll()) {
 			// TODO merge with no-scroll-else
 			if (!this.active || this.first()) {
-				this.activate(this.element.children(":last"));
+				this.activate(event, this.element.children(".ui-menu-item:last"));
 				return;
 			}
 
 			var base = this.active.offset().top,
 				height = this.element.height();
-				result = this.element.children("li").filter(function() {
+				result = this.element.children(".ui-menu-item").filter(function() {
 					var close = $(this).offset().top - base + height - $(this).height();
 					// TODO improve approximation
 					return close < 10 && close > -10;
@@ -462,11 +591,12 @@ $.widget("ui.menu", {
 
 			// TODO try to catch this earlier when scrollTop indicates the last page anyway
 			if (!result.length) {
-				result = this.element.children(":first");
+				result = this.element.children(".ui-menu-item:first");
 			}
-			this.activate(result);
+			this.activate(event, result);
 		} else {
-			this.activate(this.element.children(!this.active || this.first() ? ":last" : ":first"));
+			this.activate(event, this.element.children(".ui-menu-item")
+				.filter(!this.active || this.first() ? ":last" : ":first"));
 		}
 	},
 
@@ -474,8 +604,8 @@ $.widget("ui.menu", {
 		return this.element.height() < this.element.attr("scrollHeight");
 	},
 
-	select: function() {
-		this._trigger("selected", null, { item: this.active });
+	select: function( event ) {
+		this._trigger("selected", event, { item: this.active });
 	}
 });
 
diff --git a/development-bundle/ui/jquery.ui.button.js b/development-bundle/ui/jquery.ui.button.js
index bfb7cb6..2742018 100644
--- a/development-bundle/ui/jquery.ui.button.js
+++ b/development-bundle/ui/jquery.ui.button.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Button 1.8
+ * jQuery UI Button 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Button
  *
@@ -11,12 +11,12 @@
  *	jquery.ui.core.js
  *	jquery.ui.widget.js
  */
-(function( $ ) {
+(function( $, undefined ) {
 
 var lastActive,
 	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
-	otherClasses = "ui-state-hover ui-state-active " +
-		"ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon ui-button-text-only",
+	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( event ) {
 		$( ":ui-button", event.target.form ).each(function() {
 			var inst = $( this ).data( "button" );
@@ -44,6 +44,7 @@ var lastActive,
 
 $.widget( "ui.button", {
 	options: {
+		disabled: null,
 		text: true,
 		label: null,
 		icons: {
@@ -56,6 +57,10 @@ $.widget( "ui.button", {
 			.unbind( "reset.button" )
 			.bind( "reset.button", formResetHandler );
 
+		if ( typeof this.options.disabled !== "boolean" ) {
+			this.options.disabled = this.element.attr( "disabled" );
+		}
+
 		this._determineButtonType();
 		this.hasTitle = !!this.buttonElement.attr( "title" );
 
@@ -177,26 +182,30 @@ $.widget( "ui.button", {
 	},
 
 	_determineButtonType: function() {
-		
+
 		if ( this.element.is(":checkbox") ) {
 			this.type = "checkbox";
+		} else if ( this.element.is(":radio") ) {
+			this.type = "radio";
+		} else if ( this.element.is("input") ) {
+			this.type = "input";
 		} else {
-			if ( this.element.is(":radio") ) {
-				this.type = "radio";
-			} else {
-				if ( this.element.is("input") ) {
-					this.type = "input";
-				} else {
-					this.type = "button";
-				}
-			}
+			this.type = "button";
 		}
-		
+
 		if ( this.type === "checkbox" || this.type === "radio" ) {
 			// we don't search against the document in case the element
 			// is disconnected from the DOM
-			this.buttonElement = this.element.parents().last()
-				.find( "[for=" + this.element.attr("id") + "]" );
+			var ancestor = this.element.parents().filter(":last"),
+				labelSelector = "label[for=" + this.element.attr("id") + "]";
+			this.buttonElement = ancestor.find( labelSelector );
+			if ( !this.buttonElement.length ) {
+				ancestor = ancestor.length ? ancestor.siblings() : this.element.siblings();
+				this.buttonElement = ancestor.filter( labelSelector );
+				if ( !this.buttonElement.length ) {
+					this.buttonElement = ancestor.find( labelSelector );
+				}
+			}
 			this.element.addClass( "ui-helper-hidden-accessible" );
 
 			var checked = this.element.is( ":checked" );
@@ -217,7 +226,7 @@ $.widget( "ui.button", {
 		this.element
 			.removeClass( "ui-helper-hidden-accessible" );
 		this.buttonElement
-			.removeClass( baseClasses + " " + otherClasses )
+			.removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
 			.removeAttr( "role" )
 			.removeAttr( "aria-pressed" )
 			.html( this.buttonElement.find(".ui-button-text").html() );
@@ -278,41 +287,50 @@ $.widget( "ui.button", {
 			}
 			return;
 		}
-		var buttonElement = this.buttonElement,
+		var buttonElement = this.buttonElement.removeClass( typeClasses ),
 			buttonText = $( "<span></span>" )
 				.addClass( "ui-button-text" )
 				.html( this.options.label )
 				.appendTo( buttonElement.empty() )
 				.text(),
 			icons = this.options.icons,
-			multipleIcons = icons.primary && icons.secondary;
+			multipleIcons = icons.primary && icons.secondary,
+			buttonClasses = [];  
+
 		if ( icons.primary || icons.secondary ) {
-			buttonElement.addClass( "ui-button-text-icon" +
-				( multipleIcons ? "s" : "" ) );
+			if ( this.options.text ) {
+				buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) );
+			}
+
 			if ( icons.primary ) {
 				buttonElement.prepend( "<span class='ui-button-icon-primary ui-icon " + icons.primary + "'></span>" );
 			}
+
 			if ( icons.secondary ) {
 				buttonElement.append( "<span class='ui-button-icon-secondary ui-icon " + icons.secondary + "'></span>" );
 			}
+
 			if ( !this.options.text ) {
-				buttonElement
-					.addClass( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" )
-					.removeClass( "ui-button-text-icons ui-button-text-icon" );
+				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
+
 				if ( !this.hasTitle ) {
 					buttonElement.attr( "title", buttonText );
 				}
 			}
 		} else {
-			buttonElement.addClass( "ui-button-text-only" );
+			buttonClasses.push( "ui-button-text-only" );
 		}
+		buttonElement.addClass( buttonClasses.join( " " ) );
 	}
 });
 
 $.widget( "ui.buttonset", {
+	options: {
+		items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)"
+	},
+
 	_create: function() {
 		this.element.addClass( "ui-buttonset" );
-		this._init();
 	},
 	
 	_init: function() {
@@ -328,7 +346,7 @@ $.widget( "ui.buttonset", {
 	},
 	
 	refresh: function() {
-		this.buttons = this.element.find( ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" )
+		this.buttons = this.element.find( this.options.items )
 			.filter( ":ui-button" )
 				.button( "refresh" )
 			.end()
@@ -356,7 +374,7 @@ $.widget( "ui.buttonset", {
 			})
 				.removeClass( "ui-corner-left ui-corner-right" )
 			.end()
-			.button( "destroy" )
+			.button( "destroy" );
 
 		$.Widget.prototype.destroy.call( this );
 	}
diff --git a/development-bundle/ui/jquery.ui.core.js b/development-bundle/ui/jquery.ui.core.js
index e81699e..abfa7e2 100644
--- a/development-bundle/ui/jquery.ui.core.js
+++ b/development-bundle/ui/jquery.ui.core.js
@@ -1,78 +1,33 @@
 /*!
- * jQuery UI 1.8
+ * jQuery UI 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI
  */
-;jQuery.ui || (function($) {
+(function( $, undefined ) {
 
-//Helper functions and ui object
-$.ui = {
-	version: "1.8",
+// 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;
+}
 
-	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
-	plugin: {
-		add: function(module, option, set) {
-			var proto = $.ui[module].prototype;
-			for(var i in set) {
-				proto.plugins[i] = proto.plugins[i] || [];
-				proto.plugins[i].push([option, set[i]]);
-			}
-		},
-		call: function(instance, name, args) {
-			var set = instance.plugins[name];
-			if(!set || !instance.element[0].parentNode) { return; }
-
-			for (var i = 0; i < set.length; i++) {
-				if (instance.options[set[i][0]]) {
-					set[i][1].apply(instance.element, args);
-				}
-			}
-		}
-	},
-
-	contains: function(a, b) {
-		return document.compareDocumentPosition
-			? a.compareDocumentPosition(b) & 16
-			: a !== b && a.contains(b);
-	},
-
-	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;
-	},
-
-	isOverAxis: function(x, reference, size) {
-		//Determines when x coordinate is over "b" element axis
-		return (x > reference) && (x < (reference + size));
-	},
-
-	isOver: function(y, x, top, left, height, width) {
-		//Determines when x, y coordinates is over "b" element
-		return $.ui.isOverAxis(y, top, height) && $.ui.isOverAxis(x, left, width);
-	},
+$.extend( $.ui, {
+	version: "1.8.12",
 
 	keyCode: {
+		ALT: 18,
 		BACKSPACE: 8,
 		CAPS_LOCK: 20,
 		COMMA: 188,
+		COMMAND: 91,
+		COMMAND_LEFT: 91, // COMMAND
+		COMMAND_RIGHT: 93,
 		CONTROL: 17,
 		DELETE: 46,
 		DOWN: 40,
@@ -82,6 +37,7 @@ $.ui = {
 		HOME: 36,
 		INSERT: 45,
 		LEFT: 37,
+		MENU: 93, // COMMAND_RIGHT
 		NUMPAD_ADD: 107,
 		NUMPAD_DECIMAL: 110,
 		NUMPAD_DIVIDE: 111,
@@ -95,42 +51,31 @@ $.ui = {
 		SHIFT: 16,
 		SPACE: 32,
 		TAB: 9,
-		UP: 38
+		UP: 38,
+		WINDOWS: 91 // COMMAND
 	}
-};
+});
 
-//jQuery plugins
+// plugins
 $.fn.extend({
 	_focus: $.fn.focus,
-	focus: function(delay, fn) {
-		return typeof delay === 'number'
-			? this.each(function() {
+	focus: function( delay, fn ) {
+		return typeof delay === "number" ?
+			this.each(function() {
 				var elem = this;
 				setTimeout(function() {
-					$(elem).focus();
-					(fn && fn.call(elem));
-				}, delay);
-			})
-			: this._focus.apply(this, arguments);
-	},
-	
-	enableSelection: function() {
-		return this
-			.attr('unselectable', 'off')
-			.css('MozUserSelect', '')
-			.unbind('selectstart.ui');
-	},
-
-	disableSelection: function() {
-		return this
-			.attr('unselectable', 'on')
-			.css('MozUserSelect', 'none')
-			.bind('selectstart.ui', function() { return false; });
+					$( elem ).focus();
+					if ( fn ) {
+						fn.call( elem );
+					}
+				}, delay );
+			}) :
+			this._focus.apply( this, arguments );
 	},
 
 	scrollParent: function() {
 		var scrollParent;
-		if(($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
+		if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
 			scrollParent = this.parents().filter(function() {
 				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
 			}).eq(0);
@@ -143,26 +88,25 @@ $.fn.extend({
 		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
 	},
 
-	zIndex: function(zIndex) {
-		if (zIndex !== undefined) {
-			return this.css('zIndex', zIndex);
+	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) {
+
+		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')
-				{
+				position = elem.css( "position" );
+				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
 					// IE returns 0 when zIndex is not specified
 					// other browsers return a string
 					// we ignore the case of nested elements with an explicit value of 0
 					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
-					value = parseInt(elem.css('zIndex'));
-					if (!isNaN(value) && value != 0) {
+					value = parseInt( elem.css( "zIndex" ), 10 );
+					if ( !isNaN( value ) && value !== 0 ) {
 						return value;
 					}
 				}
@@ -171,33 +115,194 @@ $.fn.extend({
 		}
 
 		return 0;
+	},
+
+	disableSelection: function() {
+		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
+			".ui-disableSelection", function( event ) {
+				event.preventDefault();
+			});
+	},
+
+	enableSelection: function() {
+		return this.unbind( ".ui-disableSelection" );
+	}
+});
+
+$.each( [ "Width", "Height" ], function( i, name ) {
+	var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
+		type = name.toLowerCase(),
+		orig = {
+			innerWidth: $.fn.innerWidth,
+			innerHeight: $.fn.innerHeight,
+			outerWidth: $.fn.outerWidth,
+			outerHeight: $.fn.outerHeight
+		};
+
+	function reduce( elem, size, border, margin ) {
+		$.each( side, function() {
+			size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
+			if ( border ) {
+				size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
+			}
+			if ( margin ) {
+				size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
+			}
+		});
+		return size;
 	}
+
+	$.fn[ "inner" + name ] = function( size ) {
+		if ( size === undefined ) {
+			return orig[ "inner" + name ].call( this );
+		}
+
+		return this.each(function() {
+			$( this ).css( type, reduce( this, size ) + "px" );
+		});
+	};
+
+	$.fn[ "outer" + name] = function( size, margin ) {
+		if ( typeof size !== "number" ) {
+			return orig[ "outer" + name ].call( this, size );
+		}
+
+		return this.each(function() {
+			$( this).css( type, reduce( this, size, true, margin ) + "px" );
+		});
+	};
 });
 
+// selectors
+function visible( element ) {
+	return !$( element ).parents().andSelf().filter(function() {
+		return $.curCSS( this, "visibility" ) === "hidden" ||
+			$.expr.filters.hidden( this );
+	}).length;
+}
 
-//Additional selectors
-$.extend($.expr[':'], {
-	data: function(elem, i, match) {
-		return !!$.data(elem, match[3]);
+$.extend( $.expr[ ":" ], {
+	data: function( elem, i, match ) {
+		return !!$.data( elem, match[ 3 ] );
 	},
 
-	focusable: function(element) {
+	focusable: function( element ) {
 		var nodeName = element.nodeName.toLowerCase(),
-			tabIndex = $.attr(element, 'tabindex');
-		return (/input|select|textarea|button|object/.test(nodeName)
+			tabIndex = $.attr( element, "tabindex" );
+		if ( "area" === nodeName ) {
+			var map = element.parentNode,
+				mapName = map.name,
+				img;
+			if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
+				return false;
+			}
+			img = $( "img[usemap=#" + mapName + "]" )[0];
+			return !!img && visible( img );
+		}
+		return ( /input|select|textarea|button|object/.test( nodeName )
 			? !element.disabled
-			: 'a' == nodeName || 'area' == nodeName
-				? element.href || !isNaN(tabIndex)
-				: !isNaN(tabIndex))
+			: "a" == nodeName
+				? element.href || !isNaN( tabIndex )
+				: !isNaN( tabIndex ))
 			// the element and all of its ancestors must be visible
-			// the browser may report that the area is hidden
-			&& !$(element)['area' == nodeName ? 'parents' : 'closest'](':hidden').length;
+			&& visible( element );
 	},
 
-	tabbable: function(element) {
-		var tabIndex = $.attr(element, 'tabindex');
-		return (isNaN(tabIndex) || tabIndex >= 0) && $(element).is(':focusable');
+	tabbable: function( element ) {
+		var tabIndex = $.attr( element, "tabindex" );
+		return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
+	}
+});
+
+// support
+$(function() {
+	var body = document.body,
+		div = body.appendChild( div = document.createElement( "div" ) );
+
+	$.extend( div.style, {
+		minHeight: "100px",
+		height: "auto",
+		padding: 0,
+		borderWidth: 0
+	});
+
+	$.support.minHeight = div.offsetHeight === 100;
+	$.support.selectstart = "onselectstart" in div;
+
+	// set display to none to avoid a layout bug in IE
+	// http://dev.jquery.com/ticket/4014
+	body.removeChild( div ).style.display = "none";
+});
+
+
+
+
+
+// deprecated
+$.extend( $.ui, {
+	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
+	plugin: {
+		add: function( module, option, set ) {
+			var proto = $.ui[ module ].prototype;
+			for ( var i in set ) {
+				proto.plugins[ i ] = proto.plugins[ i ] || [];
+				proto.plugins[ i ].push( [ option, set[ i ] ] );
+			}
+		},
+		call: function( instance, name, args ) {
+			var set = instance.plugins[ name ];
+			if ( !set || !instance.element[ 0 ].parentNode ) {
+				return;
+			}
+	
+			for ( var i = 0; i < set.length; i++ ) {
+				if ( instance.options[ set[ i ][ 0 ] ] ) {
+					set[ i ][ 1 ].apply( instance.element, args );
+				}
+			}
+		}
+	},
+	
+	// will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
+	contains: function( a, b ) {
+		return document.compareDocumentPosition ?
+			a.compareDocumentPosition( b ) & 16 :
+			a !== b && a.contains( b );
+	},
+	
+	// only used by resizable
+	hasScroll: function( el, a ) {
+	
+		//If overflow is hidden, the element might have extra content, but the user wants to hide it
+		if ( $( el ).css( "overflow" ) === "hidden") {
+			return false;
+		}
+	
+		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
+			has = false;
+	
+		if ( el[ scroll ] > 0 ) {
+			return true;
+		}
+	
+		// TODO: determine which cases actually cause this to happen
+		// if the element doesn't have the scroll set, see if it's possible to
+		// set the scroll
+		el[ scroll ] = 1;
+		has = ( el[ scroll ] > 0 );
+		el[ scroll ] = 0;
+		return has;
+	},
+	
+	// these are odd functions, fix the API or move into individual plugins
+	isOverAxis: function( x, reference, size ) {
+		//Determines when x coordinate is over "b" element axis
+		return ( x > reference ) && ( x < ( reference + size ) );
+	},
+	isOver: function( y, x, top, left, height, width ) {
+		//Determines when x, y coordinates is over "b" element
+		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
 	}
 });
 
-})(jQuery);
+})( jQuery );
diff --git a/development-bundle/ui/jquery.ui.datepicker.js b/development-bundle/ui/jquery.ui.datepicker.js
index cbb3088..1cfbddd 100644
--- a/development-bundle/ui/jquery.ui.datepicker.js
+++ b/development-bundle/ui/jquery.ui.datepicker.js
@@ -1,19 +1,18 @@
 /*
- * jQuery UI Datepicker 1.8
+ * jQuery UI Datepicker 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Datepicker
  *
  * Depends:
  *	jquery.ui.core.js
  */
+(function( $, undefined ) {
 
-(function($) { // hide the namespace
-
-$.extend($.ui, { datepicker: { version: "1.8" } });
+$.extend($.ui, { datepicker: { version: "1.8.12" } });
 
 var PROP_NAME = 'datepicker';
 var dpuuid = new Date().getTime();
@@ -61,7 +60,7 @@ function Datepicker() {
 	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: 'show', // Name of jQuery animation for popup
+		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
@@ -88,7 +87,7 @@ function Datepicker() {
 			// 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: '_default', // Duration of display/closure
+		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
@@ -108,7 +107,7 @@ function Datepicker() {
 		autoSize: false // True to size the input for the date format, false to leave as is
 	};
 	$.extend(this._defaults, this.regional['']);
-	this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>');
+	this.dpDiv = $('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>');
 }
 
 $.extend(Datepicker.prototype, {
@@ -153,8 +152,10 @@ $.extend(Datepicker.prototype, {
 		}
 		var nodeName = target.nodeName.toLowerCase();
 		var inline = (nodeName == 'div' || nodeName == 'span');
-		if (!target.id)
-			target.id = 'dp' + (++this.uuid);
+		if (!target.id) {
+			this.uuid += 1;
+			target.id = 'dp' + this.uuid;
+		}
 		var inst = this._newInst($(target), inline);
 		inst.settings = $.extend({}, settings || {}, inlineSettings || {});
 		if (nodeName == 'input') {
@@ -166,7 +167,7 @@ $.extend(Datepicker.prototype, {
 
 	/* 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
+		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
@@ -271,6 +272,7 @@ $.extend(Datepicker.prototype, {
 		this._setDate(inst, this._getDefaultDate(inst), true);
 		this._updateDatepicker(inst);
 		this._updateAlternate(inst);
+		inst.dpDiv.show();
 	},
 
 	/* Pop-up the date picker in a "dialog" box.
@@ -285,7 +287,8 @@ $.extend(Datepicker.prototype, {
 	_dialogDatepicker: function(input, date, onSelect, settings, pos) {
 		var inst = this._dialogInst; // internal instance
 		if (!inst) {
-			var id = 'dp' + (++this.uuid);
+			this.uuid += 1;
+			var id = 'dp' + this.uuid;
 			this._dialogInput = $('<input type="text" id="' + id +
 				'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');
 			this._dialogInput.keydown(this._doKeyDown);
@@ -441,7 +444,14 @@ $.extend(Datepicker.prototype, {
 				this._hideDatepicker();
 			}
 			var date = this._getDateDatepicker(target, true);
+			var minDate = this._getMinMaxDate(inst, 'min');
+			var 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);
 			this._attachments($(target), inst);
 			this._autoSize(inst);
 			this._setDateDatepicker(target, date);
@@ -497,8 +507,8 @@ $.extend(Datepicker.prototype, {
 				case 9: $.datepicker._hideDatepicker();
 						handled = false;
 						break; // hide on tab out
-				case 13: var sel = $('td.' + $.datepicker._dayOverClass, inst.dpDiv).
-							add($('td.' + $.datepicker._currentClass, inst.dpDiv));
+				case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
+									$.datepicker._currentClass + ')', inst.dpDiv);
 						if (sel[0])
 							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
 						else
@@ -562,7 +572,7 @@ $.extend(Datepicker.prototype, {
 		if ($.datepicker._get(inst, 'constrainInput')) {
 			var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
 			var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode);
-			return event.ctrlKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
+			return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
 		}
 	},
 
@@ -622,6 +632,8 @@ $.extend(Datepicker.prototype, {
 		}
 		var 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);
@@ -636,10 +648,12 @@ $.extend(Datepicker.prototype, {
 			var duration = $.datepicker._get(inst, 'duration');
 			var postProcess = function() {
 				$.datepicker._datepickerShowing = true;
-				var borders = $.datepicker._getBorders(inst.dpDiv);
-				inst.dpDiv.find('iframe.ui-datepicker-cover'). // IE6- only
-					css({left: -borders[0], top: -borders[1],
+				var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
+				if( !! cover.length ){
+					var borders = $.datepicker._getBorders(inst.dpDiv);
+					cover.css({left: -borders[0], top: -borders[1],
 						width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()});
+				}
 			};
 			inst.dpDiv.zIndex($(input).zIndex()+1);
 			if ($.effects && $.effects[showAnim])
@@ -658,12 +672,12 @@ $.extend(Datepicker.prototype, {
 	_updateDatepicker: function(inst) {
 		var self = this;
 		var borders = $.datepicker._getBorders(inst.dpDiv);
-		inst.dpDiv.empty().append(this._generateHTML(inst))
-			.find('iframe.ui-datepicker-cover') // IE6- only
-				.css({left: -borders[0], top: -borders[1],
-					width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
-			.end()
-			.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
+		inst.dpDiv.empty().append(this._generateHTML(inst));
+		var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only
+		if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6
+			cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()})
+		}
+		inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a')
 				.bind('mouseout', function(){
 					$(this).removeClass('ui-state-hover');
 					if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover');
@@ -693,8 +707,21 @@ $.extend(Datepicker.prototype, {
 		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
 			'Class']('ui-datepicker-rtl');
 		if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
-				inst.input.is(':visible') && !inst.input.is(':disabled'))
+				// #6694 - don't focus the input if it's already focused
+				// this breaks the change event in IE
+				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 ){
+			var origyearshtml = inst.yearshtml;
+			setTimeout(function(){
+				//assure that inst.yearshtml didn't change.
+				if( origyearshtml === 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.
@@ -734,7 +761,7 @@ $.extend(Datepicker.prototype, {
 	_findPos: function(obj) {
 		var inst = this._getInst(obj);
 		var isRTL = this._get(inst, 'isRTL');
-        while (obj && (obj.type == 'hidden' || obj.nodeType != 1)) {
+        while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
             obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
         }
         var position = $(obj).offset();
@@ -844,8 +871,11 @@ $.extend(Datepicker.prototype, {
 	_clickMonthYear: function(id) {
 		var target = $(id);
 		var inst = this._getInst(target[0]);
-		if (inst.input && inst._selectingMonthYear && !$.browser.msie)
-			inst.input.focus();
+		if (inst.input && inst._selectingMonthYear) {
+			setTimeout(function() {
+				inst.input.focus();
+			}, 0);
+		}
 		inst._selectingMonthYear = !inst._selectingMonthYear;
 	},
 
@@ -945,6 +975,8 @@ $.extend(Datepicker.prototype, {
 		if (value == '')
 			return null;
 		var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff;
+		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
+				new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
 		var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort;
 		var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames;
 		var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort;
@@ -963,9 +995,9 @@ $.extend(Datepicker.prototype, {
 		};
 		// Extract a number from the string value
 		var getNumber = function(match) {
-			lookAhead(match);
+			var isDoubled = lookAhead(match);
 			var size = (match == '@' ? 14 : (match == '!' ? 20 :
-				(match == 'y' ? 4 : (match == 'o' ? 3 : 2))));
+				(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
 			var digits = new RegExp('^\\d{1,' + size + '}');
 			var num = value.substring(iValue).match(digits);
 			if (!num)
@@ -977,7 +1009,7 @@ $.extend(Datepicker.prototype, {
 		var getName = function(match, shortNames, longNames) {
 			var names = (lookAhead(match) ? longNames : shortNames);
 			for (var i = 0; i < names.length; i++) {
-				if (value.substr(iValue, names[i].length) == names[i]) {
+				if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) {
 					iValue += names[i].length;
 					return i + 1;
 				}
@@ -1057,7 +1089,7 @@ $.extend(Datepicker.prototype, {
 		}
 		var 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/*
+			throw 'Invalid date'; // E.g. 31/02/00
 		return date;
 	},
 
@@ -1295,16 +1327,16 @@ $.extend(Datepicker.prototype, {
 			}
 			return new Date(year, month, day);
 		};
-		date = (date == null ? defaultDate : (typeof date == 'string' ? offsetString(date) :
-			(typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : date)));
-		date = (date && date.toString() == 'Invalid Date' ? defaultDate : date);
-		if (date) {
-			date.setHours(0);
-			date.setMinutes(0);
-			date.setSeconds(0);
-			date.setMilliseconds(0);
+		var 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(date);
+		return this._daylightSavingAdjust(newDate);
 	},
 
 	/* Handle switch to/from daylight saving.
@@ -1321,13 +1353,13 @@ $.extend(Datepicker.prototype, {
 
 	/* Set the date(s) directly. */
 	_setDate: function(inst, date, noChange) {
-		var clear = !(date);
+		var clear = !date;
 		var origMonth = inst.selectedMonth;
 		var origYear = inst.selectedYear;
-		date = this._restrictMinMax(inst, this._determineDate(inst, date, new Date()));
-		inst.selectedDay = inst.currentDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = inst.currentYear = date.getFullYear();
+		var 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);
@@ -1543,32 +1575,43 @@ $.extend(Datepicker.prototype, {
 		if (!showMonthAfterYear)
 			html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
 		// year selection
-		if (secondary || !changeYear)
-			html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
-		else {
-			// determine range of years to display
-			var years = this._get(inst, 'yearRange').split(':');
-			var thisYear = new Date().getFullYear();
-			var 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);
-			};
-			var year = determineYear(years[0]);
-			var endYear = Math.max(year, determineYear(years[1] || ''));
-			year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
-			endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
-			html += '<select class="ui-datepicker-year" ' +
-				'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
-				'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
-				'>';
-			for (; year <= endYear; year++) {
-				html += '<option value="' + year + '"' +
-					(year == drawYear ? ' selected="selected"' : '') +
-					'>' + year + '</option>';
+		if ( !inst.yearshtml ) {
+			inst.yearshtml = '';
+			if (secondary || !changeYear)
+				html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
+			else {
+				// determine range of years to display
+				var years = this._get(inst, 'yearRange').split(':');
+				var thisYear = new Date().getFullYear();
+				var 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);
+				};
+				var year = determineYear(years[0]);
+				var 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 += '<select class="ui-datepicker-year" ' +
+					'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
+					'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
+					'>';
+				for (; year <= endYear; year++) {
+					inst.yearshtml += '<option value="' + year + '"' +
+						(year == drawYear ? ' selected="selected"' : '') +
+						'>' + year + '</option>';
+				}
+				inst.yearshtml += '</select>';
+				//when showing there is no need for later update
+				if( ! $.browser.mozilla ){
+					html += inst.yearshtml;
+					inst.yearshtml = null;
+				} else {
+					// will be replaced later with inst.yearshtml
+					html += '<select class="ui-datepicker-year"><option value="' + drawYear + '" selected="selected">' + drawYear + '</option></select>';
+				}
 			}
-			html += '</select>';
 		}
 		html += this._get(inst, 'yearSuffix');
 		if (showMonthAfterYear)
@@ -1596,9 +1639,9 @@ $.extend(Datepicker.prototype, {
 	_restrictMinMax: function(inst, date) {
 		var minDate = this._getMinMaxDate(inst, 'min');
 		var maxDate = this._getMinMaxDate(inst, 'max');
-		date = (minDate && date < minDate ? minDate : date);
-		date = (maxDate && date > maxDate ? maxDate : date);
-		return date;
+		var newDate = (minDate && date < minDate ? minDate : date);
+		newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
+		return newDate;
 	},
 
 	/* Notify change of month/year. */
@@ -1622,7 +1665,7 @@ $.extend(Datepicker.prototype, {
 
 	/* Find the number of days in a given month. */
 	_getDaysInMonth: function(year, month) {
-		return 32 - new Date(year, month, 32).getDate();
+		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
 	},
 
 	/* Find the day of the week of the first of a month. */
@@ -1692,7 +1735,12 @@ function isArray(a) {
                     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).
@@ -1718,7 +1766,7 @@ $.fn.datepicker = function(options){
 $.datepicker = new Datepicker(); // singleton instance
 $.datepicker.initialized = false;
 $.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.8";
+$.datepicker.version = "1.8.12";
 
 // Workaround for #4055
 // Add another global to avoid noConflict issues with inline event handlers
diff --git a/development-bundle/ui/jquery.ui.dialog.js b/development-bundle/ui/jquery.ui.dialog.js
index 8f924f6..b0ecd4c 100644
--- a/development-bundle/ui/jquery.ui.dialog.js
+++ b/development-bundle/ui/jquery.ui.dialog.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Dialog 1.8
+ * jQuery UI Dialog 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Dialog
  *
@@ -16,13 +16,40 @@
  *	jquery.ui.position.js
  *	jquery.ui.resizable.js
  */
-(function($) {
+(function( $, undefined ) {
 
 var uiDialogClasses =
-	'ui-dialog ' +
-	'ui-widget ' +
-	'ui-widget-content ' +
-	'ui-corner-all ';
+		'ui-dialog ' +
+		'ui-widget ' +
+		'ui-widget-content ' +
+		'ui-corner-all ',
+	sizeRelatedOptions = {
+		buttons: true,
+		height: true,
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true,
+		width: true
+	},
+	resizableRelatedOptions = {
+		maxHeight: true,
+		maxWidth: true,
+		minHeight: true,
+		minWidth: true
+	},
+	// support for jQuery 1.3.2 - handle common attrFn methods for dialog
+	attrFn = $.attrFn || {
+		val: true,
+		css: true,
+		html: true,
+		text: true,
+		data: true,
+		width: true,
+		height: true,
+		offset: true,
+		click: true
+	};
 
 $.widget("ui.dialog", {
 	options: {
@@ -39,7 +66,18 @@ $.widget("ui.dialog", {
 		minHeight: 150,
 		minWidth: 150,
 		modal: false,
-		position: 'center',
+		position: {
+			my: 'center',
+			at: 'center',
+			collision: 'fit',
+			// ensure that the titlebar is never outside the document
+			using: function(pos) {
+				var topOffset = $(this).css(pos).offset().top;
+				if (topOffset < 0) {
+					$(this).css('top', pos.top - topOffset);
+				}
+			}
+		},
 		resizable: true,
 		show: null,
 		stack: true,
@@ -47,13 +85,19 @@ $.widget("ui.dialog", {
 		width: 300,
 		zIndex: 1000
 	},
+
 	_create: function() {
 		this.originalTitle = this.element.attr('title');
+		// #5742 - .attr() might return a DOMElement
+		if ( typeof this.originalTitle !== "string" ) {
+			this.originalTitle = "";
+		}
 
+		this.options.title = this.options.title || this.originalTitle;
 		var self = this,
 			options = self.options,
 
-			title = options.title || self.originalTitle || ' ',
+			title = options.title || ' ',
 			titleId = $.ui.dialog.getTitleId(self.element),
 
 			uiDialog = (self.uiDialog = $('<div></div>'))
@@ -161,6 +205,7 @@ $.widget("ui.dialog", {
 			uiDialog.bgiframe();
 		}
 	},
+
 	_init: function() {
 		if ( this.options.autoOpen ) {
 			this.open();
@@ -187,14 +232,14 @@ $.widget("ui.dialog", {
 
 		return self;
 	},
-	
+
 	widget: function() {
 		return this.uiDialog;
 	},
 
 	close: function(event) {
 		var self = this,
-			maxZ;
+			maxZ, thisZ;
 		
 		if (false === self._trigger('beforeClose', event)) {
 			return;
@@ -223,7 +268,10 @@ $.widget("ui.dialog", {
 			maxZ = 0;
 			$('.ui-dialog').each(function() {
 				if (this !== self.uiDialog[0]) {
-					maxZ = Math.max(maxZ, $(this).css('z-index'));
+					thisZ = $(this).css('z-index');
+					if(!isNaN(thisZ)) {
+						maxZ = Math.max(maxZ, thisZ);
+					}
 				}
 			});
 			$.ui.dialog.maxZ = maxZ;
@@ -242,12 +290,12 @@ $.widget("ui.dialog", {
 		var self = this,
 			options = self.options,
 			saveScroll;
-		
+
 		if ((options.modal && !force) ||
 			(!options.stack && !options.modal)) {
 			return self._trigger('focus', event);
 		}
-		
+
 		if (options.zIndex > $.ui.dialog.maxZ) {
 			$.ui.dialog.maxZ = options.zIndex;
 		}
@@ -275,9 +323,6 @@ $.widget("ui.dialog", {
 			uiDialog = self.uiDialog;
 
 		self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
-		if (uiDialog.next().length) {
-			uiDialog.appendTo('body');
-		}
 		self._size();
 		self._position(options.position);
 		uiDialog.show(options.show);
@@ -289,11 +334,11 @@ $.widget("ui.dialog", {
 				if (event.keyCode !== $.ui.keyCode.TAB) {
 					return;
 				}
-	
+
 				var tabbables = $(':tabbable', this),
 					first = tabbables.filter(':first'),
 					last  = tabbables.filter(':last');
-	
+
 				if (event.target === last[0] && !event.shiftKey) {
 					first.focus(1);
 					return false;
@@ -306,15 +351,12 @@ $.widget("ui.dialog", {
 
 		// set focus to the first tabbable element in the content area or the first button
 		// if there are no tabbable elements, set focus on the dialog itself
-		$([])
-			.add(uiDialog.find('.ui-dialog-content :tabbable:first'))
-			.add(uiDialog.find('.ui-dialog-buttonpane :tabbable:first'))
-			.add(uiDialog)
-			.filter(':first')
-			.focus();
+		$(self.element.find(':tabbable').get().concat(
+			uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
+				uiDialog.get()))).eq(0).focus();
 
-		self._trigger('open');
 		self._isOpen = true;
+		self._trigger('open');
 
 		return self;
 	},
@@ -327,7 +369,10 @@ $.widget("ui.dialog", {
 					'ui-dialog-buttonpane ' +
 					'ui-widget-content ' +
 					'ui-helper-clearfix'
-				);
+				),
+			uiButtonSet = $( "<div></div>" )
+				.addClass( "ui-dialog-buttonset" )
+				.appendTo( uiDialogButtonPane );
 
 		// if we already have a button pane, remove it
 		self.uiDialog.find('.ui-dialog-buttonpane').remove();
@@ -338,11 +383,26 @@ $.widget("ui.dialog", {
 			});
 		}
 		if (hasButtons) {
-			$.each(buttons, function(name, fn) {
+			$.each(buttons, function(name, props) {
+				props = $.isFunction( props ) ?
+					{ click: props, text: name } :
+					props;
 				var button = $('<button type="button"></button>')
-					.text(name)
-					.click(function() { fn.apply(self.element[0], arguments); })
-					.appendTo(uiDialogButtonPane);
+					.click(function() {
+						props.click.apply(self.element[0], arguments);
+					})
+					.appendTo(uiButtonSet);
+				// can't use .attr( props, true ) with jQuery 1.3.2.
+				$.each( props, function( key, value ) {
+					if ( key === "click" ) {
+						return;
+					}
+					if ( key in attrFn ) {
+						button[ key ]( value );
+					} else {
+						button.attr( key, value );
+					}
+				});
 				if ($.fn.button) {
 					button.button();
 				}
@@ -450,40 +510,34 @@ $.widget("ui.dialog", {
 			offset = [0, 0],
 			isVisible;
 
-		position = position || $.ui.dialog.prototype.options.position;
+		if (position) {
+			// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
+	//		if (typeof position == 'string' || $.isArray(position)) {
+	//			myAt = $.isArray(position) ? position : position.split(' ');
 
-		// deep extending converts arrays to objects in jQuery <= 1.3.2 :-(
-//		if (typeof position == 'string' || $.isArray(position)) {
-//			myAt = $.isArray(position) ? position : position.split(' ');
+			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];
+				}
 
-		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;
+					}
+				});
 
-			$.each(['left', 'top'], function(i, offsetPosition) {
-				if (+myAt[i] === myAt[i]) {
-					offset[i] = myAt[i];
-					myAt[i] = offsetPosition;
-				}
-			});
-		} else if (typeof position === 'object') {
-			if ('left' in position) {
-				myAt[0] = 'left';
-				offset[0] = position.left;
-			} else if ('right' in position) {
-				myAt[0] = 'right';
-				offset[0] = -position.right;
-			}
+				position = {
+					my: myAt.join(" "),
+					at: myAt.join(" "),
+					offset: offset.join(" ")
+				};
+			} 
 
-			if ('top' in position) {
-				myAt[1] = 'top';
-				offset[1] = position.top;
-			} else if ('bottom' in position) {
-				myAt[1] = 'bottom';
-				offset[1] = -position.bottom;
-			}
+			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
@@ -494,31 +548,40 @@ $.widget("ui.dialog", {
 		this.uiDialog
 			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
 			.css({ top: 0, left: 0 })
-			.position({
-				my: myAt.join(' '),
-				at: myAt.join(' '),
-				offset: offset.join(' '),
-				of: window,
-				collision: 'fit',
-				// ensure that the titlebar is never outside the document
-				using: function(pos) {
-					var topOffset = $(this).css(pos).offset().top;
-					if (topOffset < 0) {
-						$(this).css('top', pos.top - topOffset);
-					}
-				}
-			});
+			.position($.extend({ of: window }, position));
 		if (!isVisible) {
 			this.uiDialog.hide();
 		}
 	},
 
-	_setOption: function(key, value){
+	_setOptions: function( options ) {
 		var self = this,
-			uiDialog = self.uiDialog,
-			isResizable = uiDialog.is(':data(resizable)'),
+			resizableOptions = {},
 			resize = false;
-		
+
+		$.each( options, function( key, value ) {
+			self._setOption( key, value );
+			
+			if ( key in sizeRelatedOptions ) {
+				resize = true;
+			}
+			if ( key in resizableRelatedOptions ) {
+				resizableOptions[ key ] = value;
+			}
+		});
+
+		if ( resize ) {
+			this._size();
+		}
+		if ( this.uiDialog.is( ":data(resizable)" ) ) {
+			this.uiDialog.resizable( "option", resizableOptions );
+		}
+	},
+
+	_setOption: function(key, value){
+		var self = this,
+			uiDialog = self.uiDialog;
+
 		switch (key) {
 			//handling of deprecated beforeclose (vs beforeClose) option
 			//Ticket #4669 http://dev.jqueryui.com/ticket/4669
@@ -530,7 +593,7 @@ $.widget("ui.dialog", {
 				self._createButtons(value);
 				break;
 			case "closeText":
-				// convert whatever was passed in to a string, for text() to not throw up
+				// ensure that we always pass a string
 				self.uiDialogTitlebarCloseText.text("" + value);
 				break;
 			case "dialogClass":
@@ -546,44 +609,21 @@ $.widget("ui.dialog", {
 				}
 				break;
 			case "draggable":
-				if (value) {
-					self._makeDraggable();
-				} else {
-					uiDialog.draggable('destroy');
-				}
-				break;
-			case "height":
-				resize = true;
-				break;
-			case "maxHeight":
-				if (isResizable) {
-					uiDialog.resizable('option', 'maxHeight', value);
-				}
-				resize = true;
-				break;
-			case "maxWidth":
-				if (isResizable) {
-					uiDialog.resizable('option', 'maxWidth', value);
-				}
-				resize = true;
-				break;
-			case "minHeight":
-				if (isResizable) {
-					uiDialog.resizable('option', 'minHeight', value);
+				var isDraggable = uiDialog.is( ":data(draggable)" );
+				if ( isDraggable && !value ) {
+					uiDialog.draggable( "destroy" );
 				}
-				resize = true;
-				break;
-			case "minWidth":
-				if (isResizable) {
-					uiDialog.resizable('option', 'minWidth', value);
+				
+				if ( !isDraggable && value ) {
+					self._makeDraggable();
 				}
-				resize = true;
 				break;
 			case "position":
 				self._position(value);
 				break;
 			case "resizable":
 				// currently resizable, becoming non-resizable
+				var isResizable = uiDialog.is( ":data(resizable)" );
 				if (isResizable && !value) {
 					uiDialog.resizable('destroy');
 				}
@@ -602,15 +642,9 @@ $.widget("ui.dialog", {
 				// convert whatever was passed in o a string, for html() to not throw up
 				$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' '));
 				break;
-			case "width":
-				resize = true;
-				break;
 		}
 
 		$.Widget.prototype._setOption.apply(self, arguments);
-		if (resize) {
-			self._size();
-		}
 	},
 
 	_size: function() {
@@ -618,12 +652,20 @@ $.widget("ui.dialog", {
 		 * divs will both have width and height set, so we need to reset them
 		 */
 		var options = this.options,
-			nonContentHeight;
+			nonContentHeight,
+			minContentHeight,
+			isVisible = this.uiDialog.is( ":visible" );
 
 		// reset content sizing
-		// hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)
-		this.element.css('width', 'auto')
-			.hide();
+		this.element.show().css({
+			width: 'auto',
+			minHeight: 0,
+			height: 0
+		});
+
+		if (options.minWidth > options.width) {
+			options.width = options.minWidth;
+		}
 
 		// reset wrapper sizing
 		// determine the height of all the non-content elements
@@ -632,16 +674,26 @@ $.widget("ui.dialog", {
 				width: options.width
 			})
 			.height();
-
-		this.element
-			.css(options.height === 'auto' ? {
-					minHeight: Math.max(options.minHeight - nonContentHeight, 0),
-					height: 'auto'
-				} : {
-					minHeight: 0,
-					height: Math.max(options.height - nonContentHeight, 0)				
-			})
-			.show();
+		minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
+		
+		if ( options.height === "auto" ) {
+			// only needed for IE6 support
+			if ( $.support.minHeight ) {
+				this.element.css({
+					minHeight: minContentHeight,
+					height: "auto"
+				});
+			} else {
+				this.uiDialog.show();
+				var autoHeight = this.element.css( "height", "auto" ).height();
+				if ( !isVisible ) {
+					this.uiDialog.hide();
+				}
+				this.element.height( Math.max( autoHeight, minContentHeight ) );
+			}
+		} else {
+			this.element.height( Math.max( options.height - nonContentHeight, 0 ) );
+		}
 
 		if (this.uiDialog.is(':data(resizable)')) {
 			this.uiDialog.resizable('option', 'minHeight', this._minHeight());
@@ -650,7 +702,7 @@ $.widget("ui.dialog", {
 });
 
 $.extend($.ui.dialog, {
-	version: "1.8",
+	version: "1.8.12",
 
 	uuid: 0,
 	maxZ: 0,
@@ -686,7 +738,10 @@ $.extend($.ui.dialog.overlay, {
 				if ($.ui.dialog.overlay.instances.length) {
 					$(document).bind($.ui.dialog.overlay.events, function(event) {
 						// stop events if the z-index of the target is < the z-index of the overlay
-						return ($(event.target).zIndex() >= $.ui.dialog.overlay.maxZ);
+						// we cannot return true when we don't want to cancel the event (#3523)
+						if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) {
+							return false;
+						}
 					});
 				}
 			}, 1);
@@ -721,7 +776,10 @@ $.extend($.ui.dialog.overlay, {
 	},
 
 	destroy: function($el) {
-		this.oldInstances.push(this.instances.splice($.inArray($el, this.instances), 1)[0]);
+		var indexOf = $.inArray($el, this.instances);
+		if (indexOf != -1){
+			this.oldInstances.push(this.instances.splice(indexOf, 1)[0]);
+		}
 
 		if (this.instances.length === 0) {
 			$([document, window]).unbind('.dialog-overlay');
diff --git a/development-bundle/ui/jquery.ui.draggable.js b/development-bundle/ui/jquery.ui.draggable.js
index 81ed1d2..0287bce 100644
--- a/development-bundle/ui/jquery.ui.draggable.js
+++ b/development-bundle/ui/jquery.ui.draggable.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Draggable 1.8
+ * jQuery UI Draggable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Draggables
  *
@@ -12,7 +12,7 @@
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.draggable", $.ui.mouse, {
 	widgetEventPrefix: "drag",
@@ -192,8 +192,8 @@ $.widget("ui.draggable", $.ui.mouse, {
 			this.dropped = false;
 		}
 		
-		//if the original element is removed, don't bother to continue
-		if(!this.element[0] || !this.element[0].parentNode)
+		//if the original element is removed, don't bother to continue if helper is set to "original"
+		if((!this.element[0] || !this.element[0].parentNode) && 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))) {
@@ -317,7 +317,9 @@ $.widget("ui.draggable", $.ui.mouse, {
 	_cacheMargins: function() {
 		this.margins = {
 			left: (parseInt(this.element.css("marginLeft"),10) || 0),
-			top: (parseInt(this.element.css("marginTop"),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)
 		};
 	},
 
@@ -333,10 +335,10 @@ $.widget("ui.draggable", $.ui.mouse, {
 		var 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
+			(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) {
@@ -345,10 +347,10 @@ $.widget("ui.draggable", $.ui.mouse, {
 			var 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
+				co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0),
+				co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0),
+				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 - this.margins.right,
+				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  - this.margins.bottom
 			];
 		} else if(o.containment.constructor == Array) {
 			this.containment = o.containment;
@@ -459,7 +461,7 @@ $.widget("ui.draggable", $.ui.mouse, {
 });
 
 $.extend($.ui.draggable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 $.ui.plugin.add("draggable", "connectToSortable", {
@@ -475,7 +477,7 @@ $.ui.plugin.add("draggable", "connectToSortable", {
 					instance: sortable,
 					shouldRevert: sortable.options.revert
 				});
-				sortable._refreshItems();	//Do a one-time refresh at start to refresh the containerCache
+				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);
 			}
 		});
diff --git a/development-bundle/ui/jquery.ui.droppable.js b/development-bundle/ui/jquery.ui.droppable.js
index cccb334..75b9030 100644
--- a/development-bundle/ui/jquery.ui.droppable.js
+++ b/development-bundle/ui/jquery.ui.droppable.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Droppable 1.8
+ * jQuery UI Droppable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Droppables
  *
@@ -13,7 +13,7 @@
  *	jquery.ui.mouse.js
  *	jquery.ui.draggable.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.droppable", {
 	widgetEventPrefix: "drop",
@@ -147,7 +147,7 @@ $.widget("ui.droppable", {
 });
 
 $.extend($.ui.droppable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 $.ui.intersect = function(draggable, droppable, toleranceMode) {
@@ -161,8 +161,8 @@ $.ui.intersect = function(draggable, droppable, toleranceMode) {
 
 	switch (toleranceMode) {
 		case 'fit':
-			return (l < x1 && x2 < r
-				&& t < y1 && y2 < b);
+			return (l <= x1 && x2 <= r
+				&& t <= y1 && y2 <= b);
 			break;
 		case 'intersect':
 			return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
@@ -212,11 +212,11 @@ $.ui.ddmanager = {
 			for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item
 			m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; 									//If the element is not visible, continue
 
+			if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
+
 			m[i].offset = m[i].element.offset();
 			m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight };
 
-			if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables
-
 		}
 
 	},
diff --git a/development-bundle/ui/jquery.ui.mouse.js b/development-bundle/ui/jquery.ui.mouse.js
index 46aeb81..368da12 100644
--- a/development-bundle/ui/jquery.ui.mouse.js
+++ b/development-bundle/ui/jquery.ui.mouse.js
@@ -1,16 +1,16 @@
 /*!
- * jQuery UI Mouse 1.8
+ * jQuery UI Mouse 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Mouse
  *
  * Depends:
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.mouse", {
 	options: {
@@ -26,8 +26,8 @@ $.widget("ui.mouse", {
 				return self._mouseDown(event);
 			})
 			.bind('click.'+this.widgetName, function(event) {
-				if(self._preventClickEvent) {
-					self._preventClickEvent = false;
+				if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
+				    $.removeData(event.target, self.widgetName + '.preventClickEvent');
 					event.stopImmediatePropagation();
 					return false;
 				}
@@ -75,6 +75,11 @@ $.widget("ui.mouse", {
 			}
 		}
 
+		// 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 self._mouseMove(event);
@@ -86,18 +91,14 @@ $.widget("ui.mouse", {
 			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
 			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
 
-		// preventDefault() is used to prevent the selection of text here -
-		// however, in Safari, this causes select boxes not to be selectable
-		// anymore, so this fix is needed
-		($.browser.safari || event.preventDefault());
-
+		event.preventDefault();
 		event.originalEvent.mouseHandled = true;
 		return true;
 	},
 
 	_mouseMove: function(event) {
 		// IE mouseup check - mouseup happened when mouse was out of window
-		if ($.browser.msie && !event.button) {
+		if ($.browser.msie && !(document.documentMode >= 9) && !event.button) {
 			return this._mouseUp(event);
 		}
 
@@ -122,7 +123,11 @@ $.widget("ui.mouse", {
 
 		if (this._mouseStarted) {
 			this._mouseStarted = false;
-			this._preventClickEvent = (event.target == this._mouseDownEvent.target);
+
+			if (event.target == this._mouseDownEvent.target) {
+			    $.data(event.target, this.widgetName + '.preventClickEvent', true);
+			}
+
 			this._mouseStop(event);
 		}
 
diff --git a/development-bundle/ui/jquery.ui.position.js b/development-bundle/ui/jquery.ui.position.js
index cfb727e..ff817be 100644
--- a/development-bundle/ui/jquery.ui.position.js
+++ b/development-bundle/ui/jquery.ui.position.js
@@ -1,20 +1,19 @@
 /*
- * jQuery UI Position 1.8
+ * jQuery UI Position 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Position
  */
-(function( $ ) {
+(function( $, undefined ) {
 
 $.ui = $.ui || {};
 
 var horizontalPositions = /left|center|right/,
-	horizontalDefault = "center",
 	verticalPositions = /top|center|bottom/,
-	verticalDefault = "center",
+	center = "center",
 	_position = $.fn.position,
 	_offset = $.fn.offset;
 
@@ -27,21 +26,23 @@ $.fn.position = function( options ) {
 	options = $.extend( {}, options );
 
 	var target = $( options.of ),
+		targetElem = target[0],
 		collision = ( options.collision || "flip" ).split( " " ),
 		offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ],
 		targetWidth,
 		targetHeight,
 		basePosition;
 
-	if ( options.of.nodeType === 9 ) {
+	if ( targetElem.nodeType === 9 ) {
 		targetWidth = target.width();
 		targetHeight = target.height();
 		basePosition = { top: 0, left: 0 };
-	} else if ( options.of.scrollTo && options.of.document ) {
+	// TODO: use $.isWindow() in 1.9
+	} else if ( targetElem.setTimeout ) {
 		targetWidth = target.width();
 		targetHeight = target.height();
 		basePosition = { top: target.scrollTop(), left: target.scrollLeft() };
-	} else if ( options.of.preventDefault ) {
+	} else if ( targetElem.preventDefault ) {
 		// force left top to allow flipping
 		options.at = "left top";
 		targetWidth = targetHeight = 0;
@@ -58,13 +59,13 @@ $.fn.position = function( options ) {
 		var pos = ( options[this] || "" ).split( " " );
 		if ( pos.length === 1) {
 			pos = horizontalPositions.test( pos[0] ) ?
-				pos.concat( [verticalDefault] ) :
+				pos.concat( [center] ) :
 				verticalPositions.test( pos[0] ) ?
-					[ horizontalDefault ].concat( pos ) :
-					[ horizontalDefault, verticalDefault ];
+					[ center ].concat( pos ) :
+					[ center, center ];
 		}
-		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : horizontalDefault;
-		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : verticalDefault;
+		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
+		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
 		options[ this ] = pos;
 	});
 
@@ -82,13 +83,13 @@ $.fn.position = function( options ) {
 
 	if ( options.at[0] === "right" ) {
 		basePosition.left += targetWidth;
-	} else if (options.at[0] === horizontalDefault ) {
+	} else if ( options.at[0] === center ) {
 		basePosition.left += targetWidth / 2;
 	}
 
 	if ( options.at[1] === "bottom" ) {
 		basePosition.top += targetHeight;
-	} else if ( options.at[1] === verticalDefault ) {
+	} else if ( options.at[1] === center ) {
 		basePosition.top += targetHeight / 2;
 	}
 
@@ -99,20 +100,36 @@ $.fn.position = function( options ) {
 		var elem = $( this ),
 			elemWidth = elem.outerWidth(),
 			elemHeight = elem.outerHeight(),
-			position = $.extend( {}, basePosition );
+			marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0,
+			marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0,
+			collisionWidth = elemWidth + marginLeft +
+				( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ),
+			collisionHeight = elemHeight + marginTop +
+				( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ),
+			position = $.extend( {}, basePosition ),
+			collisionPosition;
 
 		if ( options.my[0] === "right" ) {
 			position.left -= elemWidth;
-		} else if ( options.my[0] === horizontalDefault ) {
+		} else if ( options.my[0] === center ) {
 			position.left -= elemWidth / 2;
 		}
 
 		if ( options.my[1] === "bottom" ) {
 			position.top -= elemHeight;
-		} else if ( options.my[1] === verticalDefault ) {
+		} else if ( options.my[1] === center ) {
 			position.top -= elemHeight / 2;
 		}
 
+		// prevent fractions (see #5280)
+		position.left = Math.round( position.left );
+		position.top = Math.round( position.top );
+
+		collisionPosition = {
+			left: position.left - marginLeft,
+			top: position.top - marginTop
+		};
+
 		$.each( [ "left", "top" ], function( i, dir ) {
 			if ( $.ui.position[ collision[i] ] ) {
 				$.ui.position[ collision[i] ][ dir ]( position, {
@@ -120,6 +137,9 @@ $.fn.position = function( options ) {
 					targetHeight: targetHeight,
 					elemWidth: elemWidth,
 					elemHeight: elemHeight,
+					collisionPosition: collisionPosition,
+					collisionWidth: collisionWidth,
+					collisionHeight: collisionHeight,
 					offset: offset,
 					my: options.my,
 					at: options.at
@@ -138,41 +158,44 @@ $.ui.position = {
 	fit: {
 		left: function( position, data ) {
 			var win = $( window ),
-				over = position.left + data.elemWidth - win.width() - win.scrollLeft();
-			position.left = over > 0 ? position.left - over : Math.max( 0, position.left );
+				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft();
+			position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left );
 		},
 		top: function( position, data ) {
 			var win = $( window ),
-				over = position.top + data.elemHeight - win.height() - win.scrollTop();
-			position.top = over > 0 ? position.top - over : Math.max( 0, position.top );
+				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop();
+			position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top );
 		}
 	},
 
 	flip: {
 		left: function( position, data ) {
-			if ( data.at[0] === "center" ) {
+			if ( data.at[0] === center ) {
 				return;
 			}
 			var win = $( window ),
-				over = position.left + data.elemWidth - win.width() - win.scrollLeft(),
+				over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(),
 				myOffset = data.my[ 0 ] === "left" ?
 					-data.elemWidth :
 					data.my[ 0 ] === "right" ?
 						data.elemWidth :
 						0,
+				atOffset = data.at[ 0 ] === "left" ?
+					data.targetWidth :
+					-data.targetWidth,
 				offset = -2 * data.offset[ 0 ];
-			position.left += position.left < 0 ?
-				myOffset + data.targetWidth + offset :
+			position.left += data.collisionPosition.left < 0 ?
+				myOffset + atOffset + offset :
 				over > 0 ?
-					myOffset - data.targetWidth + offset :
+					myOffset + atOffset + offset :
 					0;
 		},
 		top: function( position, data ) {
-			if ( data.at[1] === "center" ) {
+			if ( data.at[1] === center ) {
 				return;
 			}
 			var win = $( window ),
-				over = position.top + data.elemHeight - win.height() - win.scrollTop(),
+				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
 				myOffset = data.my[ 1 ] === "top" ?
 					-data.elemHeight :
 					data.my[ 1 ] === "bottom" ?
@@ -182,8 +205,8 @@ $.ui.position = {
 					data.targetHeight :
 					-data.targetHeight,
 				offset = -2 * data.offset[ 1 ];
-			position.top += position.top < 0 ?
-				myOffset + data.targetHeight + offset :
+			position.top += data.collisionPosition.top < 0 ?
+				myOffset + atOffset + offset :
 				over > 0 ?
 					myOffset + atOffset + offset :
 					0;
diff --git a/development-bundle/ui/jquery.ui.progressbar.js b/development-bundle/ui/jquery.ui.progressbar.js
index cd11408..9a67ea5 100644
--- a/development-bundle/ui/jquery.ui.progressbar.js
+++ b/development-bundle/ui/jquery.ui.progressbar.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Progressbar 1.8
+ * jQuery UI Progressbar 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Progressbar
  *
@@ -11,25 +11,30 @@
  *   jquery.ui.core.js
  *   jquery.ui.widget.js
  */
-(function( $ ) {
+(function( $, undefined ) {
 
 $.widget( "ui.progressbar", {
 	options: {
-		value: 0
+		value: 0,
+		max: 100
 	},
+
+	min: 0,
+
 	_create: function() {
 		this.element
 			.addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
 			.attr({
 				role: "progressbar",
-				"aria-valuemin": this._valueMin(),
-				"aria-valuemax": this._valueMax(),
+				"aria-valuemin": this.min,
+				"aria-valuemax": this.options.max,
 				"aria-valuenow": this._value()
 			});
 
 		this.valueDiv = $( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" )
 			.appendTo( this.element );
 
+		this.oldValue = this._value();
 		this._refreshValue();
 	},
 
@@ -56,12 +61,12 @@ $.widget( "ui.progressbar", {
 	},
 
 	_setOption: function( key, value ) {
-		switch ( key ) {
-			case "value":
-				this.options.value = value;
-				this._refreshValue();
-				this._trigger( "change" );
-				break;
+		if ( key === "value" ) {
+			this.options.value = value;
+			this._refreshValue();
+			if ( this._value() === this.options.max ) {
+				this._trigger( "complete" );
+			}
 		}
 
 		$.Widget.prototype._setOption.apply( this, arguments );
@@ -73,35 +78,32 @@ $.widget( "ui.progressbar", {
 		if ( typeof val !== "number" ) {
 			val = 0;
 		}
-		if ( val < this._valueMin() ) {
-			val = this._valueMin();
-		}
-		if ( val > this._valueMax() ) {
-			val = this._valueMax();
-		}
-
-		return val;
+		return Math.min( this.options.max, Math.max( this.min, val ) );
 	},
 
-	_valueMin: function() {
-		return 0;
-	},
-
-	_valueMax: function() {
-		return 100;
+	_percentage: function() {
+		return 100 * this._value() / this.options.max;
 	},
 
 	_refreshValue: function() {
 		var value = this.value();
+		var percentage = this._percentage();
+
+		if ( this.oldValue !== value ) {
+			this.oldValue = value;
+			this._trigger( "change" );
+		}
+
 		this.valueDiv
-			[ value === this._valueMax() ? "addClass" : "removeClass"]( "ui-corner-right" )
-			.width( value + "%" );
+			.toggle( value > this.min )
+			.toggleClass( "ui-corner-right", value === this.options.max )
+			.width( percentage.toFixed(0) + "%" );
 		this.element.attr( "aria-valuenow", value );
 	}
 });
 
 $.extend( $.ui.progressbar, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 })( jQuery );
diff --git a/development-bundle/ui/jquery.ui.resizable.js b/development-bundle/ui/jquery.ui.resizable.js
index 6764c46..1e3883f 100644
--- a/development-bundle/ui/jquery.ui.resizable.js
+++ b/development-bundle/ui/jquery.ui.resizable.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Resizable 1.8
+ * jQuery UI Resizable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Resizables
  *
@@ -12,7 +12,7 @@
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.resizable", $.ui.mouse, {
 	widgetEventPrefix: "resize",
@@ -322,10 +322,10 @@ $.widget("ui.resizable", $.ui.mouse, {
 
 		if(this._helper) {
 			var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName),
-						soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
-							soffsetw = ista ? 0 : self.sizeDiff.width;
+				soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height,
+				soffsetw = ista ? 0 : self.sizeDiff.width;
 
-			var s = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) },
+			var s = { width: (self.helper.width()  - soffsetw), height: (self.helper.height() - soffseth) },
 				left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null,
 				top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null;
 
@@ -519,7 +519,7 @@ $.widget("ui.resizable", $.ui.mouse, {
 });
 
 $.extend($.ui.resizable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 /*
@@ -528,28 +528,29 @@ $.extend($.ui.resizable, {
 
 $.ui.plugin.add("resizable", "alsoResize", {
 
-	start: function(event, ui) {
-
+	start: function (event, ui) {
 		var self = $(this).data("resizable"), o = self.options;
 
-		var _store = function(exp) {
+		var _store = function (exp) {
 			$(exp).each(function() {
-				$(this).data("resizable-alsoresize", {
-					width: parseInt($(this).width(), 10), height: parseInt($(this).height(), 10),
-					left: parseInt($(this).css('left'), 10), top: parseInt($(this).css('top'), 10)
+				var el = $(this);
+				el.data("resizable-alsoresize", {
+					width: parseInt(el.width(), 10), height: parseInt(el.height(), 10),
+					left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10),
+					position: el.css('position') // to reset Opera on stop()
 				});
 			});
 		};
 
 		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, c) { _store(exp); }); }
+			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){
+	resize: function (event, ui) {
 		var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
 
 		var delta = {
@@ -557,18 +558,19 @@ $.ui.plugin.add("resizable", "alsoResize", {
 			top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
 		},
 
-		_alsoResize = function(exp, c) {
+		_alsoResize = function (exp, c) {
 			$(exp).each(function() {
-				var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, css = c && c.length ? c : ['width', 'height', 'top', 'left'];
+				var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, 
+					css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left'];
 
-				$.each(css || ['width', 'height', 'top', 'left'], function(i, prop) {
+				$.each(css, function (i, prop) {
 					var sum = (start[prop]||0) + (delta[prop]||0);
 					if (sum && sum >= 0)
 						style[prop] = sum || null;
 				});
 
-				//Opera fixing relative position
-				if (/relative/.test(el.css('position')) && $.browser.opera) {
+				// Opera fixing relative position
+				if ($.browser.opera && /relative/.test(el.css('position'))) {
 					self._revertToRelativePosition = true;
 					el.css({ position: 'absolute', top: 'auto', left: 'auto' });
 				}
@@ -578,22 +580,33 @@ $.ui.plugin.add("resizable", "alsoResize", {
 		};
 
 		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-			$.each(o.alsoResize, function(exp, c) { _alsoResize(exp, c); });
+			$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
 		}else{
 			_alsoResize(o.alsoResize);
 		}
 	},
 
-	stop: function(event, ui){
-		var self = $(this).data("resizable");
+	stop: function (event, ui) {
+		var self = $(this).data("resizable"), o = self.options;
 
-		//Opera fixing relative position
-		if (self._revertToRelativePosition && $.browser.opera) {
+		var _reset = function (exp) {
+			$(exp).each(function() {
+				var el = $(this);
+				// reset position for Opera - no need to verify it was changed
+				el.css({ position: el.data("resizable-alsoresize").position });
+			});
+		};
+
+		if (self._revertToRelativePosition) {
 			self._revertToRelativePosition = false;
-			el.css({ position: 'relative' });
+			if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
+				$.each(o.alsoResize, function (exp) { _reset(exp); });
+			}else{
+				_reset(o.alsoResize);
+			}
 		}
 
-		$(this).removeData("resizable-alsoresize-start");
+		$(this).removeData("resizable-alsoresize");
 	}
 });
 
diff --git a/development-bundle/ui/jquery.ui.selectable.js b/development-bundle/ui/jquery.ui.selectable.js
index 584924f..f250c7b 100644
--- a/development-bundle/ui/jquery.ui.selectable.js
+++ b/development-bundle/ui/jquery.ui.selectable.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Selectable 1.8
+ * jQuery UI Selectable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Selectables
  *
@@ -12,7 +12,7 @@
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.selectable", $.ui.mouse, {
 	options: {
@@ -56,9 +56,7 @@ $.widget("ui.selectable", $.ui.mouse, {
 
 		this._mouseInit();
 
-		this.helper = $(document.createElement('div'))
-			.css({border:'1px dotted black'})
-			.addClass("ui-selectable-helper");
+		this.helper = $("<div class='ui-selectable-helper'></div>");
 	},
 
 	destroy: function() {
@@ -91,8 +89,6 @@ $.widget("ui.selectable", $.ui.mouse, {
 		$(options.appendTo).append(this.helper);
 		// position helper (lasso)
 		this.helper.css({
-			"z-index": 100,
-			"position": "absolute",
 			"left": event.clientX,
 			"top": event.clientY,
 			"width": 0,
@@ -121,14 +117,23 @@ $.widget("ui.selectable", $.ui.mouse, {
 		$(event.target).parents().andSelf().each(function() {
 			var selectee = $.data(this, "selectable-item");
 			if (selectee) {
-				selectee.$element.removeClass("ui-unselecting").addClass('ui-selecting');
-				selectee.unselecting = false;
-				selectee.selecting = true;
-				selectee.selected = true;
-				// selectable SELECTING callback
-				self._trigger("selecting", event, {
-					selecting: selectee.element
-				});
+				var doSelect = !event.metaKey || !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) {
+					self._trigger("selecting", event, {
+						selecting: selectee.element
+					});
+				} else {
+					self._trigger("unselecting", event, {
+						unselecting: selectee.element
+					});
+				}
 				return false;
 			}
 		});
@@ -255,7 +260,7 @@ $.widget("ui.selectable", $.ui.mouse, {
 });
 
 $.extend($.ui.selectable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 })(jQuery);
diff --git a/development-bundle/ui/jquery.ui.slider.js b/development-bundle/ui/jquery.ui.slider.js
index e1e3e82..3dd7d7a 100644
--- a/development-bundle/ui/jquery.ui.slider.js
+++ b/development-bundle/ui/jquery.ui.slider.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Slider 1.8
+ * jQuery UI Slider 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Slider
  *
@@ -12,29 +12,32 @@
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-
-(function($) {
+(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, {
+$.widget( "ui.slider", $.ui.mouse, {
+
 	widgetEventPrefix: "slide",
+
 	options: {
 		animate: false,
 		distance: 0,
 		max: 100,
 		min: 0,
-		orientation: 'horizontal',
+		orientation: "horizontal",
 		range: false,
 		step: 1,
 		value: 0,
 		values: null
 	},
+
 	_create: function() {
+		var self = this,
+			o = this.options;
 
-		var self = this, o = this.options;
 		this._keySliding = false;
 		this._mouseSliding = false;
 		this._animateOff = true;
@@ -43,197 +46,218 @@ $.widget("ui.slider", $.ui.mouse, {
 		this._mouseInit();
 
 		this.element
-			.addClass("ui-slider"
-				+ " ui-slider-" + this.orientation
-				+ " ui-widget"
-				+ " ui-widget-content"
-				+ " ui-corner-all");
+			.addClass( "ui-slider" +
+				" ui-slider-" + this.orientation +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all" );
 		
-		if (o.disabled) {
-			this.element.addClass('ui-slider-disabled ui-disabled');
+		if ( o.disabled ) {
+			this.element.addClass( "ui-slider-disabled ui-disabled" );
 		}
 
 		this.range = $([]);
 
-		if (o.range) {
-
-			if (o.range === true) {
-				this.range = $('<div></div>');
-				if (!o.values) o.values = [this._valueMin(), this._valueMin()];
-				if (o.values.length && o.values.length != 2) {
-					o.values = [o.values[0], o.values[0]];
+		if ( o.range ) {
+			if ( o.range === true ) {
+				this.range = $( "<div></div>" );
+				if ( !o.values ) {
+					o.values = [ this._valueMin(), this._valueMin() ];
+				}
+				if ( o.values.length && o.values.length !== 2 ) {
+					o.values = [ o.values[0], o.values[0] ];
 				}
 			} else {
-				this.range = $('<div></div>');
+				this.range = $( "<div></div>" );
 			}
 
 			this.range
-				.appendTo(this.element)
-				.addClass("ui-slider-range");
+				.appendTo( this.element )
+				.addClass( "ui-slider-range" );
 
-			if (o.range == "min" || o.range == "max") {
-				this.range.addClass("ui-slider-range-" + o.range);
+			if ( o.range === "min" || o.range === "max" ) {
+				this.range.addClass( "ui-slider-range-" + o.range );
 			}
 
 			// note: this isn't the most fittingly semantic framework class for this element,
 			// but worked best visually with a variety of themes
-			this.range.addClass("ui-widget-header");
-
+			this.range.addClass( "ui-widget-header" );
 		}
 
-		if ($(".ui-slider-handle", this.element).length == 0)
-			$('<a href="#"></a>')
-				.appendTo(this.element)
-				.addClass("ui-slider-handle");
+		if ( $( ".ui-slider-handle", this.element ).length === 0 ) {
+			$( "<a href='#'></a>" )
+				.appendTo( this.element )
+				.addClass( "ui-slider-handle" );
+		}
 
-		if (o.values && o.values.length) {
-			while ($(".ui-slider-handle", this.element).length < o.values.length)
-				$('<a href="#"></a>')
-					.appendTo(this.element)
-					.addClass("ui-slider-handle");
+		if ( o.values && o.values.length ) {
+			while ( $(".ui-slider-handle", this.element).length < o.values.length ) {
+				$( "<a href='#'></a>" )
+					.appendTo( this.element )
+					.addClass( "ui-slider-handle" );
+			}
 		}
 
-		this.handles = $(".ui-slider-handle", this.element)
-			.addClass("ui-state-default"
-				+ " ui-corner-all");
+		this.handles = $( ".ui-slider-handle", this.element )
+			.addClass( "ui-state-default" +
+				" ui-corner-all" );
 
-		this.handle = this.handles.eq(0);
+		this.handle = this.handles.eq( 0 );
 
-		this.handles.add(this.range).filter("a")
-			.click(function(event) {
+		this.handles.add( this.range ).filter( "a" )
+			.click(function( event ) {
 				event.preventDefault();
 			})
 			.hover(function() {
-				if (!o.disabled) {
-					$(this).addClass('ui-state-hover');
+				if ( !o.disabled ) {
+					$( this ).addClass( "ui-state-hover" );
 				}
 			}, function() {
-				$(this).removeClass('ui-state-hover');
+				$( this ).removeClass( "ui-state-hover" );
 			})
 			.focus(function() {
-				if (!o.disabled) {
-					$(".ui-slider .ui-state-focus").removeClass('ui-state-focus'); $(this).addClass('ui-state-focus');
+				if ( !o.disabled ) {
+					$( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
+					$( this ).addClass( "ui-state-focus" );
 				} else {
-					$(this).blur();
+					$( this ).blur();
 				}
 			})
 			.blur(function() {
-				$(this).removeClass('ui-state-focus');
+				$( this ).removeClass( "ui-state-focus" );
 			});
 
-		this.handles.each(function(i) {
-			$(this).data("index.ui-slider-handle", i);
+		this.handles.each(function( i ) {
+			$( this ).data( "index.ui-slider-handle", i );
 		});
 
-		this.handles.keydown(function(event) {
-
-			var ret = true;
-
-			var index = $(this).data("index.ui-slider-handle");
-
-			if (self.options.disabled)
-				return;
-
-			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:
-					ret = false;
-					if (!self._keySliding) {
-						self._keySliding = true;
-						$(this).addClass("ui-state-active");
-						self._start(event, index);
-					}
-					break;
-			}
-
-			var curVal, newVal, step = self._step();
-			if (self.options.values && self.options.values.length) {
-				curVal = newVal = self.values(index);
-			} else {
-				curVal = newVal = self.value();
-			}
-
-			switch (event.keyCode) {
-				case $.ui.keyCode.HOME:
-					newVal = self._valueMin();
-					break;
-				case $.ui.keyCode.END:
-					newVal = self._valueMax();
-					break;
-				case $.ui.keyCode.PAGE_UP:
-					newVal = curVal + ((self._valueMax() - self._valueMin()) / numPages);
-					break;
-				case $.ui.keyCode.PAGE_DOWN:
-					newVal = curVal - ((self._valueMax() - self._valueMin()) / numPages);
-					break;
-				case $.ui.keyCode.UP:
-				case $.ui.keyCode.RIGHT:
-					if(curVal == self._valueMax()) return;
-					newVal = curVal + step;
-					break;
-				case $.ui.keyCode.DOWN:
-				case $.ui.keyCode.LEFT:
-					if(curVal == self._valueMin()) return;
-					newVal = curVal - step;
-					break;
-			}
-
-			self._slide(event, index, newVal);
-
-			return ret;
-
-		}).keyup(function(event) {
-
-			var index = $(this).data("index.ui-slider-handle");
-
-			if (self._keySliding) {
-				self._keySliding = false;
-				self._stop(event, index);
-				self._change(event, index);
-				$(this).removeClass("ui-state-active");
-			}
-
-		});
+		this.handles
+			.keydown(function( event ) {
+				var ret = true,
+					index = $( this ).data( "index.ui-slider-handle" ),
+					allowed,
+					curVal,
+					newVal,
+					step;
+	
+				if ( self.options.disabled ) {
+					return;
+				}
+	
+				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:
+						ret = false;
+						if ( !self._keySliding ) {
+							self._keySliding = true;
+							$( this ).addClass( "ui-state-active" );
+							allowed = self._start( event, index );
+							if ( allowed === false ) {
+								return;
+							}
+						}
+						break;
+				}
+	
+				step = self.options.step;
+				if ( self.options.values && self.options.values.length ) {
+					curVal = newVal = self.values( index );
+				} else {
+					curVal = newVal = self.value();
+				}
+	
+				switch ( event.keyCode ) {
+					case $.ui.keyCode.HOME:
+						newVal = self._valueMin();
+						break;
+					case $.ui.keyCode.END:
+						newVal = self._valueMax();
+						break;
+					case $.ui.keyCode.PAGE_UP:
+						newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );
+						break;
+					case $.ui.keyCode.PAGE_DOWN:
+						newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );
+						break;
+					case $.ui.keyCode.UP:
+					case $.ui.keyCode.RIGHT:
+						if ( curVal === self._valueMax() ) {
+							return;
+						}
+						newVal = self._trimAlignValue( curVal + step );
+						break;
+					case $.ui.keyCode.DOWN:
+					case $.ui.keyCode.LEFT:
+						if ( curVal === self._valueMin() ) {
+							return;
+						}
+						newVal = self._trimAlignValue( curVal - step );
+						break;
+				}
+	
+				self._slide( event, index, newVal );
+	
+				return ret;
+	
+			})
+			.keyup(function( event ) {
+				var index = $( this ).data( "index.ui-slider-handle" );
+	
+				if ( self._keySliding ) {
+					self._keySliding = false;
+					self._stop( event, index );
+					self._change( event, index );
+					$( this ).removeClass( "ui-state-active" );
+				}
+	
+			});
 
 		this._refreshValue();
 
 		this._animateOff = false;
-
 	},
 
 	destroy: function() {
-
 		this.handles.remove();
 		this.range.remove();
 
 		this.element
-			.removeClass("ui-slider"
-				+ " ui-slider-horizontal"
-				+ " ui-slider-vertical"
-				+ " ui-slider-disabled"
-				+ " ui-widget"
-				+ " ui-widget-content"
-				+ " ui-corner-all")
-			.removeData("slider")
-			.unbind(".slider");
+			.removeClass( "ui-slider" +
+				" ui-slider-horizontal" +
+				" ui-slider-vertical" +
+				" ui-slider-disabled" +
+				" ui-widget" +
+				" ui-widget-content" +
+				" ui-corner-all" )
+			.removeData( "slider" )
+			.unbind( ".slider" );
 
 		this._mouseDestroy();
 
 		return this;
 	},
 
-	_mouseCapture: function(event) {
-
-		var o = this.options;
-
-		if (o.disabled)
+	_mouseCapture: function( event ) {
+		var o = this.options,
+			position,
+			normValue,
+			distance,
+			closestHandle,
+			self,
+			index,
+			allowed,
+			offset,
+			mouseOverHandle;
+
+		if ( o.disabled ) {
 			return false;
+		}
 
 		this.elementSize = {
 			width: this.element.outerWidth(),
@@ -241,16 +265,15 @@ $.widget("ui.slider", $.ui.mouse, {
 		};
 		this.elementOffset = this.element.offset();
 
-		var position = { x: event.pageX, y: event.pageY };
-		var normValue = this._normValueFromMouse(position);
-
-		var distance = this._valueMax() - this._valueMin() + 1, closestHandle;
-		var self = this, index;
-		this.handles.each(function(i) {
-			var thisDistance = Math.abs(normValue - self.values(i));
-			if (distance > thisDistance) {
+		position = { x: event.pageX, y: event.pageY };
+		normValue = this._normValueFromMouse( position );
+		distance = this._valueMax() - this._valueMin() + 1;
+		self = this;
+		this.handles.each(function( i ) {
+			var thisDistance = Math.abs( normValue - self.values(i) );
+			if ( distance > thisDistance ) {
 				distance = thisDistance;
-				closestHandle = $(this);
+				closestHandle = $( this );
 				index = i;
 			}
 		});
@@ -258,216 +281,221 @@ $.widget("ui.slider", $.ui.mouse, {
 		// workaround for bug #3736 (if both handles of a range are at 0,
 		// the first is always used as the one with least distance,
 		// and moving it is obviously prevented by preventing negative ranges)
-		if(o.range == true && this.values(1) == o.min) {
-			closestHandle = $(this.handles[++index]);
+		if( o.range === true && this.values(1) === o.min ) {
+			index += 1;
+			closestHandle = $( this.handles[index] );
 		}
 
-		this._start(event, index);
+		allowed = this._start( event, index );
+		if ( allowed === false ) {
+			return false;
+		}
 		this._mouseSliding = true;
 
 		self._handleIndex = index;
 
 		closestHandle
-			.addClass("ui-state-active")
+			.addClass( "ui-state-active" )
 			.focus();
 		
-		var offset = closestHandle.offset();
-		var mouseOverHandle = !$(event.target).parents().andSelf().is('.ui-slider-handle');
+		offset = closestHandle.offset();
+		mouseOverHandle = !$( event.target ).parents().andSelf().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)
+			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)
 		};
 
-		normValue = this._normValueFromMouse(position);
-		this._slide(event, index, normValue);
+		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
+			this._slide( event, index, normValue );
+		}
 		this._animateOff = true;
 		return true;
-
 	},
 
-	_mouseStart: function(event) {
+	_mouseStart: function( event ) {
 		return true;
 	},
 
-	_mouseDrag: function(event) {
-
-		var position = { x: event.pageX, y: event.pageY };
-		var normValue = this._normValueFromMouse(position);
+	_mouseDrag: function( event ) {
+		var position = { x: event.pageX, y: event.pageY },
+			normValue = this._normValueFromMouse( position );
 		
-		this._slide(event, this._handleIndex, normValue);
+		this._slide( event, this._handleIndex, normValue );
 
 		return false;
-
 	},
 
-	_mouseStop: function(event) {
-
-		this.handles.removeClass("ui-state-active");
+	_mouseStop: function( event ) {
+		this.handles.removeClass( "ui-state-active" );
 		this._mouseSliding = false;
-		this._stop(event, this._handleIndex);
-		this._change(event, this._handleIndex);
+
+		this._stop( event, this._handleIndex );
+		this._change( event, this._handleIndex );
+
 		this._handleIndex = null;
 		this._clickOffset = null;
-
 		this._animateOff = false;
-		return false;
 
+		return false;
 	},
 	
 	_detectOrientation: function() {
-		this.orientation = this.options.orientation == 'vertical' ? 'vertical' : 'horizontal';
+		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
 	},
 
-	_normValueFromMouse: function(position) {
+	_normValueFromMouse: function( position ) {
+		var pixelTotal,
+			pixelMouse,
+			percentMouse,
+			valueTotal,
+			valueMouse;
 
-		var pixelTotal, pixelMouse;
-		if ('horizontal' == this.orientation) {
+		if ( this.orientation === "horizontal" ) {
 			pixelTotal = this.elementSize.width;
-			pixelMouse = position.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0);
+			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);
+			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
 		}
 
-		var percentMouse = (pixelMouse / pixelTotal);
-		if (percentMouse > 1) percentMouse = 1;
-		if (percentMouse < 0) percentMouse = 0;
-		if ('vertical' == this.orientation)
+		percentMouse = ( pixelMouse / pixelTotal );
+		if ( percentMouse > 1 ) {
+			percentMouse = 1;
+		}
+		if ( percentMouse < 0 ) {
+			percentMouse = 0;
+		}
+		if ( this.orientation === "vertical" ) {
 			percentMouse = 1 - percentMouse;
+		}
 
-		var valueTotal = this._valueMax() - this._valueMin(),
-			valueMouse = percentMouse * valueTotal,
-			valueMouseModStep = valueMouse % this.options.step,
-			normValue = this._valueMin() + valueMouse - valueMouseModStep;
-
-		if (valueMouseModStep > (this.options.step / 2))
-			normValue += this.options.step;
-
-		// Since JavaScript has problems with large floats, round
-		// the final value to 5 digits after the decimal point (see #4124)
-		return parseFloat(normValue.toFixed(5));
+		valueTotal = this._valueMax() - this._valueMin();
+		valueMouse = this._valueMin() + percentMouse * valueTotal;
 
+		return this._trimAlignValue( valueMouse );
 	},
 
-	_start: function(event, index) {
+	_start: function( event, index ) {
 		var uiHash = {
-			handle: this.handles[index],
+			handle: this.handles[ index ],
 			value: this.value()
 		};
-		if (this.options.values && this.options.values.length) {
-			uiHash.value = this.values(index);
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
 			uiHash.values = this.values();
 		}
-		this._trigger("start", event, uiHash);
+		return this._trigger( "start", event, uiHash );
 	},
 
-	_slide: function(event, index, newVal) {
-
-		var handle = this.handles[index];
-
-		if (this.options.values && this.options.values.length) {
+	_slide: function( event, index, newVal ) {
+		var otherVal,
+			newValues,
+			allowed;
 
-			var otherVal = this.values(index ? 0 : 1);
+		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 ( ( this.options.values.length === 2 && this.options.range === true ) && 
+					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
+				) {
+				newVal = otherVal;
 			}
 
-			if (newVal != this.values(index)) {
-				var newValues = this.values();
-				newValues[index] = newVal;
+			if ( newVal !== this.values( index ) ) {
+				newValues = this.values();
+				newValues[ index ] = newVal;
 				// A slide can be canceled by returning false from the slide callback
-				var allowed = this._trigger("slide", event, {
-					handle: this.handles[index],
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
 					value: newVal,
 					values: newValues
-				});
-				var otherVal = this.values(index ? 0 : 1);
-				if (allowed !== false) {
-					this.values(index, newVal, true);
+				} );
+				otherVal = this.values( index ? 0 : 1 );
+				if ( allowed !== false ) {
+					this.values( index, newVal, true );
 				}
 			}
-
 		} else {
-
-			if (newVal != this.value()) {
+			if ( newVal !== this.value() ) {
 				// A slide can be canceled by returning false from the slide callback
-				var allowed = this._trigger("slide", event, {
-					handle: this.handles[index],
+				allowed = this._trigger( "slide", event, {
+					handle: this.handles[ index ],
 					value: newVal
-				});
-				if (allowed !== false) {
-					this.value(newVal);
+				} );
+				if ( allowed !== false ) {
+					this.value( newVal );
 				}
-					
 			}
-
 		}
-
 	},
 
-	_stop: function(event, index) {
+	_stop: function( event, index ) {
 		var uiHash = {
-			handle: this.handles[index],
+			handle: this.handles[ index ],
 			value: this.value()
 		};
-		if (this.options.values && this.options.values.length) {
-			uiHash.value = this.values(index);
+		if ( this.options.values && this.options.values.length ) {
+			uiHash.value = this.values( index );
 			uiHash.values = this.values();
 		}
-		this._trigger("stop", event, uiHash);
+
+		this._trigger( "stop", event, uiHash );
 	},
 
-	_change: function(event, index) {
-		if (!this._keySliding && !this._mouseSliding) {
+	_change: function( event, index ) {
+		if ( !this._keySliding && !this._mouseSliding ) {
 			var uiHash = {
-				handle: this.handles[index],
+				handle: this.handles[ index ],
 				value: this.value()
 			};
-			if (this.options.values && this.options.values.length) {
-				uiHash.value = this.values(index);
+			if ( this.options.values && this.options.values.length ) {
+				uiHash.value = this.values( index );
 				uiHash.values = this.values();
 			}
-			this._trigger("change", event, uiHash);
+
+			this._trigger( "change", event, uiHash );
 		}
 	},
 
-	value: function(newValue) {
-
-		if (arguments.length) {
-			this.options.value = this._trimValue(newValue);
+	value: function( newValue ) {
+		if ( arguments.length ) {
+			this.options.value = this._trimAlignValue( newValue );
 			this._refreshValue();
-			this._change(null, 0);
+			this._change( null, 0 );
+			return;
 		}
 
 		return this._value();
-
 	},
 
-	values: function(index, newValue) {
+	values: function( index, newValue ) {
+		var vals,
+			newValues,
+			i;
 
-		if (arguments.length > 1) {
-			this.options.values[index] = this._trimValue(newValue);
+		if ( arguments.length > 1 ) {
+			this.options.values[ index ] = this._trimAlignValue( newValue );
 			this._refreshValue();
-			this._change(null, index);
+			this._change( null, index );
+			return;
 		}
 
-		if (arguments.length) {
-			if ($.isArray(arguments[0])) {
-				var vals = this.options.values, newValues = arguments[0];
-				for (var i = 0, l = vals.length; i < l; i++) {
-					vals[i] = this._trimValue(newValues[i]);
-					this._change(null, i);
+		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);
+				if ( this.options.values && this.options.values.length ) {
+					return this._values( index );
 				} else {
 					return this.value();
 				}
@@ -475,155 +503,182 @@ $.widget("ui.slider", $.ui.mouse, {
 		} else {
 			return this._values();
 		}
-
 	},
 
-	_setOption: function(key, value) {
-		
+	_setOption: function( key, value ) {
 		var i,
 			valsLength = 0;
-		if ( jQuery.isArray(this.options.values) ) {
+
+		if ( $.isArray( this.options.values ) ) {
 			valsLength = this.options.values.length;
-		};
+		}
 
-		$.Widget.prototype._setOption.apply(this, arguments);
+		$.Widget.prototype._setOption.apply( this, arguments );
 
-		switch (key) {
-			case 'disabled':
-				if (value) {
-					this.handles.filter(".ui-state-focus").blur();
-					this.handles.removeClass("ui-state-hover");
-					this.handles.attr("disabled", "disabled");
-					this.element.addClass("ui-disabled");
+		switch ( key ) {
+			case "disabled":
+				if ( value ) {
+					this.handles.filter( ".ui-state-focus" ).blur();
+					this.handles.removeClass( "ui-state-hover" );
+					this.handles.attr( "disabled", "disabled" );
+					this.element.addClass( "ui-disabled" );
 				} else {
-					this.handles.removeAttr("disabled");
-					this.element.removeClass("ui-disabled");
+					this.handles.removeAttr( "disabled" );
+					this.element.removeClass( "ui-disabled" );
 				}
-			case 'orientation':
-
+				break;
+			case "orientation":
 				this._detectOrientation();
-				
 				this.element
-					.removeClass("ui-slider-horizontal ui-slider-vertical")
-					.addClass("ui-slider-" + this.orientation);
+					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
+					.addClass( "ui-slider-" + this.orientation );
 				this._refreshValue();
 				break;
-			case 'value':
+			case "value":
 				this._animateOff = true;
 				this._refreshValue();
-				this._change(null, 0);
+				this._change( null, 0 );
 				this._animateOff = false;
 				break;
-			case 'values':
+			case "values":
 				this._animateOff = true;
 				this._refreshValue();
-				for (i = 0; i < valsLength; i++) {
-					this._change(null, i);
+				for ( i = 0; i < valsLength; i += 1 ) {
+					this._change( null, i );
 				}
 				this._animateOff = false;
 				break;
 		}
-
-	},
-
-	_step: function() {
-		var step = this.options.step;
-		return step;
 	},
 
+	//internal value getter
+	// _value() returns value trimmed by min and max, aligned by step
 	_value: function() {
-		//internal value getter
-		// _value() returns value trimmed by min and max
 		var val = this.options.value;
-		val = this._trimValue(val);
+		val = this._trimAlignValue( val );
 
 		return val;
 	},
 
-	_values: function(index) {
-		//internal values getter
-		// _values() returns array of values trimmed by min and max
-		// _values(index) returns single value trimmed by min and max
+	//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) {
-			var val = this.options.values[index];
-			val = this._trimValue(val);
+		if ( arguments.length ) {
+			val = this.options.values[ index ];
+			val = this._trimAlignValue( val );
 
 			return val;
 		} else {
 			// .slice() creates a copy of the array
 			// this copy gets trimmed by min and max and then returned
-			var vals = this.options.values.slice();
-			for (var i = 0, l = vals.length; i < l; i++) {
-				vals[i] = this._trimValue(vals[i]);
+			vals = this.options.values.slice();
+			for ( i = 0; i < vals.length; i+= 1) {
+				vals[ i ] = this._trimAlignValue( vals[ i ] );
 			}
 
 			return vals;
 		}
-
 	},
 	
-	_trimValue: function(val) {
-		if (val < this._valueMin()) val = this._valueMin();
-		if (val > this._valueMax()) val = this._valueMax();
+	// 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;
 
-		return val;
+		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() {
-		var valueMin = this.options.min;
-		return valueMin;
+		return this.options.min;
 	},
 
 	_valueMax: function() {
-		var valueMax = this.options.max;
-		return valueMax;
+		return this.options.max;
 	},
 	
 	_refreshValue: function() {
-
-		var oRange = this.options.range, o = this.options, self = this;
-		var animate = (!this._animateOff) ? o.animate : false;
-
-		if (this.options.values && this.options.values.length) {
-			var vp0, vp1;
-			this.handles.each(function(i, j) {
-				var valPercent = (self.values(i) - self._valueMin()) / (self._valueMax() - self._valueMin()) * 100;
-				var _set = {}; _set[self.orientation == 'horizontal' ? 'left' : 'bottom'] = valPercent + '%';
-				$(this).stop(1,1)[animate ? 'animate' : 'css'](_set, o.animate);
-				if (self.options.range === true) {
-					if (self.orientation == 'horizontal') {
-						(i == 0) && self.range.stop(1,1)[animate ? 'animate' : 'css']({ left: valPercent + '%' }, o.animate);
-						(i == 1) && self.range[animate ? 'animate' : 'css']({ width: (valPercent - lastValPercent) + '%' }, { queue: false, duration: o.animate });
+		var oRange = this.options.range,
+			o = this.options,
+			self = this,
+			animate = ( !this._animateOff ) ? o.animate : false,
+			valPercent,
+			_set = {},
+			lastValPercent,
+			value,
+			valueMin,
+			valueMax;
+
+		if ( this.options.values && this.options.values.length ) {
+			this.handles.each(function( i, j ) {
+				valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
+				_set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
+				$( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
+				if ( self.options.range === true ) {
+					if ( self.orientation === "horizontal" ) {
+						if ( i === 0 ) {
+							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
 					} else {
-						(i == 0) && self.range.stop(1,1)[animate ? 'animate' : 'css']({ bottom: (valPercent) + '%' }, o.animate);
-						(i == 1) && self.range[animate ? 'animate' : 'css']({ height: (valPercent - lastValPercent) + '%' }, { queue: false, duration: o.animate });
+						if ( i === 0 ) {
+							self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
+						}
+						if ( i === 1 ) {
+							self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
+						}
 					}
 				}
 				lastValPercent = valPercent;
 			});
 		} else {
-			var value = this.value(),
-				valueMin = this._valueMin(),
-				valueMax = this._valueMax(),
-				valPercent = valueMax != valueMin
-					? (value - valueMin) / (valueMax - valueMin) * 100
-					: 0;
-			var _set = {}; _set[self.orientation == 'horizontal' ? 'left' : 'bottom'] = valPercent + '%';
-			this.handle.stop(1,1)[animate ? 'animate' : 'css'](_set, o.animate);
-
-			(oRange == "min") && (this.orientation == "horizontal") && this.range.stop(1,1)[animate ? 'animate' : 'css']({ width: valPercent + '%' }, o.animate);
-			(oRange == "max") && (this.orientation == "horizontal") && this.range[animate ? 'animate' : 'css']({ width: (100 - valPercent) + '%' }, { queue: false, duration: o.animate });
-			(oRange == "min") && (this.orientation == "vertical") && this.range.stop(1,1)[animate ? 'animate' : 'css']({ height: valPercent + '%' }, o.animate);
-			(oRange == "max") && (this.orientation == "vertical") && this.range[animate ? 'animate' : 'css']({ height: (100 - valPercent) + '%' }, { queue: false, duration: o.animate });
+			value = this.value();
+			valueMin = this._valueMin();
+			valueMax = this._valueMax();
+			valPercent = ( valueMax !== valueMin ) ?
+					( value - valueMin ) / ( valueMax - valueMin ) * 100 :
+					0;
+			_set[ self.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 } );
+			}
 		}
-
 	}
-	
+
 });
 
-$.extend($.ui.slider, {
-	version: "1.8"
+$.extend( $.ui.slider, {
+	version: "1.8.12"
 });
 
-})(jQuery);
+}(jQuery));
diff --git a/development-bundle/ui/jquery.ui.sortable.js b/development-bundle/ui/jquery.ui.sortable.js
index 2ce284b..bad29b5 100644
--- a/development-bundle/ui/jquery.ui.sortable.js
+++ b/development-bundle/ui/jquery.ui.sortable.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Sortable 1.8
+ * jQuery UI Sortable 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Sortables
  *
@@ -12,7 +12,7 @@
  *	jquery.ui.mouse.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 $.widget("ui.sortable", $.ui.mouse, {
 	widgetEventPrefix: "sort",
@@ -49,8 +49,8 @@ $.widget("ui.sortable", $.ui.mouse, {
 		//Get the items
 		this.refresh();
 
-		//Let's determine if the items are floating
-		this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false;
+		//Let's determine if the items are being displayed horizontally
+		this.floating = this.items.length ? (/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();
@@ -73,6 +73,18 @@ $.widget("ui.sortable", $.ui.mouse, {
 		return this;
 	},
 
+	_setOption: function(key, value){
+		if ( key === "disabled" ) {
+			this.options[ key ] = value;
+	
+			this.widget()
+				[ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" );
+		} 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) {
 
 		if (this.reverting) {
@@ -348,7 +360,7 @@ $.widget("ui.sortable", $.ui.mouse, {
 
 		if(this.dragging) {
 
-			this._mouseUp();
+			this._mouseUp({ target: null });
 
 			if(this.options.helper == "original")
 				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
@@ -366,21 +378,23 @@ $.widget("ui.sortable", $.ui.mouse, {
 
 		}
 
-		//$(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.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();
 
-		if(this.domPosition.prev) {
-			$(this.domPosition.prev).after(this.currentItem);
-		} else {
-			$(this.domPosition.parent).prepend(this.currentItem);
+			$.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;
@@ -397,6 +411,10 @@ $.widget("ui.sortable", $.ui.mouse, {
 			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('&');
 
 	},
@@ -597,6 +615,10 @@ $.widget("ui.sortable", $.ui.mouse, {
 		for (var i = this.items.length - 1; i >= 0; i--){
 			var 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;
+
 			var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
 
 			if (!fast) {
@@ -1049,7 +1071,7 @@ $.widget("ui.sortable", $.ui.mouse, {
 });
 
 $.extend($.ui.sortable, {
-	version: "1.8"
+	version: "1.8.12"
 });
 
 })(jQuery);
diff --git a/development-bundle/ui/jquery.ui.tabs.js b/development-bundle/ui/jquery.ui.tabs.js
index 3996b78..9e72e04 100644
--- a/development-bundle/ui/jquery.ui.tabs.js
+++ b/development-bundle/ui/jquery.ui.tabs.js
@@ -1,9 +1,9 @@
 /*
- * jQuery UI Tabs 1.8
+ * jQuery UI Tabs 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Tabs
  *
@@ -11,12 +11,20 @@
  *	jquery.ui.core.js
  *	jquery.ui.widget.js
  */
-(function($) {
+(function( $, undefined ) {
 
 var tabId = 0,
 	listId = 0;
 
-$.widget("ui.tabs", {
+function getNextTabId() {
+	return ++tabId;
+}
+
+function getNextListId() {
+	return ++listId;
+}
+
+$.widget( "ui.tabs", {
 	options: {
 		add: null,
 		ajaxOptions: null,
@@ -26,619 +34,650 @@ $.widget("ui.tabs", {
 		disable: null,
 		disabled: [],
 		enable: null,
-		event: 'click',
+		event: "click",
 		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
-		idPrefix: 'ui-tabs-',
+		idPrefix: "ui-tabs-",
 		load: null,
-		panelTemplate: '<div></div>',
+		panelTemplate: "<div></div>",
 		remove: null,
 		select: null,
 		show: null,
-		spinner: '<em>Loading…</em>',
-		tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>'
+		spinner: "<em>Loading…</em>",
+		tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
 	},
+
 	_create: function() {
-		this._tabify(true);
+		this._tabify( true );
 	},
 
-	_setOption: function(key, value) {
-		if (key == 'selected') {
-			if (this.options.collapsible && value == this.options.selected) {
+	_setOption: function( key, value ) {
+		if ( key == "selected" ) {
+			if (this.options.collapsible && value == this.options.selected ) {
 				return;
 			}
-			this.select(value);
-		}
-		else {
-			this.options[key] = value;
+			this.select( value );
+		} else {
+			this.options[ key ] = value;
 			this._tabify();
 		}
 	},
 
-	_tabId: function(a) {
-		return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '') ||
-			this.options.idPrefix + (++tabId);
+	_tabId: function( a ) {
+		return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
+			this.options.idPrefix + getNextTabId();
 	},
 
-	_sanitizeSelector: function(hash) {
-		return hash.replace(/:/g, '\\:'); // we need this because an id may contain a ":"
+	_sanitizeSelector: function( hash ) {
+		// we need this because an id may contain a ":"
+		return hash.replace( /:/g, "\\:" );
 	},
 
 	_cookie: function() {
-		var cookie = this.cookie || (this.cookie = this.options.cookie.name || 'ui-tabs-' + (++listId));
-		return $.cookie.apply(null, [cookie].concat($.makeArray(arguments)));
+		var cookie = this.cookie ||
+			( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() );
+		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
 	},
 
-	_ui: function(tab, panel) {
+	_ui: function( tab, panel ) {
 		return {
 			tab: tab,
 			panel: panel,
-			index: this.anchors.index(tab)
+			index: this.anchors.index( tab )
 		};
 	},
 
 	_cleanup: function() {
 		// restore all former loading tabs labels
-		this.lis.filter('.ui-state-processing').removeClass('ui-state-processing')
-				.find('span:data(label.tabs)')
+		this.lis.filter( ".ui-state-processing" )
+			.removeClass( "ui-state-processing" )
+			.find( "span:data(label.tabs)" )
 				.each(function() {
-					var el = $(this);
-					el.html(el.data('label.tabs')).removeData('label.tabs');
+					var el = $( this );
+					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
 				});
 	},
 
-	_tabify: function(init) {
-
-		this.list = this.element.find('ol,ul').eq(0);
-		this.lis = $('li:has(a[href])', this.list);
-		this.anchors = this.lis.map(function() { return $('a', this)[0]; });
-		this.panels = $([]);
-
-		var self = this, o = this.options;
+	_tabify: function( init ) {
+		var self = this,
+			o = this.options,
+			fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
 
-		var fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
-		this.anchors.each(function(i, a) {
-			var href = $(a).attr('href');
+		this.list = this.element.find( "ol,ul" ).eq( 0 );
+		this.lis = $( " > li:has(a[href])", this.list );
+		this.anchors = this.lis.map(function() {
+			return $( "a", this )[ 0 ];
+		});
+		this.panels = $( [] );
 
+		this.anchors.each(function( i, a ) {
+			var href = $( a ).attr( "href" );
 			// For dynamically created HTML that contains a hash as href IE < 8 expands
 			// such href to the full page url with hash and then misinterprets tab as ajax.
 			// Same consideration applies for an added tab with a fragment identifier
 			// since a[href=#fragment-identifier] does unexpectedly not match.
 			// Thus normalize href attribute...
-			var hrefBase = href.split('#')[0], baseEl;
-			if (hrefBase && (hrefBase === location.toString().split('#')[0] ||
-					(baseEl = $('base')[0]) && hrefBase === baseEl.href)) {
+			var hrefBase = href.split( "#" )[ 0 ],
+				baseEl;
+			if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] ||
+					( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) {
 				href = a.hash;
 				a.href = href;
 			}
 
 			// inline tab
-			if (fragmentId.test(href)) {
-				self.panels = self.panels.add(self._sanitizeSelector(href));
-			}
-
+			if ( fragmentId.test( href ) ) {
+				self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
 			// remote tab
-			else if (href != '#') { // prevent loading the page itself if href is just "#"
-				$.data(a, 'href.tabs', href); // required for restore on destroy
+			// prevent loading the page itself if href is just "#"
+			} else if ( href && href !== "#" ) {
+				// required for restore on destroy
+				$.data( a, "href.tabs", href );
 
 				// TODO until #3808 is fixed strip fragment identifier from url
 				// (IE fails to load from such url)
-				$.data(a, 'load.tabs', href.replace(/#.*$/, '')); // mutable data
-
-				var id = self._tabId(a);
-				a.href = '#' + id;
-				var $panel = $('#' + id);
-				if (!$panel.length) {
-					$panel = $(o.panelTemplate).attr('id', id).addClass('ui-tabs-panel ui-widget-content ui-corner-bottom')
-						.insertAfter(self.panels[i - 1] || self.list);
-					$panel.data('destroy.tabs', true);
+				$.data( a, "load.tabs", href.replace( /#.*$/, "" ) );
+
+				var id = self._tabId( a );
+				a.href = "#" + id;
+				var $panel = self.element.find( "#" + id );
+				if ( !$panel.length ) {
+					$panel = $( o.panelTemplate )
+						.attr( "id", id )
+						.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" )
+						.insertAfter( self.panels[ i - 1 ] || self.list );
+					$panel.data( "destroy.tabs", true );
 				}
-				self.panels = self.panels.add($panel);
-			}
-
+				self.panels = self.panels.add( $panel );
 			// invalid tab href
-			else {
-				o.disabled.push(i);
+			} else {
+				o.disabled.push( i );
 			}
 		});
 
 		// initialization from scratch
-		if (init) {
-
+		if ( init ) {
 			// attach necessary classes for styling
-			this.element.addClass('ui-tabs ui-widget ui-widget-content ui-corner-all');
-			this.list.addClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all');
-			this.lis.addClass('ui-state-default ui-corner-top');
-			this.panels.addClass('ui-tabs-panel ui-widget-content ui-corner-bottom');
+			this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" );
+			this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
+			this.lis.addClass( "ui-state-default ui-corner-top" );
+			this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" );
 
 			// Selected tab
 			// use "selected" option or try to retrieve:
 			// 1. from fragment identifier in url
 			// 2. from cookie
 			// 3. from selected class attribute on <li>
-			if (o.selected === undefined) {
-				if (location.hash) {
-					this.anchors.each(function(i, a) {
-						if (a.hash == location.hash) {
+			if ( o.selected === undefined ) {
+				if ( location.hash ) {
+					this.anchors.each(function( i, a ) {
+						if ( a.hash == location.hash ) {
 							o.selected = i;
-							return false; // break
+							return false;
 						}
 					});
 				}
-				if (typeof o.selected != 'number' && o.cookie) {
-					o.selected = parseInt(self._cookie(), 10);
+				if ( typeof o.selected !== "number" && o.cookie ) {
+					o.selected = parseInt( self._cookie(), 10 );
 				}
-				if (typeof o.selected != 'number' && this.lis.filter('.ui-tabs-selected').length) {
-					o.selected = this.lis.index(this.lis.filter('.ui-tabs-selected'));
+				if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) {
+					o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
 				}
-				o.selected = o.selected || (this.lis.length ? 0 : -1);
-			}
-			else if (o.selected === null) { // usage of null is deprecated, TODO remove in next release
+				o.selected = o.selected || ( this.lis.length ? 0 : -1 );
+			} else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release
 				o.selected = -1;
 			}
 
 			// sanity check - default to first tab...
-			o.selected = ((o.selected >= 0 && this.anchors[o.selected]) || o.selected < 0) ? o.selected : 0;
+			o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 )
+				? o.selected
+				: 0;
 
 			// Take disabling tabs via class attribute from HTML
 			// into account and update option properly.
 			// A selected tab cannot become disabled.
-			o.disabled = $.unique(o.disabled.concat(
-				$.map(this.lis.filter('.ui-state-disabled'),
-					function(n, i) { return self.lis.index(n); } )
-			)).sort();
-
-			if ($.inArray(o.selected, o.disabled) != -1) {
-				o.disabled.splice($.inArray(o.selected, o.disabled), 1);
+			o.disabled = $.unique( o.disabled.concat(
+				$.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) {
+					return self.lis.index( n );
+				})
+			) ).sort();
+
+			if ( $.inArray( o.selected, o.disabled ) != -1 ) {
+				o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 );
 			}
 
 			// highlight selected tab
-			this.panels.addClass('ui-tabs-hide');
-			this.lis.removeClass('ui-tabs-selected ui-state-active');
-			if (o.selected >= 0 && this.anchors.length) { // check for length avoids error when initializing empty list
-				this.panels.eq(o.selected).removeClass('ui-tabs-hide');
-				this.lis.eq(o.selected).addClass('ui-tabs-selected ui-state-active');
+			this.panels.addClass( "ui-tabs-hide" );
+			this.lis.removeClass( "ui-tabs-selected ui-state-active" );
+			// check for length avoids error when initializing empty list
+			if ( o.selected >= 0 && this.anchors.length ) {
+				self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" );
+				this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" );
 
 				// seems to be expected behavior that the show callback is fired
-				self.element.queue("tabs", function() {
-					self._trigger('show', null, self._ui(self.anchors[o.selected], self.panels[o.selected]));
+				self.element.queue( "tabs", function() {
+					self._trigger( "show", null,
+						self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );
 				});
-				
-				this.load(o.selected);
+
+				this.load( o.selected );
 			}
 
 			// clean up to avoid memory leaks in certain versions of IE 6
-			$(window).bind('unload', function() {
-				self.lis.add(self.anchors).unbind('.tabs');
+			// TODO: namespace this event
+			$( window ).bind( "unload", function() {
+				self.lis.add( self.anchors ).unbind( ".tabs" );
 				self.lis = self.anchors = self.panels = null;
 			});
-
-		}
 		// update selected after add/remove
-		else {
-			o.selected = this.lis.index(this.lis.filter('.ui-tabs-selected'));
+		} else {
+			o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) );
 		}
 
 		// update collapsible
-		this.element[o.collapsible ? 'addClass' : 'removeClass']('ui-tabs-collapsible');
+		// TODO: use .toggleClass()
+		this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" );
 
 		// set or update cookie after init and add/remove respectively
-		if (o.cookie) {
-			this._cookie(o.selected, o.cookie);
+		if ( o.cookie ) {
+			this._cookie( o.selected, o.cookie );
 		}
 
 		// disable tabs
-		for (var i = 0, li; (li = this.lis[i]); i++) {
-			$(li)[$.inArray(i, o.disabled) != -1 &&
-				!$(li).hasClass('ui-tabs-selected') ? 'addClass' : 'removeClass']('ui-state-disabled');
+		for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) {
+			$( li )[ $.inArray( i, o.disabled ) != -1 &&
+				// TODO: use .toggleClass()
+				!$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" );
 		}
 
 		// reset cache if switching from cached to not cached
-		if (o.cache === false) {
-			this.anchors.removeData('cache.tabs');
+		if ( o.cache === false ) {
+			this.anchors.removeData( "cache.tabs" );
 		}
 
 		// remove all handlers before, tabify may run on existing tabs after add or option change
-		this.lis.add(this.anchors).unbind('.tabs');
+		this.lis.add( this.anchors ).unbind( ".tabs" );
 
-		if (o.event != 'mouseover') {
-			var addState = function(state, el) {
-				if (el.is(':not(.ui-state-disabled)')) {
-					el.addClass('ui-state-' + state);
+		if ( o.event !== "mouseover" ) {
+			var addState = function( state, el ) {
+				if ( el.is( ":not(.ui-state-disabled)" ) ) {
+					el.addClass( "ui-state-" + state );
 				}
 			};
-			var removeState = function(state, el) {
-				el.removeClass('ui-state-' + state);
+			var removeState = function( state, el ) {
+				el.removeClass( "ui-state-" + state );
 			};
-			this.lis.bind('mouseover.tabs', function() {
-				addState('hover', $(this));
+			this.lis.bind( "mouseover.tabs" , function() {
+				addState( "hover", $( this ) );
 			});
-			this.lis.bind('mouseout.tabs', function() {
-				removeState('hover', $(this));
+			this.lis.bind( "mouseout.tabs", function() {
+				removeState( "hover", $( this ) );
 			});
-			this.anchors.bind('focus.tabs', function() {
-				addState('focus', $(this).closest('li'));
+			this.anchors.bind( "focus.tabs", function() {
+				addState( "focus", $( this ).closest( "li" ) );
 			});
-			this.anchors.bind('blur.tabs', function() {
-				removeState('focus', $(this).closest('li'));
+			this.anchors.bind( "blur.tabs", function() {
+				removeState( "focus", $( this ).closest( "li" ) );
 			});
 		}
 
 		// set up animations
 		var hideFx, showFx;
-		if (o.fx) {
-			if ($.isArray(o.fx)) {
-				hideFx = o.fx[0];
-				showFx = o.fx[1];
-			}
-			else {
+		if ( o.fx ) {
+			if ( $.isArray( o.fx ) ) {
+				hideFx = o.fx[ 0 ];
+				showFx = o.fx[ 1 ];
+			} else {
 				hideFx = showFx = o.fx;
 			}
 		}
 
 		// Reset certain styles left over from animation
 		// and prevent IE's ClearType bug...
-		function resetStyle($el, fx) {
-			$el.css({ display: '' });
-			if (!$.support.opacity && fx.opacity) {
-				$el[0].style.removeAttribute('filter');
+		function resetStyle( $el, fx ) {
+			$el.css( "display", "" );
+			if ( !$.support.opacity && fx.opacity ) {
+				$el[ 0 ].style.removeAttribute( "filter" );
 			}
 		}
 
 		// Show a tab...
-		var showTab = showFx ?
-			function(clicked, $show) {
-				$(clicked).closest('li').addClass('ui-tabs-selected ui-state-active');
-				$show.hide().removeClass('ui-tabs-hide') // avoid flicker that way
-					.animate(showFx, showFx.duration || 'normal', function() {
-						resetStyle($show, showFx);
-						self._trigger('show', null, self._ui(clicked, $show[0]));
+		var showTab = showFx
+			? function( clicked, $show ) {
+				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
+				$show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way
+					.animate( showFx, showFx.duration || "normal", function() {
+						resetStyle( $show, showFx );
+						self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
 					});
-			} :
-			function(clicked, $show) {
-				$(clicked).closest('li').addClass('ui-tabs-selected ui-state-active');
-				$show.removeClass('ui-tabs-hide');
-				self._trigger('show', null, self._ui(clicked, $show[0]));
+			}
+			: function( clicked, $show ) {
+				$( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" );
+				$show.removeClass( "ui-tabs-hide" );
+				self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) );
 			};
 
 		// Hide a tab, $show is optional...
-		var hideTab = hideFx ?
-			function(clicked, $hide) {
-				$hide.animate(hideFx, hideFx.duration || 'normal', function() {
-					self.lis.removeClass('ui-tabs-selected ui-state-active');
-					$hide.addClass('ui-tabs-hide');
-					resetStyle($hide, hideFx);
-					self.element.dequeue("tabs");
+		var hideTab = hideFx
+			? function( clicked, $hide ) {
+				$hide.animate( hideFx, hideFx.duration || "normal", function() {
+					self.lis.removeClass( "ui-tabs-selected ui-state-active" );
+					$hide.addClass( "ui-tabs-hide" );
+					resetStyle( $hide, hideFx );
+					self.element.dequeue( "tabs" );
 				});
-			} :
-			function(clicked, $hide, $show) {
-				self.lis.removeClass('ui-tabs-selected ui-state-active');
-				$hide.addClass('ui-tabs-hide');
-				self.element.dequeue("tabs");
+			}
+			: function( clicked, $hide, $show ) {
+				self.lis.removeClass( "ui-tabs-selected ui-state-active" );
+				$hide.addClass( "ui-tabs-hide" );
+				self.element.dequeue( "tabs" );
 			};
 
 		// attach tab event handler, unbind to avoid duplicates from former tabifying...
-		this.anchors.bind(o.event + '.tabs', function() {
-			var el = this, $li = $(this).closest('li'), $hide = self.panels.filter(':not(.ui-tabs-hide)'),
-					$show = $(self._sanitizeSelector(this.hash));
+		this.anchors.bind( o.event + ".tabs", function() {
+			var el = this,
+				$li = $(el).closest( "li" ),
+				$hide = self.panels.filter( ":not(.ui-tabs-hide)" ),
+				$show = self.element.find( self._sanitizeSelector( el.hash ) );
 
 			// If tab is already selected and not collapsible or tab disabled or
 			// or is already loading or click callback returns false stop here.
 			// Check if click handler returns false last so that it is not executed
 			// for a disabled or loading tab!
-			if (($li.hasClass('ui-tabs-selected') && !o.collapsible) ||
-				$li.hasClass('ui-state-disabled') ||
-				$li.hasClass('ui-state-processing') ||
-				self._trigger('select', null, self._ui(this, $show[0])) === false) {
+			if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) ||
+				$li.hasClass( "ui-state-disabled" ) ||
+				$li.hasClass( "ui-state-processing" ) ||
+				self.panels.filter( ":animated" ).length ||
+				self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
 				this.blur();
 				return false;
 			}
 
-			o.selected = self.anchors.index(this);
+			o.selected = self.anchors.index( this );
 
 			self.abort();
 
 			// if tab may be closed
-			if (o.collapsible) {
-				if ($li.hasClass('ui-tabs-selected')) {
+			if ( o.collapsible ) {
+				if ( $li.hasClass( "ui-tabs-selected" ) ) {
 					o.selected = -1;
 
-					if (o.cookie) {
-						self._cookie(o.selected, o.cookie);
+					if ( o.cookie ) {
+						self._cookie( o.selected, o.cookie );
 					}
 
-					self.element.queue("tabs", function() {
-						hideTab(el, $hide);
-					}).dequeue("tabs");
-					
+					self.element.queue( "tabs", function() {
+						hideTab( el, $hide );
+					}).dequeue( "tabs" );
+
 					this.blur();
 					return false;
-				}
-				else if (!$hide.length) {
-					if (o.cookie) {
-						self._cookie(o.selected, o.cookie);
+				} else if ( !$hide.length ) {
+					if ( o.cookie ) {
+						self._cookie( o.selected, o.cookie );
 					}
-					
-					self.element.queue("tabs", function() {
-						showTab(el, $show);
+
+					self.element.queue( "tabs", function() {
+						showTab( el, $show );
 					});
 
-					self.load(self.anchors.index(this)); // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
-					
+					// TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
+					self.load( self.anchors.index( this ) );
+
 					this.blur();
 					return false;
 				}
 			}
 
-			if (o.cookie) {
-				self._cookie(o.selected, o.cookie);
+			if ( o.cookie ) {
+				self._cookie( o.selected, o.cookie );
 			}
 
 			// show new tab
-			if ($show.length) {
-				if ($hide.length) {
-					self.element.queue("tabs", function() {
-						hideTab(el, $hide);
+			if ( $show.length ) {
+				if ( $hide.length ) {
+					self.element.queue( "tabs", function() {
+						hideTab( el, $hide );
 					});
 				}
-				self.element.queue("tabs", function() {
-					showTab(el, $show);
+				self.element.queue( "tabs", function() {
+					showTab( el, $show );
 				});
-				
-				self.load(self.anchors.index(this));
-			}
-			else {
-				throw 'jQuery UI Tabs: Mismatching fragment identifier.';
+
+				self.load( self.anchors.index( this ) );
+			} else {
+				throw "jQuery UI Tabs: Mismatching fragment identifier.";
 			}
 
 			// Prevent IE from keeping other link focussed when using the back button
 			// and remove dotted border from clicked link. This is controlled via CSS
 			// in modern browsers; blur() removes focus from address bar in Firefox
 			// which can become a usability and annoying problem with tabs('rotate').
-			if ($.browser.msie) {
+			if ( $.browser.msie ) {
 				this.blur();
 			}
-
 		});
 
 		// disable click in any case
-		this.anchors.bind('click.tabs', function(){return false;});
+		this.anchors.bind( "click.tabs", function(){
+			return false;
+		});
+	},
+
+    _getIndex: function( index ) {
+		// meta-function to give users option to provide a href string instead of a numerical index.
+		// also sanitizes numerical indexes to valid values.
+		if ( typeof index == "string" ) {
+			index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) );
+		}
 
+		return index;
 	},
 
 	destroy: function() {
 		var o = this.options;
 
 		this.abort();
-		
-		this.element.unbind('.tabs')
-			.removeClass('ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible')
-			.removeData('tabs');
 
-		this.list.removeClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all');
+		this.element
+			.unbind( ".tabs" )
+			.removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" )
+			.removeData( "tabs" );
+
+		this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" );
 
 		this.anchors.each(function() {
-			var href = $.data(this, 'href.tabs');
-			if (href) {
+			var href = $.data( this, "href.tabs" );
+			if ( href ) {
 				this.href = href;
 			}
-			var $this = $(this).unbind('.tabs');
-			$.each(['href', 'load', 'cache'], function(i, prefix) {
-				$this.removeData(prefix + '.tabs');
+			var $this = $( this ).unbind( ".tabs" );
+			$.each( [ "href", "load", "cache" ], function( i, prefix ) {
+				$this.removeData( prefix + ".tabs" );
 			});
 		});
 
-		this.lis.unbind('.tabs').add(this.panels).each(function() {
-			if ($.data(this, 'destroy.tabs')) {
-				$(this).remove();
-			}
-			else {
-				$(this).removeClass([
-					'ui-state-default',
-					'ui-corner-top',
-					'ui-tabs-selected',
-					'ui-state-active',
-					'ui-state-hover',
-					'ui-state-focus',
-					'ui-state-disabled',
-					'ui-tabs-panel',
-					'ui-widget-content',
-					'ui-corner-bottom',
-					'ui-tabs-hide'
-				].join(' '));
+		this.lis.unbind( ".tabs" ).add( this.panels ).each(function() {
+			if ( $.data( this, "destroy.tabs" ) ) {
+				$( this ).remove();
+			} else {
+				$( this ).removeClass([
+					"ui-state-default",
+					"ui-corner-top",
+					"ui-tabs-selected",
+					"ui-state-active",
+					"ui-state-hover",
+					"ui-state-focus",
+					"ui-state-disabled",
+					"ui-tabs-panel",
+					"ui-widget-content",
+					"ui-corner-bottom",
+					"ui-tabs-hide"
+				].join( " " ) );
 			}
 		});
 
-		if (o.cookie) {
-			this._cookie(null, o.cookie);
+		if ( o.cookie ) {
+			this._cookie( null, o.cookie );
 		}
 
 		return this;
 	},
 
-	add: function(url, label, index) {
-		if (index === undefined) {
-			index = this.anchors.length; // append by default
+	add: function( url, label, index ) {
+		if ( index === undefined ) {
+			index = this.anchors.length;
 		}
 
-		var self = this, o = this.options,
-			$li = $(o.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label)),
-			id = !url.indexOf('#') ? url.replace('#', '') : this._tabId($('a', $li)[0]);
+		var self = this,
+			o = this.options,
+			$li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ),
+			id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] );
 
-		$li.addClass('ui-state-default ui-corner-top').data('destroy.tabs', true);
+		$li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true );
 
 		// try to find an existing element before creating a new one
-		var $panel = $('#' + id);
-		if (!$panel.length) {
-			$panel = $(o.panelTemplate).attr('id', id).data('destroy.tabs', true);
+		var $panel = self.element.find( "#" + id );
+		if ( !$panel.length ) {
+			$panel = $( o.panelTemplate )
+				.attr( "id", id )
+				.data( "destroy.tabs", true );
 		}
-		$panel.addClass('ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide');
-
-		if (index >= this.lis.length) {
-			$li.appendTo(this.list);
-			$panel.appendTo(this.list[0].parentNode);
-		}
-		else {
-			$li.insertBefore(this.lis[index]);
-			$panel.insertBefore(this.panels[index]);
+		$panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" );
+
+		if ( index >= this.lis.length ) {
+			$li.appendTo( this.list );
+			$panel.appendTo( this.list[ 0 ].parentNode );
+		} else {
+			$li.insertBefore( this.lis[ index ] );
+			$panel.insertBefore( this.panels[ index ] );
 		}
 
-		o.disabled = $.map(o.disabled,
-			function(n, i) { return n >= index ? ++n : n; });
+		o.disabled = $.map( o.disabled, function( n, i ) {
+			return n >= index ? ++n : n;
+		});
 
 		this._tabify();
 
-		if (this.anchors.length == 1) { // after tabify
+		if ( this.anchors.length == 1 ) {
 			o.selected = 0;
-			$li.addClass('ui-tabs-selected ui-state-active');
-			$panel.removeClass('ui-tabs-hide');
-			this.element.queue("tabs", function() {
-				self._trigger('show', null, self._ui(self.anchors[0], self.panels[0]));
+			$li.addClass( "ui-tabs-selected ui-state-active" );
+			$panel.removeClass( "ui-tabs-hide" );
+			this.element.queue( "tabs", function() {
+				self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) );
 			});
-				
-			this.load(0);
+
+			this.load( 0 );
 		}
 
-		// callback
-		this._trigger('add', null, this._ui(this.anchors[index], this.panels[index]));
+		this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
 		return this;
 	},
 
-	remove: function(index) {
-		var o = this.options, $li = this.lis.eq(index).remove(),
-			$panel = this.panels.eq(index).remove();
+	remove: function( index ) {
+		index = this._getIndex( index );
+		var o = this.options,
+			$li = this.lis.eq( index ).remove(),
+			$panel = this.panels.eq( index ).remove();
 
 		// If selected tab was removed focus tab to the right or
 		// in case the last tab was removed the tab to the left.
-		if ($li.hasClass('ui-tabs-selected') && this.anchors.length > 1) {
-			this.select(index + (index + 1 < this.anchors.length ? 1 : -1));
+		if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) {
+			this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) );
 		}
 
-		o.disabled = $.map($.grep(o.disabled, function(n, i) { return n != index; }),
-			function(n, i) { return n >= index ? --n : n; });
+		o.disabled = $.map(
+			$.grep( o.disabled, function(n, i) {
+				return n != index;
+			}),
+			function( n, i ) {
+				return n >= index ? --n : n;
+			});
 
 		this._tabify();
 
-		// callback
-		this._trigger('remove', null, this._ui($li.find('a')[0], $panel[0]));
+		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
 		return this;
 	},
 
-	enable: function(index) {
+	enable: function( index ) {
+		index = this._getIndex( index );
 		var o = this.options;
-		if ($.inArray(index, o.disabled) == -1) {
+		if ( $.inArray( index, o.disabled ) == -1 ) {
 			return;
 		}
 
-		this.lis.eq(index).removeClass('ui-state-disabled');
-		o.disabled = $.grep(o.disabled, function(n, i) { return n != index; });
+		this.lis.eq( index ).removeClass( "ui-state-disabled" );
+		o.disabled = $.grep( o.disabled, function( n, i ) {
+			return n != index;
+		});
 
-		// callback
-		this._trigger('enable', null, this._ui(this.anchors[index], this.panels[index]));
+		this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
 		return this;
 	},
 
-	disable: function(index) {
+	disable: function( index ) {
+		index = this._getIndex( index );
 		var self = this, o = this.options;
-		if (index != o.selected) { // cannot disable already selected tab
-			this.lis.eq(index).addClass('ui-state-disabled');
+		// cannot disable already selected tab
+		if ( index != o.selected ) {
+			this.lis.eq( index ).addClass( "ui-state-disabled" );
 
-			o.disabled.push(index);
+			o.disabled.push( index );
 			o.disabled.sort();
 
-			// callback
-			this._trigger('disable', null, this._ui(this.anchors[index], this.panels[index]));
+			this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
 		}
 
 		return this;
 	},
 
-	select: function(index) {
-		if (typeof index == 'string') {
-			index = this.anchors.index(this.anchors.filter('[href$=' + index + ']'));
-		}
-		else if (index === null) { // usage of null is deprecated, TODO remove in next release
-			index = -1;
-		}
-		if (index == -1 && this.options.collapsible) {
-			index = this.options.selected;
+	select: function( index ) {
+		index = this._getIndex( index );
+		if ( index == -1 ) {
+			if ( this.options.collapsible && this.options.selected != -1 ) {
+				index = this.options.selected;
+			} else {
+				return this;
+			}
 		}
-
-		this.anchors.eq(index).trigger(this.options.event + '.tabs');
+		this.anchors.eq( index ).trigger( this.options.event + ".tabs" );
 		return this;
 	},
 
-	load: function(index) {
-		var self = this, o = this.options, a = this.anchors.eq(index)[0], url = $.data(a, 'load.tabs');
+	load: function( index ) {
+		index = this._getIndex( index );
+		var self = this,
+			o = this.options,
+			a = this.anchors.eq( index )[ 0 ],
+			url = $.data( a, "load.tabs" );
 
 		this.abort();
 
 		// not remote or from cache
-		if (!url || this.element.queue("tabs").length !== 0 && $.data(a, 'cache.tabs')) {
-			this.element.dequeue("tabs");
+		if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) {
+			this.element.dequeue( "tabs" );
 			return;
 		}
 
 		// load remote from here on
-		this.lis.eq(index).addClass('ui-state-processing');
+		this.lis.eq( index ).addClass( "ui-state-processing" );
 
-		if (o.spinner) {
-			var span = $('span', a);
-			span.data('label.tabs', span.html()).html(o.spinner);
+		if ( o.spinner ) {
+			var span = $( "span", a );
+			span.data( "label.tabs", span.html() ).html( o.spinner );
 		}
 
-		this.xhr = $.ajax($.extend({}, o.ajaxOptions, {
+		this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
 			url: url,
-			success: function(r, s) {
-				$(self._sanitizeSelector(a.hash)).html(r);
+			success: function( r, s ) {
+				self.element.find( self._sanitizeSelector( a.hash ) ).html( r );
 
 				// take care of tab labels
 				self._cleanup();
 
-				if (o.cache) {
-					$.data(a, 'cache.tabs', true); // if loaded once do not load them again
+				if ( o.cache ) {
+					$.data( a, "cache.tabs", true );
 				}
 
-				// callbacks
-				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
+				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
 				try {
-					o.ajaxOptions.success(r, s);
+					o.ajaxOptions.success( r, s );
 				}
-				catch (e) {}
+				catch ( e ) {}
 			},
-			error: function(xhr, s, e) {
+			error: function( xhr, s, e ) {
 				// take care of tab labels
 				self._cleanup();
 
-				// callbacks
-				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
+				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
 				try {
 					// Passing index avoid a race condition when this method is
 					// called after the user has selected another tab.
 					// Pass the anchor that initiated this request allows
 					// loadError to manipulate the tab content panel via $(a.hash)
-					o.ajaxOptions.error(xhr, s, index, a);
+					o.ajaxOptions.error( xhr, s, index, a );
 				}
-				catch (e) {}
+				catch ( e ) {}
 			}
-		}));
+		} ) );
 
 		// last, so that load event is fired before show...
-		self.element.dequeue("tabs");
+		self.element.dequeue( "tabs" );
 
 		return this;
 	},
 
 	abort: function() {
 		// stop possibly running animations
-		this.element.queue([]);
-		this.panels.stop(false, true);
+		this.element.queue( [] );
+		this.panels.stop( false, true );
 
 		// "tabs" queue must not contain more than two elements,
 		// which are the callbacks for the latest clicked tab...
-		this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2));
+		this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) );
 
 		// terminate pending requests from other tabs
-		if (this.xhr) {
+		if ( this.xhr ) {
 			this.xhr.abort();
 			delete this.xhr;
 		}
@@ -648,19 +687,18 @@ $.widget("ui.tabs", {
 		return this;
 	},
 
-	url: function(index, url) {
-		this.anchors.eq(index).removeData('cache.tabs').data('load.tabs', url);
+	url: function( index, url ) {
+		this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url );
 		return this;
 	},
 
 	length: function() {
 		return this.anchors.length;
 	}
-
 });
 
-$.extend($.ui.tabs, {
-	version: '1.8'
+$.extend( $.ui.tabs, {
+	version: "1.8.12"
 });
 
 /*
@@ -670,46 +708,45 @@ $.extend($.ui.tabs, {
 /*
  * Rotate
  */
-$.extend($.ui.tabs.prototype, {
+$.extend( $.ui.tabs.prototype, {
 	rotation: null,
-	rotate: function(ms, continuing) {
+	rotate: function( ms, continuing ) {
+		var self = this,
+			o = this.options;
 
-		var self = this, o = this.options;
-		
-		var rotate = self._rotate || (self._rotate = function(e) {
-			clearTimeout(self.rotation);
+		var rotate = self._rotate || ( self._rotate = function( e ) {
+			clearTimeout( self.rotation );
 			self.rotation = setTimeout(function() {
 				var t = o.selected;
 				self.select( ++t < self.anchors.length ? t : 0 );
-			}, ms);
+			}, ms );
 			
-			if (e) {
+			if ( e ) {
 				e.stopPropagation();
 			}
 		});
-		
-		var stop = self._unrotate || (self._unrotate = !continuing ?
-			function(e) {
+
+		var stop = self._unrotate || ( self._unrotate = !continuing
+			? function(e) {
 				if (e.clientX) { // in case of a true click
 					self.rotate(null);
 				}
-			} :
-			function(e) {
+			}
+			: function( e ) {
 				t = o.selected;
 				rotate();
 			});
 
 		// start rotation
-		if (ms) {
-			this.element.bind('tabsshow', rotate);
-			this.anchors.bind(o.event + '.tabs', stop);
+		if ( ms ) {
+			this.element.bind( "tabsshow", rotate );
+			this.anchors.bind( o.event + ".tabs", stop );
 			rotate();
-		}
 		// stop rotation
-		else {
-			clearTimeout(self.rotation);
-			this.element.unbind('tabsshow', rotate);
-			this.anchors.unbind(o.event + '.tabs', stop);
+		} else {
+			clearTimeout( self.rotation );
+			this.element.unbind( "tabsshow", rotate );
+			this.anchors.unbind( o.event + ".tabs", stop );
 			delete this._rotate;
 			delete this._unrotate;
 		}
@@ -718,4 +755,4 @@ $.extend($.ui.tabs.prototype, {
 	}
 });
 
-})(jQuery);
+})( jQuery );
diff --git a/development-bundle/ui/jquery.ui.widget.js b/development-bundle/ui/jquery.ui.widget.js
index 682999d..5dd5023 100644
--- a/development-bundle/ui/jquery.ui.widget.js
+++ b/development-bundle/ui/jquery.ui.widget.js
@@ -1,28 +1,38 @@
 /*!
- * jQuery UI Widget 1.8
+ * jQuery UI Widget 1.8.12
  *
- * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
  *
  * http://docs.jquery.com/UI/Widget
  */
-(function( $ ) {
-
-var _remove = $.fn.remove;
-
-$.fn.remove = function( selector, keepData ) {
-	return this.each(function() {
-		if ( !keepData ) {
-			if ( !selector || $.filter( selector, [ this ] ).length ) {
-				$( "*", this ).add( this ).each(function() {
-					$( this ).triggerHandler( "remove" );
-				});
-			}
+(function( $, undefined ) {
+
+// jQuery 1.4+
+if ( $.cleanData ) {
+	var _cleanData = $.cleanData;
+	$.cleanData = function( elems ) {
+		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
+			$( elem ).triggerHandler( "remove" );
 		}
-		return _remove.call( $(this), selector, keepData );
-	});
-};
+		_cleanData( elems );
+	};
+} else {
+	var _remove = $.fn.remove;
+	$.fn.remove = function( selector, keepData ) {
+		return this.each(function() {
+			if ( !keepData ) {
+				if ( !selector || $.filter( selector, [ this ] ).length ) {
+					$( "*", this ).add( [ this ] ).each(function() {
+						$( this ).triggerHandler( "remove" );
+					});
+				}
+			}
+			return _remove.call( $(this), selector, keepData );
+		});
+	};
+}
 
 $.widget = function( name, base, prototype ) {
 	var namespace = name.split( "." )[ 0 ],
@@ -57,7 +67,7 @@ $.widget = function( name, base, prototype ) {
 //			basePrototype[ key ] = $.extend( {}, val );
 //		}
 //	});
-	basePrototype.options = $.extend( {}, basePrototype.options );
+	basePrototype.options = $.extend( true, {}, basePrototype.options );
 	$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
 		namespace: namespace,
 		widgetName: name,
@@ -80,7 +90,7 @@ $.widget.bridge = function( name, object ) {
 			options;
 
 		// prevent calls to internal methods
-		if ( isMethodCall && options.substring( 0, 1 ) === "_" ) {
+		if ( isMethodCall && options.charAt( 0 ) === "_" ) {
 			return returnValue;
 		}
 
@@ -90,6 +100,15 @@ $.widget.bridge = function( name, object ) {
 					methodValue = instance && $.isFunction( instance[options] ) ?
 						instance[ options ].apply( instance, args ) :
 						instance;
+				// TODO: add this back in 1.9 and use $.error() (see #5972)
+//				if ( !instance ) {
+//					throw "cannot call methods on " + name + " prior to initialization; " +
+//						"attempted to call method '" + options + "'";
+//				}
+//				if ( !$.isFunction( instance[options] ) ) {
+//					throw "no such method '" + options + "' for " + name + " widget instance";
+//				}
+//				var methodValue = instance[ options ].apply( instance, args );
 				if ( methodValue !== instance && methodValue !== undefined ) {
 					returnValue = methodValue;
 					return false;
@@ -99,10 +118,7 @@ $.widget.bridge = function( name, object ) {
 			this.each(function() {
 				var instance = $.data( this, name );
 				if ( instance ) {
-					if ( options ) {
-						instance.option( options );
-					}
-					instance._init();
+					instance.option( options || {} )._init();
 				} else {
 					$.data( this, name, new object( options, this ) );
 				}
@@ -129,10 +145,11 @@ $.Widget.prototype = {
 	_createWidget: function( options, element ) {
 		// $.widget.bridge stores the plugin instance, but we do it anyway
 		// so that it's stored even before the _create function runs
-		this.element = $( element ).data( this.widgetName, this );
+		$.data( element, this.widgetName, this );
+		this.element = $( element );
 		this.options = $.extend( true, {},
 			this.options,
-			$.metadata && $.metadata.get( element )[ this.widgetName ],
+			this._getCreateOptions(),
 			options );
 
 		var self = this;
@@ -141,8 +158,12 @@ $.Widget.prototype = {
 		});
 
 		this._create();
+		this._trigger( "create" );
 		this._init();
 	},
+	_getCreateOptions: function() {
+		return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
+	},
 	_create: function() {},
 	_init: function() {},
 
@@ -155,7 +176,7 @@ $.Widget.prototype = {
 			.removeAttr( "aria-disabled" )
 			.removeClass(
 				this.widgetBaseClass + "-disabled " +
-				this.namespace + "-state-disabled" );
+				"ui-state-disabled" );
 	},
 
 	widget: function() {
@@ -163,12 +184,11 @@ $.Widget.prototype = {
 	},
 
 	option: function( key, value ) {
-		var options = key,
-			self = this;
+		var options = key;
 
 		if ( arguments.length === 0 ) {
 			// don't return a reference to the internal hash
-			return $.extend( {}, self.options );
+			return $.extend( {}, this.options );
 		}
 
 		if  (typeof key === "string" ) {
@@ -179,11 +199,17 @@ $.Widget.prototype = {
 			options[ key ] = value;
 		}
 
+		this._setOptions( options );
+
+		return this;
+	},
+	_setOptions: function( options ) {
+		var self = this;
 		$.each( options, function( key, value ) {
 			self._setOption( key, value );
 		});
 
-		return self;
+		return this;
 	},
 	_setOption: function( key, value ) {
 		this.options[ key ] = value;
@@ -192,7 +218,7 @@ $.Widget.prototype = {
 			this.widget()
 				[ value ? "addClass" : "removeClass"](
 					this.widgetBaseClass + "-disabled" + " " +
-					this.namespace + "-state-disabled" )
+					"ui-state-disabled" )
 				.attr( "aria-disabled", value );
 		}
 
diff --git a/development-bundle/version.txt b/development-bundle/version.txt
index 4684374..7d2424c 100644
--- a/development-bundle/version.txt
+++ b/development-bundle/version.txt
@@ -1 +1 @@
-1.8
\ No newline at end of file
+1.8.12
diff --git a/index.html b/index.html
index 88d0f48..f1113a6 100644
--- a/index.html
+++ b/index.html
@@ -3,9 +3,9 @@
 	<head>
 		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 		<title>jQuery UI Example Page</title>
-		<link type="text/css" href="css/smoothness/jquery-ui-1.8.custom.css" rel="stylesheet" />	
-		<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
-		<script type="text/javascript" src="js/jquery-ui-1.8.custom.min.js"></script>
+		<link type="text/css" href="css/smoothness/jquery-ui-1.8.12.custom.css" rel="stylesheet" />	
+		<script type="text/javascript" src="js/jquery-1.5.1.min.js"></script>
+		<script type="text/javascript" src="js/jquery-ui-1.8.12.custom.min.js"></script>
 		<script type="text/javascript">
 			$(function(){
 
@@ -82,7 +82,7 @@
 	</head>
 	<body>
 	<h1>Welcome to jQuery UI!</h1>
-	<p style="font-size: 1.3em; line-height: 1.5; margin: 1em 0; width: 50%;">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 <a href="js/jquery-1.4.2.min.js">jQuery</a>, your personalized copy of <a href="js/jquery-ui-1.8.custom.min.js">jQuery UI (js/jquery-ui-1.8.custom.min.js)</a>, and <a href="css/smoothness/jquery-ui-1.8.custom.css">css/smoothness/jquery-ui-1.8.custom.css</a> which imports the entire jQuery UI CSS Framework. You can choose to link a subset of the CSS Framework depending on your needs. </p>
+	<p style="font-size: 1.3em; line-height: 1.5; margin: 1em 0; width: 50%;">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 <a href="js/jquery-1.5.1.min.js">jQuery</a>, your personalized copy of <a href="js/jquery-ui-1.8.12.custom.min.js">jQuery UI (js/jquery-ui-1.8.12.custom.min.js)</a>, and <a href="css/smoothness/jquery-ui-1.8.12.custom.css">css/smoothness/jquery-ui-1.8.12.custom.css</a> which imports the entire jQuery UI CSS Framework. You can choose to link a subset of the CSS Framework depending on your needs. </p>
 	<p style="font-size: 1.2em; line-height: 1.5; margin: 1em 0; width: 50%;">You've downloaded components and a theme that are compatible with jQuery 1.3+. Please make sure you are using jQuery 1.3+ in your production environment.</p>	
 
 	<p style="font-weight: bold; margin: 2em 0 1em; font-size: 1.3em;">YOUR COMPONENTS:</p>

-- 
jqueryui



More information about the Pkg-javascript-commits mailing list