From 16b77f1de48f64493985c2acd85b1ce96d520d92 Mon Sep 17 00:00:00 2001
From: Jiri Tomasek <jtomasek@redhat.com>
Date: Tue, 24 Apr 2012 10:30:36 +0200
Subject: [PATCH conductor 3/4] removed converge-ui files from lib

---
 src/lib/converge-ui/LICENSE                        |  340 -
 src/lib/converge-ui/converge-ui.spec               |   61 -
 .../images/ui-bg_flat_0_aaaaaa_40x100.png          |  Bin 180 -> 0 bytes
 .../images/ui-bg_flat_75_ffffff_40x100.png         |  Bin 178 -> 0 bytes
 .../ui-bg_highlight-hard_75_dadada_1x100.png       |  Bin 97 -> 0 bytes
 .../ui-bg_highlight-hard_75_e6e6e6_1x100.png       |  Bin 94 -> 0 bytes
 .../ui-bg_highlight-hard_95_ffffff_1x100.png       |  Bin 98 -> 0 bytes
 .../ui-bg_highlight-soft_80_e0e0e0_1x100.png       |  Bin 100 -> 0 bytes
 .../images/ui-bg_inset-hard_65_ffffff_1x100.png    |  Bin 93 -> 0 bytes
 .../images/ui-bg_inset-soft_95_fef1ec_1x100.png    |  Bin 123 -> 0 bytes
 .../images/ui-icons_8f8f8f_256x240.png             |  Bin 4369 -> 0 bytes
 .../images/ui-icons_97baed_256x240.png             |  Bin 4369 -> 0 bytes
 .../images/ui-icons_cd0a0a_256x240.png             |  Bin 4369 -> 0 bytes
 .../css/custom-theme/jquery-ui-1.8.11.custom.css   |  573 -
 .../development-bundle/AUTHORS.txt                 |   30 -
 .../development-bundle/GPL-LICENSE.txt             |  278 -
 .../development-bundle/MIT-LICENSE.txt             |   25 -
 .../demos/accordion/collapsible.html               |   57 -
 .../demos/accordion/custom-icons.html              |   69 -
 .../demos/accordion/default.html                   |   85 -
 .../demos/accordion/fillspace.html                 |   76 -
 .../demos/accordion/hoverintent.html               |  134 -
 .../development-bundle/demos/accordion/index.html  |   25 -
 .../demos/accordion/mouseover.html                 |   57 -
 .../demos/accordion/no-auto-height.html            |   60 -
 .../demos/accordion/sortable.html                  |   83 -
 .../development-bundle/demos/addClass/default.html |   52 -
 .../development-bundle/demos/addClass/index.html   |   18 -
 .../development-bundle/demos/animate/default.html  |   61 -
 .../development-bundle/demos/animate/index.html    |   18 -
 .../demos/autocomplete/categories.html             |   71 -
 .../demos/autocomplete/combobox.html               |  171 -
 .../demos/autocomplete/custom-data.html            |   95 -
 .../demos/autocomplete/default.html                |   64 -
 .../demos/autocomplete/folding.html                |   62 -
 .../demos/autocomplete/images/jquery_32x32.png     |  Bin 1417 -> 0 bytes
 .../demos/autocomplete/images/jqueryui_32x32.png   |  Bin 1193 -> 0 bytes
 .../demos/autocomplete/images/sizzlejs_32x32.png   |  Bin 999 -> 0 bytes
 .../demos/autocomplete/images/transparent_1x1.png  |  Bin 95 -> 0 bytes
 .../autocomplete/images/ui-anim_basic_16x16.gif    |  Bin 1459 -> 0 bytes
 .../demos/autocomplete/index.html                  |   27 -
 .../demos/autocomplete/london.xml                  |  114 -
 .../demos/autocomplete/maxheight.html              |   79 -
 .../demos/autocomplete/multiple-remote.html        |   84 -
 .../demos/autocomplete/multiple.html               |   99 -
 .../demos/autocomplete/remote-jsonp.html           |   86 -
 .../demos/autocomplete/remote-with-cache.html      |   59 -
 .../demos/autocomplete/remote.html                 |   59 -
 .../demos/autocomplete/search.php                  |  640 --
 .../development-bundle/demos/autocomplete/xml.html |   72 -
 .../development-bundle/demos/button/checkbox.html  |   44 -
 .../development-bundle/demos/button/default.html   |   38 -
 .../development-bundle/demos/button/icons.html     |   56 -
 .../development-bundle/demos/button/index.html     |   23 -
 .../development-bundle/demos/button/radio.html     |   39 -
 .../demos/button/splitbutton.html                  |   55 -
 .../development-bundle/demos/button/toolbar.html   |  120 -
 .../demos/datepicker/alt-field.html                |   36 -
 .../demos/datepicker/animation.html                |   58 -
 .../demos/datepicker/buttonbar.html                |   35 -
 .../demos/datepicker/date-formats.html             |   47 -
 .../demos/datepicker/date-range.html               |   49 -
 .../demos/datepicker/default.html                  |   33 -
 .../demos/datepicker/dropdown-month-year.html      |   36 -
 .../demos/datepicker/icon-trigger.html             |   37 -
 .../demos/datepicker/images/calendar.gif           |  Bin 269 -> 0 bytes
 .../development-bundle/demos/datepicker/index.html |   31 -
 .../demos/datepicker/inline.html                   |   33 -
 .../demos/datepicker/localization.html             |  162 -
 .../demos/datepicker/min-max.html                  |   33 -
 .../demos/datepicker/multiple-calendars.html       |   36 -
 .../demos/datepicker/other-months.html             |   37 -
 .../demos/datepicker/show-week.html                |   39 -
 .../development-bundle/demos/demos.css             |  334 -
 .../development-bundle/demos/dialog/animated.html  |   56 -
 .../development-bundle/demos/dialog/default.html   |   54 -
 .../development-bundle/demos/dialog/index.html     |   23 -
 .../demos/dialog/modal-confirmation.html           |   69 -
 .../demos/dialog/modal-form.html                   |  167 -
 .../demos/dialog/modal-message.html                |   71 -
 .../development-bundle/demos/dialog/modal.html     |   60 -
 .../demos/draggable/constrain-movement.html        |   69 -
 .../demos/draggable/cursor-style.html              |   49 -
 .../demos/draggable/default.html                   |   39 -
 .../demos/draggable/delay-start.html               |   45 -
 .../development-bundle/demos/draggable/events.html |   77 -
 .../development-bundle/demos/draggable/handle.html |   50 -
 .../development-bundle/demos/draggable/index.html  |   28 -
 .../development-bundle/demos/draggable/revert.html |   44 -
 .../development-bundle/demos/draggable/scroll.html |   51 -
 .../demos/draggable/snap-to.html                   |   68 -
 .../demos/draggable/sortable.html                  |   57 -
 .../demos/draggable/visual-feedback.html           |   77 -
 .../demos/droppable/accepted-elements.html         |   60 -
 .../demos/droppable/default.html                   |   53 -
 .../demos/droppable/images/high_tatras.jpg         |  Bin 22994 -> 0 bytes
 .../demos/droppable/images/high_tatras2.jpg        |  Bin 25619 -> 0 bytes
 .../demos/droppable/images/high_tatras2_min.jpg    |  Bin 2164 -> 0 bytes
 .../demos/droppable/images/high_tatras3.jpg        |  Bin 24583 -> 0 bytes
 .../demos/droppable/images/high_tatras3_min.jpg    |  Bin 1901 -> 0 bytes
 .../demos/droppable/images/high_tatras4.jpg        |  Bin 24870 -> 0 bytes
 .../demos/droppable/images/high_tatras4_min.jpg    |  Bin 2541 -> 0 bytes
 .../demos/droppable/images/high_tatras_min.jpg     |  Bin 2147 -> 0 bytes
 .../development-bundle/demos/droppable/index.html  |   24 -
 .../demos/droppable/photo-manager.html             |  184 -
 .../demos/droppable/propagation.html               |   80 -
 .../development-bundle/demos/droppable/revert.html |   61 -
 .../demos/droppable/shopping-cart.html             |  101 -
 .../demos/droppable/visual-feedback.html           |   78 -
 .../development-bundle/demos/effect/default.html   |  109 -
 .../development-bundle/demos/effect/easing.html    |  108 -
 .../development-bundle/demos/effect/index.html     |   19 -
 .../development-bundle/demos/hide/default.html     |  102 -
 .../development-bundle/demos/hide/index.html       |   18 -
 .../development-bundle/demos/images/calendar.gif   |  Bin 269 -> 0 bytes
 .../demos/images/demo-config-on-tile.gif           |  Bin 172 -> 0 bytes
 .../demos/images/demo-config-on.gif                |  Bin 335 -> 0 bytes
 .../demos/images/demo-spindown-closed.gif          |  Bin 103 -> 0 bytes
 .../demos/images/demo-spindown-open.gif            |  Bin 105 -> 0 bytes
 .../demos/images/icon-docs-info.gif                |  Bin 206 -> 0 bytes
 .../development-bundle/demos/images/pbar-ani.gif   |  Bin 7970 -> 0 bytes
 .../development-bundle/demos/index.html            |  321 -
 .../development-bundle/demos/position/cycler.html  |  122 -
 .../development-bundle/demos/position/default.html |  153 -
 .../demos/position/images/earth.jpg                |  Bin 29850 -> 0 bytes
 .../demos/position/images/flight.jpg               |  Bin 33637 -> 0 bytes
 .../demos/position/images/rocket.jpg               |  Bin 32986 -> 0 bytes
 .../development-bundle/demos/position/index.html   |   19 -
 .../demos/progressbar/animated.html                |   44 -
 .../demos/progressbar/default.html                 |   35 -
 .../demos/progressbar/images/pbar-ani.gif          |  Bin 7970 -> 0 bytes
 .../demos/progressbar/index.html                   |   20 -
 .../demos/progressbar/resize.html                  |   40 -
 .../demos/removeClass/default.html                 |   52 -
 .../demos/removeClass/index.html                   |   18 -
 .../demos/resizable/animate.html                   |   43 -
 .../demos/resizable/aspect-ratio.html              |   42 -
 .../demos/resizable/constrain-area.html            |   47 -
 .../demos/resizable/default.html                   |   40 -
 .../demos/resizable/delay-start.html               |   52 -
 .../development-bundle/demos/resizable/helper.html |   43 -
 .../development-bundle/demos/resizable/index.html  |   28 -
 .../demos/resizable/max-min.html                   |   45 -
 .../demos/resizable/snap-to-grid.html              |   42 -
 .../demos/resizable/synchronous-resize.html        |   49 -
 .../demos/resizable/textarea.html                  |   41 -
 .../demos/resizable/visual-feedback.html           |   43 -
 .../demos/selectable/default.html                  |   50 -
 .../demos/selectable/display-grid.html             |   55 -
 .../development-bundle/demos/selectable/index.html |   20 -
 .../demos/selectable/serialize.html                |   61 -
 .../development-bundle/demos/show/default.html     |  104 -
 .../development-bundle/demos/show/index.html       |   18 -
 .../demos/slider/colorpicker.html                  |   95 -
 .../development-bundle/demos/slider/default.html   |   37 -
 .../demos/slider/hotelrooms.html                   |   59 -
 .../development-bundle/demos/slider/index.html     |   29 -
 .../demos/slider/multiple-vertical.html            |   77 -
 .../demos/slider/range-vertical.html               |   51 -
 .../development-bundle/demos/slider/range.html     |   52 -
 .../development-bundle/demos/slider/rangemax.html  |   50 -
 .../development-bundle/demos/slider/rangemin.html  |   51 -
 .../demos/slider/side-scroll.html                  |  140 -
 .../demos/slider/slider-vertical.html              |   52 -
 .../development-bundle/demos/slider/steps.html     |   51 -
 .../development-bundle/demos/slider/tabs.html      |   67 -
 .../demos/sortable/connect-lists-through-tabs.html |   78 -
 .../demos/sortable/connect-lists.html              |   58 -
 .../development-bundle/demos/sortable/default.html |   51 -
 .../demos/sortable/delay-start.html                |   67 -
 .../demos/sortable/display-grid.html               |   54 -
 .../demos/sortable/empty-lists.html                |   69 -
 .../development-bundle/demos/sortable/index.html   |   26 -
 .../development-bundle/demos/sortable/items.html   |   70 -
 .../demos/sortable/placeholder.html                |   56 -
 .../demos/sortable/portlets.html                   |   96 -
 .../demos/switchClass/default.html                 |   47 -
 .../demos/switchClass/index.html                   |   18 -
 .../development-bundle/demos/tabs/ajax.html        |   53 -
 .../demos/tabs/ajax/content1.html                  |    4 -
 .../demos/tabs/ajax/content2.html                  |    4 -
 .../demos/tabs/ajax/content3-slow.php              |    7 -
 .../demos/tabs/ajax/content4-broken.php            |    3 -
 .../development-bundle/demos/tabs/bottom.html      |   60 -
 .../development-bundle/demos/tabs/collapsible.html |   55 -
 .../development-bundle/demos/tabs/cookie.html      |   56 -
 .../development-bundle/demos/tabs/default.html     |   49 -
 .../development-bundle/demos/tabs/index.html       |   25 -
 .../demos/tabs/manipulation.html                   |  124 -
 .../development-bundle/demos/tabs/mouseover.html   |   53 -
 .../development-bundle/demos/tabs/sortable.html    |   58 -
 .../development-bundle/demos/tabs/vertical.html    |   61 -
 .../development-bundle/demos/toggle/default.html   |   94 -
 .../development-bundle/demos/toggle/index.html     |   18 -
 .../demos/toggleClass/default.html                 |   46 -
 .../demos/toggleClass/index.html                   |   18 -
 .../development-bundle/docs/accordion.html         | 1017 --
 .../development-bundle/docs/addClass.html          |  109 -
 .../development-bundle/docs/animate.html           |   78 -
 .../development-bundle/docs/autocomplete.html      |  833 --
 .../development-bundle/docs/button.html            |  500 -
 .../development-bundle/docs/datepicker.html        | 2570 -----
 .../development-bundle/docs/dialog.html            | 1698 ---
 .../development-bundle/docs/draggable.html         | 1577 ---
 .../development-bundle/docs/droppable.html         |  829 --
 .../development-bundle/docs/effect.html            |  143 -
 .../development-bundle/docs/hide.html              |  144 -
 .../development-bundle/docs/position.html          |  227 -
 .../development-bundle/docs/progressbar.html       |  460 -
 .../development-bundle/docs/removeClass.html       |  113 -
 .../development-bundle/docs/resizable.html         | 1201 --
 .../development-bundle/docs/selectable.html        |  848 --
 .../development-bundle/docs/show.html              |  144 -
 .../development-bundle/docs/slider.html            |  860 --
 .../development-bundle/docs/sortable.html          | 1952 ----
 .../development-bundle/docs/switchClass.html       |  129 -
 .../development-bundle/docs/tabs.html              | 1549 ---
 .../development-bundle/docs/toggle.html            |  144 -
 .../development-bundle/docs/toggleClass.html       |  111 -
 .../external/jquery.bgiframe-2.1.2.js              |   39 -
 .../development-bundle/external/jquery.cookie.js   |   89 -
 .../development-bundle/external/jquery.metadata.js |  122 -
 .../development-bundle/external/qunit.css          |  153 -
 .../development-bundle/external/qunit.js           | 1261 ---
 .../development-bundle/jquery-1.5.1.js             | 8316 --------------
 .../base/images/ui-bg_flat_0_aaaaaa_40x100.png     |  Bin 180 -> 0 bytes
 .../base/images/ui-bg_flat_75_ffffff_40x100.png    |  Bin 178 -> 0 bytes
 .../base/images/ui-bg_glass_55_fbf9ee_1x400.png    |  Bin 120 -> 0 bytes
 .../base/images/ui-bg_glass_65_ffffff_1x400.png    |  Bin 105 -> 0 bytes
 .../base/images/ui-bg_glass_75_dadada_1x400.png    |  Bin 111 -> 0 bytes
 .../base/images/ui-bg_glass_75_e6e6e6_1x400.png    |  Bin 110 -> 0 bytes
 .../base/images/ui-bg_glass_95_fef1ec_1x400.png    |  Bin 119 -> 0 bytes
 .../ui-bg_highlight-soft_75_cccccc_1x100.png       |  Bin 101 -> 0 bytes
 .../themes/base/images/ui-icons_222222_256x240.png |  Bin 4369 -> 0 bytes
 .../themes/base/images/ui-icons_2e83ff_256x240.png |  Bin 4369 -> 0 bytes
 .../themes/base/images/ui-icons_454545_256x240.png |  Bin 4369 -> 0 bytes
 .../themes/base/images/ui-icons_888888_256x240.png |  Bin 4369 -> 0 bytes
 .../themes/base/images/ui-icons_cd0a0a_256x240.png |  Bin 4369 -> 0 bytes
 .../themes/base/jquery.ui.accordion.css            |   19 -
 .../themes/base/jquery.ui.all.css                  |   11 -
 .../themes/base/jquery.ui.autocomplete.css         |   53 -
 .../themes/base/jquery.ui.base.css                 |   11 -
 .../themes/base/jquery.ui.button.css               |   38 -
 .../themes/base/jquery.ui.core.css                 |   41 -
 .../themes/base/jquery.ui.datepicker.css           |   68 -
 .../themes/base/jquery.ui.dialog.css               |   21 -
 .../themes/base/jquery.ui.progressbar.css          |   11 -
 .../themes/base/jquery.ui.resizable.css            |   20 -
 .../themes/base/jquery.ui.selectable.css           |   10 -
 .../themes/base/jquery.ui.slider.css               |   24 -
 .../themes/base/jquery.ui.tabs.css                 |   18 -
 .../themes/base/jquery.ui.theme.css                |  252 -
 .../images/ui-bg_flat_0_aaaaaa_40x100.png          |  Bin 180 -> 0 bytes
 .../images/ui-bg_flat_75_ffffff_40x100.png         |  Bin 178 -> 0 bytes
 .../ui-bg_highlight-hard_75_dadada_1x100.png       |  Bin 97 -> 0 bytes
 .../ui-bg_highlight-hard_75_e6e6e6_1x100.png       |  Bin 94 -> 0 bytes
 .../ui-bg_highlight-hard_95_ffffff_1x100.png       |  Bin 98 -> 0 bytes
 .../ui-bg_highlight-soft_80_e0e0e0_1x100.png       |  Bin 100 -> 0 bytes
 .../images/ui-bg_inset-hard_65_ffffff_1x100.png    |  Bin 93 -> 0 bytes
 .../images/ui-bg_inset-soft_95_fef1ec_1x100.png    |  Bin 123 -> 0 bytes
 .../images/ui-icons_8f8f8f_256x240.png             |  Bin 4369 -> 0 bytes
 .../images/ui-icons_97baed_256x240.png             |  Bin 4369 -> 0 bytes
 .../images/ui-icons_cd0a0a_256x240.png             |  Bin 4369 -> 0 bytes
 .../custom-theme/jquery-ui-1.8.11.custom.css       |  573 -
 .../themes/custom-theme/jquery.ui.accordion.css    |   19 -
 .../themes/custom-theme/jquery.ui.all.css          |   11 -
 .../themes/custom-theme/jquery.ui.autocomplete.css |   53 -
 .../themes/custom-theme/jquery.ui.base.css         |   11 -
 .../themes/custom-theme/jquery.ui.button.css       |   38 -
 .../themes/custom-theme/jquery.ui.core.css         |   41 -
 .../themes/custom-theme/jquery.ui.datepicker.css   |   68 -
 .../themes/custom-theme/jquery.ui.dialog.css       |   21 -
 .../themes/custom-theme/jquery.ui.progressbar.css  |   11 -
 .../themes/custom-theme/jquery.ui.resizable.css    |   20 -
 .../themes/custom-theme/jquery.ui.selectable.css   |   10 -
 .../themes/custom-theme/jquery.ui.slider.css       |   24 -
 .../themes/custom-theme/jquery.ui.tabs.css         |   18 -
 .../themes/custom-theme/jquery.ui.theme.css        |  254 -
 .../development-bundle/ui/i18n/jquery-ui-i18n.js   | 1379 ---
 .../ui/i18n/jquery.ui.datepicker-af.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-ar-DZ.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-ar.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-az.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-bg.js             |   24 -
 .../ui/i18n/jquery.ui.datepicker-bs.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-ca.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-cs.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-da.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-de.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-el.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-en-AU.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-en-GB.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-en-NZ.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-eo.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-es.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-et.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-eu.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-fa.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-fi.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-fo.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-fr-CH.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-fr.js             |   25 -
 .../ui/i18n/jquery.ui.datepicker-gl.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-he.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-hr.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-hu.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-hy.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-id.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-is.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-it.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-ja.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-ko.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-kz.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-lt.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-lv.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-ml.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-ms.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-nl.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-no.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-pl.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-pt-BR.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-pt.js             |   22 -
 .../ui/i18n/jquery.ui.datepicker-rm.js             |   21 -
 .../ui/i18n/jquery.ui.datepicker-ro.js             |   26 -
 .../ui/i18n/jquery.ui.datepicker-ru.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-sk.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-sl.js             |   24 -
 .../ui/i18n/jquery.ui.datepicker-sq.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-sr-SR.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-sr.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-sv.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-ta.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-th.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-tj.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-tr.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-uk.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-vi.js             |   23 -
 .../ui/i18n/jquery.ui.datepicker-zh-CN.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-zh-HK.js          |   23 -
 .../ui/i18n/jquery.ui.datepicker-zh-TW.js          |   23 -
 .../ui/jquery-ui-1.8.11.custom.js                  |11577 --------------------
 .../development-bundle/ui/jquery.effects.blind.js  |   49 -
 .../development-bundle/ui/jquery.effects.bounce.js |   78 -
 .../development-bundle/ui/jquery.effects.clip.js   |   54 -
 .../development-bundle/ui/jquery.effects.core.js   |  747 --
 .../development-bundle/ui/jquery.effects.drop.js   |   50 -
 .../ui/jquery.effects.explode.js                   |   79 -
 .../development-bundle/ui/jquery.effects.fade.js   |   32 -
 .../development-bundle/ui/jquery.effects.fold.js   |   56 -
 .../ui/jquery.effects.highlight.js                 |   50 -
 .../ui/jquery.effects.pulsate.js                   |   51 -
 .../development-bundle/ui/jquery.effects.scale.js  |  178 -
 .../development-bundle/ui/jquery.effects.shake.js  |   57 -
 .../development-bundle/ui/jquery.effects.slide.js  |   50 -
 .../ui/jquery.effects.transfer.js                  |   45 -
 .../development-bundle/ui/jquery.ui.accordion.js   |  611 --
 .../ui/jquery.ui.autocomplete.js                   |  612 --
 .../development-bundle/ui/jquery.ui.button.js      |  387 -
 .../development-bundle/ui/jquery.ui.core.js        |  308 -
 .../development-bundle/ui/jquery.ui.datepicker.js  | 1773 ---
 .../development-bundle/ui/jquery.ui.dialog.js      |  857 --
 .../development-bundle/ui/jquery.ui.draggable.js   |  799 --
 .../development-bundle/ui/jquery.ui.droppable.js   |  285 -
 .../development-bundle/ui/jquery.ui.mouse.js       |  156 -
 .../development-bundle/ui/jquery.ui.position.js    |  252 -
 .../development-bundle/ui/jquery.ui.progressbar.js |  108 -
 .../development-bundle/ui/jquery.ui.resizable.js   |  812 --
 .../development-bundle/ui/jquery.ui.selectable.js  |  266 -
 .../development-bundle/ui/jquery.ui.slider.js      |  682 --
 .../development-bundle/ui/jquery.ui.sortable.js    | 1073 --
 .../development-bundle/ui/jquery.ui.tabs.js        |  758 --
 .../development-bundle/ui/jquery.ui.widget.js      |  262 -
 .../ui/minified/jquery.effects.blind.min.js        |   14 -
 .../ui/minified/jquery.effects.bounce.min.js       |   15 -
 .../ui/minified/jquery.effects.clip.min.js         |   14 -
 .../ui/minified/jquery.effects.core.min.js         |   30 -
 .../ui/minified/jquery.effects.drop.min.js         |   14 -
 .../ui/minified/jquery.effects.explode.min.js      |   15 -
 .../ui/minified/jquery.effects.fade.min.js         |   13 -
 .../ui/minified/jquery.effects.fold.min.js         |   14 -
 .../ui/minified/jquery.effects.highlight.min.js    |   14 -
 .../ui/minified/jquery.effects.pulsate.min.js      |   14 -
 .../ui/minified/jquery.effects.scale.min.js        |   20 -
 .../ui/minified/jquery.effects.shake.min.js        |   14 -
 .../ui/minified/jquery.effects.slide.min.js        |   14 -
 .../ui/minified/jquery.effects.transfer.min.js     |   14 -
 .../ui/minified/jquery.ui.accordion.min.js         |   30 -
 .../ui/minified/jquery.ui.autocomplete.min.js      |   32 -
 .../ui/minified/jquery.ui.button.min.js            |   25 -
 .../ui/minified/jquery.ui.core.min.js              |   17 -
 .../ui/minified/jquery.ui.datepicker.min.js        |   82 -
 .../ui/minified/jquery.ui.dialog.min.js            |   40 -
 .../ui/minified/jquery.ui.draggable.min.js         |   50 -
 .../ui/minified/jquery.ui.droppable.min.js         |   26 -
 .../ui/minified/jquery.ui.mouse.min.js             |   17 -
 .../ui/minified/jquery.ui.position.min.js          |   16 -
 .../ui/minified/jquery.ui.progressbar.min.js       |   16 -
 .../ui/minified/jquery.ui.resizable.min.js         |   47 -
 .../ui/minified/jquery.ui.selectable.min.js        |   22 -
 .../ui/minified/jquery.ui.slider.min.js            |   33 -
 .../ui/minified/jquery.ui.sortable.min.js          |   60 -
 .../ui/minified/jquery.ui.tabs.min.js              |   35 -
 .../ui/minified/jquery.ui.widget.min.js            |   15 -
 .../development-bundle/version.txt                 |    1 -
 .../jquery-ui-1.8.11.custom/js/jquery-1.5.1.min.js |   16 -
 .../js/jquery-ui-1.8.11.custom.min.js              |  783 --
 .../javascripts/lib/jquery/jquery-1.6.2.js         | 8981 ---------------
 .../javascripts/lib/jquery/jquery-1.6.2.min.js     |   18 -
 .../lib/jquery/plugins/flot-0.7/API.txt            | 1201 --
 .../lib/jquery/plugins/flot-0.7/FAQ.txt            |   76 -
 .../lib/jquery/plugins/flot-0.7/LICENSE.txt        |   22 -
 .../lib/jquery/plugins/flot-0.7/Makefile           |    9 -
 .../lib/jquery/plugins/flot-0.7/NEWS.txt           |  508 -
 .../lib/jquery/plugins/flot-0.7/PLUGINS.txt        |  137 -
 .../lib/jquery/plugins/flot-0.7/README.txt         |   90 -
 .../lib/jquery/plugins/flot-0.7/examples/ajax.html |  143 -
 .../plugins/flot-0.7/examples/annotating.html      |   75 -
 .../plugins/flot-0.7/examples/arrow-down.gif       |  Bin 916 -> 0 bytes
 .../plugins/flot-0.7/examples/arrow-left.gif       |  Bin 891 -> 0 bytes
 .../plugins/flot-0.7/examples/arrow-right.gif      |  Bin 897 -> 0 bytes
 .../jquery/plugins/flot-0.7/examples/arrow-up.gif  |  Bin 916 -> 0 bytes
 .../jquery/plugins/flot-0.7/examples/basic.html    |   38 -
 .../flot-0.7/examples/data-eu-gdp-growth-1.json    |    4 -
 .../flot-0.7/examples/data-eu-gdp-growth-2.json    |    4 -
 .../flot-0.7/examples/data-eu-gdp-growth-3.json    |    4 -
 .../flot-0.7/examples/data-eu-gdp-growth-4.json    |    4 -
 .../flot-0.7/examples/data-eu-gdp-growth-5.json    |    4 -
 .../flot-0.7/examples/data-eu-gdp-growth.json      |    4 -
 .../flot-0.7/examples/data-japan-gdp-growth.json   |    4 -
 .../flot-0.7/examples/data-usa-gdp-growth.json     |    4 -
 .../plugins/flot-0.7/examples/graph-types.html     |   75 -
 .../flot-0.7/examples/hs-2004-27-a-large_web.jpg   |  Bin 34489 -> 0 bytes
 .../jquery/plugins/flot-0.7/examples/image.html    |   45 -
 .../jquery/plugins/flot-0.7/examples/index.html    |   44 -
 .../flot-0.7/examples/interacting-axes.html        |   97 -
 .../plugins/flot-0.7/examples/interacting.html     |   93 -
 .../jquery/plugins/flot-0.7/examples/layout.css    |    6 -
 .../plugins/flot-0.7/examples/multiple-axes.html   |   60 -
 .../jquery/plugins/flot-0.7/examples/navigate.html |  118 -
 .../plugins/flot-0.7/examples/percentiles.html     |   57 -
 .../lib/jquery/plugins/flot-0.7/examples/pie.html  |  756 --
 .../jquery/plugins/flot-0.7/examples/realtime.html |   83 -
 .../jquery/plugins/flot-0.7/examples/resize.html   |   61 -
 .../plugins/flot-0.7/examples/selection.html       |  114 -
 .../plugins/flot-0.7/examples/setting-options.html |   61 -
 .../jquery/plugins/flot-0.7/examples/stacking.html |   77 -
 .../jquery/plugins/flot-0.7/examples/symbols.html  |   49 -
 .../plugins/flot-0.7/examples/thresholding.html    |   54 -
 .../lib/jquery/plugins/flot-0.7/examples/time.html |   71 -
 .../jquery/plugins/flot-0.7/examples/tracking.html |   95 -
 .../plugins/flot-0.7/examples/turning-series.html  |   98 -
 .../jquery/plugins/flot-0.7/examples/visitors.html |   90 -
 .../jquery/plugins/flot-0.7/examples/zooming.html  |   98 -
 .../lib/jquery/plugins/flot-0.7/excanvas.js        | 1427 ---
 .../lib/jquery/plugins/flot-0.7/excanvas.min.js    |    1 -
 .../jquery/plugins/flot-0.7/jquery.colorhelpers.js |  179 -
 .../plugins/flot-0.7/jquery.colorhelpers.min.js    |    1 -
 .../plugins/flot-0.7/jquery.flot.crosshair.js      |  167 -
 .../plugins/flot-0.7/jquery.flot.crosshair.min.js  |    1 -
 .../plugins/flot-0.7/jquery.flot.fillbetween.js    |  183 -
 .../flot-0.7/jquery.flot.fillbetween.min.js        |    1 -
 .../jquery/plugins/flot-0.7/jquery.flot.image.js   |  238 -
 .../plugins/flot-0.7/jquery.flot.image.min.js      |    1 -
 .../lib/jquery/plugins/flot-0.7/jquery.flot.js     | 2599 -----
 .../lib/jquery/plugins/flot-0.7/jquery.flot.min.js |    6 -
 .../plugins/flot-0.7/jquery.flot.navigate.js       |  336 -
 .../plugins/flot-0.7/jquery.flot.navigate.min.js   |    1 -
 .../lib/jquery/plugins/flot-0.7/jquery.flot.pie.js |  750 --
 .../jquery/plugins/flot-0.7/jquery.flot.pie.min.js |    1 -
 .../jquery/plugins/flot-0.7/jquery.flot.resize.js  |   60 -
 .../plugins/flot-0.7/jquery.flot.resize.min.js     |    1 -
 .../plugins/flot-0.7/jquery.flot.selection.js      |  344 -
 .../plugins/flot-0.7/jquery.flot.selection.min.js  |    1 -
 .../jquery/plugins/flot-0.7/jquery.flot.stack.js   |  184 -
 .../plugins/flot-0.7/jquery.flot.stack.min.js      |    1 -
 .../jquery/plugins/flot-0.7/jquery.flot.symbol.js  |   70 -
 .../plugins/flot-0.7/jquery.flot.symbol.min.js     |    1 -
 .../plugins/flot-0.7/jquery.flot.threshold.js      |  103 -
 .../plugins/flot-0.7/jquery.flot.threshold.min.js  |    1 -
 .../lib/jquery/plugins/jquery-svg/blank.svg        |    3 -
 .../lib/jquery/plugins/jquery-svg/custom_test.js   |   67 -
 .../lib/jquery/plugins/jquery-svg/jquery.svg.css   |    9 -
 .../lib/jquery/plugins/jquery-svg/jquery.svg.js    | 1101 --
 .../jquery/plugins/jquery-svg/jquery.svg.min.js    |    7 -
 .../jquery/plugins/jquery-svg/jquery.svg.pack.js   |    7 -
 .../jquery/plugins/jquery-svg/jquery.svgfilter.js  |  396 -
 .../plugins/jquery-svg/jquery.svgfilter.min.js     |    7 -
 .../plugins/jquery-svg/jquery.svgfilter.pack.js    |    7 -
 .../jquery/plugins/jquery-svg/jquery.svggraph.js   | 1337 ---
 .../plugins/jquery-svg/jquery.svggraph.min.js      |    7 -
 .../plugins/jquery-svg/jquery.svggraph.pack.js     |    7 -
 .../lib/jquery/plugins/jquery-svg/lion.svg         |  161 -
 .../lib/jquery/plugins/jquery-svg/test.js          |  714 --
 .../lib/jquery/plugins/jquery.ajaxfileupload.js    |  205 -
 .../lib/jquery/plugins/jquery.ba-bbq.js            | 1137 --
 .../lib/jquery/plugins/jquery.ba-resize.js         |  246 -
 .../lib/jquery/plugins/jquery.cookie.js            |   92 -
 .../lib/jquery/plugins/jquery.easing.1.3.js        |  205 -
 .../lib/jquery/plugins/jquery.fancyqueries.js      |  106 -
 .../javascripts/lib/jquery/plugins/jquery.flash.js |  288 -
 .../javascripts/lib/jquery/plugins/jquery.form.js  |  964 --
 .../lib/jquery/plugins/jquery.hoverIntent.js       |  106 -
 .../jquery/plugins/jquery.jeditable.ajaxupload.js  |   62 -
 .../lib/jquery/plugins/jquery.jeditable.js         |  556 -
 .../lib/jquery/plugins/jquery.jnotify.js           |  210 -
 .../lib/jquery/plugins/jquery.jscrollpane.js       | 1390 ---
 .../lib/jquery/plugins/jquery.jscrollpane.min.js   |   11 -
 .../lib/jquery/plugins/jquery.linkHover.js         |   89 -
 .../lib/jquery/plugins/jquery.loadmask.min.js      |   10 -
 .../lib/jquery/plugins/jquery.mousewheel.js        |   78 -
 .../javascripts/lib/jquery/plugins/jquery.pack.js  |   11 -
 .../lib/jquery/plugins/jquery.periodicalupdater.js |  175 -
 .../lib/jquery/plugins/jquery.sortElements.js      |   75 -
 .../lib/jquery/plugins/jquery.sparkline.min.js     |   94 -
 .../lib/jquery/plugins/jquery.text-overflow.js     |   60 -
 .../lib/jquery/plugins/jquery.timepickr.js         |  214 -
 .../lib/jquery/plugins/jquery.timers.js            |  142 -
 .../javascripts/lib/jquery/plugins/jquery.tipsy.js |  331 -
 .../lib/jquery/plugins/jquery.treeTable.js         |  226 -
 .../lib/jquery/plugins/jquery.ui.multiselect.js    |  338 -
 .../lib/jquery/plugins/jquery.ui.totop.js          |   58 -
 .../lib/jquery/plugins/jquery.uitablefilter.js     |   95 -
 .../javascripts/lib/jquery/plugins/ui.spinner.js   |  683 --
 src/lib/converge-ui/javascripts/lib/rails.js       |  331 -
 src/lib/converge-ui/javascripts/lib/underscore.js  |  999 --
 src/lib/converge-ui/rails/helpers/layout_helper.rb |   35 -
 .../converge-ui/rails/layouts/_header_layout.haml  |    7 -
 .../converge-ui/rails/layouts/shell_layout.haml    |   36 -
 src/lib/converge-ui/rel-eng/packages/.readme       |    3 -
 src/lib/converge-ui/rel-eng/packages/converge-ui   |    1 -
 src/lib/converge-ui/rel-eng/tito.props             |    5 -
 src/lib/converge-ui/stylesheets/fonts.scss         |   65 -
 src/lib/converge-ui/stylesheets/footer.scss        |   39 -
 src/lib/converge-ui/stylesheets/forms.scss         |  112 -
 src/lib/converge-ui/stylesheets/header.scss        |  218 -
 src/lib/converge-ui/stylesheets/helpers.scss       |   34 -
 src/lib/converge-ui/stylesheets/media.scss         |   46 -
 src/lib/converge-ui/stylesheets/shell.scss         |   70 -
 538 files changed, 0 insertions(+), 102267 deletions(-)
 delete mode 100644 src/lib/converge-ui/LICENSE
 delete mode 100644 src/lib/converge-ui/README
 delete mode 100644 src/lib/converge-ui/converge-ui.spec
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_8f8f8f_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_97baed_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_cd0a0a_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/jquery-ui-1.8.11.custom.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/AUTHORS.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/GPL-LICENSE.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/MIT-LICENSE.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/collapsible.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/custom-icons.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/fillspace.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/hoverintent.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/mouseover.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/no-auto-height.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/sortable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/categories.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/combobox.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/custom-data.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/folding.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jquery_32x32.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jqueryui_32x32.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/transparent_1x1.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/london.xml
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/maxheight.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple-remote.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-jsonp.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-with-cache.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/search.php
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/xml.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/checkbox.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/icons.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/radio.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/splitbutton.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/toolbar.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/alt-field.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/animation.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/buttonbar.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-formats.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-range.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/dropdown-month-year.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/icon-trigger.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/images/calendar.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/inline.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/localization.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/min-max.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/multiple-calendars.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/other-months.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/show-week.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/demos.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/animated.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-confirmation.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-form.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-message.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/constrain-movement.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/cursor-style.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/delay-start.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/events.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/handle.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/revert.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/scroll.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/snap-to.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/sortable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/visual-feedback.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/accepted-elements.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2_min.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3_min.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4_min.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras_min.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/photo-manager.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/propagation.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/revert.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/shopping-cart.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/visual-feedback.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/easing.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/calendar.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on-tile.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-closed.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-open.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/icon-docs-info.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/pbar-ani.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/cycler.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/earth.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/flight.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/rocket.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/animated.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/images/pbar-ani.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/resize.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/animate.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/aspect-ratio.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/constrain-area.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/delay-start.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/helper.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/max-min.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/snap-to-grid.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/synchronous-resize.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/textarea.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/visual-feedback.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/display-grid.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/serialize.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/colorpicker.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/hotelrooms.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/multiple-vertical.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range-vertical.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemax.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemin.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/side-scroll.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/slider-vertical.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/steps.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/tabs.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists-through-tabs.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/delay-start.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/display-grid.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/empty-lists.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/items.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/placeholder.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/portlets.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content1.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content2.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content3-slow.php
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content4-broken.php
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/bottom.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/collapsible.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/cookie.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/manipulation.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/mouseover.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/sortable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/vertical.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/default.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/accordion.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/addClass.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/animate.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/autocomplete.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/button.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/datepicker.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/dialog.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/draggable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/droppable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/effect.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/hide.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/position.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/progressbar.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/removeClass.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/resizable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/selectable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/show.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/slider.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/sortable.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/switchClass.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/tabs.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggle.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggleClass.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.bgiframe-2.1.2.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.cookie.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.metadata.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/jquery-1.5.1.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_75_ffffff_40x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_65_ffffff_1x400.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_dadada_1x400.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_222222_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_2e83ff_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_454545_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_888888_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_cd0a0a_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.accordion.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.all.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.autocomplete.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.base.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.button.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.core.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.datepicker.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.dialog.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.progressbar.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.resizable.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.selectable.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.slider.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.tabs.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.theme.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_8f8f8f_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_97baed_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_cd0a0a_256x240.png
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery-ui-1.8.11.custom.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.accordion.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.all.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.autocomplete.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.base.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.button.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.core.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.datepicker.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.dialog.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.progressbar.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.resizable.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.selectable.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.slider.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.tabs.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.theme.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery-ui-i18n.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-af.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-az.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bg.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bs.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ca.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-cs.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-da.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-de.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-el.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eo.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-es.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-et.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eu.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fa.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fi.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fo.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-he.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hr.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hy.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-id.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-is.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-it.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ja.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ko.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lt.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lv.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ms.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-nl.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-no.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ro.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sl.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sq.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr-SR.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sv.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ta.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-th.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tr.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-uk.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-vi.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-CN.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-HK.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-TW.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery-ui-1.8.11.custom.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.blind.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.bounce.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.clip.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.core.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.drop.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.explode.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fade.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fold.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.highlight.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.pulsate.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.scale.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.shake.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.slide.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.transfer.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.accordion.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.autocomplete.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.button.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.core.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.datepicker.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.dialog.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.draggable.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.droppable.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.mouse.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.position.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.progressbar.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.resizable.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.selectable.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.slider.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.sortable.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.tabs.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.widget.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.blind.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.bounce.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.clip.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.core.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.drop.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.explode.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fade.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fold.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.highlight.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.pulsate.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.scale.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.shake.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.slide.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.transfer.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.accordion.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.autocomplete.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.button.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.core.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.datepicker.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.dialog.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.draggable.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.droppable.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.mouse.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.position.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.progressbar.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.resizable.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.selectable.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.slider.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.sortable.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.tabs.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.widget.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/version.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-1.5.1.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-ui-1.8.11.custom.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/API.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/FAQ.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/LICENSE.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/Makefile
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/NEWS.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/PLUGINS.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/README.txt
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/ajax.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/annotating.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-down.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-left.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-right.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-up.gif
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/basic.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-1.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-2.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-3.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-4.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-5.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-japan-gdp-growth.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-usa-gdp-growth.json
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/graph-types.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/hs-2004-27-a-large_web.jpg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/image.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/index.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting-axes.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/layout.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/multiple-axes.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/navigate.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/percentiles.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/pie.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/realtime.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/resize.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/selection.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/setting-options.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/stacking.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/symbols.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/thresholding.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/time.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/tracking.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/turning-series.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/visitors.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/zooming.html
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/blank.svg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/custom_test.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.css
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.pack.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.pack.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.pack.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/lion.svg
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/test.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ajaxfileupload.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-bbq.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-resize.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.cookie.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.easing.1.3.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.fancyqueries.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.flash.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.form.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.hoverIntent.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.ajaxupload.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jnotify.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.linkHover.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.loadmask.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.mousewheel.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.pack.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.periodicalupdater.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sortElements.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sparkline.min.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.text-overflow.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timepickr.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timers.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.tipsy.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.treeTable.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.multiselect.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.totop.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.uitablefilter.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/jquery/plugins/ui.spinner.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/rails.js
 delete mode 100644 src/lib/converge-ui/javascripts/lib/underscore.js
 delete mode 100644 src/lib/converge-ui/rails/helpers/layout_helper.rb
 delete mode 100644 src/lib/converge-ui/rails/layouts/_header_layout.haml
 delete mode 100644 src/lib/converge-ui/rails/layouts/shell_layout.haml
 delete mode 100644 src/lib/converge-ui/rel-eng/packages/.readme
 delete mode 100644 src/lib/converge-ui/rel-eng/packages/converge-ui
 delete mode 100644 src/lib/converge-ui/rel-eng/tito.props
 delete mode 100644 src/lib/converge-ui/stylesheets/fonts.scss
 delete mode 100644 src/lib/converge-ui/stylesheets/footer.scss
 delete mode 100644 src/lib/converge-ui/stylesheets/forms.scss
 delete mode 100644 src/lib/converge-ui/stylesheets/header.scss
 delete mode 100644 src/lib/converge-ui/stylesheets/helpers.scss
 delete mode 100644 src/lib/converge-ui/stylesheets/media.scss
 delete mode 100644 src/lib/converge-ui/stylesheets/mixins.scss
 delete mode 100644 src/lib/converge-ui/stylesheets/shell.scss

diff --git a/src/lib/converge-ui/LICENSE b/src/lib/converge-ui/LICENSE
deleted file mode 100644
index 08ddefd..0000000
--- a/src/lib/converge-ui/LICENSE
+++ /dev/null
@@ -1,340 +0,0 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
-
diff --git a/src/lib/converge-ui/README b/src/lib/converge-ui/README
deleted file mode 100644
index e69de29..0000000
diff --git a/src/lib/converge-ui/converge-ui.spec b/src/lib/converge-ui/converge-ui.spec
deleted file mode 100644
index 3be0622..0000000
--- a/src/lib/converge-ui/converge-ui.spec
+++ /dev/null
@@ -1,61 +0,0 @@
-# vim: sw=4:ts=4:et
-#
-# Copyright 2011 Red Hat, Inc.
-#
-# This software is licensed to you under the GNU General Public
-# License as published by the Free Software Foundation; either version
-# 2 of the License (GPLv2) or (at your option) any later version.
-# There is NO WARRANTY for this software, express or implied,
-# including the implied warranties of MERCHANTABILITY,
-# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
-# have received a copy of GPLv2 along with this software; if not, see
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
-
-
-%global homedir %{_datarootdir}/%{name}
-
-Name:          converge-ui
-Summary:       A collection of assets
-Group:         Applications/System
-License:       GPLv2
-URL:           http://www.katello.org
-Version:       0.2
-Release:       1%{?dist}
-Source0:       %{name}-%{version}.tar.gz
-BuildRoot:     %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-BuildArch:     noarch
-
-%description
-A common set of web assets.
-
-%prep
-%setup -q 
-
-%build
-
-%install
-rm -rf $RPM_BUILD_ROOT
-install -m0755 -d %{buildroot}%{homedir}
-install -m0755 -d %{buildroot}%{homedir}/javascripts/
-install -m0755 -d %{buildroot}%{homedir}/rails/
-install -m0755 -d %{buildroot}%{homedir}/stylesheets/
-
-cp -R javascripts/* %{buildroot}%{homedir}/javascripts/
-cp -R rails/* %{buildroot}%{homedir}/rails
-cp -R stylesheets/* %{buildroot}%{homedir}/stylesheets/
-
-%clean
-rm -rf $RPM_BUILD_ROOT
-
-%files 
-%defattr(755, root, root)
-%{homedir}
-%doc README LICENSE
-
-%changelog
-* Thu Mar 29 2012 Eric D Helms <ehelms@redhat.com> 0.2-1
-- new package built with tito
-
-* Wed Mar 28 2012 Eric D Helms <ehelms@redhat.com> 0.1-1
-- Changes to spec file. (ehelms@redhat.com)
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png
deleted file mode 100644
index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png
deleted file mode 100644
index ac8b229af950c29356abf64a6c4aa894575445f0..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png
deleted file mode 100644
index eef96a3ef29b556251e6c97c628cc5936fb4c6f6..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png
deleted file mode 100644
index 31503e6215c8ba914450dd173a0cad541f833d54..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png
deleted file mode 100644
index 045ddf5c9c0046ddd43a6b17de645d47cad3ff88..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png
deleted file mode 100644
index 40ac3b9c516ddfcbe622eb829c4da8c06e889efc..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png
deleted file mode 100644
index b1b2f9d983487c8257b9d79a33c0356b8ff456d6..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png
deleted file mode 100644
index 0e05810fffe0b6b8ac320e55d1eb4ba259b89d92..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_8f8f8f_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_8f8f8f_256x240.png
deleted file mode 100644
index a47d6131a9cd13b726c80618e133cd5a5a15e1f0..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_97baed_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_97baed_256x240.png
deleted file mode 100644
index 04511769917277d442ae9cdd5f92bd3bed72cad4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_cd0a0a_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_cd0a0a_256x240.png
deleted file mode 100644
index 2ab019b73ec11a485fa09378f3a0e155194f6a5d..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/jquery-ui-1.8.11.custom.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/jquery-ui-1.8.11.custom.css
deleted file mode 100644
index 1fd1788..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/css/custom-theme/jquery-ui-1.8.11.custom.css
+++ /dev/null
@@ -1,573 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.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; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Liberation%20Sans&fwDefault=normal&fsDefault=1.1em&cornerRadius=2px&bgColorHeader=e0e0e0&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=80&borderColorHeader=aaaaaa&fcHeader=000&iconColorHeader=8f8f8f&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=b5b5b5&fcContent=222222&iconColorContent=8f8f8f&bgColorDefault=e6e6e6&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=75&borderColorDefault=e3e3e3&fcDefault=888888&iconColorDefault=8f8f8f&bgColorHover=dadada&bgTextureHover=04_highlight_hard.png&bgImgOpacityHover=75&borderColorHover=b5b5b5&fcHover=212121&iconColorHover=8f8f8f&bgColorActive=ffffff&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=65&borderColorActive=b5b5b5&fcActive=212121&iconColorActive=8f8f8f&bgColorHighlight=ffffff&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=95&borderColorHighlight=b5b5b5&fcHighlight=000000&iconColorHighlight=97baed&bgColorError=fef1ec&bgTextureError=05_inset_soft.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
-----------------------------------*/
-.ui-widget { font-family: Liberation Sans; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Liberation Sans; font-size: 1em; }
-.ui-widget-content { border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #e0e0e0 url(images/ui-bg_highlight-soft_80_e0e0e0_1x100.png) 50% 50% repeat-x; color: #000; font-weight: bold; }
-.ui-widget-header a { color: #000; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #e3e3e3; background: #e6e6e6 url(images/ui-bg_highlight-hard_75_e6e6e6_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #888888; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #888888; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #b5b5b5; background: #dadada url(images/ui-bg_highlight-hard_75_dadada_1x100.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, .ui-widget-header .ui-state-active { border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_inset-hard_65_ffffff_1x100.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, .ui-widget-header .ui-state-highlight  {border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_highlight-hard_95_ffffff_1x100.png) 50% top repeat-x; color: #000000; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #000000; }
-.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_inset-soft_95_fef1ec_1x100.png) 50% bottom 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
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_97baed_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; }
-.ui-corner-tr { -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
-.ui-corner-br { -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-top { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-right {  -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-left { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
-.ui-corner-all { -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; }
-
-/* 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; }/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.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; }
-/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.11
- *
- * 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;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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 */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 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-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.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 { 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 .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; }
-/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.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-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; }
-.ui-progressbar .ui-progressbar-value { height:100%; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/AUTHORS.txt b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/AUTHORS.txt
deleted file mode 100644
index b216865..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/AUTHORS.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-﻿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://github.com/jquery/jquery-ui
-
-Brandon Aaron
-Paul Bakaus (paulbakaus.com)
-David Bolter
-Rich Caloggero
-Chi Cheng (cloudream@gmail.com)
-Colin Clark (http://colin.atrc.utoronto.ca/)
-Michelle D'Souza
-Aaron Eisenberger (aaronchi@gmail.com)
-Ariel Flesler
-Bohdan Ganicky
-Scott González
-Marc Grabanski (m@marcgrabanski.com)
-Klaus Hartl (stilbuero.de)
-Scott Jehl
-Cody Lindley
-Eduardo Lundgren (eduardolundgren@gmail.com)
-Todd Parker
-John Resig
-Patty Toland
-Ca-Phun Ung (yelotofu.com)
-Keith Wood (kbwood@virginbroadband.com.au)
-Maggie Costello Wachs
-Richard D. Worth (rdworth.org)
-Jörn Zaefferer (bassistance.de)
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/GPL-LICENSE.txt b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/GPL-LICENSE.txt
deleted file mode 100644
index 11dddd0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/GPL-LICENSE.txt
+++ /dev/null
@@ -1,278 +0,0 @@
-        GNU GENERAL PUBLIC LICENSE
-           Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-          Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-        GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-          NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/MIT-LICENSE.txt b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/MIT-LICENSE.txt
deleted file mode 100644
index be22680..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/MIT-LICENSE.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-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
-contribution history, see the revision history and logs, available
-at http://jquery-ui.googlecode.com/svn/
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/collapsible.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/collapsible.html
deleted file mode 100644
index f77fdc0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/collapsible.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Accordion - Collapse content</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({
-			collapsible: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="accordion">
-	<h3><a href="#">Section 1</a></h3>
-	<div>
-		<p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p>
-	</div>
-	<h3><a href="#">Section 2</a></h3>
-	<div>
-		<p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p>
-	</div>
-	<h3><a href="#">Section 3</a></h3>
-	<div>
-		<p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p>
-		<ul>
-			<li>List item one</li>
-			<li>List item two</li>
-			<li>List item three</li>
-		</ul>
-	</div>
-	<h3><a href="#">Section 4</a></h3>
-	<div>
-		<p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/custom-icons.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/custom-icons.html
deleted file mode 100644
index 390b5dd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/custom-icons.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Accordion - Customize 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.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({
-			icons: icons
-		});
-		$( "#toggle" ).button().toggle(function() {
-			$( "#accordion" ).accordion( "option", "icons", false );
-		}, function() {
-			$( "#accordion" ).accordion( "option", "icons", icons );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="accordion">
-	<h3><a href="#">Section 1</a></h3>
-	<div>
-		<p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p>
-	</div>
-	<h3><a href="#">Section 2</a></h3>
-	<div>
-		<p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p>
-	</div>
-	<h3><a href="#">Section 3</a></h3>
-	<div>
-		<p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p>
-		<ul>
-			<li>List item one</li>
-			<li>List item two</li>
-			<li>List item three</li>
-		</ul>
-	</div>
-	<h3><a href="#">Section 4</a></h3>
-	<div>
-		<p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p>
-	</div>
-</div>
-
-<button id="toggle">Toggle icons</button>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/default.html
deleted file mode 100644
index e24a586..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/default.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Accordion - 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.accordion.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#accordion" ).accordion();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="accordion">
-	<h3><a href="#">Section 1</a></h3>
-	<div>
-		<p>
-		Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
-		ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
-		amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
-		odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
-		</p>
-	</div>
-	<h3><a href="#">Section 2</a></h3>
-	<div>
-		<p>
-		Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
-		purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
-		velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
-		suscipit faucibus urna.
-		</p>
-	</div>
-	<h3><a href="#">Section 3</a></h3>
-	<div>
-		<p>
-		Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
-		Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
-		ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
-		lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
-		</p>
-		<ul>
-			<li>List item one</li>
-			<li>List item two</li>
-			<li>List item three</li>
-		</ul>
-	</div>
-	<h3><a href="#">Section 4</a></h3>
-	<div>
-		<p>
-		Cras dictum. Pellentesque habitant morbi tristique senectus et netus
-		et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
-		faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
-		mauris vel est.
-		</p>
-		<p>
-		Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
-		Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
-		inceptos himenaeos.
-		</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-<div class="demo-description">
-<p>
-Click headers to expand/collapse content that is broken into logical sections, much like tabs.
-Optionally, toggle sections open/closed on mouseover.
-</p>
-<p>
-The underlying HTML markup is a series of headers (H3 tags) and content divs so the content is
-usable without JavaScript.
-</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/fillspace.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/fillspace.html
deleted file mode 100644
index ffbf829..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/fillspace.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Accordion - Fill space</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.resizable.js"></script>
-	<script src="../../ui/jquery.ui.accordion.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#accordion" ).accordion({
-			fillSpace: true
-		});
-	});
-	$(function() {
-		$( "#accordionResizer" ).resizable({
-			minHeight: 140,
-			resize: function() {
-				$( "#accordion" ).accordion( "resize" );
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<h3 class="docs">Resize the outer container:</h3>
- 
-<div id="accordionResizer" style="padding:10px; width:350px; height:220px;" class="ui-widget-content">
-
-<div id="accordion">
-	<h3><a href="#">Section 1</a></h3>
-	<div>
-		<p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p>
-	</div>
-	<h3><a href="#">Section 2</a></h3>
-	<div>
-		<p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p>
-	</div>
-	<h3><a href="#">Section 3</a></h3>
-	<div>
-		<p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p>
-		<ul>
-			<li>List item one</li>
-			<li>List item two</li>
-			<li>List item three</li>
-		</ul>
-	</div>
-	<h3><a href="#">Section 4</a></h3>
-	<div>
-		<p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p>
-	</div>
-</div>
-
-<span class="ui-icon ui-icon-grip-dotted-horizontal" style="margin:2px auto;"></span>
-</div><!-- End accordionResizer -->
-
-<div style="margin-top:7px; padding:10px; width:350px; height:50px;" class="ui-widget-content">I'm another panel</div>
-
-</div><!-- End demo -->
-
-
-
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/hoverintent.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/hoverintent.html
deleted file mode 100644
index 570be75..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/hoverintent.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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({
-			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>
-
-<div class="demo">
-
-<div id="accordion">
-	<h3><a href="#">Section 1</a></h3>
-	<div>
-		<p>
-		Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
-		ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
-		amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
-		odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
-		</p>
-	</div>
-	<h3><a href="#">Section 2</a></h3>
-	<div>
-		<p>
-		Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
-		purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
-		velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
-		suscipit faucibus urna.
-		</p>
-	</div>
-	<h3><a href="#">Section 3</a></h3>
-	<div>
-		<p>
-		Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
-		Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
-		ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
-		lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
-		</p>
-		<ul>
-			<li>List item one</li>
-			<li>List item two</li>
-			<li>List item three</li>
-		</ul>
-	</div>
-	<h3><a href="#">Section 4</a></h3>
-	<div>
-		<p>
-		Cras dictum. Pellentesque habitant morbi tristique senectus et netus
-		et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
-		faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
-		mauris vel est.
-		</p>
-		<p>
-		Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
-		Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
-		inceptos himenaeos.
-		</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-<div class="demo-description">
-<p>
-Click headers to expand/collapse content that is broken into logical sections, much like tabs.
-Optionally, toggle sections open/closed on mouseover.
-</p>
-<p>
-The underlying HTML markup is a series of headers (H3 tags) and content divs so the content is
-usable without JavaScript.
-</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/index.html
deleted file mode 100644
index d107dd8..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Accordion Demos</title>
-	<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="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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/mouseover.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/mouseover.html
deleted file mode 100644
index d2cc7db..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/mouseover.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Accordion - Open on mouseover</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({
-			event: "mouseover"
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="accordion">
-	<h3><a href="#">Section 1</a></h3>
-	<div>
-		<p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p>
-	</div>
-	<h3><a href="#">Section 2</a></h3>
-	<div>
-		<p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p>
-	</div>
-	<h3><a href="#">Section 3</a></h3>
-	<div>
-		<p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p>
-		<ul>
-			<li>List item one</li>
-			<li>List item two</li>
-			<li>List item three</li>
-		</ul>
-	</div>
-	<h3><a href="#">Section 4</a></h3>
-	<div>
-		<p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p>
-	</div>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/no-auto-height.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/no-auto-height.html
deleted file mode 100644
index 2048692..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/no-auto-height.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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({
-			autoHeight: false,
-			navigation: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="accordion">
-	<h3><a href="#section1">Section 1</a></h3>
-	<div>
-		<p>Mauris mauris ante, blandit et, ultrices a, susceros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p>
-	</div>
-	<h3><a href="#section2">Section 2</a></h3>
-	<div>
-		<p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p>
-	</div>
-	<h3><a href="#section3">Section 3</a></h3>
-	<div>
-		<p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p>
-		<ul>
-			<li>List item</li>
-			<li>List item</li>
-			<li>List item</li>
-			<li>List item</li>
-			<li>List item</li>
-			<li>List item</li>
-			<li>List item</li>
-		</ul>
-		<a href="#othercontent">Link to other content</a>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/sortable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/sortable.html
deleted file mode 100644
index 1bfce6f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/sortable.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Accordion - Sortable</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.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 ) {
-				event.stopImmediatePropagation();
-				event.preventDefault();
-				stop = false;
-			}
-		});
-		$( "#accordion" )
-			.accordion({
-				header: "> div > h3"
-			})
-			.sortable({
-				axis: "y",
-				handle: "h3",
-				stop: function() {
-					stop = true;
-				}
-			});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="accordion">
-	<div>
-		<h3><a href="#">Section 1</a></h3>
-		<div>
-			<p>Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.</p>
-		</div>
-	</div>
-	<div>
-		<h3><a href="#">Section 2</a></h3>
-		<div>
-			<p>Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In suscipit faucibus urna. </p>
-		</div>
-	</div>
-	<div>
-		<h3><a href="#">Section 3</a></h3>
-		<div>
-			<p>Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis. Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui. </p>
-			<ul>
-				<li>List item one</li>
-				<li>List item two</li>
-				<li>List item three</li>
-			</ul>
-		</div>
-	</div>
-	<div>
-		<h3><a href="#">Section 4</a></h3>
-		<div>
-			<p>Cras dictum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia mauris vel est. </p><p>Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. </p>
-		</div>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>Drag the header to re-order panels.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/default.html
deleted file mode 100644
index 73502d6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/default.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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; }
-		.newClass { text-indent: 40px; letter-spacing: .4em; width: 410px; height: 100px; padding: 30px; margin: 10px; font-size: 1.6em; }
-	</style>
-	<script>
-	$(function() {
-		$( "#button" ).click(function() {
-			$( "#effect" ).addClass( "newClass", 1000, callback );
-			return false;
-		});
-
-		function callback() {
-			setTimeout(function() {
-				$( "#effect" ).removeClass( "newClass" );
-			}, 1500 );
-		}
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="toggler">
-	<div id="effect" class=" ui-corner-all">
-			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede.
-	</div>
-</div>
-
-<a href="#" id="button" class="ui-state-default ui-corner-all">Run Effect</a>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/default.html
deleted file mode 100644
index 284f0fe..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/default.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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>
-	$(function() {
-		$( "#button" ).toggle(
-			function() {
-				$( "#effect" ).animate({
-					backgroundColor: "#aa0000",
-					color: "#fff",
-					width: 500
-				}, 1000 );
-			},
-			function() {
-				$( "#effect" ).animate({
-					backgroundColor: "#fff",
-					color: "#000",
-					width: 240
-				}, 1000 );
-			}
-		);
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="toggler">
-	<div id="effect" class="ui-widget-content ui-corner-all">
-		<h3 class="ui-widget-header ui-corner-all">Animate</h3>
-		<p>
-			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
-		</p>
-	</div>
-</div>
-
-<a href="#" id="button" class="ui-state-default ui-corner-all">Toggle Effect</a>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>Click the button above to preview the effect.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/animate/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/categories.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/categories.html
deleted file mode 100644
index 28f3ef1..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/categories.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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;
-	}
-	</style>
-	<script>
-	$.widget( "custom.catcomplete", $.ui.autocomplete, {
-		_renderMenu: function( ul, items ) {
-			var self = this,
-				currentCategory = "";
-			$.each( items, function( index, item ) {
-				if ( item.category != currentCategory ) {
-					ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
-					currentCategory = item.category;
-				}
-				self._renderItem( ul, item );
-			});
-		}
-	});
-	</script>
-	<script>
-	$(function() {
-		var data = [
-			{ label: "anders", category: "" },
-			{ label: "andreas", category: "" },
-			{ label: "antal", category: "" },
-			{ label: "annhhx10", category: "Products" },
-			{ label: "annk K12", category: "Products" },
-			{ label: "annttop C13", category: "Products" },
-			{ label: "anders andersson", category: "People" },
-			{ label: "andreas andersson", category: "People" },
-			{ label: "andreas johnson", category: "People" }
-		];
-		
-		$( "#search" ).catcomplete({
-			delay: 0,
-			source: data
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	<label for="search">Search: </label>
-	<input id="search" />
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>A categorized search result. Try typing "a" or "n".</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/combobox.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/combobox.html
deleted file mode 100644
index e4f7ca0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/combobox.html
+++ /dev/null
@@ -1,171 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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,
-					select = this.element.hide(),
-					selected = select.children( ":selected" ),
-					value = selected.val() ? selected.text() : "";
-				var input = this.input = $( "<input>" )
-					.insertAfter( select )
-					.val( value )
-					.autocomplete({
-						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 {
-										label: text.replace(
-											new RegExp(
-												"(?![^&;]+;)(?!<[^<>]*)(" +
-												$.ui.autocomplete.escapeRegex(request.term) +
-												")(?![^<>]*>)(?![^&;]+;)", "gi"
-											), "<strong>$1</strong>" ),
-										value: text,
-										option: this
-									};
-							}) );
-						},
-						select: function( event, ui ) {
-							ui.item.option.selected = true;
-							self._trigger( "selected", event, {
-								item: ui.item.option
-							});
-						},
-						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'>&nbsp;</button>" )
-					.attr( "tabIndex", -1 )
-					.attr( "title", "Show All Items" )
-					.insertAfter( input )
-					.button({
-						icons: {
-							primary: "ui-icon-triangle-1-s"
-						},
-						text: false
-					})
-					.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;
-						}
-
-						// 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 );
-
-	$(function() {
-		$( "#combobox" ).combobox();
-		$( "#toggle" ).click(function() {
-			$( "#combobox" ).toggle();
-		});
-	});
-	</script>
-</head>
-<body>
-	
-<div class="demo">
-
-<div class="ui-widget">
-	<label>Your preferred programming language: </label>
-	<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>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/custom-data.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/custom-data.html
deleted file mode 100644
index d619a4f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/custom-data.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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;
-		margin-bottom: 1em;
-	}
-	#project-icon {
-		float: left;
-		height: 32px;
-		width: 32px;
-	}
-	#project-description {
-		margin: 0;
-		padding: 0;
-	}
-	</style>
-	<script>
-	$(function() {
-		var projects = [
-			{
-				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: "sizzlejs",
-				label: "Sizzle JS",
-				desc: "a pure-JavaScript CSS selector engine",
-				icon: "sizzlejs_32x32.png"
-			}
-		];
-
-		$( "#project" ).autocomplete({
-			minLength: 0,
-			source: projects,
-			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 );
-
-				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>
-<body>
-
-<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"/>
-	<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>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/default.html
deleted file mode 100644
index 16ec893..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/default.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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 = [
-			"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>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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/folding.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/folding.html
deleted file mode 100644
index 688db33..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/folding.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jquery_32x32.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jquery_32x32.png
deleted file mode 100644
index 9312f02d5d396d168510e17e1faedf864f2859b0..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jqueryui_32x32.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jqueryui_32x32.png
deleted file mode 100644
index e003d16c140584603cfc97a1f151faa99a0d62f7..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png
deleted file mode 100644
index 4ce0704d1858987f2801f9a302107be004c5eb15..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/transparent_1x1.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/transparent_1x1.png
deleted file mode 100644
index c2da5b889d84409a7937b02debf9d2e9698b1363..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif
deleted file mode 100644
index 084ecb879b9900663322beff5d735b8d225022b4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/index.html
deleted file mode 100644
index 77f8019..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Autocomplete Demos</title>
-	<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="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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/london.xml b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/london.xml
deleted file mode 100644
index 2628549..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/london.xml
+++ /dev/null
@@ -1,114 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<geonames style="MEDIUM">
-<totalResultsCount>6987</totalResultsCount>
-<geoname>
-<name>London</name>
-<lat>51.5084152563931</lat>
-<lng>-0.125532746315002</lng>
-<geonameId>2643743</geonameId>
-<countryCode>GB</countryCode>
-<countryName>United Kingdom</countryName>
-
-<fcl>P</fcl>
-<fcode>PPLC</fcode>
-</geoname>
-<geoname>
-<name>London</name>
-<lat>42.983389283</lat>
-<lng>-81.233042387</lng>
-<geonameId>6058560</geonameId>
-<countryCode>CA</countryCode>
-<countryName>Canada</countryName>
-
-<fcl>P</fcl>
-<fcode>PPL</fcode>
-</geoname>
-<geoname>
-<name>East London</name>
-<lat>-33.0152850934643</lat>
-<lng>27.9116249084473</lng>
-<geonameId>1006984</geonameId>
-<countryCode>ZA</countryCode>
-<countryName>South Africa</countryName>
-
-<fcl>P</fcl>
-<fcode>PPL</fcode>
-</geoname>
-<geoname>
-<name>City</name>
-<lat>51.5133363996235</lat>
-<lng>-0.0890064239501953</lng>
-<geonameId>2643744</geonameId>
-<countryCode>GB</countryCode>
-<countryName>United Kingdom</countryName>
-
-<fcl>A</fcl>
-<fcode>ADM2</fcode>
-</geoname>
-<geoname>
-<name>London</name>
-<lat>37.1289771</lat>
-<lng>-84.0832646</lng>
-<geonameId>4298960</geonameId>
-<countryCode>US</countryCode>
-<countryName>United States</countryName>
-
-<fcl>P</fcl>
-<fcode>PPL</fcode>
-</geoname>
-<geoname>
-<name>The Tower of London</name>
-<lat>51.5082349601834</lat>
-<lng>-0.0763034820556641</lng>
-<geonameId>6286786</geonameId>
-<countryCode>GB</countryCode>
-<countryName>United Kingdom</countryName>
-
-<fcl>S</fcl>
-<fcode>CSTL</fcode>
-</geoname>
-<geoname>
-<name>London Reefs</name>
-<lat>8.85</lat>
-<lng>112.5333333</lng>
-<geonameId>1879967</geonameId>
-<countryCode>  </countryCode>
-<countryName>  </countryName>
-
-<fcl>U</fcl>
-<fcode>RFSU</fcode>
-</geoname>
-<geoname>
-<name>Greater London</name>
-<lat>51.5</lat>
-<lng>-0.1666667</lng>
-<geonameId>2648110</geonameId>
-<countryCode>GB</countryCode>
-<countryName>United Kingdom</countryName>
-
-<fcl>A</fcl>
-<fcode>ADM2</fcode>
-</geoname>
-<geoname>
-<name>London</name>
-<lat>46.1666667</lat>
-<lng>6.0166667</lng>
-<geonameId>2661811</geonameId>
-<countryCode>CH</countryCode>
-<countryName>Switzerland</countryName>
-
-<fcl>H</fcl>
-<fcode>STM</fcode>
-</geoname>
-<geoname>
-<name>London Borough of Islington</name>
-<lat>51.5333333</lat>
-<lng>-0.1333333</lng>
-<geonameId>3333156</geonameId>
-<countryCode>GB</countryCode>
-<countryName>United Kingdom</countryName>
-
-<fcl>A</fcl>
-<fcode>ADM2</fcode>
-</geoname>
-</geonames>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/maxheight.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/maxheight.html
deleted file mode 100644
index fc0b484..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/maxheight.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple-remote.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple-remote.html
deleted file mode 100644
index c82188a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple-remote.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple.html
deleted file mode 100644
index 954016d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-jsonp.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-jsonp.html
deleted file mode 100644
index 04b44fd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-jsonp.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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 );
-		}
-
-		$( "#city" ).autocomplete({
-			source: function( request, response ) {
-				$.ajax({
-					url: "http://ws.geonames.org/searchJSON",
-					dataType: "jsonp",
-					data: {
-						featureClass: "P",
-						style: "full",
-						maxRows: 12,
-						name_startsWith: request.term
-					},
-					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);
-			},
-			open: function() {
-				$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
-			},
-			close: function() {
-				$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="ui-widget">
-	<label for="city">Your city: </label>
-	<input id="city" />
-	Powered by <a href="http://geonames.org">geonames.org</a>
-</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 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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-with-cache.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-with-cache.html
deleted file mode 100644
index b1b7c8b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-with-cache.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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() {
-		var cache = {},
-			lastXhr;
-		$( "#birds" ).autocomplete({
-			minLength: 2,
-			source: function( request, response ) {
-				var term = request.term;
-				if ( term in cache ) {
-					response( cache[ term ] );
-					return;
-				}
-
-				lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) {
-					cache[ term ] = data;
-					if ( xhr === lastXhr ) {
-						response( data );
-					}
-				});
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="ui-widget">
-	<label for="birds">Birds: </label>
-	<input id="birds" />
-</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>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote.html
deleted file mode 100644
index 992a586..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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 );
-		}
-
-		$( "#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 );
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="ui-widget">
-	<label for="birds">Birds: </label>
-	<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>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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/search.php b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/search.php
deleted file mode 100644
index 8fa9d28..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/search.php
+++ /dev/null
@@ -1,640 +0,0 @@
-<?php
-
-$q = strtolower($_GET["term"]);
-if (!$q) return;
-$items = array(
-"Great Bittern"=>"Botaurus stellaris",
-"Little Grebe"=>"Tachybaptus ruficollis",
-"Black-necked Grebe"=>"Podiceps nigricollis",
-"Little Bittern"=>"Ixobrychus minutus",
-"Black-crowned Night Heron"=>"Nycticorax nycticorax",
-"Purple Heron"=>"Ardea purpurea",
-"White Stork"=>"Ciconia ciconia",
-"Spoonbill"=>"Platalea leucorodia",
-"Red-crested Pochard"=>"Netta rufina",
-"Common Eider"=>"Somateria mollissima",
-"Red Kite"=>"Milvus milvus",
-"Hen Harrier"=>"Circus cyaneus",
-"Montagu`s Harrier"=>"Circus pygargus",
-"Black Grouse"=>"Tetrao tetrix",
-"Grey Partridge"=>"Perdix perdix",
-"Spotted Crake"=>"Porzana porzana",
-"Corncrake"=>"Crex crex",
-"Common Crane"=>"Grus grus",
-"Avocet"=>"Recurvirostra avosetta",
-"Stone Curlew"=>"Burhinus oedicnemus",
-"Common Ringed Plover"=>"Charadrius hiaticula",
-"Kentish Plover"=>"Charadrius alexandrinus",
-"Ruff"=>"Philomachus pugnax",
-"Common Snipe"=>"Gallinago gallinago",
-"Black-tailed Godwit"=>"Limosa limosa",
-"Common Redshank"=>"Tringa totanus",
-"Sandwich Tern"=>"Sterna sandvicensis",
-"Common Tern"=>"Sterna hirundo",
-"Arctic Tern"=>"Sterna paradisaea",
-"Little Tern"=>"Sternula albifrons",
-"Black Tern"=>"Chlidonias niger",
-"Barn Owl"=>"Tyto alba",
-"Little Owl"=>"Athene noctua",
-"Short-eared Owl"=>"Asio flammeus",
-"European Nightjar"=>"Caprimulgus europaeus",
-"Common Kingfisher"=>"Alcedo atthis",
-"Eurasian Hoopoe"=>"Upupa epops",
-"Eurasian Wryneck"=>"Jynx torquilla",
-"European Green Woodpecker"=>"Picus viridis",
-"Crested Lark"=>"Galerida cristata",
-"White-headed Duck"=>"Oxyura leucocephala",
-"Pale-bellied Brent Goose"=>"Branta hrota",
-"Tawny Pipit"=>"Anthus campestris",
-"Whinchat"=>"Saxicola rubetra",
-"European Stonechat"=>"Saxicola rubicola",
-"Northern Wheatear"=>"Oenanthe oenanthe",
-"Savi`s Warbler"=>"Locustella luscinioides",
-"Sedge Warbler"=>"Acrocephalus schoenobaenus",
-"Great Reed Warbler"=>"Acrocephalus arundinaceus",
-"Bearded Reedling"=>"Panurus biarmicus",
-"Red-backed Shrike"=>"Lanius collurio",
-"Great Grey Shrike"=>"Lanius excubitor",
-"Woodchat Shrike"=>"Lanius senator",
-"Common Raven"=>"Corvus corax",
-"Yellowhammer"=>"Emberiza citrinella",
-"Ortolan Bunting"=>"Emberiza hortulana",
-"Corn Bunting"=>"Emberiza calandra",
-"Great Cormorant"=>"Phalacrocorax carbo",
-"Hawfinch"=>"Coccothraustes coccothraustes",
-"Common Shelduck"=>"Tadorna tadorna",
-"Bluethroat"=>"Luscinia svecica",
-"Grey Heron"=>"Ardea cinerea",
-"Barn Swallow"=>"Hirundo rustica",
-"Hooded Crow"=>"Corvus cornix",
-"Dunlin"=>"Calidris alpina",
-"Eurasian Pied Flycatcher"=>"Ficedula hypoleuca",
-"Eurasian Nuthatch"=>"Sitta europaea",
-"Short-toed Tree Creeper"=>"Certhia brachydactyla",
-"Wood Lark"=>"Lullula arborea",
-"Tree Pipit"=>"Anthus trivialis",
-"Eurasian Hobby"=>"Falco subbuteo",
-"Marsh Warbler"=>"Acrocephalus palustris",
-"Wood Sandpiper"=>"Tringa glareola",
-"Tawny Owl"=>"Strix aluco",
-"Lesser Whitethroat"=>"Sylvia curruca",
-"Barnacle Goose"=>"Branta leucopsis",
-"Common Goldeneye"=>"Bucephala clangula",
-"Western Marsh Harrier"=>"Circus aeruginosus",
-"Common Buzzard"=>"Buteo buteo",
-"Sanderling"=>"Calidris alba",
-"Little Gull"=>"Larus minutus",
-"Eurasian Magpie"=>"Pica pica",
-"Willow Warbler"=>"Phylloscopus trochilus",
-"Wood Warbler"=>"Phylloscopus sibilatrix",
-"Great Crested Grebe"=>"Podiceps cristatus",
-"Eurasian Jay"=>"Garrulus glandarius",
-"Common Redstart"=>"Phoenicurus phoenicurus",
-"Blue-headed Wagtail"=>"Motacilla flava",
-"Common Swift"=>"Apus apus",
-"Marsh Tit"=>"Poecile palustris",
-"Goldcrest"=>"Regulus regulus",
-"European Golden Plover"=>"Pluvialis apricaria",
-"Eurasian Bullfinch"=>"Pyrrhula pyrrhula",
-"Common Whitethroat"=>"Sylvia communis",
-"Meadow Pipit"=>"Anthus pratensis",
-"Greylag Goose"=>"Anser anser",
-"Spotted Flycatcher"=>"Muscicapa striata",
-"European Greenfinch"=>"Carduelis chloris",
-"Common Greenshank"=>"Tringa nebularia",
-"Great Spotted Woodpecker"=>"Dendrocopos major",
-"Greater Canada Goose"=>"Branta canadensis",
-"Mistle Thrush"=>"Turdus viscivorus",
-"Great Black-backed Gull"=>"Larus marinus",
-"Goosander"=>"Mergus merganser",
-"Great Egret"=>"Casmerodius albus",
-"Northern Goshawk"=>"Accipiter gentilis",
-"Dunnock"=>"Prunella modularis",
-"Stock Dove"=>"Columba oenas",
-"Common Wood Pigeon"=>"Columba palumbus",
-"Eurasian Woodcock"=>"Scolopax rusticola",
-"House Sparrow"=>"Passer domesticus",
-"Common House Martin"=>"Delichon urbicum",
-"Red Knot"=>"Calidris canutus",
-"Western Jackdaw"=>"Corvus monedula",
-"Brambling"=>"Fringilla montifringilla",
-"Northern Lapwing"=>"Vanellus vanellus",
-"European Reed Warbler"=>"Acrocephalus scirpaceus",
-"Lesser Black-backed Gull"=>"Larus fuscus",
-"Little Egret"=>"Egretta garzetta",
-"Little Stint"=>"Calidris minuta",
-"Common Linnet"=>"Carduelis cannabina",
-"Mute Swan"=>"Cygnus olor",
-"Common Cuckoo"=>"Cuculus canorus",
-"Black-headed Gull"=>"Larus ridibundus",
-"Greater White-fronted Goose"=>"Anser albifrons",
-"Great Tit"=>"Parus major",
-"Redwing"=>"Turdus iliacus",
-"Gadwall"=>"Anas strepera",
-"Fieldfare"=>"Turdus pilaris",
-"Tufted Duck"=>"Aythya fuligula",
-"Crested Tit"=>"Lophophanes cristatus",
-"Willow Tit"=>"Poecile montanus",
-"Eurasian Coot"=>"Fulica atra",
-"Common Blackbird"=>"Turdus merula",
-"Smew"=>"Mergus albellus",
-"Common Sandpiper"=>"Actitis hypoleucos",
-"Sand Martin"=>"Riparia riparia",
-"Purple Sandpiper"=>"Calidris maritima",
-"Northern Pintail"=>"Anas acuta",
-"Blue Tit"=>"Cyanistes caeruleus",
-"European Goldfinch"=>"Carduelis carduelis",
-"Eurasian Whimbrel"=>"Numenius phaeopus",
-"Common Reed Bunting"=>"Emberiza schoeniclus",
-"Eurasian Tree Sparrow"=>"Passer montanus",
-"Rook"=>"Corvus frugilegus",
-"European Robin"=>"Erithacus rubecula",
-"Bar-tailed Godwit"=>"Limosa lapponica",
-"Dark-bellied Brent Goose"=>"Branta bernicla",
-"Eurasian Oystercatcher"=>"Haematopus ostralegus",
-"Eurasian Siskin"=>"Carduelis spinus",
-"Northern Shoveler"=>"Anas clypeata",
-"Eurasian Wigeon"=>"Anas penelope",
-"Eurasian Sparrow Hawk"=>"Accipiter nisus",
-"Icterine Warbler"=>"Hippolais icterina",
-"Common Starling"=>"Sturnus vulgaris",
-"Long-tailed Tit"=>"Aegithalos caudatus",
-"Ruddy Turnstone"=>"Arenaria interpres",
-"Mew Gull"=>"Larus canus",
-"Common Pochard"=>"Aythya ferina",
-"Common Chiffchaff"=>"Phylloscopus collybita",
-"Greater Scaup"=>"Aythya marila",
-"Common Kestrel"=>"Falco tinnunculus",
-"Garden Warbler"=>"Sylvia borin",
-"Eurasian Collared Dove"=>"Streptopelia decaocto",
-"Eurasian Skylark"=>"Alauda arvensis",
-"Common Chaffinch"=>"Fringilla coelebs",
-"Common Moorhen"=>"Gallinula chloropus",
-"Water Pipit"=>"Anthus spinoletta",
-"Mallard"=>"Anas platyrhynchos",
-"Winter Wren"=>"Troglodytes troglodytes",
-"Common Teal"=>"Anas crecca",
-"Green Sandpiper"=>"Tringa ochropus",
-"White Wagtail"=>"Motacilla alba",
-"Eurasian Curlew"=>"Numenius arquata",
-"Song Thrush"=>"Turdus philomelos",
-"European Herring Gull"=>"Larus argentatus",
-"Grey Plover"=>"Pluvialis squatarola",
-"Carrion Crow"=>"Corvus corone",
-"Coal Tit"=>"Periparus ater",
-"Spotted Redshank"=>"Tringa erythropus",
-"Blackcap"=>"Sylvia atricapilla",
-"Egyptian Vulture"=>"Neophron percnopterus",
-"Razorbill"=>"Alca torda",
-"Alpine Swift"=>"Apus melba",
-"Long-legged Buzzard"=>"Buteo rufinus",
-"Audouin`s Gull"=>"Larus audouinii",
-"Balearic Shearwater"=>"Puffinus mauretanicus",
-"Upland Sandpiper"=>"Bartramia longicauda",
-"Greater Spotted Eagle"=>"Aquila clanga",
-"Ring Ouzel"=>"Turdus torquatus",
-"Yellow-browed Warbler"=>"Phylloscopus inornatus",
-"Blue Rock Thrush"=>"Monticola solitarius",
-"Buff-breasted Sandpiper"=>"Tryngites subruficollis",
-"Jack Snipe"=>"Lymnocryptes minimus",
-"White-rumped Sandpiper"=>"Calidris fuscicollis",
-"Ruddy Shelduck"=>"Tadorna ferruginea",
-"Cetti's Warbler"=>"Cettia cetti",
-"Citrine Wagtail"=>"Motacilla citreola",
-"Roseate Tern"=>"Sterna dougallii",
-"Black-legged Kittiwake"=>"Rissa tridactyla",
-"Pygmy Cormorant"=>"Phalacrocorax pygmeus",
-"Booted Eagle"=>"Aquila pennata",
-"Lesser White-fronted Goose"=>"Anser erythropus",
-"Little Bunting"=>"Emberiza pusilla",
-"Eleonora's Falcon"=>"Falco eleonorae",
-"European Serin"=>"Serinus serinus",
-"Twite"=>"Carduelis flavirostris",
-"Yellow-legged Gull"=>"Larus michahellis",
-"Gyr Falcon"=>"Falco rusticolus",
-"Greenish Warbler"=>"Phylloscopus trochiloides",
-"Red-necked Phalarope"=>"Phalaropus lobatus",
-"Mealy Redpoll"=>"Carduelis flammea",
-"Glaucous Gull"=>"Larus hyperboreus",
-"Great Skua"=>"Stercorarius skua",
-"Great Bustard"=>"Otis tarda",
-"Velvet Scoter"=>"Melanitta fusca",
-"Pine Grosbeak"=>"Pinicola enucleator",
-"House Crow"=>"Corvus splendens",
-"Hume`s Leaf Warbler"=>"Phylloscopus humei",
-"Great Northern Loon"=>"Gavia immer",
-"Long-tailed Duck"=>"Clangula hyemalis",
-"Lapland Longspur"=>"Calcarius lapponicus",
-"Northern Gannet"=>"Morus bassanus",
-"Eastern Imperial Eagle"=>"Aquila heliaca",
-"Little Auk"=>"Alle alle",
-"Lesser Spotted Woodpecker"=>"Dendrocopos minor",
-"Iceland Gull"=>"Larus glaucoides",
-"Parasitic Jaeger"=>"Stercorarius parasiticus",
-"Bewick`s Swan"=>"Cygnus bewickii",
-"Little Bustard"=>"Tetrax tetrax",
-"Little Crake"=>"Porzana parva",
-"Baillon`s Crake"=>"Porzana pusilla",
-"Long-tailed Jaeger"=>"Stercorarius longicaudus",
-"King Eider"=>"Somateria spectabilis",
-"Greater Short-toed Lark"=>"Calandrella brachydactyla",
-"Houbara Bustard"=>"Chlamydotis undulata",
-"Curlew Sandpiper"=>"Calidris ferruginea",
-"Common Crossbill"=>"Loxia curvirostra",
-"European Shag"=>"Phalacrocorax aristotelis",
-"Horned Grebe"=>"Podiceps auritus",
-"Common Quail"=>"Coturnix coturnix",
-"Bearded Vulture"=>"Gypaetus barbatus",
-"Lanner Falcon"=>"Falco biarmicus",
-"Middle Spotted Woodpecker"=>"Dendrocopos medius",
-"Pomarine Jaeger"=>"Stercorarius pomarinus",
-"Red-breasted Merganser"=>"Mergus serrator",
-"Eurasian Black Vulture"=>"Aegypius monachus",
-"Eurasian Dotterel"=>"Charadrius morinellus",
-"Common Nightingale"=>"Luscinia megarhynchos",
-"Northern willow warbler"=>"Phylloscopus trochilus acredula",
-"Manx Shearwater"=>"Puffinus puffinus",
-"Northern Fulmar"=>"Fulmarus glacialis",
-"Eurasian Eagle Owl"=>"Bubo bubo",
-"Orphean Warbler"=>"Sylvia hortensis",
-"Melodious Warbler"=>"Hippolais polyglotta",
-"Pallas's Leaf Warbler"=>"Phylloscopus proregulus",
-"Atlantic Puffin"=>"Fratercula arctica",
-"Black-throated Loon"=>"Gavia arctica",
-"Bohemian Waxwing"=>"Bombycilla garrulus",
-"Marsh Sandpiper"=>"Tringa stagnatilis",
-"Great Snipe"=>"Gallinago media",
-"Squacco Heron"=>"Ardeola ralloides",
-"Long-eared Owl"=>"Asio otus",
-"Caspian Tern"=>"Hydroprogne caspia",
-"Red-breasted Goose"=>"Branta ruficollis",
-"Red-throated Loon"=>"Gavia stellata",
-"Common Rosefinch"=>"Carpodacus erythrinus",
-"Red-footed Falcon"=>"Falco vespertinus",
-"Ross's Goose"=>"Anser rossii",
-"Red Phalarope"=>"Phalaropus fulicarius",
-"Pied Wagtail"=>"Motacilla yarrellii",
-"Rose-coloured Starling"=>"Sturnus roseus",
-"Rough-legged Buzzard"=>"Buteo lagopus",
-"Saker Falcon"=>"Falco cherrug",
-"European Roller"=>"Coracias garrulus",
-"Short-toed Eagle"=>"Circaetus gallicus",
-"Peregrine Falcon"=>"Falco peregrinus",
-"Merlin"=>"Falco columbarius",
-"Snow Goose"=>"Anser caerulescens",
-"Snowy Owl"=>"Bubo scandiacus",
-"Snow Bunting"=>"Plectrophenax nivalis",
-"Common Grasshopper Warbler"=>"Locustella naevia",
-"Golden Eagle"=>"Aquila chrysaetos",
-"Black-winged Stilt"=>"Himantopus himantopus",
-"Steppe Eagle"=>"Aquila nipalensis",
-"Pallid Harrier"=>"Circus macrourus",
-"European Storm-petrel"=>"Hydrobates pelagicus",
-"Horned Lark"=>"Eremophila alpestris",
-"Eurasian Treecreeper"=>"Certhia familiaris",
-"Taiga Bean Goose"=>"Anser fabalis",
-"Temminck`s Stint"=>"Calidris temminckii",
-"Terek Sandpiper"=>"Xenus cinereus",
-"Tundra Bean Goose"=>"Anser serrirostris",
-"European Turtle Dove"=>"Streptopelia turtur",
-"Leach`s Storm-petrel"=>"Oceanodroma leucorhoa",
-"Eurasian Griffon Vulture"=>"Gyps fulvus",
-"Paddyfield Warbler"=>"Acrocephalus agricola",
-"Osprey"=>"Pandion haliaetus",
-"Firecrest"=>"Regulus ignicapilla",
-"Water Rail"=>"Rallus aquaticus",
-"European Honey Buzzard"=>"Pernis apivorus",
-"Eurasian Golden Oriole"=>"Oriolus oriolus",
-"Whooper Swan"=>"Cygnus cygnus",
-"Two-barred Crossbill"=>"Loxia leucoptera",
-"White-tailed Eagle"=>"Haliaeetus albicilla",
-"Atlantic Murre"=>"Uria aalge",
-"Garganey"=>"Anas querquedula",
-"Black Redstart"=>"Phoenicurus ochruros",
-"Common Scoter"=>"Melanitta nigra",
-"Rock Pipit"=>"Anthus petrosus",
-"Lesser Spotted Eagle"=>"Aquila pomarina",
-"Cattle Egret"=>"Bubulcus ibis",
-"White-winged Black Tern"=>"Chlidonias leucopterus",
-"Black Stork"=>"Ciconia nigra",
-"Mediterranean Gull"=>"Larus melanocephalus",
-"Black Kite"=>"Milvus migrans",
-"Yellow Wagtail"=>"Motacilla flavissima",
-"Red-necked Grebe"=>"Podiceps grisegena",
-"Gull-billed Tern"=>"Gelochelidon nilotica",
-"Pectoral Sandpiper"=>"Calidris melanotos",
-"Barred Warbler"=>"Sylvia nisoria",
-"Red-throated Pipit"=>"Anthus cervinus",
-"Grey Wagtail"=>"Motacilla cinerea",
-"Richard`s Pipit"=>"Anthus richardi",
-"Black Woodpecker"=>"Dryocopus martius",
-"Little Ringed Plover"=>"Charadrius dubius",
-"Whiskered Tern"=>"Chlidonias hybrida",
-"Lesser Redpoll"=>"Carduelis cabaret",
-"Pallas' Bunting"=>"Emberiza pallasi",
-"Ferruginous Duck"=>"Aythya nyroca",
-"Whistling Swan"=>"Cygnus columbianus",
-"Black Brant"=>"Branta nigricans",
-"Marbled Teal"=>"Marmaronetta angustirostris",
-"Canvasback"=>"Aythya valisineria",
-"Redhead"=>"Aythya americana",
-"Lesser Scaup"=>"Aythya affinis",
-"Steller`s Eider"=>"Polysticta stelleri",
-"Spectacled Eider"=>"Somateria fischeri",
-"Harlequin Duck"=>"Histronicus histrionicus",
-"Black Scoter"=>"Melanitta americana",
-"Surf Scoter"=>"Melanitta perspicillata",
-"Barrow`s Goldeneye"=>"Bucephala islandica",
-"Falcated Duck"=>"Anas falcata",
-"American Wigeon"=>"Anas americana",
-"Blue-winged Teal"=>"Anas discors",
-"American Black Duck"=>"Anas rubripes",
-"Baikal Teal"=>"Anas formosa",
-"Green-Winged Teal"=>"Anas carolinensis",
-"Hazel Grouse"=>"Bonasa bonasia",
-"Rock Partridge"=>"Alectoris graeca",
-"Red-legged Partridge"=>"Alectoris rufa",
-"Yellow-billed Loon"=>"Gavia adamsii",
-"Cory`s Shearwater"=>"Calonectris borealis",
-"Madeiran Storm-Petrel"=>"Oceanodroma castro",
-"Great White Pelican"=>"Pelecanus onocrotalus",
-"Dalmatian Pelican"=>"Pelecanus crispus",
-"American Bittern"=>"Botaurus lentiginosus",
-"Glossy Ibis"=>"Plegadis falcinellus",
-"Spanish Imperial Eagle"=>"Aquila adalberti",
-"Lesser Kestrel"=>"Falco naumanni",
-"Houbara Bustard"=>"Chlamydotis undulata",
-"Crab-Plover"=>"Dromas ardeola",
-"Cream-coloured Courser"=>"Cursorius cursor",
-"Collared Pratincole"=>"Glareola pratincola",
-"Black-winged Pratincole"=>"Glareola nordmanni",
-"Killdeer"=>"Charadrius vociferus",
-"Lesser Sand Plover"=>"Charadrius mongolus",
-"Greater Sand Plover"=>"Charadrius leschenaultii",
-"Caspian Plover"=>"Charadrius asiaticus",
-"American Golden Plover"=>"Pluvialis dominica",
-"Pacific Golden Plover"=>"Pluvialis fulva",
-"Sharp-tailed Sandpiper"=>"Calidris acuminata",
-"Broad-billed Sandpiper"=>"Limicola falcinellus",
-"Spoon-Billed Sandpiper"=>"Eurynorhynchus pygmaeus",
-"Short-Billed Dowitcher"=>"Limnodromus griseus",
-"Long-billed Dowitcher"=>"Limnodromus scolopaceus",
-"Hudsonian Godwit"=>"Limosa haemastica",
-"Little Curlew"=>"Numenius minutus",
-"Lesser Yellowlegs"=>"Tringa flavipes",
-"Wilson`s Phalarope"=>"Phalaropus tricolor",
-"Pallas`s Gull"=>"Larus ichthyaetus",
-"Laughing Gull"=>"Larus atricilla",
-"Franklin`s Gull"=>"Larus pipixcan",
-"Bonaparte`s Gull"=>"Larus philadelphia",
-"Ring-billed Gull"=>"Larus delawarensis",
-"American Herring Gull"=>"Larus smithsonianus",
-"Caspian Gull"=>"Larus cachinnans",
-"Ivory Gull"=>"Pagophila eburnea",
-"Royal Tern"=>"Sterna maxima",
-"Brünnich`s Murre"=>"Uria lomvia",
-"Crested Auklet"=>"Aethia cristatella",
-"Parakeet Auklet"=>"Cyclorrhynchus psittacula",
-"Tufted Puffin"=>"Lunda cirrhata",
-"Laughing Dove"=>"Streptopelia senegalensis",
-"Great Spotted Cuckoo"=>"Clamator glandarius",
-"Great Grey Owl"=>"Strix nebulosa",
-"Tengmalm`s Owl"=>"Aegolius funereus",
-"Red-Necked Nightjar"=>"Caprimulgus ruficollis",
-"Chimney Swift"=>"Chaetura pelagica",
-"Green Bea-Eater"=>"Merops orientalis",
-"Grey-headed Woodpecker"=>"Picus canus",
-"Lesser Short-Toed Lark"=>"Calandrella rufescens",
-"Eurasian Crag Martin"=>"Hirundo rupestris",
-"Red-rumped Swallow"=>"Cecropis daurica",
-"Blyth`s Pipit"=>"Anthus godlewskii",
-"Pechora Pipit"=>"Anthus gustavi",
-"Grey-headed Wagtail"=>"Motacilla thunbergi",
-"Yellow-Headed Wagtail"=>"Motacilla lutea",
-"White-throated Dipper"=>"Cinclus cinclus",
-"Rufous-Tailed Scrub Robin"=>"Cercotrichas galactotes",
-"Thrush Nightingale"=>"Luscinia luscinia",
-"White-throated Robin"=>"Irania gutturalis",
-"Caspian Stonechat"=>"Saxicola maura variegata",
-"Western Black-eared Wheatear"=>"Oenanthe hispanica",
-"Rufous-tailed Rock Thrush"=>"Monticola saxatilis",
-"Red-throated Thrush/Black-throated"=>"Turdus ruficollis",
-"American Robin"=>"Turdus migratorius",
-"Zitting Cisticola"=>"Cisticola juncidis",
-"Lanceolated Warbler"=>"Locustella lanceolata",
-"River Warbler"=>"Locustella fluviatilis",
-"Blyth`s Reed Warbler"=>"Acrocephalus dumetorum",
-"Caspian Reed Warbler"=>"Acrocephalus fuscus",
-"Aquatic Warbler"=>"Acrocephalus paludicola",
-"Booted Warbler"=>"Acrocephalus caligatus",
-"Marmora's Warbler"=>"Sylvia sarda",
-"Dartford Warbler"=>"Sylvia undata",
-"Subalpine Warbler"=>"Sylvia cantillans",
-"Ménétries's Warbler"=>"Sylvia mystacea",
-"Rüppel's Warbler"=>"Sylvia rueppelli",
-"Asian Desert Warbler"=>"Sylvia nana",
-"Western Orphean Warbler"=>"Sylvia hortensis hortensis",
-"Arctic Warbler"=>"Phylloscopus borealis",
-"Radde`s Warbler"=>"Phylloscopus schwarzi",
-"Western Bonelli`s Warbler"=>"Phylloscopus bonelli",
-"Red-breasted Flycatcher"=>"Ficedula parva",
-"Eurasian Penduline Tit"=>"Remiz pendulinus",
-"Daurian Shrike"=>"Lanius isabellinus",
-"Long-Tailed Shrike"=>"Lanius schach",
-"Lesser Grey Shrike"=>"Lanius minor",
-"Southern Grey Shrike"=>"Lanius meridionalis",
-"Masked Shrike"=>"Lanius nubicus",
-"Spotted Nutcracker"=>"Nucifraga caryocatactes",
-"Daurian Jackdaw"=>"Corvus dauuricus",
-"Purple-Backed Starling"=>"Sturnus sturninus",
-"Red-Fronted Serin"=>"Serinus pusillus",
-"Arctic Redpoll"=>"Carduelis hornemanni",
-"Scottish Crossbill"=>"Loxia scotica",
-"Parrot Crossbill"=>"Loxia pytyopsittacus",
-"Black-faced Bunting"=>"Emberiza spodocephala",
-"Pink-footed Goose"=>"Anser brachyrhynchus",
-"Black-winged Kite"=>"Elanus caeruleus",
-"European Bee-eater"=>"Merops apiaster",
-"Sabine`s Gull"=>"Larus sabini",
-"Sooty Shearwater"=>"Puffinus griseus",
-"Lesser Canada Goose"=>"Branta hutchinsii",
-"Ring-necked Duck"=>"Aythya collaris",
-"Greater Flamingo"=>"Phoenicopterus roseus",
-"Iberian Chiffchaff"=>"Phylloscopus ibericus",
-"Ashy-headed Wagtail"=>"Motacilla cinereocapilla",
-"Stilt Sandpiper"=>"Calidris himantopus",
-"Siberian Stonechat"=>"Saxicola maurus",
-"Greater Yellowlegs"=>"Tringa melanoleuca",
-"Forster`s Tern"=>"Sterna forsteri",
-"Dusky Warbler"=>"Phylloscopus fuscatus",
-"Cirl Bunting"=>"Emberiza cirlus",
-"Olive-backed Pipit"=>"Anthus hodgsoni",
-"Sociable Lapwing"=>"Vanellus gregarius",
-"Spotted Sandpiper"=>"Actitis macularius",
-"Baird`s Sandpiper"=>"Calidris bairdii",
-"Rustic Bunting"=>"Emberiza rustica",
-"Yellow-browed Bunting"=>"Emberiza chrysophrys",
-"Great Shearwater"=>"Puffinus gravis",
-"Bonelli`s Eagle"=>"Aquila fasciata",
-"Calandra Lark"=>"Melanocorypha calandra",
-"Sardinian Warbler"=>"Sylvia melanocephala",
-"Ross's Gull"=>"Larus roseus",
-"Yellow-Breasted Bunting"=>"Emberiza aureola",
-"Pine Bunting"=>"Emberiza leucocephalos",
-"Black Guillemot"=>"Cepphus grylle",
-"Pied-billed Grebe"=>"Podilymbus podiceps",
-"Soft-plumaged Petrel"=>"Pterodroma mollis",
-"Bulwer's Petrel"=>"Bulweria bulwerii",
-"White-Faced Storm-Petrel"=>"Pelagodroma marina",
-"Pallas’s Fish Eagle"=>"Haliaeetus leucoryphus",
-"Sandhill Crane"=>"Grus canadensis",
-"Macqueen’s Bustard"=>"Chlamydotis macqueenii",
-"White-tailed Lapwing"=>"Vanellus leucurus",
-"Great Knot"=>"Calidris tenuirostris",
-"Semipalmated Sandpiper"=>"Calidris pusilla",
-"Red-necked Stint"=>"Calidris ruficollis",
-"Slender-billed Curlew"=>"Numenius tenuirostris",
-"Bridled Tern"=>"Onychoprion anaethetus",
-"Pallas’s Sandgrouse"=>"Syrrhaptes paradoxus",
-"European Scops Owl"=>"Otus scops",
-"Northern Hawk Owl"=>"Surnia ulula",
-"White-Throated Needletail"=>"Hirundapus caudacutus",
-"Belted Kingfisher"=>"Ceryle alcyon",
-"Blue-cheeked Bee-eater"=>"Merops persicus",
-"Black-headed Wagtail"=>"Motacilla feldegg",
-"Northern Mockingbird"=>"Mimus polyglottos",
-"Alpine Accentor"=>"Prunella collaris",
-"Red-flanked Bluetail"=>"Tarsiger cyanurus",
-"Isabelline Wheatear"=>"Oenanthe isabellina",
-"Pied Wheatear"=>"Oenanthe pleschanka",
-"Eastern Black-eared Wheatear"=>"Oenanthe melanoleuca",
-"Desert Wheatear"=>"Oenanthe deserti",
-"White`s Thrush"=>"Zoothera aurea",
-"Siberian Thrush"=>"Zoothera sibirica",
-"Eyebrowed Thrush"=>"Turdus obscurus",
-"Dusky Thrush"=>"Turdus eunomus",
-"Black-throated Thrush"=>"Turdus atrogularis",
-"Pallas`s Grasshopper Warbler"=>"Locustella certhiola",
-"Spectacled Warbler"=>"Sylvia conspicillata",
-"Two-barred Warbler"=>"Phylloscopus plumbeitarsus",
-"Eastern Bonelli’s Warbler"=>"Phylloscopus orientalis",
-"Collared Flycatcher"=>"Ficedula albicollis",
-"Wallcreeper"=>"Tichodroma muraria",
-"Turkestan Shrike"=>"Lanius phoenicuroides",
-"Steppe Grey Shrike"=>"Lanius pallidirostris",
-"Spanish Sparrow"=>"Passer hispaniolensis",
-"Red-eyed Vireo"=>"Vireo olivaceus",
-"Myrtle Warbler"=>"Dendroica coronata",
-"White-crowned Sparrow"=>"Zonotrichia leucophrys",
-"White-throated Sparrow"=>"Zonotrichia albicollis",
-"Cretzschmar`s Bunting"=>"Emberiza caesia",
-"Chestnut Bunting"=>"Emberiza rutila",
-"Red-headed Bunting"=>"Emberiza bruniceps",
-"Black-headed Bunting"=>"Emberiza melanocephala",
-"Indigo Bunting"=>"Passerina cyanea",
-"Balearic Woodchat Shrike"=>"Lanius senator badius",
-"Demoiselle Crane"=>"Grus virgo",
-"Chough"=>"Pyrrhocorax pyrrhocorax",
-"Red-Billed Chough"=>"Pyrrhocorax graculus",
-"Elegant Tern"=>"Sterna elegans",
-"Chukar"=>"Alectoris chukar",
-"Yellow-Billed Cuckoo"=>"Coccyzus americanus",
-"American Sandwich Tern"=>"Sterna sandvicensis acuflavida",
-"Olive-Tree Warbler"=>"Hippolais olivetorum",
-"Eastern Olivaceous Warbler"=>"Acrocephalus pallidus",
-"Indian Cormorant"=>"Phalacrocorax fuscicollis",
-"Spur-Winged Lapwing"=>"Vanellus spinosus",
-"Yelkouan Shearwater"=>"Puffinus yelkouan",
-"Trumpeter Finch"=>"Bucanetes githagineus",
-"Red Grouse"=>"Lagopus scoticus",
-"Rock Ptarmigan"=>"Lagopus mutus",
-"Long-Tailed Cormorant"=>"Phalacrocorax africanus",
-"Double-crested Cormorant"=>"Phalacrocorax auritus",
-"Magnificent Frigatebird"=>"Fregata magnificens",
-"Naumann's Thrush"=>"Turdus naumanni",
-"Oriental Pratincole"=>"Glareola maldivarum",
-"Bufflehead"=>"Bucephala albeola",
-"Snowfinch"=>"Montifrigilla nivalis",
-"Ural owl"=>"Strix uralensis",
-"Spanish Wagtail"=>"Motacilla iberiae",
-"Song Sparrow"=>"Melospiza melodia",
-"Rock Bunting"=>"Emberiza cia",
-"Siberian Rubythroat"=>"Luscinia calliope",
-"Pallid Swift"=>"Apus pallidus",
-"Eurasian Pygmy Owl"=>"Glaucidium passerinum",
-"Madeira Little Shearwater"=>"Puffinus baroli",
-"House Finch"=>"Carpodacus mexicanus",
-"Green Heron"=>"Butorides virescens",
-"Solitary Sandpiper"=>"Tringa solitaria",
-"Heuglin's Gull"=>"Larus heuglini"
-);
-
-function array_to_json( $array ){
-
-    if( !is_array( $array ) ){
-        return false;
-    }
-
-    $associative = count( array_diff( array_keys($array), array_keys( array_keys( $array )) ));
-    if( $associative ){
-
-        $construct = array();
-        foreach( $array as $key => $value ){
-
-            // We first copy each key/value pair into a staging array,
-            // formatting each key and value properly as we go.
-
-            // Format the key:
-            if( is_numeric($key) ){
-                $key = "key_$key";
-            }
-            $key = "\"".addslashes($key)."\"";
-
-            // Format the value:
-            if( is_array( $value )){
-                $value = array_to_json( $value );
-            } else if( !is_numeric( $value ) || is_string( $value ) ){
-                $value = "\"".addslashes($value)."\"";
-            }
-
-            // Add to staging array:
-            $construct[] = "$key: $value";
-        }
-
-        // Then we collapse the staging array into the JSON form:
-        $result = "{ " . implode( ", ", $construct ) . " }";
-
-    } else { // If the array is a vector (not associative):
-
-        $construct = array();
-        foreach( $array as $value ){
-
-            // Format the value:
-            if( is_array( $value )){
-                $value = array_to_json( $value );
-            } else if( !is_numeric( $value ) || is_string( $value ) ){
-                $value = "'".addslashes($value)."'";
-            }
-
-            // Add to staging array:
-            $construct[] = $value;
-        }
-
-        // Then we collapse the staging array into the JSON form:
-        $result = "[ " . implode( ", ", $construct ) . " ]";
-    }
-
-    return $result;
-}
-
-$result = array();
-foreach ($items as $key=>$value) {
-	if (strpos(strtolower($key), $q) !== false) {
-		array_push($result, array("id"=>$value, "label"=>$key, "value" => strip_tags($key)));
-	}
-	if (count($result) > 11)
-		break;
-}
-echo array_to_json($result);
-
-?>
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/xml.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/xml.html
deleted file mode 100644
index 7510594..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/xml.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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 );
-		}
-
-		$.ajax({
-			url: "london.xml",
-			dataType: "xml",
-			success: function( xmlResponse ) {
-				var data = $( "geoname", xmlResponse ).map(function() {
-					return {
-						value: $( "name", this ).text() + ", " +
-							( $.trim( $( "countryName", this ).text() ) || "(unknown country)" ),
-						id: $( "geonameId", this ).text()
-					};
-				}).get();
-				$( "#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 );
-					}
-				});
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="ui-widget">
-	<label for="birds">London matches: </label>
-	<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>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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/checkbox.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/checkbox.html
deleted file mode 100644
index 0caf958..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/checkbox.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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();
-	});
-	</script>
-	<style>
-	#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>
-
-</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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/default.html
deleted file mode 100644
index 1ea3fa7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/default.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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; });
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/icons.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/icons.html
deleted file mode 100644
index 1badb3f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/icons.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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({
-            icons: {
-                primary: "ui-icon-locked"
-            },
-            text: false
-        }).next().button({
-            icons: {
-                primary: "ui-icon-locked"
-            }
-        }).next().button({
-            icons: {
-                primary: "ui-icon-gear",
-                secondary: "ui-icon-triangle-1-s"
-            }
-        }).next().button({
-            icons: {
-                primary: "ui-icon-gear",
-                secondary: "ui-icon-triangle-1-s"
-            },
-            text: false
-        });
-	});
-	</script>
-</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>
-
-</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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/index.html
deleted file mode 100644
index 23977c8..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/index.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Button Demos</title>
-	<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="radio.html">Radios</a></li>
-		<li><a href="checkbox.html">Checkboxes</a></li>
-		<li><a href="icons.html">Icons</a></li>
-		<li><a href="toolbar.html">Toolbar</a></li>
-		<li><a href="splitbutton.html">Split Button</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/radio.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/radio.html
deleted file mode 100644
index 5f725ca..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/radio.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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();
-	});
-	</script>
-</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>
-
-</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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/splitbutton.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/splitbutton.html
deleted file mode 100644
index c4e6377..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/splitbutton.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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();
-	});
-	</script>
-	<style>
-		
-	</style>
-</head>
-<body>
-
-<div class="demo">
-
-<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>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/toolbar.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/toolbar.html
deleted file mode 100644
index d68b2d9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/button/toolbar.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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>
-	$(function() {
-		$( "#beginning" ).button({
-			text: false,
-			icons: {
-				primary: "ui-icon-seek-start"
-			}
-		});
-		$( "#rewind" ).button({
-			text: false,
-			icons: {
-				primary: "ui-icon-seek-prev"
-			}
-		});
-		$( "#play" ).button({
-			text: false,
-			icons: {
-				primary: "ui-icon-play"
-			}
-		})
-		.click(function() {
-			var options;
-			if ( $( this ).text() === "play" ) {
-				options = {
-					label: "pause",
-					icons: {
-						primary: "ui-icon-pause"
-					}
-				};
-			} else {
-				options = {
-					label: "play",
-					icons: {
-						primary: "ui-icon-play"
-					}
-				};
-			}
-			$( this ).button( "option", options );
-		});
-		$( "#stop" ).button({
-			text: false,
-			icons: {
-				primary: "ui-icon-stop"
-			}
-		})
-		.click(function() {
-			$( "#play" ).button( "option", {
-				label: "play",
-				icons: {
-					primary: "ui-icon-play"
-				}
-			});
-		});
-		$( "#forward" ).button({
-			text: false,
-			icons: {
-				primary: "ui-icon-seek-next"
-			}
-		});
-		$( "#end" ).button({
-			text: false,
-			icons: {
-				primary: "ui-icon-seek-end"
-			}
-		});
-		$( "#shuffle" ).button();
-		$( "#repeat" ).buttonset();
-	});
-	</script>
-</head>
-<body>
-
-<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>
-
-</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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/alt-field.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/alt-field.html
deleted file mode 100644
index c60b21a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/alt-field.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Populate alternate field</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() {
-		$( "#datepicker" ).datepicker({
-			altField: "#alternate",
-			altFormat: "DD, d MM, yy"
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker">&nbsp;<input type="text" id="alternate" size="30"/></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/animation.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/animation.html
deleted file mode 100644
index 9814b98..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/animation.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Animations</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.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() );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker" size="30"/></p>
-
-<p>Animations:<br />
-	<select id="anim">
-		<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="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="">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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/buttonbar.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/buttonbar.html
deleted file mode 100644
index 3b3be3b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/buttonbar.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Display button bar</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() {
-		$( "#datepicker" ).datepicker({
-			showButtonPanel: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-formats.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-formats.html
deleted file mode 100644
index e1ac673..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-formats.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Format date</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() {
-		$( "#datepicker" ).datepicker();
-		$( "#format" ).change(function() {
-			$( "#datepicker" ).datepicker( "option", "dateFormat", $( this ).val() );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker" size="30"/></p>
-
-<p>Format options:<br />
-	<select id="format">
-		<option value="mm/dd/yy">Default - mm/dd/yy</option>
-		<option value="yy-mm-dd">ISO 8601 - yy-mm-dd</option>
-		<option value="d M, y">Short - d M, y</option>
-		<option value="d MM, y">Medium - d MM, y</option>
-		<option value="DD, d MM, yy">Full - DD, d MM, yy</option>
-		<option value="'day' d 'of' MM 'in the year' yy">With text - 'day' d 'of' MM 'in the year' yy</option>
-	</select>
-</p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-range.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-range.html
deleted file mode 100644
index bf9b9a3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-range.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/default.html
deleted file mode 100644
index d50ac0d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/default.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - 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.datepicker.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#datepicker" ).datepicker();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/dropdown-month-year.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/dropdown-month-year.html
deleted file mode 100644
index 8392a15..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/dropdown-month-year.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Display month &amp; year menus</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() {
-		$( "#datepicker" ).datepicker({
-			changeMonth: true,
-			changeYear: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/icon-trigger.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/icon-trigger.html
deleted file mode 100644
index 5f4edc7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/icon-trigger.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Icon trigger</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() {
-		$( "#datepicker" ).datepicker({
-			showOn: "button",
-			buttonImage: "images/calendar.gif",
-			buttonImageOnly: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/images/calendar.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/images/calendar.gif
deleted file mode 100644
index d0abaa7c0b892e781b6f553453a0027efea014b9..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/index.html
deleted file mode 100644
index ed24774..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/index.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker Demos</title>
-	<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="date-formats.html">Format date</a></li>
-		<li><a href="min-max.html">Restrict date range</a></li>
-		<li><a href="localization.html">Localize calendar</a></li>
-		<li><a href="alt-field.html">Populate alternate field</a></li>
-		<li><a href="inline.html">Display inline</a></li>
-		<li><a href="buttonbar.html">Display button bar</a></li>
-		<li><a href="dropdown-month-year.html">Display month &amp; year menus</a></li>		
-		<li><a href="other-months.html">Dates in other months</a></li>		
-		<li><a href="show-week.html">Show week of the year</a></li>		
-		<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="date-range.html">Date Range</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/inline.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/inline.html
deleted file mode 100644
index 19c4b04..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/inline.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Display inline</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() {
-		$( "#datepicker" ).datepicker();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/localization.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/localization.html
deleted file mode 100644
index 9103611..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/localization.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Localize calendar</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>
-	<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() ] );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<p>Date: <input type="text" id="datepicker"/>&nbsp;
-	<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 (&#8235;(&#1604;&#1593;&#1585;&#1576;&#1610;</option>
-		<option value="hy">Armenian (&#1344;&#1377;&#1397;&#1381;&#1408;&#1381;&#1398;)</option>
-		<option value="az">Azerbaijani (Az&#601;rbaycan dili)</option>
-		<option value="eu">Basque (Euskara)</option>
-		<option value="bs">Bosnian (Bosanski)</option>
-		<option value="bg">Bulgarian (&#1073;&#1098;&#1083;&#1075;&#1072;&#1088;&#1089;&#1082;&#1080; &#1077;&#1079;&#1080;&#1082;)</option>
-		<option value="ca">Catalan (Catal&agrave;)</option>
-		<option value="zh-HK">Chinese Hong Kong (&#32321;&#39636;&#20013;&#25991;)</option>
-		<option value="zh-CN">Chinese Simplified (&#31616;&#20307;&#20013;&#25991;)</option>
-		<option value="zh-TW">Chinese Traditional (&#32321;&#39636;&#20013;&#25991;)</option>
-		<option value="hr">Croatian (Hrvatski jezik)</option>
-		<option value="cs">Czech (&#269;e&#353;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>
-		<option value="fo">Faroese (f&oslash;royskt)</option>
-		<option value="fa">Farsi/Persian (&#8235;(&#1601;&#1575;&#1585;&#1587;&#1740;</option>
-		<option value="fi">Finnish (suomi)</option>
-		<option value="fr" selected="selected">French (Fran&ccedil;ais)</option>
-		<option value="fr-CH">French/Swiss (Fran&ccedil;ais de Suisse)</option>
-		<option value="gl">Galician</option>
-		<option value="de">German (Deutsch)</option>
-		<option value="el">Greek (&#917;&#955;&#955;&#951;&#957;&#953;&#954;&#940;)</option>
-		<option value="he">Hebrew (&#8235;(&#1506;&#1489;&#1512;&#1497;&#1514;</option>
-		<option value="hu">Hungarian (Magyar)</option>
-		<option value="is">Icelandic (&Otilde;slenska)</option>
-		<option value="id">Indonesian (Bahasa Indonesia)</option>
-		<option value="it">Italian (Italiano)</option>
-		<option value="ja">Japanese (&#26085;&#26412;&#35486;)</option>
-		<option value="ko">Korean (&#54620;&#44397;&#50612;)</option>
-		<option value="kz">Kazakhstan (Kazakh)</option>
-		<option value="lv">Latvian (Latvie&ouml;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&ecirc;s)</option>
-		<option value="pt-BR">Portuguese/Brazilian (Portugu&ecirc;s)</option>
-		<option value="rm">Rhaeto-Romanic (Romansh)</option>
-		<option value="ro">Romanian (Rom&acirc;n&#259;)</option>
-		<option value="ru">Russian (&#1056;&#1091;&#1089;&#1089;&#1082;&#1080;&#1081;)</option>
-		<option value="sr">Serbian (&#1089;&#1088;&#1087;&#1089;&#1082;&#1080; &#1112;&#1077;&#1079;&#1080;&#1082;)</option>
-		<option value="sr-SR">Serbian (srpski jezik)</option>
-		<option value="sk">Slovak (Slovencina)</option>
-		<option value="sl">Slovenian (Slovenski Jezik)</option>
-		<option value="es">Spanish (Espa&ntilde;ol)</option>
-		<option value="sv">Swedish (Svenska)</option>
-		<option value="ta">Tamil (&#2980;&#2990;&#3007;&#2996;&#3021;)</option>
-		<option value="th">Thai (&#3616;&#3634;&#3625;&#3634;&#3652;&#3607;&#3618;)</option>
-		<option value="tj">Tajikistan</option>
-		<option value="tr">Turkish (T&uuml;rk&ccedil;e)</option>
-		<option value="uk">Ukranian (&#1059;&#1082;&#1088;&#1072;&#1111;&#1085;&#1089;&#1100;&#1082;&#1072;)</option>
-		<option value="vi">Vietnamese (Ti&#7871;ng Vi&#7879;t)</option>
-	</select></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/min-max.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/min-max.html
deleted file mode 100644
index e27339e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/min-max.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Restrict 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() {
-		$( "#datepicker" ).datepicker({ minDate: -20, maxDate: "+1M +10D" });
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/multiple-calendars.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/multiple-calendars.html
deleted file mode 100644
index 0c762f7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/multiple-calendars.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Display multiple months</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() {
-		$( "#datepicker" ).datepicker({
-			numberOfMonths: 3,
-			showButtonPanel: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/other-months.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/other-months.html
deleted file mode 100644
index 78a04f2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/other-months.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Dates in other months</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() {
-		$( "#datepicker" ).datepicker({
-			showOtherMonths: true,
-			selectOtherMonths: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/show-week.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/show-week.html
deleted file mode 100644
index 1cdb349..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/show-week.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Datepicker - Show week of the year</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() {
-		$( "#datepicker" ).datepicker({
-			showWeek: true,
-			firstDay: 1
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>Date: <input type="text" id="datepicker"></p>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/demos.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/demos.css
deleted file mode 100644
index 2d2ce1f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/demos.css
+++ /dev/null
@@ -1,334 +0,0 @@
-body {
-	font-size: 62.5%;
-}
-
-table {
-	font-size: 1em;
-}
-
-/* Site
-   -------------------------------- */
-
-body {
-	font-family: "Trebuchet MS", "Helvetica", "Arial",  "Verdana", "sans-serif";
-}
-
-/* Layout
-   -------------------------------- */
-
-.layout-grid {
-	width: 960px;
-}
-
-.layout-grid td {
-	vertical-align: top;
-}
-
-.layout-grid td.left-nav {
-	width: 140px;
-}
-
-.layout-grid td.normal {
-	border-left: 1px solid #eee;
-	padding: 20px 24px;
-	font-family: "Trebuchet MS", "Helvetica", "Arial",  "Verdana", "sans-serif";
-}
-
-.layout-grid td.demos {
-	background: url('/images/demos_bg.jpg') no-repeat;
-	height: 337px;
-	overflow: hidden;
-}
-
-/* Normal
-   -------------------------------- */
-
-.normal h3,
-.normal h4 {
-	margin: 0;
-	font-weight: normal;
-}
-
-.normal h3 {
-	padding: 0 0 9px;
-	font-size: 1.8em;
-}
-
-.normal h4 {
-	padding-bottom: 21px;
-	border-bottom: 1px dashed #999;
-	font-size: 1.2em;
-	font-weight: bold;
-}
-
-.normal p {
-	font-size: 1.2em;
-}
-
-/* Demos */
-
-.demos-nav, .demos-nav dt, .demos-nav dd, .demos-nav ul, .demos-nav li {
-	margin: 0;
-	padding: 0
-}
-
-.demos-nav {
-	float: left;
-	width: 170px;
-	font-size: 1.3em;
-}
-
-.demos-nav dt,
-.demos-nav h4 {
-	margin: 0;
-	padding: 0;
-	font: normal 1.1em "Trebuchet MS", "Helvetica", "Arial",  "Verdana", "sans-serif";
-	color: #e87b10;
-}
-
-.demos-nav dt,
-.demos-nav h4 {
-	margin-top: 1.5em;
-	margin-bottom: 0;
-	padding-left: 8px;
-	padding-bottom:5px;
-	line-height: 1.2em;
-	border-bottom: 1px solid #F4F4F4;
-}
-
-.demos-nav dd a,
-.demos-nav li a {
-	border-bottom: 1px solid #F4F4F4;
-	display:block;
-	padding: 4px 3px 4px 8px;
-	font-size: 90%;
-	text-decoration: none;
-	color: #555 ;
-	margin:2px 0;
-	height:13px;
-}
-
-.demos-nav dd a:hover,
-.demos-nav dd a:focus,
-.demos-nav dd a:hover,
-.demos-nav dd a:focus {
-	background: #f3f3f3;
-	color:#000;
-	-moz-border-radius: 5px; -webkit-border-radius: 5px;
-}
- .demos-nav dd a.selected {
-	background: #555;
-	color:#ffffff;
-	-moz-border-radius: 5px; -webkit-border-radius: 5px;
-}
-
-
-/* new styles for demo pages, added by Filament 12.29.08
-eventually we should convert the font sizes to ems -- using px for now to minimize style conflicts
-*/
-
-.normal h3.demo-header { font-size:32px; padding:0 0 5px; border-bottom:1px solid #eee; text-transform: capitalize; }
-.normal h4.demo-subheader { font-size:10px; text-transform: uppercase; color:#999; padding:8px 0 3px; border:0; margin:0; }
-.normal a:link,
-.normal a:visited { color:#1b75bb; text-decoration:none; }
-.normal a:hover,
-.normal a:active { color:#0b559b; }
-
-#demo-config { padding:20px 0 0; }
-
-#demo-frame { float:left; width:540px; height:380px; border:1px solid #ddd; overflow: auto; position: relative; }
-#demo-frame h3, #demo-frame h4 { padding: 0; font-weight: bold; font-size: 1em; }
-
-#demo-config-menu { float:right; width:180px;  }
-#demo-config-menu h4 { font-size:13px; color:#666; font-weight:normal; border:0; padding-left:18px; }
-
-#demo-config-menu ul { list-style: none; padding: 0; margin: 0; }
-
-#demo-config-menu li { font-size:12px; padding:0 0 0 10px; margin:3px 0; zoom: 1; }
-
-#demo-config-menu li a:link,
-#demo-config-menu li a:visited { display:block; padding:1px 8px 4px; border-bottom:1px dotted #b3b3b3; }
-* html #demo-config-menu li a:link,
-* html #demo-config-menu li a:visited { padding:1px 8px 2px; }
-#demo-config-menu li a:hover,
-#demo-config-menu li a:active { background-color:#f6f6f6; }
-
-#demo-config-menu li.demo-config-on { background: url(images/demo-config-on-tile.gif) repeat-x left center; }
-
-#demo-config-menu li.demo-config-on a:link,
-#demo-config-menu li.demo-config-on a:visited,
-#demo-config-menu li.demo-config-on a:hover,
-#demo-config-menu li.demo-config-on a:active { background: url(images/demo-config-on.gif) no-repeat left; padding-left:18px; color:#fff; border:0; margin-left:-10px; margin-top: 0px; margin-bottom: 0px; }
-
-#demo-source, #demo-notes {
-	clear: both;
-	padding: 20px 0 0;
-	font-size: 1.3em;
-}
-
-#demo-notes { width:520px; color:#333; font-size: 1em; }
-#demo-notes p code, .demo-description p code { padding: 0; font-weight: bold; }
-#demo-source pre, #demo-source code { padding: 0; }
-code, pre { padding:8px 0 8px 20px ; font-size: 1.2em; line-height:130%;  }
-
-#demo-source a:link,
-#demo-source a:visited,
-#demo-source a:hover,
-#demo-source a:active { font-size:12px; padding-left:13px; background-position: left center; background-repeat: no-repeat; }
-
-#demo-source a.source-open:link,
-#demo-source a.source-open:visited,
-#demo-source a.source-open:hover,
-#demo-source a.source-open:active { background-image: url(images/demo-spindown-open.gif); }
-
-#demo-source a.source-closed:link,
-#demo-source a.source-closed:visited,
-#demo-source a.source-closed:hover,
-#demo-source a.source-closed:active { background-image: url(images/demo-spindown-closed.gif); }
-
-div.demo {
-	padding:12px;
-	font-family: "Trebuchet MS", "Arial", "Helvetica", "Verdana", "sans-serif";
-}
-
-div.demo h3.docs { clear:left; font-size:12px; font-weight:normal; padding:0 0 1em; margin:0; }
-
-div.demo-description {
-	clear:both;
-	padding:12px;
-	font-family: "Trebuchet MS", "Arial", "Helvetica", "Verdana", "sans-serif";
-	font-size: 1.3em;
-	line-height: 1.4em;
-}
-
-.ui-draggable, .ui-droppable {
-	background-position: top left;
-}
-
-.left-nav .demos-nav {
-	padding-right: 10px;
-}
-
-#demo-link { font-size:11px;  padding-top: 6px; clear: both; overflow: hidden; }
-#demo-link a span.ui-icon { float:left; margin-right:3px; }
-
-/* Component containers
-----------------------------------*/
-#widget-docs .ui-widget { font-family: Trebuchet MS,Verdana,Arial,sans-serif; font-size: 1em; }
-#widget-docs .ui-widget input, #widget-docs .ui-widget select, #widget-docs .ui-widget textarea, #widget-docs .ui-widget button { font-family: Trebuchet MS,Verdana,Arial,sans-serif; font-size: 1em; }
-#widget-docs .ui-widget-header { border: 1px solid #ffffff; background: #464646 url(images/464646_40x100_textures_01_flat_100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
-#widget-docs .ui-widget-header a { color: #ffffff; }
-#widget-docs .ui-widget-content { border: 1px solid #ffffff; background: #ffffff url(images/ffffff_40x100_textures_01_flat_75.png) 50% 50% repeat-x; color: #222222; }
-#widget-docs .ui-widget-content a { color: #222222; }
-
-/* Interaction states
-----------------------------------*/
-#widget-docs .ui-state-default, #widget-docs .ui-widget-content #widget-docs .ui-state-default { border: 1px solid #666666; background: #555555 url(images/555555_40x100_textures_03_highlight_soft_75.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; outline: none; }
-#widget-docs .ui-state-default a { color: #ffffff; text-decoration: none; outline: none; }
-#widget-docs .ui-state-hover, #widget-docs .ui-widget-content #widget-docs .ui-state-hover, #widget-docs .ui-state-focus, #widget-docs .ui-widget-content #widget-docs .ui-state-focus { border: 1px solid #666666; background: #444444 url(images/444444_40x100_textures_03_highlight_soft_60.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; outline: none; }
-#widget-docs .ui-state-hover a { color: #ffffff; text-decoration: none; outline: none; }
-#widget-docs .ui-state-active, #widget-docs .ui-widget-content #widget-docs .ui-state-active { border: 1px solid #666666; background: #ffffff url(images/ffffff_40x100_textures_01_flat_65.png) 50% 50% repeat-x; font-weight: normal; color: #F6921E; outline: none; }
-#widget-docs .ui-state-active a { color: #F6921E; outline: none; text-decoration: none; }
-
-/* Interaction Cues
-----------------------------------*/
-#widget-docs .ui-state-highlight, #widget-docs .ui-widget-content #widget-docs .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/fbf9ee_40x100_textures_02_glass_55.png) 50% 50% repeat-x; color: #363636; }
-#widget-docs .ui-state-error, #widget-docs .ui-widget-content #widget-docs .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/fef1ec_40x100_textures_05_inset_soft_95.png) 50% bottom repeat-x; color: #cd0a0a; }
-#widget-docs .ui-state-error-text, #widget-docs .ui-widget-content #widget-docs .ui-state-error-text { color: #cd0a0a; }
-#widget-docs .ui-state-disabled, #widget-docs .ui-widget-content #widget-docs .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-#widget-docs .ui-priority-primary, #widget-docs .ui-widget-content #widget-docs .ui-priority-primary { font-weight: bold; }
-#widget-docs .ui-priority-secondary, #widget-docs .ui-widget-content #widget-docs .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-#demo-frame-wrapper .ui-icon, #widget-docs .ui-icon { width: 16px; height: 16px; background-image: url(images/222222_256x240_icons_icons.png); }
-#widget-docs .ui-widget-content .ui-icon {background-image: url(images/222222_256x240_icons_icons.png); }
-#widget-docs .ui-widget-header .ui-icon {background-image: url(images/222222_256x240_icons_icons.png); }
-#widget-docs .ui-state-default .ui-icon { background-image: url(images/888888_256x240_icons_icons.png); }
-#widget-docs .ui-state-hover .ui-icon, #widget-docs .ui-state-focus .ui-icon {background-image: url(images/454545_256x240_icons_icons.png); }
-#widget-docs .ui-state-active .ui-icon {background-image: url(images/454545_256x240_icons_icons.png); }
-#widget-docs .ui-state-highlight .ui-icon {background-image: url(images/2e83ff_256x240_icons_icons.png); }
-#widget-docs .ui-state-error .ui-icon, #widget-docs .ui-state-error-text .ui-icon {background-image: url(images/cd0a0a_256x240_icons_icons.png); }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-#widget-docs .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
-#widget-docs .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
-#widget-docs .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
-#widget-docs .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
-#widget-docs .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
-#widget-docs .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
-#widget-docs .ui-corner-right {  -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
-#widget-docs .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
-#widget-docs .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
-
-/* Overlays */
-#widget-docs .ui-widget-overlay { background: #aaaaaa url(images/aaaaaa_40x100_textures_01_flat_0.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
-#widget-docs .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/aaaaaa_40x100_textures_01_flat_0.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }
-
-/*
-----------------------------------*/
-
-#widget-docs { margin:20px 0 0; border: none; }
-
-#widget-docs h2, #widget-docs h3, #widget-docs h4, #widget-docs p, #widget-docs ul, #widget-docs code { margin:0; padding:0; }
-#widget-docs code { display:block; color:#444; font-size:.9em; margin:0 0 1em; }
-#widget-docs code strong { color:#000; }
-#widget-docs p { margin:0 3em 1.2em 0; }
-#widget-docs p.intro { font-size:13px; color:#666; line-height:1.3; }
-#widget-docs ul { list-style-type: none; }
-
-#widget-docs h2 { font-size:16px; margin:1.2em 0 .5em; }
-#widget-docs h3 { font-size:14px; color:#e6820E; margin:1.5em 0 .5em; }
-.normal #widget-docs h4 { font-size:12px; color:#000; border:0; margin:0 0 .5em; }
-
-#docs-overview-main { width:400px; }
-#docs-overview-sidebar { float:right; width:200px; }
-#docs-overview-sidebar a span { color:#666; }
-#widget-docs #docs-overview-main p { margin-right:0; }
-#widget-docs #docs-overview-sidebar h4 { padding-left:0; }
-
-.docs-list-header { float:left; width:100%; margin:10px 0 0; border-bottom:1px solid #eee; }
-#widget-docs .docs-list-header h2 { float:left; margin:0; }
-#widget-docs .docs-list-header p { float:right; margin:5px 0; font-size:11px; }
-
-.docs-list { float:left; width:100%; padding:0 0 10px; }
-.docs-list .param-header { float:left; clear:left; width:100%; padding:8px 0; border-top:1px solid #eee; }
-#widget-docs .param-header h3, #widget-docs .param-header p { margin:0; float:left; }
-#widget-docs .param-header h3 { width:50%; }
-#widget-docs .param-header h3 span { background: url(images/demo-spindown-closed.gif) no-repeat left; padding-left:13px; }
-#widget-docs .param-open .param-header h3 span { background: url(images/demo-spindown-open.gif) no-repeat left; }
-#widget-docs .param-header p { width:24%; }
-#widget-docs .param-header p.param-type span { background: url(images/icon-docs-info.gif) no-repeat left; cursor:pointer; border-bottom:1px dashed #ccc; padding-left:15px; }
-
-.param-details { padding-left:13px; }
-.param-args { margin:0 0 1.5em; border-top:1px dotted #ccc;}
-.param-args td { padding:3px 30px 3px 5px; border-bottom:1px dotted #ccc;  }
-
-
-/* overrides for ui-tab styles */
-#widget-docs ul.ui-tabs-nav { padding:0 0 0 8px; }
-#widget-docs .ui-tabs-nav li { margin:5px 5px 0 0; }
-
-#widget-docs .ui-tabs-nav li a:link,
-#widget-docs .ui-tabs-nav li a:visited,
-#widget-docs .ui-tabs-nav li a:hover,
-#widget-docs .ui-tabs-nav li a:active { font-size:14px; padding:4px 1.2em 3px; color:#fff; }
-
-#widget-docs .ui-tabs-nav li.ui-tabs-selected a:link,
-#widget-docs .ui-tabs-nav li.ui-tabs-selected a:visited,
-#widget-docs .ui-tabs-nav li.ui-tabs-selected a:hover,
-#widget-docs .ui-tabs-nav li.ui-tabs-selected a:active { color:#e6820E; }
-
-#widget-docs .ui-tabs-panel { padding:20px 9px; font-size:12px; line-height:1.4; color:#000; }
-
-#widget-docs .ui-widget-content a:link,
-#widget-docs .ui-widget-content a:visited { color:#1b75bb; text-decoration:none; }
-#widget-docs .ui-widget-content a:hover,
-#widget-docs .ui-widget-content a:active { color:#0b559b; }
-
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/animated.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/animated.html
deleted file mode 100644
index 200db3f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/animated.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Dialog - Animation</title>
-	<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({
-			autoOpen: false,
-			show: "blind",
-			hide: "explode"
-		});
-
-		$( "#opener" ).click(function() {
-			$( "#dialog" ).dialog( "open" );
-			return false;
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="dialog" title="Basic dialog">
-	<p>This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
-</div>
-
-<button id="opener">Open Dialog</button>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/default.html
deleted file mode 100644
index 083f7aa..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/default.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Dialog - Default functionality</title>
-	<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();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="dialog" title="Basic dialog">
-	<p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
-</div>
-
-<!-- Sample page content to illustrate the layering of the dialog -->
-<div class="hiddenInViewSource" style="padding:20px;">
-<p>Sed vel diam id libero <a href="http://example.com">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>
-<form>
-	<input value="text input" /><br />
-	<input type="checkbox" />checkbox<br />
-	<input type="radio" />radio<br />
-	<select>
-		<option>select</option>
-	</select><br /><br />
-	<textarea>textarea</textarea><br />
-</form>
-</div><!-- End sample page content -->
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/index.html
deleted file mode 100644
index 460e4fb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/index.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Dialog Demos</title>
-	<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="animated.html">Animated dialog</a></li>
-		<li><a href="modal.html">Modal dialog</a></li>
-		<li><a href="modal-message.html">Modal message</a></li>
-		<li><a href="modal-confirmation.html">Modal confirmation</a></li>
-		<li><a href="modal-form.html">Modal form</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-confirmation.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-confirmation.html
deleted file mode 100644
index e316a97..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-confirmation.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Dialog - Modal confirmation</title>
-	<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:ui-dialog" ).dialog( "destroy" );
-	
-		$( "#dialog-confirm" ).dialog({
-			resizable: false,
-			height:140,
-			modal: true,
-			buttons: {
-				"Delete all items": function() {
-					$( this ).dialog( "close" );
-				},
-				Cancel: function() {
-					$( this ).dialog( "close" );
-				}
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="dialog-confirm" title="Empty the recycle bin?">
-	<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>These items will be permanently deleted and cannot be recovered. Are you sure?</p>
-</div>
-
-<!-- Sample page content to illustrate the layering of the dialog -->
-<div class="hiddenInViewSource" style="padding:20px;">
-	<p>Sed vel diam id libero <a href="http://example.com">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>
-	<form>
-		<input value="text input" /><br />
-		<input type="checkbox" />checkbox<br />
-		<input type="radio" />radio<br />
-		<select>
-			<option>select</option>
-		</select><br /><br />
-		<textarea>textarea</textarea><br />
-	</form>
-</div><!-- End sample page content -->
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-form.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-form.html
deleted file mode 100644
index 5793b32..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-form.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Dialog - Modal form</title>
-	<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; }
-		fieldset { padding:0; border:0; margin-top:25px; }
-		h1 { font-size: 1.2em; margin: .6em 0; }
-		div#users-contain { width: 350px; margin: 20px 0; }
-		div#users-contain table { margin: 1em 0; border-collapse: collapse; width: 100%; }
-		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>
-	$(function() {
-		// a workaround for a flaw in the demo system (http://dev.jqueryui.com/ticket/4375), ignore!
-		$( "#dialog:ui-dialog" ).dialog( "destroy" );
-		
-		var name = $( "#name" ),
-			email = $( "#email" ),
-			password = $( "#password" ),
-			allFields = $( [] ).add( name ).add( email ).add( password ),
-			tips = $( ".validateTips" );
-
-		function updateTips( t ) {
-			tips
-				.text( t )
-				.addClass( "ui-state-highlight" );
-			setTimeout(function() {
-				tips.removeClass( "ui-state-highlight", 1500 );
-			}, 500 );
-		}
-
-		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 + "." );
-				return false;
-			} else {
-				return true;
-			}
-		}
-
-		function checkRegexp( o, regexp, n ) {
-			if ( !( regexp.test( o.val() ) ) ) {
-				o.addClass( "ui-state-error" );
-				updateTips( n );
-				return false;
-			} else {
-				return true;
-			}
-		}
-		
-		$( "#dialog-form" ).dialog({
-			autoOpen: false,
-			height: 300,
-			width: 350,
-			modal: true,
-			buttons: {
-				"Create an account": function() {
-					var bValid = true;
-					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 && 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@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" );
-				}
-			},
-			close: function() {
-				allFields.val( "" ).removeClass( "ui-state-error" );
-			}
-		});
-
-		$( "#create-user" )
-			.button()
-			.click(function() {
-				$( "#dialog-form" ).dialog( "open" );
-			});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="dialog-form" title="Create new user">
-	<p class="validateTips">All form fields are required.</p>
-
-	<form>
-	<fieldset>
-		<label for="name">Name</label>
-		<input type="text" name="name" id="name" class="text ui-widget-content ui-corner-all" />
-		<label for="email">Email</label>
-		<input type="text" name="email" id="email" value="" class="text ui-widget-content ui-corner-all" />
-		<label for="password">Password</label>
-		<input type="password" name="password" id="password" value="" class="text ui-widget-content ui-corner-all" />
-	</fieldset>
-	</form>
-</div>
-
-
-<div id="users-contain" class="ui-widget">
-	<h1>Existing Users:</h1>
-	<table id="users" class="ui-widget ui-widget-content">
-		<thead>
-			<tr class="ui-widget-header ">
-				<th>Name</th>
-				<th>Email</th>
-				<th>Password</th>
-			</tr>
-		</thead>
-		<tbody>
-			<tr>
-				<td>John Doe</td>
-				<td>john.doe@example.com</td>
-				<td>johndoe1</td>
-			</tr>
-		</tbody>
-	</table>
-</div>
-<button id="create-user">Create new user</button>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-message.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-message.html
deleted file mode 100644
index 90a88c3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-message.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Dialog - Modal message</title>
-	<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:ui-dialog" ).dialog( "destroy" );
-	
-		$( "#dialog-message" ).dialog({
-			modal: true,
-			buttons: {
-				Ok: function() {
-					$( this ).dialog( "close" );
-				}
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="dialog-message" title="Download complete">
-	<p>
-		<span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
-		Your files have downloaded successfully into the My Downloads folder.
-	</p>
-	<p>
-		Currently using <b>36% of your storage space</b>.
-	</p>
-</div>
-
-<!-- Sample page content to illustrate the layering of the dialog -->
-<div class="hiddenInViewSource" style="padding:20px;">
-	<p>Sed vel diam id libero <a href="http://example.com">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>
-	<form>
-		<input value="text input" /><br />
-		<input type="checkbox" />checkbox<br />
-		<input type="radio" />radio<br />
-		<select>
-			<option>select</option>
-		</select><br /><br />
-		<textarea>textarea</textarea><br />
-	</form>
-</div><!-- End sample page content -->
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal.html
deleted file mode 100644
index ce56c30..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Dialog - Basic modal</title>
-	<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:ui-dialog" ).dialog( "destroy" );
-	
-		$( "#dialog-modal" ).dialog({
-			height: 140,
-			modal: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="dialog-modal" title="Basic modal dialog">
-	<p>Adding the modal overlay screen makes the dialog look more prominent because it dims out the page content.</p>
-</div>
-
-<!-- Sample page content to illustrate the layering of the dialog -->
-<div class="hiddenInViewSource" style="padding:20px;">
-	<p>Sed vel diam id libero <a href="http://example.com">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>
-	<form>
-		<input value="text input" /><br />
-		<input type="checkbox" />checkbox<br />
-		<input type="radio" />radio<br />
-		<select>
-			<option>select</option>
-		</select><br /><br />
-		<textarea>textarea</textarea><br />
-	</form>
-</div><!-- End sample page content -->
-
-</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.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/constrain-movement.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/constrain-movement.html
deleted file mode 100644
index 9610fc4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/constrain-movement.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Constrain movement</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>
-	<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; }
-	</style>
-	<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" });
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<h3 class="docs">Constrain movement along an axis:</h3>
-	
-<div id="draggable" class="draggable ui-widget-content">
-	<p>I can be dragged only vertically</p>
-</div>
-
-<div id="draggable2" class="draggable ui-widget-content">
-	<p>I can be dragged only horizontally</p>
-</div>
-
-<h3 class="docs">Or to within another DOM element:</h3>
-<div id="containment-wrapper">
-<div id="draggable3" class="draggable ui-widget-content">
-	<p>I'm contained within the box</p>
-</div>
-
-<div id="draggable4" class="draggable ui-widget-content">
-	<p>I'm contained within the box's parent</p>
-</div>
-
-<div class="draggable ui-widget-content">
-	<p id="draggable5" class="ui-widget-header">I'm contained within my parent</p>
-</div>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/cursor-style.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/cursor-style.html
deleted file mode 100644
index 6ef5426..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/cursor-style.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Cursor style</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>
-	<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>
-	$(function() {
-		$( "#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">
-	<p>I will always stick to the center (relative to the mouse)</p>
-</div>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>My cursor is at left -5 and top -5</p>
-</div>
-
-<div id="draggable3" class="ui-widget-content">
-	<p>My cursor position is only controlled for the 'bottom' value</p>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/default.html
deleted file mode 100644
index d8085b0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/default.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - 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>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#draggable { width: 150px; height: 150px; padding: 0.5em; }
-	</style>
-	<script>
-	$(function() {
-		$( "#draggable" ).draggable();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="draggable" class="ui-widget-content">
-	<p>Drag me around</p>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/delay-start.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/delay-start.html
deleted file mode 100644
index 45e3eda..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/delay-start.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Delay start</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>
-	<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>
-	$(function() {
-		$( "#draggable" ).draggable({ distance: 20 });
-		$( "#draggable2" ).draggable({ delay: 1000 });
-		$( ".ui-draggable" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="draggable" class="ui-widget-content">
-	<p>Only if you drag me by 20 pixels, the dragging will start</p>
-</div>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>Regardless of the distance, you have to drag and wait for 1000ms before dragging starts</p>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/events.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/events.html
deleted file mode 100644
index ed067d1..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/events.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Events</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>
-	<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>
-	$(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 ] );
-			}
-		});
-
-		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" );
-			}
-			// ...then update the numbers
-			$( "span.count", $event_counter ).text( new_count );
-		}
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="draggable" class="ui-widget ui-widget-content">
-
-	<p>Drag me to trigger the chain of events.</p>
-
-	<ul class="ui-helper-reset">
-		<li id="event-start" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-play"></span>"start" invoked <span class="count">0</span>x</li>
-		<li id="event-drag" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-arrow-4"></span>"drag" invoked <span class="count">0</span>x</li>
-		<li id="event-stop" class="ui-state-default ui-corner-all"><span class="ui-icon ui-icon-stop"></span>"stop" invoked <span class="count">0</span>x</li>
-	</ul>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/handle.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/handle.html
deleted file mode 100644
index dc6d7b9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/handle.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Handles</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>
-	<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>
-	$(function() {
-		$( "#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">
-	<p class="ui-widget-header">I can be dragged only by this handle</p>
-</div>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>You can drag me around&hellip;</p>
-	<p class="ui-widget-header">&hellip;but you can't drag me by this handle.</p>
-</div>
-
-<!-- ADD CANCEL DEMO -->
-
-</div><!-- End demo -->
-
-
-
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/index.html
deleted file mode 100644
index 0beda8e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/index.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable Demos</title>
-	<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="events.html">Events</a></li>
-		<li><a href="constrain-movement.html">Constrain movement</a></li>
-		<li><a href="delay-start.html">Delay start</a></li>
-		<li><a href="snap-to.html">Snap to element or&#160;grid</a></li>
-		<li><a href="scroll.html">Auto-scroll</a></li>
-		<li><a href="revert.html">Revert position</a></li>
-		<li><a href="visual-feedback.html">Visual feedback</a></li>
-		<li><a href="handle.html">Drag handle</a></li>
-		<li><a href="cursor-style.html">Cursor style</a></li>
-		<li><a href="sortable.html">Draggable + Sortable</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/revert.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/revert.html
deleted file mode 100644
index 11f3abd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/revert.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Revert position</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>
-	<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>
-	$(function() {
-		$( "#draggable" ).draggable({ revert: true });
-		$( "#draggable2" ).draggable({ revert: true, helper: "clone" });
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="draggable" class="ui-widget-content">
-	<p>Revert the original</p>
-</div>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>Revert the helper</p>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/scroll.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/scroll.html
deleted file mode 100644
index a650ed5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/scroll.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Auto-scroll</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>
-	<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>
-	$(function() {
-		$( "#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">
-	<p>Scroll set to true, default settings</p>
-</div>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>scrollSensitivity set to 100</p>
-</div>
-
-<div id="draggable3" class="ui-widget-content">
-	<p>scrollSpeed set to 100</p>
-</div>
-
-<div style='height: 5000px; width: 1px;'></div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/snap-to.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/snap-to.html
deleted file mode 100644
index 14e254e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/snap-to.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Snap to element or grid</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>
-	<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>
-	$(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 ] });
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="snaptarget" class="ui-widget-header">
-	<p>I'm a snap target</p>
-</div>
-
-<br clear="both" />
-
-<div id="draggable" class="draggable ui-widget-content">
-	<p>Default (snap: true), snaps to all other draggable elements</p>
-</div>
-
-<div id="draggable2" class="draggable ui-widget-content">
-	<p>I only snap to the big box</p>
-</div>
-
-<div id="draggable3" class="draggable ui-widget-content">
-	<p>I only snap to the outer edges of the big box</p>
-</div>
-
-<div id="draggable4" class="draggable ui-widget-content">
-	<p>I snap to a 20 x 20 grid</p>
-</div>
-
-<div id="draggable5" class="draggable ui-widget-content">
-	<p>I snap to a 80 x 80 grid</p>
-</div>
-
-</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>
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/sortable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/sortable.html
deleted file mode 100644
index 4bc3298..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/sortable.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable + Sortable</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.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>
-	$(function() {
-		$( "#sortable" ).sortable({
-			revert: true
-		});
-		$( "#draggable" ).draggable({
-			connectToSortable: "#sortable",
-			helper: "clone",
-			revert: "invalid"
-		});
-		$( "ul, li" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<ul>
-	<li id="draggable" class="ui-state-highlight">Drag me down</li>
-</ul>
-
-<ul id="sortable">
-	<li class="ui-state-default">Item 1</li>
-	<li class="ui-state-default">Item 2</li>
-	<li class="ui-state-default">Item 3</li>
-	<li class="ui-state-default">Item 4</li>
-	<li class="ui-state-default">Item 5</li>
-</ul>
-
-</div><!-- End demo -->
-
-
-
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/visual-feedback.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/visual-feedback.html
deleted file mode 100644
index 5d0ff26..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/visual-feedback.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Draggable - Visual feedback</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>
-	<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>
-	$(function() {
-		$( "#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>" );
-			}
-		});
-		$( "#set div" ).draggable({ stack: "#set div" });
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<h3 class="docs">With helpers:</h3>
-
-<div id="draggable" class="ui-widget-content">
-	<p>Original</p>
-</div>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>Semi-transparent clone</p>
-</div>
-
-<div id="draggable3" class="ui-widget-content">
-	<p>Custom helper (in combination with cursorAt)</p>
-</div>
-
-<h3 class="docs">Stacked:</h3>
-<div id="set">
-	<div class="ui-widget-content">
-		<p>We are draggables..</p>
-	</div>
-
-	<div class="ui-widget-content">
-		<p>..whose z-indexes are controlled automatically..</p>
-	</div>
-
-	<div class="ui-widget-content">
-		<p>..with the stack option.</p>
-	</div>
-</div>
-
-</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>
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/accepted-elements.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/accepted-elements.html
deleted file mode 100644
index a2e3b33..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/accepted-elements.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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>
-	$(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!" );
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="draggable-nonvalid" class="ui-widget-content">
-	<p>I'm draggable but can't be dropped</p>
-</div>
-
-<div id="draggable" class="ui-widget-content">
-	<p>Drag me to my target</p>
-</div>
-
-<div id="droppable" class="ui-widget-header">
-	<p>accept: '#draggable'</p>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/default.html
deleted file mode 100644
index 4de66d7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/default.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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>
-	$(function() {
-		$( "#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">
-	<p>Drag me to my target</p>
-</div>
-
-<div id="droppable" class="ui-widget-header">
-	<p>Drop here</p>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras.jpg
deleted file mode 100644
index 5723680df547ac20f32e56bb7536b01f7a78b438..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2.jpg
deleted file mode 100644
index 1acad3afb079e8394c21f03e8daa54cef53cbec1..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2_min.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2_min.jpg
deleted file mode 100644
index 493e0824ae33927c1f6337ea2cb4f8f3b71a4631..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3.jpg
deleted file mode 100644
index e158b1ae064c4104c58669b11b6bcc3838eff5b3..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3_min.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3_min.jpg
deleted file mode 100644
index 4aa96b01ef519d4802393ddf6b8da68de5e6af1d..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4.jpg
deleted file mode 100644
index da4124d88f6a702da573e0cfbfd60733fe364e79..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4_min.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4_min.jpg
deleted file mode 100644
index 794dbdf78a1daea9f42f5c99ff9bdf25d0525c02..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras_min.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras_min.jpg
deleted file mode 100644
index 51e0cdedff38e1f0fac3bb961acb04830fe49857..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/index.html
deleted file mode 100644
index 13ae985..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/index.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Droppable Demos</title>
-	<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="accepted-elements.html">Accepted elements</a></li>
-		<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>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/photo-manager.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/photo-manager.html
deleted file mode 100644
index 2b16eb7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/photo-manager.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Droppable - Simple photo manager</title>
-	<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>
-	$(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( event, 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( event, ui ) {
-				recycleImage( ui.draggable );
-			}
-		});
-
-		// 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 );
-			}
-		}
-
-		// 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 );
-			}
-
-			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 -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/propagation.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/propagation.html
deleted file mode 100644
index 3275dd2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/propagation.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Droppable - Prevent propagation</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: 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>
-	$(function() {
-		$( "#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!" );
-				return false;
-			}
-		});
-
-		$( "#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!" );
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="draggable" class="ui-widget-content">
-	<p>Drag me to my target</p>
-</div>
-
-<div id="droppable" class="ui-widget-header">
-	<p>Outer droppable</p>
-	<div id="droppable-inner" class="ui-widget-header">
-		<p>Inner droppable (not greedy)</p>
-	</div>
-</div>
-
-<div id="droppable2" class="ui-widget-header">
-	<p>Outer droppable</p>
-	<div id="droppable2-inner" class="ui-widget-header">
-		<p>Inner droppable (greedy)</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>When working with nested droppables &#8212; for example, you may have an editable directory structure displayed as a tree, with folder and document nodes &#8212; 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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/revert.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/revert.html
deleted file mode 100644
index 24da889..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/revert.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Droppable - Revert draggable position</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, #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>
-	$(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!" );
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="draggable" class="ui-widget-content">
-	<p>I revert when I'm dropped</p>
-</div>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>I revert when I'm not dropped</p>
-</div>
-
-<div id="droppable" class="ui-widget-header">
-	<p>Drop me here</p>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/shopping-cart.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/shopping-cart.html
deleted file mode 100644
index 4fb9a87..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/shopping-cart.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/visual-feedback.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/visual-feedback.html
deleted file mode 100644
index ff2ddc6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/visual-feedback.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Droppable - Visual feedback</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, #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>
-	$(function() {
-		$( "#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({
-			accept: "#draggable2",
-			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>
-	
-<div id="draggable" class="ui-widget-content">
-	<p>Drag me to my target</p>
-</div>
-
-<div id="droppable" class="ui-widget-header">
-	<p>Drop here</p>
-</div>
-
-<h3 class="docs">Feedback on activating draggable:</h3>
-
-<div id="draggable2" class="ui-widget-content">
-	<p>Drag me to my target</p>
-</div>
-
-<div id="droppable2" class="ui-widget-header">
-	<p>Drop here</p>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/default.html
deleted file mode 100644
index 6be20f3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/default.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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>
-	$(function() {
-		// run the currently selected effect
-		function runEffect() {
-			// get effect type from 
-			var selectedEffect = $( "#effectTypes" ).val();
-			
-			// most effect types need no options passed by default
-			var options = {};
-			// 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" ).removeAttr( "style" ).hide().fadeIn();
-			}, 1000 );
-		};
-
-		// set effect from select menu value
-		$( "#button" ).click(function() {
-			runEffect();
-			return false;
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="toggler">
-	<div id="effect" class="ui-widget-content ui-corner-all">
-		<h3 class="ui-widget-header ui-corner-all">Effect</h3>
-		<p>
-			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
-		</p>
-	</div>
-</div>
-
-<select name="effects" id="effectTypes">
-	<option value="blind">Blind</option>
-	<option value="bounce">Bounce</option>
-	<option value="clip">Clip</option>
-	<option value="drop">Drop</option>
-	<option value="explode">Explode</option>
-	<option value="fade">Fade</option>
-	<option value="fold">Fold</option>
-	<option value="highlight">Highlight</option>
-	<option value="puff">Puff</option>
-	<option value="pulsate">Pulsate</option>
-	<option value="scale">Scale</option>
-	<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 show the effect.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/easing.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/easing.html
deleted file mode 100644
index 0b6ba08..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/easing.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<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>
-	$(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" );
-			return;
-		}
-
-		var i = 0,
-			width = 100,
-			height = 100;
-		$.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" ),
-				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,
-				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.fill();
-
-			ctx.strokeStyle = "#555";
-			ctx.beginPath();
-			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.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.stroke();
-			graph.click(function() {
-				wrap
-					.animate( { height: "hide" }, 2000, name )
-					.delay( 800 )
-					.animate( { height: "show" }, 2000, name );
-			});
-
-			graph.width( width ).height( height + text.height() + 10 );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/index.html
deleted file mode 100644
index 65aa399..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/effect/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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">Effect showcase</a></li>
-		<li><a href="easing.html">Easing showcase</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/default.html
deleted file mode 100644
index 1409024..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/default.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects - Hide 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.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>
-	$(function() {
-		// run the currently selected effect
-		function runEffect() {
-			// get effect type from 
-			var selectedEffect = $( "#effectTypes" ).val();
-
-			// most effect types need no options passed by default
-			var options = {};
-			// 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" ).removeAttr( "style" ).hide().fadeIn();
-			}, 1000 );
-		};
-
-		// set effect from select menu value
-		$( "#button" ).click(function() {
-			runEffect();
-			return false;
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="toggler">
-	<div id="effect" class="ui-widget-content ui-corner-all">
-		<h3 class="ui-widget-header ui-corner-all">Hide</h3>
-		<p>
-			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
-		</p>
-	</div>
-</div>
-
-<select name="effects" id="effectTypes">
-	<option value="blind">Blind</option>
-	<option value="bounce">Bounce</option>
-	<option value="clip">Clip</option>
-	<option value="drop">Drop</option>
-	<option value="explode">Explode</option>
-	<option value="fold">Fold</option>
-	<option value="highlight">Highlight</option>
-	<option value="puff">Puff</option>
-	<option value="pulsate">Pulsate</option>
-	<option value="scale">Scale</option>
-	<option value="shake">Shake</option>
-	<option value="size">Size</option>
-	<option value="slide">Slide</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/hide/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/calendar.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/calendar.gif
deleted file mode 100644
index d0abaa7c0b892e781b6f553453a0027efea014b9..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on-tile.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on-tile.gif
deleted file mode 100644
index a96b5bf33adfb9673d05a917b229771725998ef4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on.gif
deleted file mode 100644
index e3b6d7c0f723648fcd5d7b23b470d4c58d4d9b13..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-closed.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-closed.gif
deleted file mode 100644
index ad4bd3781b52d9681013c66b341a674ca6df1153..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-open.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-open.gif
deleted file mode 100644
index e1c60aa558ebc4701d66d89c893b9185d92926ae..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/icon-docs-info.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/icon-docs-info.gif
deleted file mode 100644
index ea6d2bece713351eb4b8eef968c3891322093624..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/pbar-ani.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/images/pbar-ani.gif
deleted file mode 100644
index cb59a04f909a30094fc0f1c15271cf1eeacc6bd2..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/index.html
deleted file mode 100644
index 0bdee3d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/index.html
+++ /dev/null
@@ -1,321 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Demos</title>
-	<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';
-			loadPage(this.href);
-			$('.left-nav a.selected').removeClass('selected');
-			$(this).addClass('selected');
-			ev.preventDefault();
-		});
-		
-		if (window.location.hash) {
-			if (window.location.hash.indexOf('|') === -1) {
-				window.location.hash += '|default';	
-			}			
-			var path = window.location.href.replace(/(index\.html)?#/,'');
-			path = path.replace('\|','/') + '.html';
-			loadPage(path);
-		}		
-
-		function loadPage(path) {			
-			var section = path.replace(/\/[^\/]+\.html/,'');
-			var header = section.replace(/.+\/([^\/]+)/,'$1').replace(/_/, ' ');
-			
-			$('td.normal div.normal')
-				.empty()
-				.append('<h4 class="demo-subheader">Functional demo:</h4>')
-				.append('<h3 class="demo-header">'+ header +'</h3>')
-				.append('<div id="demo-config"></div>')
-				.find('#demo-config')
-					.append('<div id="demo-frame"></div><div id="demo-config-menu"></div><div id="demo-link"><a class="demoWindowLink" href="#"><span class="ui-icon ui-icon-newwin"></span>Open demo in a new window</a></div>')
-					.find('#demo-config-menu')
-						.load(section + '/index.html .demos-nav', function() {
-							$('#demo-config-menu a').each(function() {
-								this.setAttribute('href', section + '/' + this.getAttribute('href').replace(/.+\/([^\/]+)/,'$1'));
-								$(this).attr('target', 'demo-frame');
-								$(this).click(function() {
-
-									resetDemos();
-									
-									$(this).parents('ul').find('li').removeClass('demo-config-on');
-									$(this).parent().addClass('demo-config-on');
-									$('#demo-notes').fadeOut();
-
-									//Set the hash to the actual page without ".html"
-									window.location.hash = header + '|' + this.getAttribute('href').match((/\/([^\/\\]+)\.html/))[1];
-
-									loadDemo(this.getAttribute('href'));
-
-									return false;
-								});
-							});
-
-							if (window.location.hash) {
-								var demo = window.location.hash.split('|')[1];
-								$('#demo-config-menu a').each(function(){
-									if (this.href.indexOf(demo + '.html') !== -1) {
-										$(this).parents('ul').find('li').removeClass('demo-config-on');
-										$(this).parent().addClass('demo-config-on');									
-										loadDemo(this.href);										
-									}
-								});
-							}
-
-							updateDemoNotes();
-						})
-					.end()
-					.find('#demo-link a')
-						.bind('click', function(ev){
-							window.open(this.href);
-							ev.preventDefault();
-						})
-					.end()
-				.end()
-			;
-			
-			resetDemos();
-		}
-				
-		function loadDemo(path) {
-			var directory = path.match(/([^\/]+)\/[^\/\.]+\.html$/)[1];
-			$.get(path, function(data) {
-				var source = data;
-				data = data.replace(/<script.*>.*<\/script>/ig,""); // Remove script tags
-				data = data.replace(/<\/?link.*>/ig,""); //Remove link tags
-				data = data.replace(/<\/?html.*>/ig,""); //Remove html tag
-				data = data.replace(/<\/?body.*>/ig,""); //Remove body tag
-				data = data.replace(/<\/?head.*>/ig,""); //Remove head tag
-				data = data.replace(/<\/?!doctype.*>/ig,""); //Remove doctype
-				data = data.replace(/<title.*>.*<\/title>/ig,""); // Remove title tags
-				data = data.replace(/((href|src)=["'])(?!(http|#))/ig, "$1" + directory + "/");
-
-				$('#demo-style').remove();
-				$('#demo-frame').empty().html(data);
-				$('#demo-frame style').clone().appendTo('head').attr('id','demo-style');
-				$('#demo-link a').attr('href', path);
-				updateDemoNotes();
-				updateDemoSource(source);
-				
-				if (/default.html$/.test(path)) {
-					$.get("documentation/docs-" + path.match(/demos\/(.+)\//)[1] + ".html", function(html) {
-						$("#demo-source").after(html);
-						$("#widget-docs").tabs();
-						$(".param-header").click(function() {
-							$(this).parent().toggleClass("param-open").end().next().toggle();
-						});
-						$(".docs-list-header").each(function() {
-							var header = $(this);
-							var details = header.next().find(".param-details").hide();
-							$("a:first", header).click(function() {
-								details.show().parent().addClass("param-open");
-								return false;
-							});
-							$("a:last", header).click(function() {
-								details.hide().parent().removeClass("param-open");
-								return false;
-							});
-						});
-					});
-				}
-			});
-		}
-
-		function updateDemoNotes() {
-			var notes = $('#demo-frame .demo-description');
-			if ($('#demo-notes').length == 0) {
-				$('<div id="demo-notes"></div>').insertAfter('#demo-config');
-			}
-			$('#demo-notes').hide().empty().html(notes.html());
-			$('#demo-notes').show();
-			notes.hide();
-		}
-		
-		function updateDemoSource(source) {
-			if ($('#demo-source').length == 0) {
-				$('<div id="demo-source"><a href="#" class="source-closed">View Source</a><div><pre><code></code></pre></div></div>').insertAfter('#demo-notes');
-				$('#demo-source').find(">a").click(function() {
-					$(this).toggleClass("source-closed").toggleClass("source-open").next().toggle();
-					return false;
-				}).end().find(">div").hide();
-			}
-			var cleanedSource = source
-				.replace('themes/base/jquery.ui.all.css', 'theme/jquery.ui.all.css')
-				.replace(/\s*\x3Clink.*demos\x2Ecss.*\x3E\s*/, '\r\n\t')
-				.replace(/\x2E\x2E\x2F\x2E\x2E\x2F/g, '');
-
-			$('#demo-source code').empty().text(cleanedSource);
-		}
-		
-		function resetDemos() {
-			$.datepicker.setDefaults($.extend({showMonthAfterYear: false}, $.datepicker.regional['']));
-			$(".ui-dialog-content").remove();			
-		}
-				
-	});
-	</script>
-</head>
-<body>
-
-<table class="layout-grid" cellspacing="0" cellpadding="0">
-	<tr>
-		<td class="left-nav">
-			<dl class="demos-nav">
-				<dt>Interactions</dt>
-					<dd><a href="draggable/index.html">Draggable</a></dd>
-					<dd><a href="droppable/index.html">Droppable</a></dd>
-					<dd><a href="resizable/index.html">Resizable</a></dd>
-					<dd><a href="selectable/index.html">Selectable</a></dd>
-					<dd><a href="sortable/index.html">Sortable</a></dd>
-				<dt>Widgets</dt>
-					<dd><a href="accordion/index.html">Accordion</a></dd>
-					<dd><a href="autocomplete/index.html">Autocomplete</a></dd>
-					<dd><a href="button/index.html">Button</a></dd>
-					<dd><a href="datepicker/index.html">Datepicker</a></dd>
-					<dd><a href="dialog/index.html">Dialog</a></dd>
-					<dd><a href="progressbar/index.html">Progressbar</a></dd>
-					<dd><a href="slider/index.html">Slider</a></dd>
-					<dd><a href="tabs/index.html">Tabs</a></dd>
-				<dt>Effects</dt>
-					<dd><a href="animate/index.html">Color Animation</a></dd>
-					<dd><a href="toggleClass/index.html">Toggle Class</a></dd>
-					<dd><a href="addClass/index.html">Add Class</a></dd>
-					<dd><a href="removeClass/index.html">Remove Class</a></dd>
-					<dd><a href="switchClass/index.html">Switch Class</a></dd>
-					<dd><a href="effect/index.html">Effect</a></dd>
-					<dd><a href="toggle/index.html">Toggle</a></dd>
-					<dd><a href="hide/index.html">Hide</a></dd>
-					<dd><a href="show/index.html">Show</a></dd>
-				<dt>Utilities</dt>
-                    <dd><a href="position/index.html">Position</a></dd>
-				<dt>About jQuery UI</dt>
-					<dd><a href="http://jqueryui.com/docs/Getting_Started">Getting Started</a></dd>
-					<dd><a href="http://jqueryui.com/docs/Upgrade_Guide">Upgrade Guide</a></dd>					
-					<dd><a href="http://jqueryui.com/docs/Changelog">Changelog</a></dd>
-					<dd><a href="http://jqueryui.com/docs/Roadmap">Roadmap</a></dd>
-					<dd><a href="http://jqueryui.com/docs/Subversion">Subversion Access</a></dd>
-					<dd><a href="http://jqueryui.com/docs/Developer_Guide">UI Developer Guidelines</a></dd>
-				<dt>Theming</dt>
-					<dd><a href="http://jqueryui.com/docs/Theming">Theming jQuery UI</a></dd>
-					<dd><a href="http://jqueryui.com/docs/Theming/API">jQuery UI CSS Framework</a></dd>
-					<dd><a href="http://jqueryui.com/docs/Theming/Themeroller">ThemeRoller application</a></dd>
-					<dd><a href="http://jqueryui.com/docs/Theming/ThemeSwitcher">Theme Switcher Widget</a></dd>
-
-			</dl>
-		</td>
-		<td class="normal">
-
-			<div class="normal">
-
-					<h3>Instructions</h3>
-					<p>
-						These demos showcase some common uses of each jQuery UI plugin. Simply copy and paste code from the demos to get started. Have fun playing with them.
-					</p>
-				
-			</div>
-
-		</td>
-	</tr>
-</table>
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/cycler.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/cycler.html
deleted file mode 100644
index b52e227..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/cycler.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Position - 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>
-	<link rel="stylesheet" href="../demos.css">
-    <style>
-   	html, body {
-   		margin: 0;
-		padding: 0
-   	}
-    </style>
-	<script>
-	$(function() {
-		$.fn.position2 = function( options ) {
-			return this.position( $.extend({
-				of: window,
-				using: function( to ) {
-					$( this ).css({
-						top: to.top,
-						left: to.left
-					})
-				},
-				collision: "none"
-			}, options));
-		}
-
-		$.fn.left = function( using ) {
-			return this.position2({
-				my: "right middle",
-				at: "left middle",
-				offset: "25 0",
-				using: using
-			});
-		}
-		$.fn.right = function( using ) {
-			return this.position2({
-				my: "left middle",
-				at: "right middle",
-				offset: "-25 0",
-				using: 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({
-			overflow: "hidden"
-		})
-		$( ".demo" ).css({
-			position: "relative",
-		});
-		$( ".demo img" ).css({
-			position: "absolute",
-		});
-
-		function animate( to ) {
-			$(this).animate( to );
-		}
-		function next() {
-			$( "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" );
-		}
-		$( "#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 );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<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><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/default.html
deleted file mode 100644
index 87fc8e3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/default.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Position - 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.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;
-		position: absolute;
-		display: block;
-		right: 0;
-		bottom: 0;
-		background-color: #bcd5e6;
-		text-align: center;
-	}
-	select, input {
-		margin-left: 15px;
-	}
-	</style>
-	<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(),
-				using: using,
-				collision: $( "#collision_horizontal" ).val() + ' ' + $( "#collision_vertical" ).val()
-			});
-		}
-
-		$( ".positionable" ).css( "opacity", 0.5 );
-
-		$( ":input" ).bind( "click keyup change", function() { position(); });
-
-		$( "#parent" ).draggable({
-			drag: function() { position(); }
-		});
-
-		$( ".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 ) );
-					position();
-				});
-			}
-		});
-
-		position();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="parent">
-	<p>
-	This is the position parent element.
-	</p>
-</div>
-
-<div class="positionable">
-	<p>
-	to position
-	</p>
-</div>
-
-<div class="positionable" style="width:120px; height: 40px;">
-	<p>
-	to position 2
-	</p>
-</div>
-
-<div style="padding: 20px; margin-top: 75px;">
-	position...
-	<div style="padding-bottom: 20px;">
-		<b>my:</b>
-		<select id="my_horizontal">
-			<option value="left">left</option>
-			<option value="center">center</option>
-			<option value="right">right</option>
-		</select> 
-		<select id="my_vertical">
-			<option value="top">top</option>
-			<option value="middle">center</option>
-			<option value="bottom">bottom</option>
-		</select>
-	</div>
-	<div style="padding-bottom: 20px;">
-		<b>at:</b>
-		<select id="at_horizontal">
-			<option value="left">left</option>
-			<option value="center">center</option>
-			<option value="right">right</option>
-		</select>
-		<select id="at_vertical">
-			<option value="top">top</option>
-			<option value="middle">center</option>
-			<option value="bottom">bottom</option>
-		</select>
-	</div>
-	<div style="padding-bottom: 20px;">
-		<b>offset:</b>
-		<input id="offset" type="text" size="15"/>
-	</div>
-	<div style="padding-bottom: 20px;">
-		<b>collision:</b>
-		<select id="collision_horizontal">
-			<option value="flip">flip</option>
-			<option value="fit">fit</option>
-			<option value="none">none</option>
-		</select>
-		<select id="collision_vertical">
-			<option value="flip">flip</option>
-			<option value="fit">fit</option>
-			<option value="none">none</option>
-		</select>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/earth.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/earth.jpg
deleted file mode 100644
index e5477f75461b5de2dfe21b4e9bf8d65870487332..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/flight.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/flight.jpg
deleted file mode 100644
index 362bd1a2239560b9f235b7a08e0cad7e4834a419..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/rocket.jpg b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/rocket.jpg
deleted file mode 100644
index 9c0495c61dc645e7cb4f780dc0898063b3ee0f5b..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/index.html
deleted file mode 100644
index 498c09b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/position/index.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Position Demo</title>
-	<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="cycler.html">Cycling images</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/animated.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/animated.html
deleted file mode 100644
index 73f5477..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/animated.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Progressbar - Animated</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.progressbar.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	.ui-progressbar-value { background-image: url(images/pbar-ani.gif); }
-	</style>
-	<script>
-	$(function() {
-		$( "#progressbar" ).progressbar({
-			value: 59
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="progressbar"></div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>
-This progressbar has an animated fill by setting the
-<code>background-image</code>
-on the
-<code>.ui-progressbar-value</code>
-element, using css.
-</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/default.html
deleted file mode 100644
index 5c6ca43..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/default.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Progressbar - 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.progressbar.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#progressbar" ).progressbar({
-			value: 37
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/images/pbar-ani.gif b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/images/pbar-ani.gif
deleted file mode 100644
index cb59a04f909a30094fc0f1c15271cf1eeacc6bd2..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/index.html
deleted file mode 100644
index 9836f59..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Progressbar Demos</title>
-	<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="animated.html">Animated</a></li>
-		<li><a href="resize.html">Resizable progressbar</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/resize.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/resize.html
deleted file mode 100644
index adc1fbb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/resize.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Progressbar - Resizable</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.progressbar.js"></script>
-	<script src="../../ui/jquery.ui.resizable.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#progressbar" ).progressbar({
-			value: 37
-		});
-		$( "#progressbarWrapper" ).resizable();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/default.html
deleted file mode 100644
index 3bd52e6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/default.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects - removeClass 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 { 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>
-	$(function() {
-		$( "#button" ).click(function() {
-			$( "#effect" ).removeClass( "newClass", 1000, callback );
-			return false;
-		});
-
-		function callback() {
-			setTimeout(function() {
-				$( "#effect" ).addClass( "newClass" );
-			}, 1500 );
-		}
-	});
-	</script>
-</head>
-<body>
-
-<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. 
-	</div>
-</div>
-
-<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/animate.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/animate.html
deleted file mode 100644
index c288d62..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/animate.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Animate</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			animate: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Animate</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/aspect-ratio.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/aspect-ratio.html
deleted file mode 100644
index 421f2e4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/aspect-ratio.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Preserve aspect ratio</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			aspectRatio: 16 / 9
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Preserve aspect ratio</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/constrain-area.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/constrain-area.html
deleted file mode 100644
index a700335..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/constrain-area.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Constrain resize area</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			containment: "#container"
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="container" class="ui-widget-content">
-	<h3 class="ui-widget-header">Containment</h3>
-	<div id="resizable" class="ui-state-active">
-		<h3 class="ui-widget-header">Resizable</h3>
-	</div>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/default.html
deleted file mode 100644
index ded3332..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/default.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - 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.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>
-	$(function() {
-		$( "#resizable" ).resizable();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Resizable</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/delay-start.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/delay-start.html
deleted file mode 100644
index 6fc2cc2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/delay-start.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Delay start</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			delay: 1000
-		});
-		
-		$( "#resizable2" ).resizable({
-			distance: 40
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<h3 class="docs">Time delay (ms):</h3>
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Time</h3>
-</div>
-
-<h3 class="docs">Distance delay (px):</h3>
-<div id="resizable2" class="ui-widget-content">
-	<h3 class="ui-widget-header">Distance</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/helper.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/helper.html
deleted file mode 100644
index a363856..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/helper.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Helper</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			helper: "ui-resizable-helper"
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Helper</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/index.html
deleted file mode 100644
index 45f4006..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/index.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable Demos</title>
-	<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="aspect-ratio.html">Preserve aspect ratio</a></li>
-		<li><a href="max-min.html">Maximum / minimum size</a></li>
-		<li><a href="constrain-area.html">Constrain resize area</a></li>
- 		<li><a href="delay-start.html">Delay start</a></li>
-		<li><a href="snap-to-grid.html">Snap to grid</a></li>
-		<li><a href="visual-feedback.html">Visual feedback</a></li>
-		<li><a href="synchronous-resize.html">Synchronous resize</a></li>
-		<li><a href="animate.html">Animate</a></li>
-		<li><a href="helper.html">Resize Helper</a></li>
-		<li><a href="textarea.html">Textarea</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/max-min.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/max-min.html
deleted file mode 100644
index 81be5dd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/max-min.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Maximum / minimum size</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			maxHeight: 250,
-			maxWidth: 350,
-			minHeight: 150,
-			minWidth: 200
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Resize larger / smaller</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/snap-to-grid.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/snap-to-grid.html
deleted file mode 100644
index 568c1c7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/snap-to-grid.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Snap to grid</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			grid: 50
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Grid</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/synchronous-resize.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/synchronous-resize.html
deleted file mode 100644
index 74e54da..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/synchronous-resize.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Synchronous resize</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			alsoResize: "#also"
-		});
-		$( "#also" ).resizable();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-header">
-	<h3 class="ui-state-active">Resize</h3>
-</div>
-
-<div id="also" class="ui-widget-content">
-	<h3 class="ui-widget-header">will also resize</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/textarea.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/textarea.html
deleted file mode 100644
index 2d00e0d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/textarea.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Textarea</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.resizable.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	.ui-resizable-se {
-		bottom: 17px;
-	}
-	</style>
-	<script>
-	$(function() {
-		$( "#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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/visual-feedback.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/visual-feedback.html
deleted file mode 100644
index fc61a6b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/visual-feedback.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Resizable - Visual feedback</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.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>
-	$(function() {
-		$( "#resizable" ).resizable({
-			ghost: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-	
-<div id="resizable" class="ui-widget-content">
-	<h3 class="ui-widget-header">Ghost</h3>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/default.html
deleted file mode 100644
index 983a04b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/default.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Selectable - 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.selectable.js"></script>
-	<link rel="stylesheet" href="../demos.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>
-	$(function() {
-		$( "#selectable" ).selectable();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<ol id="selectable">
-	<li class="ui-widget-content">Item 1</li>
-	<li class="ui-widget-content">Item 2</li>
-	<li class="ui-widget-content">Item 3</li>
-	<li class="ui-widget-content">Item 4</li>
-	<li class="ui-widget-content">Item 5</li>
-	<li class="ui-widget-content">Item 6</li>
-	<li class="ui-widget-content">Item 7</li>
-</ol>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/display-grid.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/display-grid.html
deleted file mode 100644
index b045eb9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/display-grid.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Selectable - Display as grid</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.selectable.js"></script>
-	<link rel="stylesheet" href="../demos.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>
-	$(function() {
-		$( "#selectable" ).selectable();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<ol id="selectable">
-	<li class="ui-state-default">1</li>
-	<li class="ui-state-default">2</li>
-	<li class="ui-state-default">3</li>
-	<li class="ui-state-default">4</li>
-	<li class="ui-state-default">5</li>
-	<li class="ui-state-default">6</li>
-	<li class="ui-state-default">7</li>
-	<li class="ui-state-default">8</li>
-	<li class="ui-state-default">9</li>
-	<li class="ui-state-default">10</li>
-	<li class="ui-state-default">11</li>
-	<li class="ui-state-default">12</li>
-</ol>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/index.html
deleted file mode 100644
index 21fa4d5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/index.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Selectable Demos</title>
-	<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="serialize.html">Serialize</a></li>
-		<li><a href="display-grid.html">Display as grid</a></li>		
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/serialize.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/serialize.html
deleted file mode 100644
index 18e35da..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/serialize.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Selectable - Serialize</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.selectable.js"></script>
-	<link rel="stylesheet" href="../demos.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>
-	$(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 ) );
-				});
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p id="feedback">
-<span>You've selected:</span> <span id="select-result">none</span>.
-</p>
-
-<ol id="selectable">
-	<li class="ui-widget-content">Item 1</li>
-	<li class="ui-widget-content">Item 2</li>
-	<li class="ui-widget-content">Item 3</li>
-	<li class="ui-widget-content">Item 4</li>
-	<li class="ui-widget-content">Item 5</li>
-	<li class="ui-widget-content">Item 6</li>
-</ol>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/default.html
deleted file mode 100644
index 49ca856..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/default.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects - Show 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.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>
-	$(function() {
-		// run the currently selected effect
-		function runEffect() {
-			// get effect type from 
-			var selectedEffect = $( "#effectTypes" ).val();
-
-			// most effect types need no options passed by default
-			var options = {};
-			// 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" ).fadeOut();
-			}, 1000 );
-		};
-
-		// set effect from select menu value
-		$( "#button" ).click(function() {
-			runEffect();
-			return false;
-		});
-
-		$( "#effect" ).hide();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="toggler">
-	<div id="effect" class="ui-widget-content ui-corner-all">
-		<h3 class="ui-widget-header ui-corner-all">Show</h3>
-		<p>
-			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
-		</p>
-	</div>
-</div>
-
-<select name="effects" id="effectTypes">
-	<option value="blind">Blind</option>
-	<option value="bounce">Bounce</option>
-	<option value="clip">Clip</option>
-	<option value="drop">Drop</option>
-	<option value="explode">Explode</option>
-	<option value="fold">Fold</option>
-	<option value="highlight">Highlight</option>
-	<option value="puff">Puff</option>
-	<option value="pulsate">Pulsate</option>
-	<option value="scale">Scale</option>
-	<option value="shake">Shake</option>
-	<option value="size">Size</option>
-	<option value="slide">Slide</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/show/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/colorpicker.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/colorpicker.html
deleted file mode 100644
index 8192e08..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/colorpicker.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Colorpicker</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#red, #green, #blue {
-		float: left;
-		clear: left;
-		width: 300px;
-		margin: 15px;
-	}
-	#swatch {
-		width: 120px;
-		height: 100px;
-		margin-top: 18px;
-		margin-left: 350px;
-		background-image: none;
-	}
-	#red .ui-slider-range { background: #ef2929; }
-	#red .ui-slider-handle { border-color: #ef2929; }
-	#green .ui-slider-range { background: #8ae234; }
-	#green .ui-slider-handle { border-color: #8ae234; }
-	#blue .ui-slider-range { background: #729fcf; }
-	#blue .ui-slider-handle { border-color: #729fcf; }
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	function hexFromRGB(r, g, b) {
-		var hex = [
-			r.toString( 16 ),
-			g.toString( 16 ),
-			b.toString( 16 )
-		];
-		$.each( hex, function( nr, val ) {
-			if ( val.length === 1 ) {
-				hex[ nr ] = "0" + val;
-			}
-		});
-		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 );
-	}
-	$(function() {
-		$( "#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 );
-	});
-	</script>
-</head>
-<body class="ui-widget-content" style="border:0;">
-
-<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
-</p>
-
-<div id="red"></div>
-<div id="green"></div>
-<div id="blue"></div>
-
-<div id="swatch" class="ui-widget-content ui-corner-all"></div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description" style="clear:left;">
-<p>Combine three sliders to create a simple RGB colorpicker.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/default.html
deleted file mode 100644
index fdcd4cf..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/default.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8" >
-	<title>jQuery UI Slider - 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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; }
-	</style>
-	<script>
-	$(function() {
-		$( "#slider" ).slider();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="slider"></div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/hotelrooms.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/hotelrooms.html
deleted file mode 100644
index 2ba4b99..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/hotelrooms.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Range with fixed minimum</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	$(function() {
-		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;
-			}
-		});
-		$( "#minbeds" ).change(function() {
-			slider.slider( "value", this.selectedIndex + 1 );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<form id="reservation">
-	<label for="minbeds">Minimum number of beds</label>
-	<select name="minbeds" id="minbeds">
-		<option>1</option>
-		<option>2</option>
-		<option>3</option>
-		<option>4</option>
-		<option>5</option>
-		<option>6</option>
-	</select>
-</form>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/index.html
deleted file mode 100644
index caf68fe..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/index.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider Demos</title>
-	<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="steps.html">Snap to increments</a></li>
-		<li><a href="range.html">Range slider</a></li>
-		<li><a href="rangemin.html">Range with fixed minimum</a></li>
-		<li><a href="hotelrooms.html">Room reservation</a></li>
-		<li><a href="rangemax.html">Range with fixed maximum</a></li>
-		<li><a href="slider-vertical.html">Vertical slider</a></li>
-		<li><a href="range-vertical.html">Vertical range slider</a></li>
-		<li><a href="multiple-vertical.html">Multiple sliders</a></li>
-		<li><a href="colorpicker.html">Simple colorpicker</a></li>
-		<li><a href="side-scroll.html">Simple scrollbar</a></li>
-		<li><a href="tabs.html">Slider controls tabs</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/multiple-vertical.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/multiple-vertical.html
deleted file mode 100644
index 372ad2d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/multiple-vertical.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Multiple sliders</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.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>
-	$(function() {
-		// setup master volume
-		$( "#master" ).slider({
-			value: 60,
-			orientation: "horizontal",
-			range: "min",
-			animate: true
-		});
-		// setup graphic EQ
-		$( "#eq > span" ).each(function() {
-			// read initial values from markup and remove that
-			var value = parseInt( $( this ).text(), 10 );
-			$( this ).empty().slider({
-				value: value,
-				range: "min",
-				animate: true,
-				orientation: "vertical"
-			});
-		});
-	});
-	</script>
-</head>
-<body class="ui-widget-content" style="border:0;">
-
-<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
-</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
-</p>
-
-<div id="eq">
-	<span>88</span>
-	<span>77</span>
-	<span>55</span>
-	<span>33</span>
-	<span>40</span>
-	<span>45</span>
-	<span>70</span>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range-vertical.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range-vertical.html
deleted file mode 100644
index 2a1a8b4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range-vertical.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Vertical range slider</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	$(function() {
-		$( "#slider-range" ).slider({
-			orientation: "vertical",
-			range: true,
-			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 ) );
-	});
-	</script>
-</head>
-<body>
-
-<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;" />
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range.html
deleted file mode 100644
index 3fd156d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Range slider</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	$(function() {
-		$( "#slider-range" ).slider({
-			range: true,
-			min: 0,
-			max: 500,
-			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 ) );
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>
-	<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemax.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemax.html
deleted file mode 100644
index 899efb2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemax.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Range with fixed maximum</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	$(function() {
-		$( "#slider-range-max" ).slider({
-			range: "max",
-			min: 1,
-			max: 10,
-			value: 2,
-			slide: function( event, ui ) {
-				$( "#amount" ).val( ui.value );
-			}
-		});
-		$( "#amount" ).val( $( "#slider-range-max" ).slider( "value" ) );
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>
-	<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemin.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemin.html
deleted file mode 100644
index 3e077d9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemin.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Range with fixed minimum</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	$(function() {
-		$( "#slider-range-min" ).slider({
-			range: "min",
-			value: 37,
-			min: 1,
-			max: 700,
-			slide: function( event, ui ) {
-				$( "#amount" ).val( "$" + ui.value );
-			}
-		});
-		$( "#amount" ).val( "$" + $( "#slider-range-min" ).slider( "value" ) );
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>
-	<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/side-scroll.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/side-scroll.html
deleted file mode 100644
index 666d480..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/side-scroll.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Slider scrollbar</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.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>
-	$(function() {
-		//scrollpane parts
-		var scrollPane = $( ".scroll-pane" ),
-			scrollContent = $( ".scroll-content" );
-		
-		//build slider
-		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() {
-			scrollbar.width( handleHelper.width() );
-		})
-		.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();
-		
-		//change overflow to hidden now that slider handles the scrolling
-		scrollPane.css( "overflow", "hidden" );
-		
-		//size scrollbar and handle proportionally to scroll distance
-		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({
-				width: handleSize,
-				"margin-left": -handleSize / 2
-			});
-			handleHelper.width( "" ).width( scrollbar.width() - handleSize );
-		}
-		
-		//reset slider value based on scroll content position
-		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 );
-		}
-		
-		//if the slider is 100% and window gets larger, reveal content
-		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" ), 10 ) + gap );
-				}
-		}
-		
-		//change handle position on window resize
-		$( window ).resize(function() {
-			resetValue();
-			sizeScrollbar();
-			reflowContent();
-		});
-		//init scrollbar size
-		setTimeout( sizeScrollbar, 10 );//safari wants a timeout
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="scroll-pane ui-widget ui-widget-header ui-corner-all">
-	<div class="scroll-content">
-		<div class="scroll-content-item ui-widget-header">1</div>
-		<div class="scroll-content-item ui-widget-header">2</div>
-		<div class="scroll-content-item ui-widget-header">3</div>
-		<div class="scroll-content-item ui-widget-header">4</div>
-		<div class="scroll-content-item ui-widget-header">5</div>
-		<div class="scroll-content-item ui-widget-header">6</div>
-		<div class="scroll-content-item ui-widget-header">7</div>
-		<div class="scroll-content-item ui-widget-header">8</div>
-		<div class="scroll-content-item ui-widget-header">9</div>
-		<div class="scroll-content-item ui-widget-header">10</div>
-		<div class="scroll-content-item ui-widget-header">11</div>
-		<div class="scroll-content-item ui-widget-header">12</div>
-		<div class="scroll-content-item ui-widget-header">13</div>
-		<div class="scroll-content-item ui-widget-header">14</div>
-		<div class="scroll-content-item ui-widget-header">15</div>
-		<div class="scroll-content-item ui-widget-header">16</div>
-		<div class="scroll-content-item ui-widget-header">17</div>
-		<div class="scroll-content-item ui-widget-header">18</div>
-		<div class="scroll-content-item ui-widget-header">19</div>
-		<div class="scroll-content-item ui-widget-header">20</div>
-	</div>
-	<div class="scroll-bar-wrap ui-widget-content ui-corner-bottom">
-		<div class="scroll-bar"></div>
-	</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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/slider-vertical.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/slider-vertical.html
deleted file mode 100644
index 479e778..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/slider-vertical.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Vertical slider</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	$(function() {
-		$( "#slider-vertical" ).slider({
-			orientation: "vertical",
-			range: "min",
-			min: 0,
-			max: 100,
-			value: 60,
-			slide: function( event, ui ) {
-				$( "#amount" ).val( ui.value );
-			}
-		});
-		$( "#amount" ).val( $( "#slider-vertical" ).slider( "value" ) );
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<p>
-	<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/steps.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/steps.html
deleted file mode 100644
index c49e26f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/steps.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Snap to increments</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.slider.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<style>
-	#demo-frame > div.demo { padding: 10px !important; };
-	</style>
-	<script>
-	$(function() {
-		$( "#slider" ).slider({
-			value:100,
-			min: 0,
-			max: 500,
-			step: 50,
-			slide: function( event, ui ) {
-				$( "#amount" ).val( "$" + ui.value );
-			}
-		});
-		$( "#amount" ).val( "$" + $( "#slider" ).slider( "value" ) );
-	});
-	</script>
-</head>
-<body>
-
-<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;" />
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/tabs.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/tabs.html
deleted file mode 100644
index 440ac58..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/slider/tabs.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Slider - Snap to increments</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.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>
-	$(function() {
-		$( "#tabs" ).tabs({
-			select: function( event, ui ) {
-				$( "#slider" ).slider( "value", ui.index );
-			}
-		});
-		$( "#slider" ).slider({
-			min: 0,
-			max: $( "#tabs" ).tabs( "length" ) - 1,
-			slide: function( event, ui ) {
-				$( "#tabs" ).tabs( "select", ui.value );
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="slider" style="width:100px"></div>
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<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>
-	</div>
-	<div id="tabs-2">
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>Control tabs with a slider.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists-through-tabs.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists-through-tabs.html
deleted file mode 100644
index d466da8..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists-through-tabs.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Connect lists with Tabs</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.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>
-	$(function() {
-		$( "#sortable1, #sortable2" ).sortable().disableSelection();
-
-		var $tabs = $( "#tabs" ).tabs();
-
-		var $tab_items = $( "ul:first li", $tabs ).droppable({
-			accept: ".connectedSortable li",
-			hoverClass: "ui-state-hover",
-			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" );
-				});
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-	</ul>
-	<div id="tabs-1">
-		<ul id="sortable1" class="connectedSortable ui-helper-reset">
-			<li class="ui-state-default">Item 1</li>
-			<li class="ui-state-default">Item 2</li>
-			<li class="ui-state-default">Item 3</li>
-			<li class="ui-state-default">Item 4</li>
-			<li class="ui-state-default">Item 5</li>
-		</ul>
-	</div>
-	<div id="tabs-2">
-		<ul id="sortable2" class="connectedSortable ui-helper-reset">
-			<li class="ui-state-highlight">Item 1</li>
-			<li class="ui-state-highlight">Item 2</li>
-			<li class="ui-state-highlight">Item 3</li>
-			<li class="ui-state-highlight">Item 4</li>
-			<li class="ui-state-highlight">Item 5</li>
-		</ul>
-	</div>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists.html
deleted file mode 100644
index d0b2c5c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Connect lists</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.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>
-	$(function() {
-		$( "#sortable1, #sortable2" ).sortable({
-			connectWith: ".connectedSortable"
-		}).disableSelection();
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<ul id="sortable1" class="connectedSortable">
-	<li class="ui-state-default">Item 1</li>
-	<li class="ui-state-default">Item 2</li>
-	<li class="ui-state-default">Item 3</li>
-	<li class="ui-state-default">Item 4</li>
-	<li class="ui-state-default">Item 5</li>
-</ul>
-
-<ul id="sortable2" class="connectedSortable">
-	<li class="ui-state-highlight">Item 1</li>
-	<li class="ui-state-highlight">Item 2</li>
-	<li class="ui-state-highlight">Item 3</li>
-	<li class="ui-state-highlight">Item 4</li>
-	<li class="ui-state-highlight">Item 5</li>
-</ul>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/default.html
deleted file mode 100644
index d0ef0df..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/default.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - 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.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>
-	$(function() {
-		$( "#sortable" ).sortable();
-		$( "#sortable" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<ul id="sortable">
-	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
-	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
-	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>
-	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>
-	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>
-	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>
-	<li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>
-</ul>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/delay-start.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/delay-start.html
deleted file mode 100644
index 48a9c1f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/delay-start.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Delay start</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.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>
-	$(function() {
-		$( "#sortable1" ).sortable({
-			delay: 300
-		});
-		
-		$( "#sortable2" ).sortable({
-			distance: 15
-		});
-
-		$( "li" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<h3 class="docs">Time delay of 300ms:</h3>
-
-<ul id="sortable1">
-	<li class="ui-state-default">Item 1</li>
-	<li class="ui-state-default">Item 2</li>
-	<li class="ui-state-default">Item 3</li>
-	<li class="ui-state-default">Item 4</li>
-</ul>
-
-<h3 class="docs">Distance delay of 15px:</h3>
-
-<ul id="sortable2">
-	<li class="ui-state-default">Item 1</li>
-	<li class="ui-state-default">Item 2</li>
-	<li class="ui-state-default">Item 3</li>
-	<li class="ui-state-default">Item 4</li>
-</ul>
-
-</div><!-- End demo -->
-
-
-
-<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
-	with the <code>delay</code> option. Set a distance in pixels the element
-	needs to be dragged before sorting starts with the <code>distance</code>
-	option.
-</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/display-grid.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/display-grid.html
deleted file mode 100644
index c32e309..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/display-grid.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Display as grid</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.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>
-	$(function() {
-		$( "#sortable" ).sortable();
-		$( "#sortable" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<ul id="sortable">
-	<li class="ui-state-default">1</li>
-	<li class="ui-state-default">2</li>
-	<li class="ui-state-default">3</li>
-	<li class="ui-state-default">4</li>
-	<li class="ui-state-default">5</li>
-	<li class="ui-state-default">6</li>
-	<li class="ui-state-default">7</li>
-	<li class="ui-state-default">8</li>
-	<li class="ui-state-default">9</li>
-	<li class="ui-state-default">10</li>
-	<li class="ui-state-default">11</li>
-	<li class="ui-state-default">12</li>
-</ul>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/empty-lists.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/empty-lists.html
deleted file mode 100644
index d1c9680..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/empty-lists.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Handle empty lists</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.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>
-	$(function() {
-		$( "ul.droptrue" ).sortable({
-			connectWith: "ul"
-		});
-
-		$( "ul.dropfalse" ).sortable({
-			connectWith: "ul",
-			dropOnEmpty: false
-		});
-
-		$( "#sortable1, #sortable2, #sortable3" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<ul id="sortable1" class='droptrue'>
-	<li class="ui-state-default">Can be dropped..</li>
-	<li class="ui-state-default">..on an empty list</li>
-	<li class="ui-state-default">Item 3</li>
-	<li class="ui-state-default">Item 4</li>
-	<li class="ui-state-default">Item 5</li>
-</ul>
-
-<ul id="sortable2" class='dropfalse'>
-	<li class="ui-state-highlight">Cannot be dropped..</li>
-	<li class="ui-state-highlight">..on an empty list</li>
-	<li class="ui-state-highlight">Item 3</li>
-	<li class="ui-state-highlight">Item 4</li>
-	<li class="ui-state-highlight">Item 5</li>
-</ul>
-
-<ul id="sortable3" class='droptrue'>
-</ul>
-
-<br clear="both" />
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/index.html
deleted file mode 100644
index b307ef7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable Demos</title>
-	<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="placeholder.html">Drop placeholder</a></li>
-		<li><a href="connect-lists.html">Connect lists</a></li>
-		<li><a href="connect-lists-through-tabs.html">Connect lists through tabs</a></li>
-		<li><a href="empty-lists.html">Handle empty lists</a></li>
-		<li><a href="items.html">Include / exclude items</a></li>
-		<li><a href="delay-start.html">Delay start</a></li>
-		<li><a href="display-grid.html">Display as grid</a></li>		
-		<li><a href="portlets.html">Portlets</a></li>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/items.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/items.html
deleted file mode 100644
index 334cdeb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/items.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Include / exclude items</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.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>
-	$(function() {
-		$( "#sortable1" ).sortable({
-			items: "li:not(.ui-state-disabled)"
-		});
-
-		$( "#sortable2" ).sortable({
-			cancel: ".ui-state-disabled"
-		});
-
-		$( "#sortable1 li, #sortable2 li" ).disableSelection();		
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<h3 class="docs">Specify which items are sortable:</h3>
-
-<ul id="sortable1">
-	<li class="ui-state-default">Item 1</li>
-	<li class="ui-state-default ui-state-disabled">(I'm not sortable or a drop target)</li>
-	<li class="ui-state-default ui-state-disabled">(I'm not sortable or a drop target)</li>
-	<li class="ui-state-default">Item 4</li>
-</ul>
-
-<h3 class="docs">Cancel sorting (but keep as drop targets):</h3>
-
-<ul id="sortable2">
-	<li class="ui-state-default">Item 1</li>
-	<li class="ui-state-default ui-state-disabled">(I'm not sortable)</li>
-	<li class="ui-state-default ui-state-disabled">(I'm not sortable)</li>
-	<li class="ui-state-default">Item 4</li>
-</ul>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/placeholder.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/placeholder.html
deleted file mode 100644
index 90198f3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/placeholder.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Drop placeholder</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.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>
-	$(function() {
-		$( "#sortable" ).sortable({
-			placeholder: "ui-state-highlight"
-		});
-		$( "#sortable" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<ul id="sortable">
-	<li class="ui-state-default">Item 1</li>
-	<li class="ui-state-default">Item 2</li>
-	<li class="ui-state-default">Item 3</li>
-	<li class="ui-state-default">Item 4</li>
-	<li class="ui-state-default">Item 5</li>
-	<li class="ui-state-default">Item 6</li>
-	<li class="ui-state-default">Item 7</li>
-</ul>
-
-</div><!-- End demo -->
-
-
-
-<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
-	class into the <code>placeholder</code> option to style that space to
-	be visible.  Use the boolean <code>forcePlaceholderSize</code> option
-	to set dimensions on the placeholder.
-</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/portlets.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/portlets.html
deleted file mode 100644
index 1e5e956..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/portlets.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Sortable - Portlets</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.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; }
-	.portlet-header .ui-icon { float: right; }
-	.portlet-content { padding: 0.4em; }
-	.ui-sortable-placeholder { border: 1px dotted black; visibility: visible !important; height: 50px !important; }
-	.ui-sortable-placeholder * { visibility: hidden; }
-	</style>
-	<script>
-	$(function() {
-		$( ".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>")
-				.end()
-			.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();
-		});
-
-		$( ".column" ).disableSelection();
-	});
-	</script>
-</head>
-<body>
-<div class="demo">
-
-<div class="column">
-
-	<div class="portlet">
-		<div class="portlet-header">Feeds</div>
-		<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
-	</div>
-	
-	<div class="portlet">
-		<div class="portlet-header">News</div>
-		<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
-	</div>
-
-</div>
-
-<div class="column">
-
-	<div class="portlet">
-		<div class="portlet-header">Shopping</div>
-		<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
-	</div>
-
-</div>
-
-<div class="column">
-
-	<div class="portlet">
-		<div class="portlet-header">Links</div>
-		<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
-	</div>
-	
-	<div class="portlet">
-		<div class="portlet-header">Images</div>
-		<div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
-	</div>
-
-</div>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/default.html
deleted file mode 100644
index c0bcd6b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/default.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects - switchClass 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 {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>
-	$(function() {
-		$( "#button" ).click(function(){
-			$( ".newClass" ).switchClass( "newClass", "anotherNewClass", 1000 );
-			$( ".anotherNewClass" ).switchClass( "anotherNewClass", "newClass", 1000 );
-			return false;	
-		});
-	});
-	</script>
-</head>
-<body>
-
-<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. 
-	</div>
-</div>
-<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax.html
deleted file mode 100644
index c626257..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Content via Ajax</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.tabs.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#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." );
-				}
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Preloaded</a></li>
-		<li><a href="ajax/content1.html">Tab 1</a></li>
-		<li><a href="ajax/content2.html">Tab 2</a></li>
-		<li><a href="ajax/content3-slow.php">Tab 3 (slow)</a></li>
-		<li><a href="ajax/content4-broken.php">Tab 4 (broken)</a></li>
-	</ul>
-	<div id="tabs-1">
-		<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>
-	</div>
-</div>
-
-</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>
-<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 -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content1.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content1.html
deleted file mode 100644
index 472bdfb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content1.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content2.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content2.html
deleted file mode 100644
index 18b03e4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content2.html
+++ /dev/null
@@ -1,4 +0,0 @@
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content3-slow.php b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content3-slow.php
deleted file mode 100644
index 7ad43ec..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content3-slow.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-sleep(1);
-?>
-<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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content4-broken.php b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content4-broken.php
deleted file mode 100644
index 55ea2fe..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content4-broken.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php 
-header("HTTP/1.0 404 Not Found");
-?>
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/bottom.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/bottom.html
deleted file mode 100644
index 4f0e3c2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/bottom.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Tabs at bottom</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.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" );
-	});
-	</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; }
-	</style>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="tabs" class="tabs-bottom">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<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>
-	</div>
-	<div id="tabs-2">
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/collapsible.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/collapsible.html
deleted file mode 100644
index 1fba710..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/collapsible.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Collapse content</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.tabs.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#tabs" ).tabs({
-			collapsible: true
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<p><strong>Click this tab again to close the content pane.</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>
-	</div>
-	<div id="tabs-2">
-		<p><strong>Click this tab again to close the content pane.</strong></p>
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<p><strong>Click this tab again to close the content pane.</strong></p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</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>
-<pre><code>collapsible: true
-</code></pre>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/cookie.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/cookie.html
deleted file mode 100644
index b168d29..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/cookie.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Default functionality</title>
-	<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({
-			cookie: {
-				// store cookie for a day, without, it would be a session cookie
-				expires: 1
-			}
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<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>
-	</div>
-	<div id="tabs-2">
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/default.html
deleted file mode 100644
index a892509..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/default.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - 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.tabs.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#tabs" ).tabs();
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<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>
-	</div>
-	<div id="tabs-2">
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>Click tabs to swap between content that is broken into logical sections.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/index.html
deleted file mode 100644
index c0d6684..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs Demos</title>
-	<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="ajax.html">Content via Ajax</a></li>
-		<li><a href="mouseover.html">Open on mouseover</a></li>
-		<li><a href="collapsible.html">Collapse content</a></li>
-		<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>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/manipulation.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/manipulation.html
deleted file mode 100644
index 8b8ddf4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/manipulation.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Simple manipulation</title>
-	<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>
-	$(function() {
-		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>" );
-			}
-		});
-
-		// modal dialog init: custom buttons and a "close" callback reseting the form inside
-		var $dialog = $( "#dialog" ).dialog({
-			autoOpen: false,
-			modal: true,
-			buttons: {
-				Add: function() {
-					addTab();
-					$( this ).dialog( "close" );
-				},
-				Cancel: function() {
-					$( this ).dialog( "close" );
-				}
-			},
-			open: function() {
-				$tab_title_input.focus();
-			},
-			close: function() {
-				$form[ 0 ].reset();
-			}
-		});
-
-		// addTab form: calls addTab function on submit and closes the dialog
-		var $form = $( "form", $dialog ).submit(function() {
-			addTab();
-			$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 );
-			tab_counter++;
-		}
-
-		// addTab button: just opens the dialog
-		$( "#add_tab" )
-			.button()
-			.click(function() {
-				$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 );
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-	<div id="dialog" title="Tab data">
-		<form>
-			<fieldset class="ui-helper-reset">
-				<label for="tab_title">Title</label>
-				<input type="text" name="tab_title" id="tab_title" value="" class="ui-widget-content ui-corner-all" />
-				<label for="tab_content">Content</label>
-				<textarea name="tab_content" id="tab_content" class="ui-widget-content ui-corner-all"></textarea>
-			</fieldset>
-		</form>
-	</div>
-
-	<button id="add_tab">Add Tab</button>
-
-	<div id="tabs">
-		<ul>
-			<li><a href="#tabs-1">Nunc tincidunt</a> <span class="ui-icon ui-icon-close">Remove Tab</span></li>
-		</ul>
-		<div id="tabs-1">
-			<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>
-		</div>
-	</div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>Simple tabs adding and removing.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/mouseover.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/mouseover.html
deleted file mode 100644
index b19b2af..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/mouseover.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Open on mouseover</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.tabs.js"></script>
-	<link rel="stylesheet" href="../demos.css">
-	<script>
-	$(function() {
-		$( "#tabs" ).tabs({
-			event: "mouseover"
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<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>
-	</div>
-	<div id="tabs-2">
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</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>
-<pre><code>event: 'mouseover'
-</code></pre>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/sortable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/sortable.html
deleted file mode 100644
index ba8196d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/sortable.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Sortable</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.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" });
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<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>
-	</div>
-	<div id="tabs-2">
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<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>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/vertical.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/vertical.html
deleted file mode 100644
index 4ddb5c9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/vertical.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Tabs - Vertical Tabs 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.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" );
-	});
-	</script>
-	<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>
-
-<div class="demo">
-
-<div id="tabs">
-	<ul>
-		<li><a href="#tabs-1">Nunc tincidunt</a></li>
-		<li><a href="#tabs-2">Proin dolor</a></li>
-		<li><a href="#tabs-3">Aenean lacinia</a></li>
-	</ul>
-	<div id="tabs-1">
-		<h2>Content heading 1</h2>
-		<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>
-	</div>
-	<div id="tabs-2">
-		<h2>Content heading 2</h2>
-		<p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
-	</div>
-	<div id="tabs-3">
-		<h2>Content heading 3</h2>
-		<p>Mauris eleifend est et turpis. Duis id erat. Suspendisse potenti. Aliquam vulputate, pede vel vehicula accumsan, mi neque rutrum erat, eu congue orci lorem eget lorem. Vestibulum non ante. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce sodales. Quisque eu urna vel enim commodo pellentesque. Praesent eu risus hendrerit ligula tempus pretium. Curabitur lorem enim, pretium nec, feugiat nec, luctus a, lacus.</p>
-		<p>Duis cursus. Maecenas ligula eros, blandit nec, pharetra at, semper at, magna. Nullam ac lacus. Nulla facilisi. Praesent viverra justo vitae neque. Praesent blandit adipiscing velit. Suspendisse potenti. Donec mattis, pede vel pharetra blandit, magna ligula faucibus eros, id euismod lacus dolor eget odio. Nam scelerisque. Donec non libero sed nulla mattis commodo. Ut sagittis. Donec nisi lectus, feugiat porttitor, tempor ac, tempor vitae, pede. Aenean vehicula velit eu tellus interdum rutrum. Maecenas commodo. Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>
-	</div>
-</div>
-
-</div><!-- End demo -->
-
-
-
-<div class="demo-description">
-<p>Click tabs to swap between content that is broken into logical sections.</p>
-</div><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/default.html
deleted file mode 100644
index 475109e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/default.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects - Toggle 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.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>
-	$(function() {
-		// run the currently selected effect
-		function runEffect() {
-			// get effect type from 
-			var selectedEffect = $( "#effectTypes" ).val();
-			
-			// most effect types need no options passed by default
-			var options = {};
-			// 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 );
-		};
-		
-		// set effect from select menu value
-		$( "#button" ).click(function() {
-			runEffect();
-			return false;
-		});
-	});
-	</script>
-</head>
-<body>
-
-<div class="demo">
-
-<div class="toggler">
-	<div id="effect" class="ui-widget-content ui-corner-all">
-		<h3 class="ui-widget-header ui-corner-all">Toggle</h3>
-		<p>
-			Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
-		</p>
-	</div>
-</div>
-
-<select name="effects" id="effectTypes">
-	<option value="blind">Blind</option>
-	<option value="bounce">Bounce</option>
-	<option value="clip">Clip</option>
-	<option value="drop">Drop</option>
-	<option value="explode">Explode</option>
-	<option value="fold">Fold</option>
-	<option value="highlight">Highlight</option>
-	<option value="puff">Puff</option>
-	<option value="pulsate">Pulsate</option>
-	<option value="scale">Scale</option>
-	<option value="shake">Shake</option>
-	<option value="size">Size</option>
-	<option value="slide">Slide</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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/default.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/default.html
deleted file mode 100644
index ed3eb51..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/default.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects - toggleClass 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 {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>
-	$(function() {
-		$( "#button" ).click(function() {
-			$( "#effect" ).toggleClass( "newClass", 1000 );
-			return false;
-		});
-	});
-	</script>
-</head>
-<body>
-
-<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. 
-	</div>
-</div>
-
-<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><!-- End demo-description -->
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/index.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/index.html
deleted file mode 100644
index f5bd6a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/index.html
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>jQuery UI Effects Demos</title>
-	<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>
-	</ul>
-</div>
-
-</body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/accordion.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/accordion.html
deleted file mode 100644
index 2b82be2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/accordion.html
+++ /dev/null
@@ -1,1017 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Accordion</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>Make the selected elements Accordion widgets. Semantic requirements:</p>
-<p>The markup of your accordion container needs pairs of headers and content panels:</p>
-<pre>&lt;div id=&quot;accordion&quot;&gt;
-    &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;First header&lt;/a&gt;&lt;/h3&gt;
-    &lt;div&gt;First content&lt;/div&gt;
-    &lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Second header&lt;/a&gt;&lt;/h3&gt;
-    &lt;div&gt;Second content&lt;/div&gt;
-&lt;/div&gt;</pre>
-<p>If you use a different element for the header, specify the header-option with an appropriate selector, eg. header: 'a.header'. The content element must be always next to its header.</p>
-<p>If you have links inside the accordion content and use a-elements as headers, add a class to them and use that as the header, eg. header: 'a.header'.</p>
-<p>Use activate(Number) to change the active content programmatically.</p>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/API/1.8/Accordion?section=1" title="Edit section: NOTE: If you want multiple sections open at once, don't use an accordion">edit</a>]</div><a name="NOTE:_If_you_want_multiple_sections_open_at_once.2C_don.27t_use_an_accordion"></a><h4>NOTE: If you want multiple sections open at once, don't use an accordion</h4>
-<p>An accordion doesn't allow more than one content panel to be open at the same time, and it takes a lot of effort to do that. If you are looking for a widget that allows more than one content panel to be open, don't use this. Usually it can be written with a few lines of jQuery instead, something like this:</p>
-<pre>jQuery(document).ready(function(){
-	$('.accordion .head').click(function() {
-		$(this).next().toggle();
-		return false;
-	}).next().hide();
-});</pre>
-<p>Or animated:</p>
-<pre>jQuery(document).ready(function(){
-	$('.accordion .head').click(function() {
-		$(this).next().toggle('slow');
-		return false;
-	}).next().hide();
-});</pre>
-    </div>
-    <div id="overview-dependencies">
-        <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>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="310">
-A simple jQuery UI Accordion.<br />
-</p>
-<pre>$(&quot;#accordion&quot;).accordion();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#accordion&quot;).accordion();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;accordion&quot;&gt;
-	&lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 1&lt;/a&gt;&lt;/h3&gt;
-	&lt;div&gt;
-		&lt;p&gt;
-		Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer
-		ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit
-		amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut
-		odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate.
-		&lt;/p&gt;
-	&lt;/div&gt;
-	&lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 2&lt;/a&gt;&lt;/h3&gt;
-	&lt;div&gt;
-		&lt;p&gt;
-		Sed non urna. Donec et ante. Phasellus eu ligula. Vestibulum sit amet
-		purus. Vivamus hendrerit, dolor at aliquet laoreet, mauris turpis porttitor
-		velit, faucibus interdum tellus libero ac justo. Vivamus non quam. In
-		suscipit faucibus urna.
-		&lt;/p&gt;
-	&lt;/div&gt;
-	&lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 3&lt;/a&gt;&lt;/h3&gt;
-	&lt;div&gt;
-		&lt;p&gt;
-		Nam enim risus, molestie et, porta ac, aliquam ac, risus. Quisque lobortis.
-		Phasellus pellentesque purus in massa. Aenean in pede. Phasellus ac libero
-		ac tellus pellentesque semper. Sed ac felis. Sed commodo, magna quis
-		lacinia ornare, quam ante aliquam nisi, eu iaculis leo purus venenatis dui.
-		&lt;/p&gt;
-		&lt;ul&gt;
-			&lt;li&gt;List item one&lt;/li&gt;
-			&lt;li&gt;List item two&lt;/li&gt;
-			&lt;li&gt;List item three&lt;/li&gt;
-		&lt;/ul&gt;
-	&lt;/div&gt;
-	&lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 4&lt;/a&gt;&lt;/h3&gt;
-	&lt;div&gt;
-		&lt;p&gt;
-		Cras dictum. Pellentesque habitant morbi tristique senectus et netus
-		et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in
-		faucibus orci luctus et ultrices posuere cubilia Curae; Aenean lacinia
-		mauris vel est.
-		&lt;/p&gt;
-		&lt;p&gt;
-		Suspendisse eu nisl. Nullam ut libero. Integer dignissim consequat lectus.
-		Class aptent taciti sociosqu ad litora torquent per conubia nostra, per
-		inceptos himenaeos.
-		&lt;/p&gt;
-	&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the accordion. Can be set when initialising (first creating) the accordion.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).accordion( "option", "disabled" );
-//setter
-$( ".selector" ).accordion( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-active">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-active">active</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, Element, jQuery, Boolean, Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">first child</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Selector for the active element. Set to false to display none at start. Needs <code>collapsible: true</code>.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>active</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ active: 2 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>active</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var active = $( ".selector" ).accordion( "option", "active" );
-//setter
-$( ".selector" ).accordion( "option", "active", 2 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-animated">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-animated">animated</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean, String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'slide'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Choose your favorite animation, or disable them (set to false). In addition to the default, 'bounceslide' and all defined easing methods are supported ('bounceslide' requires UI Effects Core).</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>animated</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ animated: 'bounceslide' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>animated</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var animated = $( ".selector" ).accordion( "option", "animated" );
-//setter
-$( ".selector" ).accordion( "option", "animated", 'bounceslide' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-autoHeight">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-autoHeight">autoHeight</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>If set, the highest content part is used as height reference for all other parts. Provides more consistent animations.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>autoHeight</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ autoHeight: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>autoHeight</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var autoHeight = $( ".selector" ).accordion( "option", "autoHeight" );
-//setter
-$( ".selector" ).accordion( "option", "autoHeight", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-clearStyle">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-clearStyle">clearStyle</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, clears height and overflow styles after finishing animations. This enables accordions to work with dynamic content. Won't work together with autoHeight.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>clearStyle</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ clearStyle: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>clearStyle</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var clearStyle = $( ".selector" ).accordion( "option", "clearStyle" );
-//setter
-$( ".selector" ).accordion( "option", "clearStyle", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-collapsible">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-collapsible">collapsible</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>Whether all the sections can be closed at once. Allows collapsing the active section by the triggering event (click is the default).</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>collapsible</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ collapsible: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>collapsible</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var collapsible = $( ".selector" ).accordion( "option", "collapsible" );
-//setter
-$( ".selector" ).accordion( "option", "collapsible", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-event">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-event">event</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'click'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The event on which to trigger the accordion.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>event</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ event: 'mouseover' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>event</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var event = $( ".selector" ).accordion( "option", "event" );
-//setter
-$( ".selector" ).accordion( "option", "event", 'mouseover' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-fillSpace">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-fillSpace">fillSpace</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, the accordion completely fills the height of the parent element. Overrides autoheight.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>fillSpace</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ fillSpace: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>fillSpace</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var fillSpace = $( ".selector" ).accordion( "option", "fillSpace" );
-//setter
-$( ".selector" ).accordion( "option", "fillSpace", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-header">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-header">header</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, jQuery</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'&gt; li &gt;&nbsp;:first-child,&gt;&nbsp;:not(li):even'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Selector for the header element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>header</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ header: 'h3' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>header</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var header = $( ".selector" ).accordion( "option", "header" );
-//setter
-$( ".selector" ).accordion( "option", "header", 'h3' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-icons">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-icons">icons</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">{ 'header': 'ui-icon-triangle-1-e', 'headerSelected': 'ui-icon-triangle-1-s' }</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Icons to use for headers. Icons may be specified for 'header' and 'headerSelected', and we recommend using the icons native to the jQuery UI CSS Framework manipulated by <a href="http://www.themeroller.com" class="external text" title="http://www.themeroller.com">jQuery UI ThemeRoller</a></p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>icons</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var icons = $( ".selector" ).accordion( "option", "icons" );
-//setter
-$( ".selector" ).accordion( "option", "icons", { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' } );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-navigation">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-navigation">navigation</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, looks for the anchor that matches location.href and activates it. Great for href-based state-saving. Use navigationFilter to implement your own matcher.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>navigation</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ navigation: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>navigation</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var navigation = $( ".selector" ).accordion( "option", "navigation" );
-//setter
-$( ".selector" ).accordion( "option", "navigation", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-navigationFilter">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-navigationFilter">navigationFilter</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Function</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default"> </dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Overwrite the default location.href-matching with your own matcher.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a accordion with the <code>navigationFilter</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).accordion({ navigationFilter: function(){ ... } });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>navigationFilter</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var navigationFilter = $( ".selector" ).accordion( "option", "navigationFilter" );
-//setter
-$( ".selector" ).accordion( "option", "navigationFilter", function(){ ... } );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;accordioncreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">accordionchange</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered every time the accordion changes. If the accordion is animated, the event will be triggered upon completion of the animation; otherwise, it is triggered immediately.
-</p>
-<pre>$('.ui-accordion').bind('accordionchange', function(event, ui) {
-  ui.newHeader // jQuery object, activated header
-  ui.oldHeader // jQuery object, previous header
-  ui.newContent // jQuery object, activated content
-  ui.oldContent // jQuery object, previous content
-});</pre></p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>change</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).accordion({
-   change: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>change</code> event by type: <code>accordionchange</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;accordionchange&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-<p>
-<li class="event" id="event-changestart">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-changestart">changestart</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">accordionchangestart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered every time the accordion starts to change.
-</p>
-<pre>$('.ui-accordion').bind('accordionchangestart', function(event, ui) {
-  ui.newHeader // jQuery object, activated header
-  ui.oldHeader // jQuery object, previous header
-  ui.newContent // jQuery object, activated content
-  ui.oldContent // jQuery object, previous content
-});</pre></p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>changestart</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).accordion({
-   changestart: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>changestart</code> event by type: <code>accordionchangestart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;accordionchangestart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.accordion( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the accordion functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-<p>
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.accordion( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the accordion.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.accordion( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the accordion.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any accordion option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.accordion( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-accordion element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-activate">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-activate">activate</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.accordion( "activate"
-
-, index
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Activate a content part of the Accordion programmatically. The index can be a zero-indexed number to match the position of the header to close or a Selector matching an element. Pass <code>false</code> to close all (only possible with <code>collapsible:true</code>).</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-resize">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-resize">resize</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.accordion( "resize"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Recompute heights of the accordion contents when using the fillSpace option and the container height changed. For example, when the container is a resizable, this method should be called by its resize-event.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Accordion plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.accordion.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class="<strong>ui-accordion</strong> ui-widget ui-helper-reset"&gt;<br />
-&nbsp;&nbsp;&lt;h3 class="<strong>ui-accordion-header</strong> ui-helper-reset ui-state-active ui-corner-top"&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class="ui-icon ui-icon-triangle-1-s"/&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="#"&gt;Section 1&lt;/a&gt;<br />
-&nbsp;&nbsp;&lt;/h3&gt;<br />
-&nbsp;&nbsp;&lt;div class="<strong>ui-accordion-content</strong> ui-helper-reset ui-widget-content ui-corner-bottom <strong>ui-accordion-content-active</strong>"&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;Section 1 content<br />
-&nbsp;&nbsp;&lt;/div&gt;<br />
-&nbsp;&nbsp;&lt;h3 class="<strong>ui-accordion-header</strong> ui-helper-reset ui-state-default ui-corner-all"&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class="ui-icon ui-icon-triangle-1-e"/&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="#"&gt;Section 2&lt;/a&gt;<br />
-&nbsp;&nbsp;&lt;/h3&gt;<br />
-&nbsp;&nbsp;&lt;div class="<strong>ui-accordion-content</strong> ui-helper-reset ui-widget-content ui-corner-bottom"&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;Section 2 content<br />
-&nbsp;&nbsp;&lt;/div&gt;<br />
-&nbsp;&nbsp;&lt;h3 class="<strong>ui-accordion-header</strong> ui-helper-reset ui-state-default ui-corner-all"&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class="ui-icon ui-icon-triangle-1-e"/&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;a href="#"&gt;Section 3&lt;/a&gt;<br />
-&nbsp;&nbsp;&lt;/h3&gt;<br />
-&nbsp;&nbsp;&lt;div class="<strong>ui-accordion-content</strong> ui-helper-reset ui-widget-content ui-corner-bottom"&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;Section 3 content<br />
-&nbsp;&nbsp;&lt;/div&gt;<br />
-&lt;/div&gt;<br />
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the accordion plugin, not markup you should use to create a accordion. The only markup needed for that is <br />&lt;div&gt;<br />
-&#160;&#160;&#160;&lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 1&lt;/a&gt;&lt;/h3&gt;<br />
-&#160;&#160;&#160;&lt;div&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;Section 1 content<br />
-&#160;&#160;&#160;&lt;/div&gt;<br />
-&#160;&#160;&#160;&lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 2&lt;/a&gt;&lt;/h3&gt;<br />
-&#160;&#160;&#160;&lt;div&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;Section 2 content<br />
-&#160;&#160;&#160;&lt;/div&gt;<br />
-&#160;&#160;&#160;&lt;h3&gt;&lt;a href=&quot;#&quot;&gt;Section 3&lt;/a&gt;&lt;/h3&gt;<br />
-&#160;&#160;&#160;&lt;div&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;Section 3 content<br />
-&#160;&#160;&#160;&lt;/div&gt;<br />
-&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 38033 bytes
-Post-expand include size: 63819 bytes
-Template argument size: 35523 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3773-1!1!0!!en!2 and timestamp 20110315194429 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/addClass.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/addClass.html
deleted file mode 100644
index 5e0864c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/addClass.html
+++ /dev/null
@@ -1,109 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI addClass</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/addClass?section=1" title="Edit section: addClass( class, [duration] )">edit</a>]</div><a name="addClass.28_class.2C_.5Bduration.5D_.29"></a><h3>addClass( class, <span class="optional">[</span>duration<span class="optional">]</span> )</h3>
-<p>Adds the specified class to each of the set of matched elements with an optional transition between the states.</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="100">
-Adds the class 'selected' to the matched elements with a one second transition.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">addClass</strong>(&quot;selected&quot;, 1000);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  p { cursor: pointer; font-size: 1.2em; }
-  .selected { color:red; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">addClass</strong>(&quot;selected&quot;, 1000);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  &lt;p&gt;Click me to add a 'selected' class.&lt;/p&gt;
-&lt;p&gt;Click me to add a 'selected' class.&lt;/p&gt;
-&lt;p&gt;Click me to add a 'selected' class.&lt;/p&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-class">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-class">class</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>One CSS class to add to the elements.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-duration">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-duration">duration</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </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>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-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 20110315175300 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/animate.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/animate.html
deleted file mode 100644
index 35f6b8c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/animate.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<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>
-</li><li> <b>borderLeftColor</b>
-</li><li> <b>borderRightColor</b>
-</li><li> <b>borderTopColor</b>
-</li><li> <b>color</b>
-</li><li> <b>outlineColor</b>
-</li></ul>
-<p>with one of the following combinations:
-</p>
-<ul><li> <b>hex (#FF0000)</b>
-</li><li> <b>rgb (rgb(255,255,255))</b>
-</li><li> <b>names ("black")</b>
-</li></ul>
-<p><br />
-</p><p><div class="options list"><table class="options examples" cellspacing="0"><thead><tr><th>Name</th><th>Type</th></tr></thead><tbody>
-</table><b class="options">Example:</b><table class="options examples" cellspacing="0"><thead><tr><th>Name</th><th>Type</th></tr></thead><tbody>
-<div class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<div id="demo" class="tabs-container" rel="125">
-A simple color animation.<br />
-</p>
-<pre>$(&quot;.block&quot;).<a href="http://docs.jquery.com/Events/toggle" title="Events/toggle">toggle</a>(function() {
-    $(this).<a href="http://docs.jquery.com/Effects/animate" title="Effects/animate">animate</a>({ backgroundColor: &quot;black&quot; }, 1000);
-},function() {
-    $(this).<a href="http://docs.jquery.com/Effects/animate" title="Effects/animate">animate</a>({ backgroundColor: &quot;#68BFEF&quot; }, 500);
-});
-
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
-                    "<a href="http://www.w3.org/TR/html4/loose.dtd" class="external free" title="http://www.w3.org/TR/html4/loose.dtd">http://www.w3.org/TR/html4/loose.dtd</a>"&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;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>"&gt;&lt;/script&gt;
-  
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-
-  &lt;script&gt;
-  $(document).ready(function(){
-    $(&quot;.block&quot;).<a href="http://docs.jquery.com/Events/toggle" title="Events/toggle">toggle</a>(function() {
-    $(this).<a href="http://docs.jquery.com/Effects/animate" title="Effects/animate">animate</a>({ backgroundColor: &quot;black&quot; }, 1000);
-},function() {
-    $(this).<a href="http://docs.jquery.com/Effects/animate" title="Effects/animate">animate</a>({ backgroundColor: &quot;#68BFEF&quot; }, 500);
-});
-
-  });
-  &lt;/script&gt;
-  &lt;style&gt;
-  .block { 
-    color: white;
-    background-color: #68BFEF;
-    width: 150px; 
-    height: 70px;
-    margin: 10px; 
-  }
-  &lt;/style&gt;
-&lt;/head&gt;
-&lt;body&gt;
-  &lt;div class=&quot;block&quot;&gt; Click me&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-</p><p></tbody></table></div>
-</p><!-- 
-Pre-expand include size: 3730 bytes
-Post-expand include size: 5382 bytes
-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 20110315180048 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/autocomplete.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/autocomplete.html
deleted file mode 100644
index 3f8bb4a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/autocomplete.html
+++ /dev/null
@@ -1,833 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Autocomplete</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <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>
-        <ul>
-<li>UI Core</li>
-<li>UI Widget</li>
-<li>UI Position</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="300">
-A simple jQuery UI Autocomplete.<br />
-</p>
-<pre>$(&quot;input#autocomplete&quot;).autocomplete({
-    source: [&quot;c++&quot;, &quot;java&quot;, &quot;php&quot;, &quot;coldfusion&quot;, &quot;javascript&quot;, &quot;asp&quot;, &quot;ruby&quot;]
-});
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;input#autocomplete&quot;).autocomplete({
-    source: [&quot;c++&quot;, &quot;java&quot;, &quot;php&quot;, &quot;coldfusion&quot;, &quot;javascript&quot;, &quot;asp&quot;, &quot;ruby&quot;]
-});
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;input id=&quot;autocomplete&quot; /&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the autocomplete. Can be set when initialising (first creating) the autocomplete.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a autocomplete with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).autocomplete({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).autocomplete( "option", "disabled" );
-//setter
-$( ".selector" ).autocomplete( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</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-delay">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-delay">delay</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">300</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The delay in milliseconds the Autocomplete waits after a keystroke to activate itself. A zero-delay makes sense for local data (more responsive), but can produce a lot of load for remote data, while being less responsive.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a autocomplete with the <code>delay</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).autocomplete({ delay: 0 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>delay</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var delay = $( ".selector" ).autocomplete( "option", "delay" );
-//setter
-$( ".selector" ).autocomplete( "option", "delay", 0 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-minLength">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-minLength">minLength</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The minimum number of characters a user has to type before the Autocomplete activates. Zero is useful for local data with just a few items. Should be increased when there are a lot of items, where a single character would match a few thousand items.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a autocomplete with the <code>minLength</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).autocomplete({ minLength: 0 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>minLength</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var minLength = $( ".selector" ).autocomplete( "option", "minLength" );
-//setter
-$( ".selector" ).autocomplete( "option", "minLength", 0 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</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: &quot;left top&quot;, at: &quot;left bottom&quot;, collision: &quot;none&quot; }</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 : &quot;right top&quot;, at: &quot;right bottom&quot; } });</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 : &quot;right top&quot;, at: &quot;right bottom&quot; } );</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>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Array, Callback</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">none, must be specified</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Defines the data to use, must be specified. See Overview section for more details, and look at the various demos.
-</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a autocomplete with the <code>source</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).autocomplete({ source: [&quot;c++&quot;, &quot;java&quot;, &quot;php&quot;, &quot;coldfusion&quot;, &quot;javascript&quot;, &quot;asp&quot;, &quot;ruby&quot;] });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>source</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var source = $( ".selector" ).autocomplete( "option", "source" );
-//setter
-$( ".selector" ).autocomplete( "option", "source", [&quot;c++&quot;, &quot;java&quot;, &quot;php&quot;, &quot;coldfusion&quot;, &quot;javascript&quot;, &quot;asp&quot;, &quot;ruby&quot;] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;autocompletecreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">autocompletesearch</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>Before a request (source-option) is started, after minLength and delay are met. Can be canceled (return false), then no request will be started and no items suggested.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>search</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).autocomplete({
-   search: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>search</code> event by type: <code>autocompletesearch</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;autocompletesearch&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-open">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-open">open</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">autocompleteopen</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>Triggered when the suggestion menu is opened.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>open</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).autocomplete({
-   open: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>open</code> event by type: <code>autocompleteopen</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;autocompleteopen&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-focus">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-focus">focus</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">autocompletefocus</dd>
-    </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, 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>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>focus</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).autocomplete({
-   focus: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>focus</code> event by type: <code>autocompletefocus</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;autocompletefocus&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">autocompleteselect</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>Triggered when an item is selected from the menu; ui.item refers to the selected item. The default action of select is to replace the text field's value with the value of the selected item. Canceling this event prevents the value from being updated, but does not prevent the menu from closing.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>select</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).autocomplete({
-   select: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>select</code> event by type: <code>autocompleteselect</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;autocompleteselect&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-close">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-close">close</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">autocompleteclose</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>When the list is hidden - doesn't have to occur together with a change.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>close</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).autocomplete({
-   close: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>close</code> event by type: <code>autocompleteclose</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;autocompleteclose&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">autocompletechange</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>After an item was selected; ui.item refers to the selected item. Always triggered after the close event.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>change</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).autocomplete({
-   change: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>change</code> event by type: <code>autocompletechange</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;autocompletechange&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.autocomplete( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the autocomplete functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.autocomplete( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the autocomplete.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.autocomplete( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the autocomplete.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any autocomplete option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.autocomplete( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-autocomplete element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-search">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-search">search</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.autocomplete( "search"
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Triggers a search event, which, when data is available, then will display the suggestions; can be used by a selectbox-like button to open the suggestions when clicked. If no value argument is specified, the current input's value is used. Can be called with an empty string and minLength: 0 to display all items.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-close">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-close">close</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.autocomplete( "close"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Close the Autocomplete menu. Useful in combination with the search method, to close the open menu.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Autocomplete plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.autocomplete.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;input class=&quot;ui-autocomplete-input&quot;/&gt;<br />
-&lt;ul class=&quot;ui-autocomplete ui-menu ui-widget ui-widget-content ui-corner-all&quot;&gt;<br />
-&nbsp;&nbsp;&lt;li class=&quot;ui-menu-item&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;a class=&quot;ui-corner-all&quot;&gt;item 1&lt;/a&gt;<br />
-&nbsp;&nbsp;&lt;/li&gt;<br />
-&nbsp;&nbsp;&lt;li class=&quot;ui-menu-item&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;a class=&quot;ui-corner-all&quot;&gt;item 2&lt;/a&gt;<br />
-&nbsp;&nbsp;&lt;/li&gt;<br />
-&nbsp;&nbsp;&lt;li class=&quot;ui-menu-item&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&lt;a class=&quot;ui-corner-all&quot;&gt;item 3&lt;/a&gt;<br />
-&nbsp;&nbsp;&lt;/li&gt;<br />
-&lt;/ul&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the autocomplete plugin, not markup you should use to create a autocomplete. The only markup needed for that is &lt;input/&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 34461 bytes
-Post-expand include size: 58313 bytes
-Template argument size: 31985 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3766-1!1!0!!en!2 and timestamp 20110315194630 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/button.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/button.html
deleted file mode 100644
index 26f5465..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/button.html
+++ /dev/null
@@ -1,500 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Button</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <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>
-        <ul>
-<li>UI Core</li>
-<li>UI Widget</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="300">
-A simple jQuery UI Button.<br />
-</p>
-<pre>$(&quot;button&quot;).button();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;button&quot;).button();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;button&gt;Button label&lt;/button&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-<div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<div id="demo" class="tabs-container" rel="300">
-A simple jQuery UI Button.<br />
-</p>
-<pre>$(&quot;#radio&quot;).buttonset();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#radio&quot;).buttonset();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;radio&quot;&gt;
-	&lt;input type=&quot;radio&quot; id=&quot;radio1&quot; name=&quot;radio&quot; /&gt;&lt;label for=&quot;radio1&quot;&gt;Choice 1&lt;/label&gt;
-	&lt;input type=&quot;radio&quot; id=&quot;radio2&quot; name=&quot;radio&quot; checked=&quot;checked&quot; /&gt;&lt;label for=&quot;radio2&quot;&gt;Choice 2&lt;/label&gt;
-	&lt;input type=&quot;radio&quot; id=&quot;radio3&quot; name=&quot;radio&quot; /&gt;&lt;label for=&quot;radio3&quot;&gt;Choice 3&lt;/label&gt;
-&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the button. Can be set when initialising (first creating) the button.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a button with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).button({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).button( "option", "disabled" );
-//setter
-$( ".selector" ).button( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-text">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-text">text</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>Whether to show any text - when set to false (display no text), icons (see icons option) must be enabled, otherwise it'll be ignored.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a button with the <code>text</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).button({ text: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>text</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var text = $( ".selector" ).button( "option", "text" );
-//setter
-$( ".selector" ).button( "option", "text", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-icons">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-icons">icons</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Options</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">{ primary: null, secondary: null }</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>icons</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var icons = $( ".selector" ).button( "option", "icons" );
-//setter
-$( ".selector" ).button( "option", "icons", {primary:'ui-icon-gear',secondary:'ui-icon-triangle-1-s'} );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-label">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-label">label</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">HTML content of the button, or value attribute</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Text to show on the button. When not specified (null), the element's html content is used, or its value attribute when it's an input element of type submit or reset; or the html content of the associated label element if its an input of type radio or checkbox</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a button with the <code>label</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).button({ label: "custom label" });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>label</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var label = $( ".selector" ).button( "option", "label" );
-//setter
-$( ".selector" ).button( "option", "label", "custom label" );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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">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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;buttoncreate&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-</p>
-<p>There are no events for this plugin.</p>
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.button( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the button functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-<p>
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.button( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the button.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.button( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the button.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any button option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.button( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-button element.</p>
-  </div>
-</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">.button( "refresh"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Refreshes the visual state of the button. Useful for updating button state after the native element's checked or disabled state is changed programatically.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Button plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.button.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;button class=&quot;<strong>ui-button ui-button-text-only</strong> ui-widget ui-state-default ui-corner-all&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;span class=&quot;<strong>ui-button-text</strong>&quot;&gt;Button Label&lt;/span&gt;<br />&lt;/button&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the button plugin, not markup you should use to create a button. The only markup needed for that is &lt;button&gt;Button Label&lt;/button&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-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 20110315194630 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/datepicker.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/datepicker.html
deleted file mode 100644
index fc37314..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/datepicker.html
+++ /dev/null
@@ -1,2570 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Datepicker</h1>
-  <div id="overview">
-    <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 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>
- <li>page up/down - previous/next month</li>
- <li>ctrl+page up/down - previous/next year</li>
- <li>ctrl+home - current month or open when closed</li>
- <li>ctrl+left/right - previous/next day</li>
- <li>ctrl+up/down - previous/next week</li>
- <li>enter - accept the selected date</li>
- <li>ctrl+end - close and erase the date</li>
- <li>escape - close the datepicker without selection</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=1" title="Edit section: Utility functions">edit</a>]</div><a name="Utility_functions"></a><h3 id="utility-functions">Utility functions</h3>
-<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/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.
-	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
-	an object with the following attributes: <code>closeText</code>, <code>prevText</code>,
-	<code>nextText</code>, <code>currentText</code>, <code>monthNames</code>,
-	<code>monthNamesShort</code>, <code>dayNames</code>, <code>dayNamesShort</code>, 
-	<code>dayNamesMin</code>, <code>weekHeader</code>, <code>dateFormat</code>,
-	<code>firstDay</code>, <code>isRTL</code>, <code>showMonthAfterYear</code>,
-	and <code>yearSuffix</code>.</p>
-<p>You can restore the default localizations with:</p>
-<p><code>$.datepicker.setDefaults($.datepicker.regional['']);</code>
-</p>
-<p>And can then override an individual datepicker for a specific locale:</p>
-<p><code>$(selector).datepicker($.datepicker.regional['fr']);</code>
-</p>
-The localization files are also available in the UI svn: <a href="http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/" class="external free" title="http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/">http://jquery-ui.googlecode.com/svn/trunk/ui/i18n/</a>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>UI Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="220">
-A simple jQuery UI Datepicker.<br />
-</p>
-<pre>$(&quot;#datepicker&quot;).datepicker();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#datepicker&quot;).datepicker();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div type=&quot;text&quot; id=&quot;datepicker&quot;&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the datepicker. Can be set when initialising (first creating) the datepicker.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).datepicker( "option", "disabled" );
-//setter
-$( ".selector" ).datepicker( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-altField">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-altField">altField</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, jQuery, Element</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">''</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The jQuery selector for another field that is to be updated with the selected date from the datepicker. Use the <code><a href="http://docs.jquery.com/UI/Datepicker#option-altFormat" title="UI/Datepicker">altFormat</a></code> setting to change the format of the date within this field. Leave as blank for no alternate field.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>altField</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ altField: '#actualDate' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>altField</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var altField = $( ".selector" ).datepicker( "option", "altField" );
-//setter
-$( ".selector" ).datepicker( "option", "altField", '#actualDate' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-altFormat">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-altFormat">altFormat</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">''</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code> to be used for the <code><a href="http://docs.jquery.com/UI/Datepicker#option-altField" title="UI/Datepicker">altField</a></code> option. This allows one date format to be shown to the user for selection purposes, while a different format is actually sent behind the scenes. For a full list of the possible formats see the <a href="http://docs.jquery.com/UI/Datepicker/formatDate" title="UI/Datepicker/formatDate">formatDate</a> function</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>altFormat</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ altFormat: 'yy-mm-dd' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>altFormat</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var altFormat = $( ".selector" ).datepicker( "option", "altFormat" );
-//setter
-$( ".selector" ).datepicker( "option", "altFormat", 'yy-mm-dd' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-appendText">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-appendText">appendText</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">''</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The text to display after each date field, e.g. to show the required format.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>appendText</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ appendText: '(yyyy-mm-dd)' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>appendText</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var appendText = $( ".selector" ).datepicker( "option", "appendText" );
-//setter
-$( ".selector" ).datepicker( "option", "appendText", '(yyyy-mm-dd)' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-autoSize">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-autoSize">autoSize</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>Set to true to automatically resize the input field to accomodate dates in the current <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code>.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>autoSize</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ autoSize: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>autoSize</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var autoSize = $( ".selector" ).datepicker( "option", "autoSize" );
-//setter
-$( ".selector" ).datepicker( "option", "autoSize", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-buttonImage">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-buttonImage">buttonImage</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">''</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The URL for the popup button image. If set, <code><a href="http://docs.jquery.com/UI/Datepicker#option-buttonText" title="UI/Datepicker">buttonText</a></code> becomes the <i>alt</i> value and is not directly displayed.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>buttonImage</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ buttonImage: '/images/datepicker.gif' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>buttonImage</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var buttonImage = $( ".selector" ).datepicker( "option", "buttonImage" );
-//setter
-$( ".selector" ).datepicker( "option", "buttonImage", '/images/datepicker.gif' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-buttonImageOnly">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-buttonImageOnly">buttonImageOnly</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>Set to true to place an image after the field to use as the trigger without it appearing on a button.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>buttonImageOnly</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ buttonImageOnly: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>buttonImageOnly</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var buttonImageOnly = $( ".selector" ).datepicker( "option", "buttonImageOnly" );
-//setter
-$( ".selector" ).datepicker( "option", "buttonImageOnly", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-buttonText">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-buttonText">buttonText</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'...'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The text to display on the trigger button. Use in conjunction with <code><a href="http://docs.jquery.com/UI/Datepicker#option-showOn" title="UI/Datepicker">showOn</a></code> equal to 'button' or 'both'.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>buttonText</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ buttonText: 'Choose' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>buttonText</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var buttonText = $( ".selector" ).datepicker( "option", "buttonText" );
-//setter
-$( ".selector" ).datepicker( "option", "buttonText", 'Choose' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-calculateWeek">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-calculateWeek">calculateWeek</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Function</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">$.datepicker.iso8601Week</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A function to calculate the week of the year for a given date. The default implementation uses the ISO 8601 definition: weeks start on a Monday; the first week of the year contains the first Thursday of the year.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>calculateWeek</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ calculateWeek: myWeekCalc });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>calculateWeek</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var calculateWeek = $( ".selector" ).datepicker( "option", "calculateWeek" );
-//setter
-$( ".selector" ).datepicker( "option", "calculateWeek", myWeekCalc );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-changeMonth">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-changeMonth">changeMonth</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>Allows you to change the month by selecting from a drop-down list. You can enable this feature by setting the attribute to true.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>changeMonth</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ changeMonth: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>changeMonth</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var changeMonth = $( ".selector" ).datepicker( "option", "changeMonth" );
-//setter
-$( ".selector" ).datepicker( "option", "changeMonth", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-changeYear">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-changeYear">changeYear</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>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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>changeYear</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ changeYear: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>changeYear</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var changeYear = $( ".selector" ).datepicker( "option", "changeYear" );
-//setter
-$( ".selector" ).datepicker( "option", "changeYear", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-closeText">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-closeText">closeText</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'Done'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The text to display for the close link. This attribute is one of the regionalisation attributes. Use the <code><a href="http://docs.jquery.com/UI/Datepicker#option-showButtonPanel" title="UI/Datepicker">showButtonPanel</a></code> to display this button.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>closeText</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ closeText: 'X' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>closeText</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var closeText = $( ".selector" ).datepicker( "option", "closeText" );
-//setter
-$( ".selector" ).datepicker( "option", "closeText", 'X' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-constrainInput">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-constrainInput">constrainInput</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>When true entry in the input field is constrained to those characters allowed by the current <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code>.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>constrainInput</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ constrainInput: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>constrainInput</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var constrainInput = $( ".selector" ).datepicker( "option", "constrainInput" );
-//setter
-$( ".selector" ).datepicker( "option", "constrainInput", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-currentText">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-currentText">currentText</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'Today'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The text to display for the current day link. This attribute is one of the regionalisation attributes. Use the <code><a href="http://docs.jquery.com/UI/Datepicker#option-showButtonPanel" title="UI/Datepicker">showButtonPanel</a></code> to display this button.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>currentText</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ currentText: 'Now' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>currentText</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var currentText = $( ".selector" ).datepicker( "option", "currentText" );
-//setter
-$( ".selector" ).datepicker( "option", "currentText", 'Now' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-dateFormat">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-dateFormat">dateFormat</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'mm/dd/yy'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The format for parsed and displayed dates. This attribute is one of the regionalisation attributes. For a full list of the possible formats see the <code><a href="http://docs.jquery.com/UI/Datepicker/formatDate" title="UI/Datepicker/formatDate">formatDate</a></code> function.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>dateFormat</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ dateFormat: 'yy-mm-dd' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>dateFormat</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var dateFormat = $( ".selector" ).datepicker( "option", "dateFormat" );
-//setter
-$( ".selector" ).datepicker( "option", "dateFormat", 'yy-mm-dd' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-dayNames">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-dayNames">dayNames</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">['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The list of long day names, starting from Sunday, for use as requested via the <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code> setting. They also appear as popup hints when hovering over the corresponding column headings. This attribute is one of the regionalisation attributes.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>dayNames</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var dayNames = $( ".selector" ).datepicker( "option", "dayNames" );
-//setter
-$( ".selector" ).datepicker( "option", "dayNames", ['Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi'] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-dayNamesMin">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-dayNamesMin">dayNamesMin</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">['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The list of minimised day names, starting from Sunday, for use as column headers within the datepicker. This attribute is one of the regionalisation attributes.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>dayNamesMin</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var dayNamesMin = $( ".selector" ).datepicker( "option", "dayNamesMin" );
-//setter
-$( ".selector" ).datepicker( "option", "dayNamesMin", ['Di', 'Lu', 'Ma', 'Me', 'Je', 'Ve', 'Sa'] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-dayNamesShort">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-dayNamesShort">dayNamesShort</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">['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The list of abbreviated day names, starting from Sunday, 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>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>dayNamesShort</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var dayNamesShort = $( ".selector" ).datepicker( "option", "dayNamesShort" );
-//setter
-$( ".selector" ).datepicker( "option", "dayNamesShort", ['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam'] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-defaultDate">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-defaultDate">defaultDate</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Date, Number, String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set the date to highlight on first opening if the field is blank. Specify either an actual date via a Date object or as a string in the current <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code>, or a number of days from today (e.g. +7) or a string of values and periods ('y' for years, 'm' for months, 'w' for weeks, 'd' for days, e.g. '+1m +7d'), or null for today.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>defaultDate</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ defaultDate: +7 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>defaultDate</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var defaultDate = $( ".selector" ).datepicker( "option", "defaultDate" );
-//setter
-$( ".selector" ).datepicker( "option", "defaultDate", +7 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-duration">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-duration">duration</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'normal'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Control the speed at which the datepicker appears, it may be a time in milliseconds or a string representing one of the three predefined speeds ("slow", "normal", "fast").</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>duration</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ duration: 'slow' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>duration</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var duration = $( ".selector" ).datepicker( "option", "duration" );
-//setter
-$( ".selector" ).datepicker( "option", "duration", 'slow' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-firstDay">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-firstDay">firstDay</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set the first day of the week: Sunday is 0, Monday is 1, ... This attribute is one of the regionalisation attributes.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>firstDay</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ firstDay: 1 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>firstDay</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var firstDay = $( ".selector" ).datepicker( "option", "firstDay" );
-//setter
-$( ".selector" ).datepicker( "option", "firstDay", 1 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-gotoCurrent">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-gotoCurrent">gotoCurrent</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>When true the current day link moves to the currently selected date instead of today.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>gotoCurrent</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ gotoCurrent: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>gotoCurrent</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var gotoCurrent = $( ".selector" ).datepicker( "option", "gotoCurrent" );
-//setter
-$( ".selector" ).datepicker( "option", "gotoCurrent", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-hideIfNoPrevNext">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-hideIfNoPrevNext">hideIfNoPrevNext</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>Normally the previous and next links are disabled when not applicable (see <code><a href="http://docs.jquery.com/UI/Datepicker#option-minDate" title="UI/Datepicker">minDate</a></code>/<code><a href="http://docs.jquery.com/UI/Datepicker#option-maxDate" title="UI/Datepicker">maxDate</a></code>). You can hide them altogether by setting this attribute to true.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>hideIfNoPrevNext</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ hideIfNoPrevNext: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>hideIfNoPrevNext</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var hideIfNoPrevNext = $( ".selector" ).datepicker( "option", "hideIfNoPrevNext" );
-//setter
-$( ".selector" ).datepicker( "option", "hideIfNoPrevNext", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-isRTL">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-isRTL">isRTL</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>True if the current language is drawn from right to left. This attribute is one of the regionalisation attributes.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>isRTL</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ isRTL: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>isRTL</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var isRTL = $( ".selector" ).datepicker( "option", "isRTL" );
-//setter
-$( ".selector" ).datepicker( "option", "isRTL", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-maxDate">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-maxDate">maxDate</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Date, Number, String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set a maximum selectable date via a Date object or as a string in the current <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code>, or a number of days from today (e.g. +7) or a string of values and periods ('y' for years, 'm' for months, 'w' for weeks, 'd' for days, e.g. '+1m +1w'), or null for no limit.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>maxDate</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ maxDate: '+1m +1w' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>maxDate</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var maxDate = $( ".selector" ).datepicker( "option", "maxDate" );
-//setter
-$( ".selector" ).datepicker( "option", "maxDate", '+1m +1w' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-minDate">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-minDate">minDate</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Date, Number, String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set a minimum selectable date via a Date object or as a string in the current <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code>, or a number of days from today (e.g. +7) or a string of values and periods ('y' for years, 'm' for months, 'w' for weeks, 'd' for days, e.g. '-1y -1m'), or null for no limit.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>minDate</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var minDate = $( ".selector" ).datepicker( "option", "minDate" );
-//setter
-$( ".selector" ).datepicker( "option", "minDate", new Date(2007, 1 - 1, 1) );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-monthNames">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-monthNames">monthNames</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">['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>monthNames</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var monthNames = $( ".selector" ).datepicker( "option", "monthNames" );
-//setter
-$( ".selector" ).datepicker( "option", "monthNames", ['Januar','Februar','Marts','April','Maj','Juni','Juli','August','September','Oktober','November','December'] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-monthNamesShort">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-monthNamesShort">monthNamesShort</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">['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-    <dl class="option-examples-list">
-    
-<dt>
-  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>
-</dd>
-
-    
-<dt>
-  Get or set the <code>monthNamesShort</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var monthNamesShort = $( ".selector" ).datepicker( "option", "monthNamesShort" );
-//setter
-$( ".selector" ).datepicker( "option", "monthNamesShort", ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec'] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-navigationAsDateFormat">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-navigationAsDateFormat">navigationAsDateFormat</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>When true the <code><a href="http://docs.jquery.com/UI/Datepicker/formatDate" title="UI/Datepicker/formatDate">formatDate</a></code> function is applied to the <code><a href="http://docs.jquery.com/UI/Datepicker#option-prevText" title="UI/Datepicker">prevText</a></code>, <code><a href="http://docs.jquery.com/UI/Datepicker#option-nextText" title="UI/Datepicker">nextText</a></code>, and <code><a href="http://docs.jquery.com/UI/Datepicker#option-currentText" title="UI/Datepicker">currentText</a></code> values before display, allowing them to display the target month names for example.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>navigationAsDateFormat</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ navigationAsDateFormat: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>navigationAsDateFormat</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var navigationAsDateFormat = $( ".selector" ).datepicker( "option", "navigationAsDateFormat" );
-//setter
-$( ".selector" ).datepicker( "option", "navigationAsDateFormat", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-nextText">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-nextText">nextText</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'Next'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The text to display for the next month link. This attribute is one of the regionalisation attributes. With the standard ThemeRoller styling, this value is replaced by an icon.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>nextText</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ nextText: 'Later' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>nextText</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var nextText = $( ".selector" ).datepicker( "option", "nextText" );
-//setter
-$( ".selector" ).datepicker( "option", "nextText", 'Later' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-numberOfMonths">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-numberOfMonths">numberOfMonths</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number, Array</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set how many months to show at once. The value can be a straight integer, or can be a two-element array to define the number of rows and columns to display.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>numberOfMonths</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ numberOfMonths: [2, 3] });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>numberOfMonths</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var numberOfMonths = $( ".selector" ).datepicker( "option", "numberOfMonths" );
-//setter
-$( ".selector" ).datepicker( "option", "numberOfMonths", [2, 3] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-prevText">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-prevText">prevText</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'Prev'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The text to display for the previous month link. This attribute is one of the regionalisation attributes. With the standard ThemeRoller styling, this value is replaced by an icon.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>prevText</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ prevText: 'Earlier' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>prevText</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var prevText = $( ".selector" ).datepicker( "option", "prevText" );
-//setter
-$( ".selector" ).datepicker( "option", "prevText", 'Earlier' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-selectOtherMonths">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-selectOtherMonths">selectOtherMonths</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>When true days in other months shown before or after the current month are selectable. This only applies if <code><a href="http://docs.jquery.com/UI/Datepicker#option-showOtherMonths" title="UI/Datepicker">showOtherMonths</a></code> is also true.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>selectOtherMonths</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ selectOtherMonths: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>selectOtherMonths</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var selectOtherMonths = $( ".selector" ).datepicker( "option", "selectOtherMonths" );
-//setter
-$( ".selector" ).datepicker( "option", "selectOtherMonths", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-shortYearCutoff">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-shortYearCutoff">shortYearCutoff</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'+10'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set the cutoff year for determining the century for a date (used in conjunction with <code><a href="http://docs.jquery.com/UI/Datepicker#option-dateFormat" title="UI/Datepicker">dateFormat</a></code> 'y'). If a numeric value (0-99) is provided then this value is used directly. If a string value is provided then it is converted to a number and added to the current year. Once the cutoff year is calculated, any dates entered with a year value less than or equal to it are considered to be in the current century, while those greater than it are deemed to be in the previous century.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>shortYearCutoff</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ shortYearCutoff: 50 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>shortYearCutoff</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var shortYearCutoff = $( ".selector" ).datepicker( "option", "shortYearCutoff" );
-//setter
-$( ".selector" ).datepicker( "option", "shortYearCutoff", 50 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showAnim">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showAnim">showAnim</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'show'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set the name of the animation used to show/hide the datepicker. Use 'show' (the default), 'slideDown', 'fadeIn', any of the show/hide <a href="http://docs.jquery.com/UI/Effects" class="external text" title="http://docs.jquery.com/UI/Effects">jQuery UI effects</a>, or '' for no animation.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showAnim</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showAnim: 'fold' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showAnim</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showAnim = $( ".selector" ).datepicker( "option", "showAnim" );
-//setter
-$( ".selector" ).datepicker( "option", "showAnim", 'fold' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showButtonPanel">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showButtonPanel">showButtonPanel</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>Whether to show the button panel.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showButtonPanel</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showButtonPanel: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showButtonPanel</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showButtonPanel = $( ".selector" ).datepicker( "option", "showButtonPanel" );
-//setter
-$( ".selector" ).datepicker( "option", "showButtonPanel", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showCurrentAtPos">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showCurrentAtPos">showCurrentAtPos</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Specify where in a <a href="http://docs.jquery.com/UI/Datepicker#option-numberOfMonths" title="UI/Datepicker">multi-month</a> display the current month shows, starting from 0 at the top/left.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showCurrentAtPos</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showCurrentAtPos: 3 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showCurrentAtPos</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showCurrentAtPos = $( ".selector" ).datepicker( "option", "showCurrentAtPos" );
-//setter
-$( ".selector" ).datepicker( "option", "showCurrentAtPos", 3 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showMonthAfterYear">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showMonthAfterYear">showMonthAfterYear</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>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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showMonthAfterYear</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showMonthAfterYear: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showMonthAfterYear</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showMonthAfterYear = $( ".selector" ).datepicker( "option", "showMonthAfterYear" );
-//setter
-$( ".selector" ).datepicker( "option", "showMonthAfterYear", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showOn">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showOn">showOn</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'focus'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Have the datepicker appear automatically when the field receives focus ('focus'), appear only when a button is clicked ('button'), or appear when either event takes place ('both').</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showOn</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showOn: 'both' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showOn</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showOn = $( ".selector" ).datepicker( "option", "showOn" );
-//setter
-$( ".selector" ).datepicker( "option", "showOn", 'both' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showOptions">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showOptions">showOptions</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Options</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">{}</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If using one of the jQuery UI effects for <code><a href="http://docs.jquery.com/UI/Datepicker#option-showAnim" title="UI/Datepicker">showAnim</a></code>, you can provide additional settings for that animation via this option.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showOptions</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showOptions: {direction: 'up' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showOptions</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showOptions = $( ".selector" ).datepicker( "option", "showOptions" );
-//setter
-$( ".selector" ).datepicker( "option", "showOptions", {direction: 'up' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showOtherMonths">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showOtherMonths">showOtherMonths</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>Display dates in other months (non-selectable) at the start or end of the current month. To make these days selectable use <code><a href="http://docs.jquery.com/UI/Datepicker#option-selectOtherMonths" title="UI/Datepicker">selectOtherMonths</a></code>.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showOtherMonths</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showOtherMonths: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showOtherMonths</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showOtherMonths = $( ".selector" ).datepicker( "option", "showOtherMonths" );
-//setter
-$( ".selector" ).datepicker( "option", "showOtherMonths", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-showWeek">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-showWeek">showWeek</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>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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>showWeek</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ showWeek: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>showWeek</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var showWeek = $( ".selector" ).datepicker( "option", "showWeek" );
-//setter
-$( ".selector" ).datepicker( "option", "showWeek", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-stepMonths">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-stepMonths">stepMonths</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Set how many months to move when clicking the Previous/Next links.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>stepMonths</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ stepMonths: 3 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>stepMonths</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var stepMonths = $( ".selector" ).datepicker( "option", "stepMonths" );
-//setter
-$( ".selector" ).datepicker( "option", "stepMonths", 3 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-weekHeader">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-weekHeader">weekHeader</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'Wk'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The text to display for the week of the year column heading. This attribute is one of the regionalisation attributes. Use <code><a href="http://docs.jquery.com/UI/Datepicker#option-showWeek" title="UI/Datepicker">showWeek</a></code> to display this column.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>weekHeader</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ weekHeader: 'W' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>weekHeader</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var weekHeader = $( ".selector" ).datepicker( "option", "weekHeader" );
-//setter
-$( ".selector" ).datepicker( "option", "weekHeader", 'W' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-yearRange">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-yearRange">yearRange</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'c-10:c+10'</dd>
-      
-    </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). 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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>yearRange</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ yearRange: '2000:2010' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>yearRange</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var yearRange = $( ".selector" ).datepicker( "option", "yearRange" );
-//setter
-$( ".selector" ).datepicker( "option", "yearRange", '2000:2010' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-yearSuffix">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-yearSuffix">yearSuffix</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">''</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Additional text to display after the year in the month headers. This attribute is one of the regionalisation attributes.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a datepicker with the <code>yearSuffix</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).datepicker({ yearSuffix: 'CE' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>yearSuffix</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var yearSuffix = $( ".selector" ).datepicker( "option", "yearSuffix" );
-//setter
-$( ".selector" ).datepicker( "option", "yearSuffix", 'CE' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;datepickercreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label"></dt>
-        <dd class="event-type">function(input, inst)</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>Can be a function that takes an input field and current datepicker instance and returns an options object to update the datepicker with. It is called just before the datepicker is displayed.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>beforeShow</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$('.selector').datepicker({
-   beforeShow: function(input, inst) { ... }
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-beforeShowDay">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-beforeShowDay">beforeShowDay</a></h3>
-    <dl>
-      <dt class="event-type-label"></dt>
-        <dd class="event-type">function(date)</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>The function takes a date as a parameter and must return an array with [0] equal to true/false indicating whether or not this date is selectable, [1] equal to a CSS class name(s) or '' for the default presentation, and [2] an optional popup tooltip for this date. It is called for each day in the datepicker before it is displayed.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>beforeShowDay</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$('.selector').datepicker({
-   beforeShowDay: function(date) { ... }
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-onChangeMonthYear">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-onChangeMonthYear">onChangeMonthYear</a></h3>
-    <dl>
-      <dt class="event-type-label"></dt>
-        <dd class="event-type">function(year, month, inst)</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>Allows you to define your own event when the datepicker moves to a new month and/or year. The function receives the selected year, month (1-12), and the datepicker instance as parameters. <code>this</code> refers to the associated input field.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>onChangeMonthYear</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$('.selector').datepicker({
-   onChangeMonthYear: function(year, month, inst) { ... }
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-onClose">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-onClose">onClose</a></h3>
-    <dl>
-      <dt class="event-type-label"></dt>
-        <dd class="event-type">function(dateText, inst)</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>Allows you to define your own event when the datepicker is closed, whether or not a date is selected. The function receives the selected date as text ('' if none) and the datepicker instance as parameters. <code>this</code> refers to the associated input field.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>onClose</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$('.selector').datepicker({
-   onClose: function(dateText, inst) { ... }
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-onSelect">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-onSelect">onSelect</a></h3>
-    <dl>
-      <dt class="event-type-label"></dt>
-        <dd class="event-type">function(dateText, inst)</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>Allows you to define your own event when the datepicker is selected. The function receives the selected date as text and the datepicker instance as parameters. <code>this</code> refers to the associated input field.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>onSelect</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$('.selector').datepicker({
-   onSelect: function(dateText, inst) { ... }
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the datepicker functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the datepicker.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the datepicker.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any datepicker option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-datepicker element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-dialog">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-dialog">dialog</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "dialog"
-
-, date
-
-, <span class="optional">[</span>onSelect<span class="optional">] </span>
-
-, <span class="optional">[</span>settings<span class="optional">] </span>
-
-, <span class="optional">[</span>pos<span class="optional">] </span>)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Open a datepicker in a "dialog" box.
-</p><p>dateText: the initial date for the date picker as either a Date or a string in the current date format.
-</p><p>onSelect: A callback function when a date is selected. The function receives the date text and date picker instance as parameters.
-</p><p>settings: The new settings for the date picker.
-</p><p>pos: The position of the top/left of the dialog as [x, y] or a MouseEvent that contains the coordinates. If not specified the dialog is centered on the screen.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-isDisabled">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-isDisabled">isDisabled</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "isDisabled"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Determine whether a date picker has been disabled.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-hide">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-hide">hide</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "hide"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Close a previously opened date picker.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-show">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-show">show</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "show"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Call up a previously attached date picker.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "getDate"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the current date for the datepicker or null if no date has been selected.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-setDate">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-setDate">setDate</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.datepicker( "setDate"
-
-, date
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <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>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Datepicker plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.datepicker.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div id=&quot;ui-datepicker-div&quot; class=&quot;<strong>ui-datepicker</strong> ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;div class=&quot;<strong>ui-datepicker-header</strong> ui-widget-header ui-helper-clearfix ui-corner-all&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a class=&quot;<strong>ui-datepicker-prev</strong> ui-corner-all&quot;&gt;title=&quot;Prev&quot;&gt;&lt;span class=&quot;ui-icon ui-icon-circle-triangle-w&quot;&gt;Prev&lt;/span&gt;&lt;/a&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a class=&quot;<strong>ui-datepicker-next</strong> ui-corner-all&quot; title=&quot;Next&quot;&gt;&lt;span class=&quot;ui-icon ui-icon-circle-triangle-e&quot;&gt;Next&lt;/span&gt;&lt;/a&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;div class=&quot;<strong>ui-datepicker-title</strong>&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span class=&quot;<strong>ui-datepicker-month</strong>&quot;&gt;January&lt;/span&gt;&lt;span class=&quot;<strong>ui-datepicker-year</strong>&quot;&gt;2009&lt;/span&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;table class=&quot;<strong>ui-datepicker-calendar</strong>&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;thead&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th class=&quot;<strong>ui-datepicker-week-end</strong>&quot;&gt;&lt;span title=&quot;Sunday&quot;&gt;Su&lt;/span&gt;&lt;/th&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/thead&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tbody&gt;&lt;tr&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td class=&quot;<strong>ui-datepicker-week-end ui-datepicker-other-month</strong> &quot;&gt;&nbsp;1&nbsp;&lt;/td&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tbody&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;/table&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;div class=&quot;<strong>ui-datepicker-buttonpane</strong> ui-widget-content&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;button type=&quot;button&quot; class=&quot;<strong>ui-datepicker-current</strong> ui-state-default ui-priority-secondary ui-corner-all&quot;&gt;Today&lt;/button&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;button type=&quot;button&quot; class=&quot;<strong>ui-datepicker-close</strong> ui-state-default ui-priority-primary ui-corner-all&quot;&gt;Done&lt;/button&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />
-&lt;/div&gt;<br />
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the datepicker plugin, not markup you should use to create a datepicker. The only markup needed for that is &lt;input type="text" /&gt; or &lt;div&gt;&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-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 20110315194502 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/dialog.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/dialog.html
deleted file mode 100644
index 90e9a79..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/dialog.html
+++ /dev/null
@@ -1,1698 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Dialog</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <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>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="300">
-A simple jQuery UI Dialog.<br />
-</p>
-<pre>$(&quot;#dialog&quot;).dialog();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#dialog&quot;).dialog();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;dialog&quot; title=&quot;Dialog Title&quot;&gt;I'm in a dialog&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the dialog. Can be set when initialising (first creating) the dialog.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).dialog( "option", "disabled" );
-//setter
-$( ".selector" ).dialog( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-autoOpen">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-autoOpen">autoOpen</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>When <i>autoOpen</i> is <i>true</i> the dialog will open automatically when <i>dialog</i> is called. If <i>false</i> it will stay hidden until <i>.dialog("open")</i> is called on it.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>autoOpen</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ autoOpen: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>autoOpen</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var autoOpen = $( ".selector" ).dialog( "option", "autoOpen" );
-//setter
-$( ".selector" ).dialog( "option", "autoOpen", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</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">Object</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. The property key is the text of the button. The value is the callback function for when the button is clicked.  The context of the callback is the dialog element; if you need access to the button, it is available as the target of the event object.
-</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: { &quot;Ok&quot;: function() { $(this).dialog(&quot;close&quot;); } } });</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", { &quot;Ok&quot;: function() { $(this).dialog(&quot;close&quot;); } } );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</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: &quot;Ok&quot;,
-        click: function() { $(this).dialog(&quot;close&quot;); }
-    }
-] });</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: &quot;Ok&quot;,
-        click: function() { $(this).dialog(&quot;close&quot;); }
-    }
-] );</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>
-    <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>Specifies whether the dialog should close when it has focus and the user presses the esacpe (ESC) key.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>closeOnEscape</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ closeOnEscape: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>closeOnEscape</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var closeOnEscape = $( ".selector" ).dialog( "option", "closeOnEscape" );
-//setter
-$( ".selector" ).dialog( "option", "closeOnEscape", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-closeText">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-closeText">closeText</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'close'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Specifies the text for the close button. Note that the close text is visibly hidden when using a standard theme.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>closeText</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ closeText: 'hide' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>closeText</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var closeText = $( ".selector" ).dialog( "option", "closeText" );
-//setter
-$( ".selector" ).dialog( "option", "closeText", 'hide' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-dialogClass">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-dialogClass">dialogClass</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">''</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The specified class name(s) will be added to the dialog, for additional theming.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>dialogClass</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ dialogClass: 'alert' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>dialogClass</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var dialogClass = $( ".selector" ).dialog( "option", "dialogClass" );
-//setter
-$( ".selector" ).dialog( "option", "dialogClass", 'alert' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-draggable">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-draggable">draggable</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>If set to true, the dialog will be draggable will be draggable by the titlebar.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>draggable</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ draggable: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>draggable</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var draggable = $( ".selector" ).dialog( "option", "draggable" );
-//setter
-$( ".selector" ).dialog( "option", "draggable", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-height">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-height">height</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'auto'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The height of the dialog, in pixels. Specifying 'auto' is also supported to make the dialog adjust based on its content.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>height</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ height: 530 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>height</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var height = $( ".selector" ).dialog( "option", "height" );
-//setter
-$( ".selector" ).dialog( "option", "height", 530 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-hide">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-hide">hide</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The effect to be used when the dialog is closed.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>hide</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ hide: 'slide' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>hide</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var hide = $( ".selector" ).dialog( "option", "hide" );
-//setter
-$( ".selector" ).dialog( "option", "hide", 'slide' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-maxHeight">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-maxHeight">maxHeight</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The maximum height to which the dialog can be resized, in pixels.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>maxHeight</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ maxHeight: 400 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>maxHeight</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var maxHeight = $( ".selector" ).dialog( "option", "maxHeight" );
-//setter
-$( ".selector" ).dialog( "option", "maxHeight", 400 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-maxWidth">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-maxWidth">maxWidth</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The maximum width to which the dialog can be resized, in pixels.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>maxWidth</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ maxWidth: 600 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>maxWidth</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var maxWidth = $( ".selector" ).dialog( "option", "maxWidth" );
-//setter
-$( ".selector" ).dialog( "option", "maxWidth", 600 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-minHeight">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-minHeight">minHeight</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">150</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The minimum height to which the dialog can be resized, in pixels.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>minHeight</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ minHeight: 300 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>minHeight</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var minHeight = $( ".selector" ).dialog( "option", "minHeight" );
-//setter
-$( ".selector" ).dialog( "option", "minHeight", 300 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-minWidth">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-minWidth">minWidth</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">150</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The minimum width to which the dialog can be resized, in pixels.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>minWidth</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ minWidth: 400 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>minWidth</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var minWidth = $( ".selector" ).dialog( "option", "minWidth" );
-//setter
-$( ".selector" ).dialog( "option", "minWidth", 400 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-modal">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-modal">modal</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 dialog will have modal behavior; other items on the page will be disabled (i.e. cannot be interacted with). Modal dialogs create an overlay below the dialog but above other page elements.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>modal</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ modal: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>modal</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var modal = $( ".selector" ).dialog( "option", "modal" );
-//setter
-$( ".selector" ).dialog( "option", "modal", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</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">String, Array</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'center'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Specifies where the dialog should be displayed. Possible values: <br />1) a single string representing position within viewport: 'center', 'left', 'right', 'top', 'bottom'. <br />2) an array containing an <em>x,y</em> coordinate pair in pixel offset from left, top corner of viewport (e.g. [350,100]) <br />3) an array containing <em>x,y</em> position string values (e.g. ['right','top'] for top right corner).</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>position</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ position: 'top' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>position</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var position = $( ".selector" ).dialog( "option", "position" );
-//setter
-$( ".selector" ).dialog( "option", "position", 'top' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-resizable">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-resizable">resizable</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>If set to true, the dialog will be resizeable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>resizable</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ resizable: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>resizable</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var resizable = $( ".selector" ).dialog( "option", "resizable" );
-//setter
-$( ".selector" ).dialog( "option", "resizable", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-show">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-show">show</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The effect to be used when the dialog is opened.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>show</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ show: 'slide' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>show</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var show = $( ".selector" ).dialog( "option", "show" );
-//setter
-$( ".selector" ).dialog( "option", "show", 'slide' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-stack">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-stack">stack</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>Specifies whether the dialog will stack on top of other dialogs. This will cause the dialog to move to the front of other dialogs when it gains focus.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>stack</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ stack: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>stack</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var stack = $( ".selector" ).dialog( "option", "stack" );
-//setter
-$( ".selector" ).dialog( "option", "stack", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-title">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-title">title</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">''</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>title</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ title: 'Dialog Title' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>title</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var title = $( ".selector" ).dialog( "option", "title" );
-//setter
-$( ".selector" ).dialog( "option", "title", 'Dialog Title' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-width">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-width">width</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">300</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The width of the dialog, in pixels.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>width</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ width: 460 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>width</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var width = $( ".selector" ).dialog( "option", "width" );
-//setter
-$( ".selector" ).dialog( "option", "width", 460 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-zIndex">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-zIndex">zIndex</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1000</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The starting z-index for the dialog.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a dialog with the <code>zIndex</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).dialog({ zIndex: 3999 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>zIndex</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var zIndex = $( ".selector" ).dialog( "option", "zIndex" );
-//setter
-$( ".selector" ).dialog( "option", "zIndex", 3999 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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">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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;dialogcreate&quot;, 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>
-  </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.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   beforeClose: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>beforeClose</code> event by type: <code>dialogbeforeclose</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogbeforeclose&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-open">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-open">open</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogopen</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when dialog is opened.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>open</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   open: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>open</code> event by type: <code>dialogopen</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogopen&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-focus">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-focus">focus</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogfocus</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the dialog gains focus.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>focus</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   focus: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>focus</code> event by type: <code>dialogfocus</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogfocus&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-dragStart">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-dragStart">dragStart</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogdragstart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the beginning of the dialog being dragged.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>dragStart</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   dragStart: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>dragStart</code> event by type: <code>dialogdragstart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogdragstart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-drag">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-drag">drag</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogdrag</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the dialog is dragged.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>drag</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   drag: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>drag</code> event by type: <code>dialogdrag</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogdrag&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-dragStop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-dragStop">dragStop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogdragstop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered after the dialog has been dragged.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>dragStop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   dragStop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>dragStop</code> event by type: <code>dialogdragstop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogdragstop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-resizeStart">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-resizeStart">resizeStart</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogresizestart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the beginning of the dialog being resized.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>resizeStart</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   resizeStart: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>resizeStart</code> event by type: <code>dialogresizestart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogresizestart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-resize">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-resize">resize</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogresize</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <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>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>resize</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   resize: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>resize</code> event by type: <code>dialogresize</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogresize&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-resizeStop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-resizeStop">resizeStop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogresizestop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered after the dialog has been resized.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>resizeStop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   resizeStop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>resizeStop</code> event by type: <code>dialogresizestop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogresizestop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-close">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-close">close</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dialogclose</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the dialog is closed.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>close</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).dialog({
-   close: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>close</code> event by type: <code>dialogclose</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dialogclose&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the dialog functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the dialog.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the dialog.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any dialog option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-dialog element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-close">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-close">close</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "close"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Close the dialog.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-isOpen">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-isOpen">isOpen</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "isOpen"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns true if the dialog is currently open.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-moveToTop">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-moveToTop">moveToTop</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "moveToTop"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Move the dialog to the top of the dialogs stack.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-open">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-open">open</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.dialog( "open"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Open the dialog.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Dialog plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.dialog.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class=&quot;<strong>ui-dialog</strong> ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;div class=&quot;<strong>ui-dialog-titlebar</strong> ui-widget-header ui-corner-all ui-helper-clearfix&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;span id=&quot;<strong>ui-dialog-title-dialog</strong>&quot; class=&quot;ui-dialog-title&quot;&gt;Dialog title&lt;/span&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;a class=&quot;<strong>ui-dialog-titlebar-close</strong> ui-corner-all&quot; href=&quot;#&quot;&gt;&lt;span class=&quot;ui-icon ui-icon-closethick&quot;&gt;close&lt;/span&gt;&lt;/a&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;div style=&quot;height: 200px; min-height: 109px; width: auto;&quot; class=&quot;<strong>ui-dialog-content</strong> ui-widget-content&quot; id=&quot;dialog&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Dialog content goes here.&lt;/p&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />
-&lt;/div&gt;<br />
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the dialog plugin, not markup you should use to create a dialog. The only markup needed for that is &lt;div&gt;&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 66595 bytes
-Post-expand include size: 113099 bytes
-Template argument size: 62032 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3775-1!1!0!!en!2 and timestamp 20110315194523 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/draggable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/draggable.html
deleted file mode 100644
index 5a17ef2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/draggable.html
+++ /dev/null
@@ -1,1577 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Draggable</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>The jQuery UI Draggable plugin makes selected elements draggable by mouse.</p>
-<p>Draggable elements gets a class of <code>ui-draggable</code>. During drag the element also gets a class of <code>ui-draggable-dragging</code>. If you want not just drag, but drag-and-drop, see the jQuery UI Droppable plugin, which provides a drop target for draggables.</p>
-<p>All callbacks (start, stop, drag) receive two arguments: The original browser event and a prepared ui object, view below for a documentation of this object (if you name your second argument 'ui'):</p>
-<ul>
-<li><b>ui.helper</b> - the jQuery object representing the helper that's being dragged</li>
-<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">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="170">
-Initialize a draggable with default options.<br />
-</p>
-<pre>$(&quot;#draggable&quot;).draggable();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-    #draggable { width: 100px; height: 70px; background: silver; }
-  &lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#draggable&quot;).draggable();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;draggable&quot;&gt;Drag me&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the draggable. Can be set when initialising (first creating) the draggable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).draggable( "option", "disabled" );
-//setter
-$( ".selector" ).draggable( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-addClasses">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-addClasses">addClasses</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>If set to false, will prevent the <code>ui-draggable</code> class from being added. This may be desired as a performance optimization when calling <code>.draggable()</code> init on many hundreds of elements.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>addClasses</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ addClasses: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>addClasses</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var addClasses = $( ".selector" ).draggable( "option", "addClasses" );
-//setter
-$( ".selector" ).draggable( "option", "addClasses", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</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">Element, Selector</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'parent'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The element passed to or selected by the <code>appendTo</code> option will be used as the draggable helper's container during dragging. By default, the helper is appended to the same container as the draggable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>appendTo</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ appendTo: 'body' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>appendTo</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var appendTo = $( ".selector" ).draggable( "option", "appendTo" );
-//setter
-$( ".selector" ).draggable( "option", "appendTo", 'body' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-axis">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-axis">axis</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Constrains dragging to either the horizontal (x) or vertical (y) axis. Possible values: 'x', 'y'.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>axis</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ axis: 'x' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>axis</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var axis = $( ".selector" ).draggable( "option", "axis" );
-//setter
-$( ".selector" ).draggable( "option", "axis", 'x' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cancel">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cancel">cancel</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">':input,option'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Prevents dragging from starting on specified elements.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>cancel</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ cancel: 'button' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cancel</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cancel = $( ".selector" ).draggable( "option", "cancel" );
-//setter
-$( ".selector" ).draggable( "option", "cancel", 'button' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-connectToSortable">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-connectToSortable">connectToSortable</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Allows the draggable to be dropped onto the specified sortables. If this option is used (<code>helper</code> must be set to 'clone' in order to work flawlessly), a draggable can be dropped onto a sortable list and then becomes part of it.
-</p><p>Note: Specifying this option as an array of selectors has been removed.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>connectToSortable</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ connectToSortable: 'ul#myList' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>connectToSortable</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var connectToSortable = $( ".selector" ).draggable( "option", "connectToSortable" );
-//setter
-$( ".selector" ).draggable( "option", "connectToSortable", 'ul#myList' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-containment">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-containment">containment</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, Element, String, Array</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Constrains dragging to within the bounds of the specified element or region. Possible string values: 'parent', 'document', 'window', [x1, y1, x2, y2].</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>containment</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ containment: 'parent' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>containment</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var containment = $( ".selector" ).draggable( "option", "containment" );
-//setter
-$( ".selector" ).draggable( "option", "containment", 'parent' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cursor">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cursor">cursor</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'auto'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The css cursor during the drag operation.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>cursor</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ cursor: 'crosshair' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cursor</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cursor = $( ".selector" ).draggable( "option", "cursor" );
-//setter
-$( ".selector" ).draggable( "option", "cursor", 'crosshair' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cursorAt">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cursorAt">cursorAt</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>cursorAt</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ cursorAt: { left: 5 } });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cursorAt</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cursorAt = $( ".selector" ).draggable( "option", "cursorAt" );
-//setter
-$( ".selector" ).draggable( "option", "cursorAt", { left: 5 } );</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>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Time in milliseconds after mousedown until dragging should start. This option can be used to prevent unwanted drags when clicking on an element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>delay</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ delay: 500 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>delay</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var delay = $( ".selector" ).draggable( "option", "delay" );
-//setter
-$( ".selector" ).draggable( "option", "delay", 500 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-distance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-distance">distance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Distance in pixels after mousedown the mouse must move before dragging should start. This option can be used to prevent unwanted drags when clicking on an element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>distance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ distance: 30 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>distance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var distance = $( ".selector" ).draggable( "option", "distance" );
-//setter
-$( ".selector" ).draggable( "option", "distance", 30 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-grid">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-grid">grid</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Snaps the dragging helper to a grid, every x and y pixels. Array values: [x, y]</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>grid</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ grid: [50, 20] });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>grid</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var grid = $( ".selector" ).draggable( "option", "grid" );
-//setter
-$( ".selector" ).draggable( "option", "grid", [50, 20] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-handle">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-handle">handle</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Element, Selector</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If specified, restricts drag start click to the specified element(s).</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>handle</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ handle: 'h2' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>handle</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var handle = $( ".selector" ).draggable( "option", "handle" );
-//setter
-$( ".selector" ).draggable( "option", "handle", 'h2' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-helper">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-helper">helper</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Function</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'original'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Allows for a helper element to be used for dragging display. Possible values: 'original', 'clone', Function. If a function is specified, it must return a DOMElement.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>helper</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ helper: 'clone' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>helper</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var helper = $( ".selector" ).draggable( "option", "helper" );
-//setter
-$( ".selector" ).draggable( "option", "helper", 'clone' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-iframeFix">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-iframeFix">iframeFix</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean, Selector</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Prevent iframes from capturing the mousemove events during a drag. Useful in combination with cursorAt, or in any case, if the mouse cursor is not over the helper. If set to true, transparent overlays will be placed over all iframes on the page. If a selector is supplied, the matched iframes will have an overlay placed over them.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>iframeFix</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ iframeFix: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>iframeFix</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var iframeFix = $( ".selector" ).draggable( "option", "iframeFix" );
-//setter
-$( ".selector" ).draggable( "option", "iframeFix", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-opacity">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-opacity">opacity</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Float</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Opacity for the helper while being dragged.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>opacity</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ opacity: 0.35 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>opacity</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var opacity = $( ".selector" ).draggable( "option", "opacity" );
-//setter
-$( ".selector" ).draggable( "option", "opacity", 0.35 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-refreshPositions">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-refreshPositions">refreshPositions</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, all droppable positions are calculated on every mousemove. Caution: This solves issues on highly dynamic pages, but dramatically decreases performance.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>refreshPositions</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ refreshPositions: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>refreshPositions</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var refreshPositions = $( ".selector" ).draggable( "option", "refreshPositions" );
-//setter
-$( ".selector" ).draggable( "option", "refreshPositions", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-revert">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-revert">revert</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean, String</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 element will return to its start position when dragging stops. Possible string values: 'valid', 'invalid'. If set to invalid, revert will only occur if the draggable has not been dropped on a droppable. For valid, it's the other way around.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>revert</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ revert: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>revert</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var revert = $( ".selector" ).draggable( "option", "revert" );
-//setter
-$( ".selector" ).draggable( "option", "revert", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-revertDuration">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-revertDuration">revertDuration</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">500</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The duration of the revert animation, in milliseconds. Ignored if revert is false.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>revertDuration</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ revertDuration: 1000 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>revertDuration</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var revertDuration = $( ".selector" ).draggable( "option", "revertDuration" );
-//setter
-$( ".selector" ).draggable( "option", "revertDuration", 1000 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scope">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scope">scope</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'default'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Used to group sets of draggable and droppable items, in addition to droppable's accept option. A draggable with the same scope value as a droppable will be accepted by the droppable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>scope</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ scope: 'tasks' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scope</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scope = $( ".selector" ).draggable( "option", "scope" );
-//setter
-$( ".selector" ).draggable( "option", "scope", 'tasks' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scroll">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scroll">scroll</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>If set to true, container auto-scrolls while dragging.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>scroll</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ scroll: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scroll</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scroll = $( ".selector" ).draggable( "option", "scroll" );
-//setter
-$( ".selector" ).draggable( "option", "scroll", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scrollSensitivity">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scrollSensitivity">scrollSensitivity</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">20</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Distance in pixels from the edge of the viewport after which the viewport should scroll. Distance is relative to pointer, not the draggable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>scrollSensitivity</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ scrollSensitivity: 40 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scrollSensitivity</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scrollSensitivity = $( ".selector" ).draggable( "option", "scrollSensitivity" );
-//setter
-$( ".selector" ).draggable( "option", "scrollSensitivity", 40 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scrollSpeed">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scrollSpeed">scrollSpeed</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">20</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The speed at which the window should scroll once the mouse pointer gets within the <code>scrollSensitivity</code> distance.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>scrollSpeed</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ scrollSpeed: 40 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scrollSpeed</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scrollSpeed = $( ".selector" ).draggable( "option", "scrollSpeed" );
-//setter
-$( ".selector" ).draggable( "option", "scrollSpeed", 40 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-snap">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-snap">snap</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean, Selector</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If set to a selector or to true (equivalent to '.ui-draggable'), the draggable will snap to the edges of the selected elements when near an edge of the element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>snap</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ snap: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>snap</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var snap = $( ".selector" ).draggable( "option", "snap" );
-//setter
-$( ".selector" ).draggable( "option", "snap", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-snapMode">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-snapMode">snapMode</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'both'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Determines which edges of snap elements the draggable will snap to. Ignored if snap is false. Possible values: 'inner', 'outer', 'both'</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>snapMode</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ snapMode: 'outer' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>snapMode</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var snapMode = $( ".selector" ).draggable( "option", "snapMode" );
-//setter
-$( ".selector" ).draggable( "option", "snapMode", 'outer' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-snapTolerance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-snapTolerance">snapTolerance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">20</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The distance in pixels from the snap element edges at which snapping should occur. Ignored if snap is false.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>snapTolerance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ snapTolerance: 40 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>snapTolerance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var snapTolerance = $( ".selector" ).draggable( "option", "snapTolerance" );
-//setter
-$( ".selector" ).draggable( "option", "snapTolerance", 40 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-stack">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-stack">stack</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>stack</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ stack: &quot;.products&quot; });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>stack</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var stack = $( ".selector" ).draggable( "option", "stack" );
-//setter
-$( ".selector" ).draggable( "option", "stack", &quot;.products&quot; );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-zIndex">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-zIndex">zIndex</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>z-index for the helper while being dragged.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a draggable with the <code>zIndex</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).draggable({ zIndex: 2700 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>zIndex</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var zIndex = $( ".selector" ).draggable( "option", "zIndex" );
-//setter
-$( ".selector" ).draggable( "option", "zIndex", 2700 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;dragcreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dragstart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when dragging starts.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>start</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).draggable({
-   start: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>start</code> event by type: <code>dragstart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dragstart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-drag">
-  <div class="event-header">
-    <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>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the mouse is moved during the dragging.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>drag</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).draggable({
-   drag: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>drag</code> event by type: <code>drag</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;drag&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-stop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-stop">stop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dragstop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when dragging stops.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>stop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).draggable({
-   stop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>stop</code> event by type: <code>dragstop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dragstop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.draggable( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the draggable functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.draggable( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the draggable.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.draggable( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the draggable.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any draggable option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.draggable( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-draggable element.</p>
-  </div>
-</li>
-
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Draggable plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.draggable.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class=&quot;<strong>ui-draggable</strong>&quot;&gt;&lt;/div&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the draggable plugin, not markup you should use to create a draggable. The only markup needed for that is &lt;div&gt;&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-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 20110315194328 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/droppable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/droppable.html
deleted file mode 100644
index 6815c8d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/droppable.html
+++ /dev/null
@@ -1,829 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Droppable</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>The jQuery UI Droppable plugin makes selected elements droppable (meaning they accept being dropped on by draggables). You can specify which (individually) or which kind of draggables each will accept.</p>
-<p>All callbacks receive two arguments: The original browser event and a prepared ui object, view below for a documentation of this object (if you name your second argument 'ui'):</p>
-<ul>
- <li> <b>ui.draggable</b> - current draggable element, a jQuery object.</li>
- <li> <b>ui.helper</b> - current draggable helper, a jQuery object</li>
- <li> <b>ui.position</b> - current position of the draggable helper { top: , left: }</li>
- <li> <b>ui.offset</b> - current absolute position of the draggable helper { top: , left: }</li>
-</ul>
-    </div>
-    <div id="overview-dependencies">
-        <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>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="100">
-Makes the div droppable (a drop target for a draggable).<br />
-</p>
-<pre>$(&quot;#draggable&quot;).draggable();
-    $(&quot;#droppable&quot;).droppable({
-      drop: function() { alert('dropped'); }
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-    #draggable { width: 75px; height: 25px; background: silver; padding: 10px; }
-    #droppable { position: absolute; left: 250px; top: 0; width: 125px; height: 75px; background: gray; color: white; padding: 10px; }
-  &lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#draggable&quot;).draggable();
-    $(&quot;#droppable&quot;).droppable({
-      drop: function() { alert('dropped'); }
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;droppable&quot;&gt;Drop here&lt;/div&gt;
-&lt;div id=&quot;draggable&quot;&gt;Drag me&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the droppable. Can be set when initialising (first creating) the droppable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).droppable( "option", "disabled" );
-//setter
-$( ".selector" ).droppable( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-accept">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-accept">accept</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, Function</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'*'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>All draggables that match the selector will be accepted. If a function is specified, the function will be called for each draggable on the page (passed as the first argument to the function), to provide a custom filter. The function should return true if the draggable should be accepted.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>accept</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ accept: '.special' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>accept</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var accept = $( ".selector" ).droppable( "option", "accept" );
-//setter
-$( ".selector" ).droppable( "option", "accept", '.special' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-activeClass">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-activeClass">activeClass</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If specified, the class will be added to the droppable while an acceptable draggable is being dragged.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>activeClass</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ activeClass: 'ui-state-highlight' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>activeClass</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var activeClass = $( ".selector" ).droppable( "option", "activeClass" );
-//setter
-$( ".selector" ).droppable( "option", "activeClass", 'ui-state-highlight' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-addClasses">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-addClasses">addClasses</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>If set to false, will prevent the ui-droppable class from being added. This may be desired as a performance optimization when calling .droppable() init on many hundreds of elements.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>addClasses</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ addClasses: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>addClasses</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var addClasses = $( ".selector" ).droppable( "option", "addClasses" );
-//setter
-$( ".selector" ).droppable( "option", "addClasses", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-greedy">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-greedy">greedy</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 true, will prevent event propagation on nested droppables.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>greedy</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ greedy: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>greedy</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var greedy = $( ".selector" ).droppable( "option", "greedy" );
-//setter
-$( ".selector" ).droppable( "option", "greedy", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-hoverClass">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-hoverClass">hoverClass</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If specified, the class will be added to the droppable while an acceptable draggable is being hovered.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>hoverClass</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ hoverClass: 'drophover' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>hoverClass</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var hoverClass = $( ".selector" ).droppable( "option", "hoverClass" );
-//setter
-$( ".selector" ).droppable( "option", "hoverClass", 'drophover' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scope">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scope">scope</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'default'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Used to group sets of draggable and droppable items, in addition to droppable's accept option. A draggable with the same scope value as a droppable will be accepted.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>scope</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ scope: 'tasks' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scope</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scope = $( ".selector" ).droppable( "option", "scope" );
-//setter
-$( ".selector" ).droppable( "option", "scope", 'tasks' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-tolerance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-tolerance">tolerance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'intersect'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Specifies which mode to use for testing whether a draggable is 'over' a droppable. Possible values: 'fit', 'intersect', 'pointer', 'touch'.
-</p>
-<ul>
-<li><b>fit</b>: draggable overlaps the droppable entirely</li>
-<li><b>intersect</b>: draggable overlaps the droppable at least 50%</li>
-<li><b>pointer</b>: mouse pointer overlaps the droppable</li>
-<li><b>touch</b>: draggable overlaps the droppable any amount</li>
-</ul>
-<p></p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a droppable with the <code>tolerance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).droppable({ tolerance: 'fit' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>tolerance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var tolerance = $( ".selector" ).droppable( "option", "tolerance" );
-//setter
-$( ".selector" ).droppable( "option", "tolerance", 'fit' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;dropcreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dropactivate</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered any time an accepted draggable starts dragging. This can be useful if you want to make the droppable 'light up' when it can be dropped on.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>activate</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).droppable({
-   activate: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>activate</code> event by type: <code>dropactivate</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dropactivate&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-deactivate">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-deactivate">deactivate</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dropdeactivate</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered any time an accepted draggable stops dragging.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>deactivate</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).droppable({
-   deactivate: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>deactivate</code> event by type: <code>dropdeactivate</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dropdeactivate&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-over">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-over">over</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dropover</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered as an accepted draggable is dragged 'over' (within the tolerance of) this droppable.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>over</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).droppable({
-   over: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>over</code> event by type: <code>dropover</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dropover&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-out">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-out">out</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">dropout</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when an accepted draggable is dragged out (within the tolerance of) this droppable.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>out</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).droppable({
-   out: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>out</code> event by type: <code>dropout</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;dropout&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-drop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-drop">drop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">drop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when an accepted draggable is dropped 'over' (within the tolerance of) this droppable. In the callback, $(this) represents the droppable the draggable is dropped on.
-ui.draggable represents the draggable.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>drop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).droppable({
-   drop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>drop</code> event by type: <code>drop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;drop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.droppable( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the droppable functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.droppable( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the droppable.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.droppable( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the droppable.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any droppable option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.droppable( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-droppable element.</p>
-  </div>
-</li>
-
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Droppable plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.droppable.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class=&quot;<strong>ui-droppable</strong>&quot;&gt;&lt;/div&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the droppable plugin, not markup you should use to create a droppable. The only markup needed for that is &lt;div&gt;&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-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 20110315194340 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/effect.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/effect.html
deleted file mode 100644
index fca6857..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/effect.html
+++ /dev/null
@@ -1,143 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI effect</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/effect?section=1" title="Edit section: effect( effect, [options], [speed], [callback] )">edit</a>]</div><a name="effect.28_effect.2C_.5Boptions.5D.2C_.5Bspeed.5D.2C_.5Bcallback.5D_.29"></a><h3>effect( effect, <span class="optional">[</span>options<span class="optional">]</span>, <span class="optional">[</span>speed<span class="optional">]</span>, <span class="optional">[</span>callback<span class="optional">]</span> )</h3>
-<p>Uses a specific effect on an element (without the show/hide logic).</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="170">
-Apply the effect explode if you click on the element.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">effect</strong>(&quot;explode&quot;);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.explode.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  div { margin: 0 auto; width: 100px; height: 80px; background: blue; position: relative; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">effect</strong>(&quot;explode&quot;);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;p&gt;Click me&lt;/p&gt;&lt;div&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-effect">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-effect">effect</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The effect to be used. Possible values: 'blind', 'bounce', 'clip', 'drop', 'explode', 'fold', 'highlight', 'puff', 'pulsate', 'scale', 'shake', 'size', 'slide', 'transfer'.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-options">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-options">options</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Hash</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A object/hash including specific options for the effect.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-speed">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-speed">speed</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </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>
-  </div>
-</li>
-
-
-<li class="option" id="option-callback">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-callback">callback</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Function</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A function that is called after the effect is completed.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 6364 bytes
-Post-expand include size: 8780 bytes
-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 20110315175251 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/hide.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/hide.html
deleted file mode 100644
index 5ef2d43..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/hide.html
+++ /dev/null
@@ -1,144 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI hide</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/hide?section=1" title="Edit section: hide( effect, [options], [speed], [callback] )">edit</a>]</div><a name="hide.28_effect.2C_.5Boptions.5D.2C_.5Bspeed.5D.2C_.5Bcallback.5D_.29"></a><h3>hide( effect, <span class="optional">[</span>options<span class="optional">]</span>, <span class="optional">[</span>speed<span class="optional">]</span>, <span class="optional">[</span>callback<span class="optional">]</span> )</h3>
-<p>The enhanced hide method optionally accepts jQuery UI advanced effects.</p>
-<p>Uses a specific effect on an element to hide the element if the first argument is an effect string.</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="170">
-Apply the effect slide if you click on the p to hide a div.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">hide</strong>(&quot;slide&quot;, {}, 1000);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.slide.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  div { margin: 0px; width: 100px; height: 80px; background: blue; position: relative; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">hide</strong>(&quot;slide&quot;, {}, 1000);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;p&gt;Click me&lt;/p&gt;&lt;div&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-effect">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-effect">effect</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The effect to be used. Possible values: 'blind', 'clip', 'drop', 'explode', 'fold', 'puff', 'slide', 'scale', 'size', 'pulsate'.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-options">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-options">options</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Hash</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A object/hash including specific options for the effect.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-speed">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-speed">speed</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-
-
-<li class="option" id="option-callback">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-callback">callback</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Function</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A function that is called after the effect is completed.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 6332 bytes
-Post-expand include size: 8595 bytes
-Template argument size: 5383 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2614-1!1!0!!en!2 and timestamp 20110315175625 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/position.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/position.html
deleted file mode 100644
index 51a36e5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/position.html
+++ /dev/null
@@ -1,227 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Position Utility</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <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>
-        <ul>
-<li><i>none (only jQuery core)</i></li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="300">
-Clicking on the green element transfers to the other.<br />
-</p>
-<pre>
-$(&quot;#position1&quot;).position({
-  my: &quot;center&quot;,
-  at: &quot;center&quot;,
-  of: &quot;#targetElement&quot;
-});
-$(&quot;#position2&quot;).position({
-  my: &quot;left top&quot;,
-  at: &quot;left top&quot;,
-  of: &quot;#targetElement&quot;
-});
-$(&quot;#position3&quot;).position({
-  my: &quot;right center&quot;,
-  at: &quot;right bottom&quot;,
-  of: &quot;#targetElement&quot;
-});
-$(document).mousemove(function(ev){
-  $(&quot;#position4&quot;).position({
-    my: &quot;left bottom&quot;,
-    of: ev,
-    offset: &quot;3 -3&quot;,
-    collision: &quot;fit&quot;
-  });
-});
-
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-#targetElement { width:240px;height:200px;background-color:#999;margin:30px auto; }
-.positionDiv { width:50px;height:50px;opacity:0.6; }
-#position1 {background-color:#F00;}
-#position2 {background-color:#0F0;}
-#position3 {background-color:#00F;}
-#position4 {background-color:#FF0;}
-&lt;/style&gt;
-
-  &lt;script&gt;
-  $(document).ready(function() {
-    
-$(&quot;#position1&quot;).position({
-  my: &quot;center&quot;,
-  at: &quot;center&quot;,
-  of: &quot;#targetElement&quot;
-});
-$(&quot;#position2&quot;).position({
-  my: &quot;left top&quot;,
-  at: &quot;left top&quot;,
-  of: &quot;#targetElement&quot;
-});
-$(&quot;#position3&quot;).position({
-  my: &quot;right center&quot;,
-  at: &quot;right bottom&quot;,
-  of: &quot;#targetElement&quot;
-});
-$(document).mousemove(function(ev){
-  $(&quot;#position4&quot;).position({
-    my: &quot;left bottom&quot;,
-    of: ev,
-    offset: &quot;3 -3&quot;,
-    collision: &quot;fit&quot;
-  });
-});
-
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;targetElement&quot;&gt;
-  &lt;div class=&quot;positionDiv&quot; id=&quot;position1&quot;&gt;&lt;/div&gt;
-  &lt;div class=&quot;positionDiv&quot; id=&quot;position2&quot;&gt;&lt;/div&gt;
-  &lt;div class=&quot;positionDiv&quot; id=&quot;position3&quot;&gt;&lt;/div&gt;
-  &lt;div class=&quot;positionDiv&quot; id=&quot;position4&quot;&gt;&lt;/div&gt;
-&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-my">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-my">my</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Defines which position on <b>the element being positioned</b> to align with the target element: "horizontal vertical" alignment. A single value such as "right" will default to "right center", "top" will default to "center top" (following CSS convention). Acceptable values: "top", "center", "bottom", "left", "right". Example: "left top" or "center center"</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-at">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-at">at</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Defines which position on <b>the target element</b> to align the positioned element against: "horizontal vertical" alignment. A single value such as "right" will default to "right center", "top" will default to "center top" (following CSS convention). Acceptable values: "top", "center", "bottom", "left", "right". Example: "left top" or "center center"</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-of">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-of">of</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, Element, jQuery, Event</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-
-
-<li class="option" id="option-offset">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-offset">offset</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Add these left-top values to the calculated position, eg. "50 50" (left top) A single value such as "50" will apply to both.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-collision">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-collision">collision</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>When the positioned element overflows the window in some direction, move it to an alternative position. Similar to my and at, this accepts a single value or a pair for horizontal/vertical, eg. "flip", "fit", "fit flip", "fit none".
-</p>
-<ul><li> <b>flip</b>: to the opposite side and the collision detection is run again to see if it will fit. If it won't fit in either position, the center option should be used as a fall back.
-</li><li> <b>fit</b>: so the element keeps in the desired direction, but is re-positioned so it fits.
-</li><li> <b>none</b>: not do collision detection.
-</li></ul>
-<p></p>
-  </div>
-</li>
-
-
-<li class="option" id="option-using">
-  <div class="option-header">
-    <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>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>When specified the actual property setting is delegated to this callback. Receives a single parameter which is a hash of top and left values for the position that should be set.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 7124 bytes
-Post-expand include size: 11012 bytes
-Template argument size: 7642 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3784-1!1!0!!en!2 and timestamp 20110315194632 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/progressbar.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/progressbar.html
deleted file mode 100644
index f7e5299..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/progressbar.html
+++ /dev/null
@@ -1,460 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Progressbar</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>
-The progress bar is designed to simply display the current % complete for a process. The bar is coded to be flexibly sized through CSS and will scale to fit inside it's parent container by default.
-</p>
-<p>
-This is a determinate progress bar, meaning that it should only be used in situations where the system can accurately update the current status complete. A determinate progress bar should never fill from left to right, then loop back to empty for a single process -- if the actual percent complete status cannot be calculated, an indeterminate progress bar (coming soon) or spinner animation is a better way to provide user feedback.
-</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>UI Core</li>
-<li>UI Widget</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="100">
-A simple jQuery UI Progressbar.<br />
-</p>
-<pre>$(&quot;#progressbar&quot;).progressbar({ value: 37 });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#progressbar&quot;).progressbar({ value: 37 });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;progressbar&quot;&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the progressbar. Can be set when initialising (first creating) the progressbar.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a progressbar with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).progressbar({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).progressbar( "option", "disabled" );
-//setter
-$( ".selector" ).progressbar( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-value">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-value">value</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The value of the progressbar.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a progressbar with the <code>value</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).progressbar({ value: 37 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>value</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var value = $( ".selector" ).progressbar( "option", "value" );
-//setter
-$( ".selector" ).progressbar( "option", "value", 37 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;progressbarcreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">progressbarchange</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the value of the progressbar changes.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>change</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).progressbar({
-   change: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>change</code> event by type: <code>progressbarchange</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;progressbarchange&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;progressbarcomplete&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.progressbar( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the progressbar functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.progressbar( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the progressbar.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.progressbar( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the progressbar.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any progressbar option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.progressbar( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-progressbar element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-value">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-value">value</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.progressbar( "value"
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>This method gets or sets the current value of the progressbar.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Progressbar plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.progressbar.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class=&quot;<strong>ui-progressbar </strong>ui-widget ui-widget-content ui-corner-all&quot;&gt;<br />
-	&nbsp;&nbsp;&nbsp;&lt;div style=&quot;width: 37%;&quot; class=&quot;<strong>ui-progressbar-value</strong> ui-widget-header ui-corner-left&quot;&gt;&lt;/div&gt;<br />
-	&lt;/div&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the progressbar plugin, not markup you should use to create a progressbar. The only markup needed for that is &lt;div&gt;&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-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 20110315194535 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/removeClass.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/removeClass.html
deleted file mode 100644
index fbc530e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/removeClass.html
+++ /dev/null
@@ -1,113 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI removeClass</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/removeClass?section=1" title="Edit section: removeClass( [class], [duration] )">edit</a>]</div><a name="removeClass.28_.5Bclass.5D.2C_.5Bduration.5D_.29"></a><h3>removeClass( <span class="optional">[</span>class<span class="optional">]</span>, <span class="optional">[</span>duration<span class="optional">]</span> )</h3>
-<p>Removes all or specified class from each of the set of matched elements with an optional transition between the states.</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="100">
-Removes the class 'selected' from the matched elements with a one second transition.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">removeClass</strong>(&quot;selected&quot;, 1000);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  p { cursor: pointer; font-size: 1.2em; }
-  .selected { color:red; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">removeClass</strong>(&quot;selected&quot;, 1000);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;p class=&quot;selected&quot;&gt;Click me to remove 'selected' class.&lt;/p&gt;
-&lt;p class=&quot;selected&quot;&gt;Click me to remove 'selected' class.&lt;/p&gt;
-&lt;p class=&quot;selected&quot;&gt;Click me to remove 'selected' class.&lt;/p&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-class">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-class">class</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>CSS classes to remove from the elements.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-duration">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-duration">duration</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </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>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 5297 bytes
-Post-expand include size: 7164 bytes
-Template argument size: 4498 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2607-1!1!0!!en!2 and timestamp 20110315175258 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/resizable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/resizable.html
deleted file mode 100644
index 032b6c4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/resizable.html
+++ /dev/null
@@ -1,1201 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Resizable</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>The jQuery UI Resizable plugin makes selected elements resizable (meaning they have draggable resize handles). You can specify one or more handles as well as min and max width and height.</p>
-<p>All callbacks (start,stop,resize) receive two arguments: The original browser event and a prepared ui object.  The ui object has the following fields:</p>
-<ul>
-<li><b>ui.helper</b> - a jQuery object containing the helper element</li>
-<li><b>ui.originalPosition</b> - {top, left} before resizing started</li>
-<li><b>ui.originalSize</b> - {width, height} before resizing started</li>
-<li><b>ui.position</b> - {top, left} current position</li>
-<li><b>ui.size</b> - {width, height} current size</li>
-</ul>
-    </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">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="250">
-A simple jQuery UI Resizable.<br />
-</p>
-<pre>$(&quot;#resizable&quot;).resizable();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-    #resizable { width: 100px; height: 100px; background: silver; }
-  &lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#resizable&quot;).resizable();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;resizable&quot;&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the resizable. Can be set when initialising (first creating) the resizable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).resizable( "option", "disabled" );
-//setter
-$( ".selector" ).resizable( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-alsoResize">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-alsoResize">alsoResize</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, jQuery, Element</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Resize these elements synchronous when resizing.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>alsoResize</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ alsoResize: '.other' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>alsoResize</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var alsoResize = $( ".selector" ).resizable( "option", "alsoResize" );
-//setter
-$( ".selector" ).resizable( "option", "alsoResize", '.other' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-animate">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-animate">animate</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>Animates to the final size after resizing.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>animate</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ animate: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>animate</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var animate = $( ".selector" ).resizable( "option", "animate" );
-//setter
-$( ".selector" ).resizable( "option", "animate", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-animateDuration">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-animateDuration">animateDuration</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer, String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'slow'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Duration time for animating, in milliseconds. Other possible values: 'slow', 'normal', 'fast'.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>animateDuration</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ animateDuration: 500 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>animateDuration</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var animateDuration = $( ".selector" ).resizable( "option", "animateDuration" );
-//setter
-$( ".selector" ).resizable( "option", "animateDuration", 500 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-animateEasing">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-animateEasing">animateEasing</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'swing'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Easing effect for animating.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>animateEasing</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ animateEasing: 'swing' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>animateEasing</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var animateEasing = $( ".selector" ).resizable( "option", "animateEasing" );
-//setter
-$( ".selector" ).resizable( "option", "animateEasing", 'swing' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-aspectRatio">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-aspectRatio">aspectRatio</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean, Float</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, resizing is constrained by the original aspect ratio. Otherwise a custom aspect ratio can be specified, such as 9 / 16, or 0.5.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>aspectRatio</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ aspectRatio: .75 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>aspectRatio</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var aspectRatio = $( ".selector" ).resizable( "option", "aspectRatio" );
-//setter
-$( ".selector" ).resizable( "option", "aspectRatio", .75 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-autoHide">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-autoHide">autoHide</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, automatically hides the handles except when the mouse hovers over the element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>autoHide</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ autoHide: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>autoHide</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var autoHide = $( ".selector" ).resizable( "option", "autoHide" );
-//setter
-$( ".selector" ).resizable( "option", "autoHide", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cancel">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cancel">cancel</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">':input,option'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Prevents resizing if you start on elements matching the selector.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>cancel</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ cancel: ':input,option' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cancel</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cancel = $( ".selector" ).resizable( "option", "cancel" );
-//setter
-$( ".selector" ).resizable( "option", "cancel", ':input,option' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-containment">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-containment">containment</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Element, Selector</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Constrains resizing to within the bounds of the specified element. Possible values: 'parent', 'document', a DOMElement, or a Selector.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>containment</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ containment: 'parent' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>containment</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var containment = $( ".selector" ).resizable( "option", "containment" );
-//setter
-$( ".selector" ).resizable( "option", "containment", 'parent' );</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>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Tolerance, in milliseconds, for when resizing should start. If specified, resizing will not start until after mouse is moved beyond duration. This can help prevent unintended resizing when clicking on an element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>delay</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ delay: 20 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>delay</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var delay = $( ".selector" ).resizable( "option", "delay" );
-//setter
-$( ".selector" ).resizable( "option", "delay", 20 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-distance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-distance">distance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Tolerance, in pixels, for when resizing should start. If specified, resizing will not start until after mouse is moved beyond distance. This can help prevent unintended resizing when clicking on an element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>distance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ distance: 20 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>distance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var distance = $( ".selector" ).resizable( "option", "distance" );
-//setter
-$( ".selector" ).resizable( "option", "distance", 20 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-ghost">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-ghost">ghost</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, a semi-transparent helper element is shown for resizing.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>ghost</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ ghost: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>ghost</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var ghost = $( ".selector" ).resizable( "option", "ghost" );
-//setter
-$( ".selector" ).resizable( "option", "ghost", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-grid">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-grid">grid</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Snaps the resizing element to a grid, every x and y pixels. Array values: [x, y]</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>grid</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ grid: [50, 50] });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>grid</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var grid = $( ".selector" ).resizable( "option", "grid" );
-//setter
-$( ".selector" ).resizable( "option", "grid", [50, 50] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-handles">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-handles">handles</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Object</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'e, s, se'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If specified as a string, should be a comma-split list of any of the following: 'n, e, s, w, ne, se, sw, nw, all'. The necessary handles will be auto-generated by the plugin.
-</p><p>If specified as an object, the following keys are supported: { n, e, s, w, ne, se, sw, nw }. The value of any specified should be a jQuery selector matching the child element of the resizable to use as that handle. If the handle is not a child of the resizable, you can pass in the DOMElement or a valid jQuery object directly.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>handles</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ handles: 'n, e, s, w' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>handles</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var handles = $( ".selector" ).resizable( "option", "handles" );
-//setter
-$( ".selector" ).resizable( "option", "handles", 'n, e, s, w' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-helper">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-helper">helper</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This is the css class that will be added to a proxy element to outline the resize during the drag of the resize handle. Once the resize is complete, the original element is sized.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>helper</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ helper: 'ui-state-highlight' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>helper</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var helper = $( ".selector" ).resizable( "option", "helper" );
-//setter
-$( ".selector" ).resizable( "option", "helper", 'ui-state-highlight' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-maxHeight">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-maxHeight">maxHeight</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This is the maximum height the resizable should be allowed to resize to.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>maxHeight</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ maxHeight: 300 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>maxHeight</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var maxHeight = $( ".selector" ).resizable( "option", "maxHeight" );
-//setter
-$( ".selector" ).resizable( "option", "maxHeight", 300 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-maxWidth">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-maxWidth">maxWidth</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This is the maximum width the resizable should be allowed to resize to.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>maxWidth</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ maxWidth: 250 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>maxWidth</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var maxWidth = $( ".selector" ).resizable( "option", "maxWidth" );
-//setter
-$( ".selector" ).resizable( "option", "maxWidth", 250 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-minHeight">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-minHeight">minHeight</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">10</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This is the minimum height the resizable should be allowed to resize to.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>minHeight</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ minHeight: 150 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>minHeight</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var minHeight = $( ".selector" ).resizable( "option", "minHeight" );
-//setter
-$( ".selector" ).resizable( "option", "minHeight", 150 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-minWidth">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-minWidth">minWidth</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">10</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This is the minimum width the resizable should be allowed to resize to.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a resizable with the <code>minWidth</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).resizable({ minWidth: 75 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>minWidth</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var minWidth = $( ".selector" ).resizable( "option", "minWidth" );
-//setter
-$( ".selector" ).resizable( "option", "minWidth", 75 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;resizecreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">resizestart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the start of a resize operation.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>start</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).resizable({
-   start: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>start</code> event by type: <code>resizestart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;resizestart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-resize">
-  <div class="event-header">
-    <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>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered during the resize, on the drag of the resize handler.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>resize</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).resizable({
-   resize: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>resize</code> event by type: <code>resize</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;resize&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-stop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-stop">stop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">resizestop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the end of a resize operation.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>stop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).resizable({
-   stop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>stop</code> event by type: <code>resizestop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;resizestop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.resizable( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the resizable functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.resizable( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the resizable.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.resizable( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the resizable.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any resizable option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.resizable( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-resizable element.</p>
-  </div>
-</li>
-
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Resizable plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.resizable.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class=&quot;<strong>ui-resizable</strong>&quot;&gt;<br />
-&#160;&#160;&#160;&lt;div style=&quot;-moz-user-select: none;&quot; unselectable=&quot;on&quot; class=&quot;<strong>ui-resizable-handle ui-resizable-e</strong>&quot;&gt;&lt;/div&gt;<br />
-&#160;&#160;&#160;&lt;div style=&quot;-moz-user-select: none;&quot; unselectable=&quot;on&quot; class=&quot;<strong>ui-resizable-handle ui-resizable-s</strong>&quot;&gt;&lt;/div&gt;<br />
-&#160;&#160;&#160;&lt;div unselectable=&quot;on&quot; style=&quot;z-index: 1001; -moz-user-select: none;&quot; class=&quot;<strong>ui-resizable-handle ui-resizable-se</strong> ui-icon ui-icon-gripsmall-diagonal-se&quot;&gt;&lt;/div&gt;<br />
-&lt;/div&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the resizable plugin, not markup you should use to create a resizable. The only markup needed for that is &lt;div&gt;&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-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 20110315182908 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/selectable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/selectable.html
deleted file mode 100644
index 44e3b17..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/selectable.html
+++ /dev/null
@@ -1,848 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Selectable</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>The jQuery UI Selectable plugin allows for elements to be selected by dragging a box (sometimes called a lasso) with the mouse over the elements. Also, elements can be selected by click or drag while holding the Ctrl/Meta key, allowing for multiple (non-contiguous) selections.</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">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="">
-A simple jQuery UI Selectable.<br />
-</p>
-<pre>$(&quot;#selectable&quot;).selectable();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;style type=&quot;text/css&quot;&gt;
-#selectable .ui-selecting {
-	background: silver;
-}
-#selectable .ui-selected {
-	background: gray;
-}
-&lt;/style&gt;
-
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#selectable&quot;).selectable();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;ul id=&quot;selectable&quot;&gt;
-&lt;li&gt;Item 1&lt;/li&gt;
-&lt;li&gt;Item 2&lt;/li&gt;
-&lt;li&gt;Item 3&lt;/li&gt;
-&lt;li&gt;Item 4&lt;/li&gt;
-&lt;li&gt;Item 5&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the selectable. Can be set when initialising (first creating) the selectable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a selectable with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).selectable({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).selectable( "option", "disabled" );
-//setter
-$( ".selector" ).selectable( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-autoRefresh">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-autoRefresh">autoRefresh</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>This determines whether to refresh (recalculate) the position and size of each selectee at the beginning of each select operation. If you have many many items, you may want to set this to false and call the refresh method manually.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a selectable with the <code>autoRefresh</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).selectable({ autoRefresh: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>autoRefresh</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var autoRefresh = $( ".selector" ).selectable( "option", "autoRefresh" );
-//setter
-$( ".selector" ).selectable( "option", "autoRefresh", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cancel">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cancel">cancel</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">':input,option'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Prevents selecting if you start on elements matching the selector.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a selectable with the <code>cancel</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).selectable({ cancel: ':input,option' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cancel</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cancel = $( ".selector" ).selectable( "option", "cancel" );
-//setter
-$( ".selector" ).selectable( "option", "cancel", ':input,option' );</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>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Time in milliseconds to define when the selecting should start. It helps preventing unwanted selections when clicking on an element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a selectable with the <code>delay</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).selectable({ delay: 20 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>delay</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var delay = $( ".selector" ).selectable( "option", "delay" );
-//setter
-$( ".selector" ).selectable( "option", "delay", 20 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-distance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-distance">distance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Tolerance, in pixels, for when selecting should start. If specified, selecting will not start until after mouse is dragged beyond distance.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a selectable with the <code>distance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).selectable({ distance: 20 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>distance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var distance = $( ".selector" ).selectable( "option", "distance" );
-//setter
-$( ".selector" ).selectable( "option", "distance", 20 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-filter">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-filter">filter</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">'*'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The matching child elements will be made selectees (able to be selected).</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a selectable with the <code>filter</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).selectable({ filter: 'li' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>filter</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var filter = $( ".selector" ).selectable( "option", "filter" );
-//setter
-$( ".selector" ).selectable( "option", "filter", 'li' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-tolerance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-tolerance">tolerance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'touch'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Possible values: 'touch', 'fit'.
-</p>
-<ul>
-<li><b>fit</b>: draggable overlaps the droppable entirely</li>
-<li><b>touch</b>: draggable overlaps the droppable any amount</li>
-</ul>
-<p></p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a selectable with the <code>tolerance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).selectable({ tolerance: 'fit' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>tolerance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var tolerance = $( ".selector" ).selectable( "option", "tolerance" );
-//setter
-$( ".selector" ).selectable( "option", "tolerance", 'fit' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;selectablecreate&quot;, 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">selectableselected</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the end of the select operation, on each element added to the selection.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>selected</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).selectable({
-   selected: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>selected</code> event by type: <code>selectableselected</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;selectableselected&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-selecting">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-selecting">selecting</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">selectableselecting</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered during the select operation, on each element added to the selection.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>selecting</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).selectable({
-   selecting: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>selecting</code> event by type: <code>selectableselecting</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;selectableselecting&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">selectablestart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the beginning of the select operation.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>start</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).selectable({
-   start: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>start</code> event by type: <code>selectablestart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;selectablestart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-stop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-stop">stop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">selectablestop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the end of the select operation.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>stop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).selectable({
-   stop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>stop</code> event by type: <code>selectablestop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;selectablestop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-unselected">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-unselected">unselected</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">selectableunselected</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered at the end of the select operation, on each element removed from the selection.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>unselected</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).selectable({
-   unselected: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>unselected</code> event by type: <code>selectableunselected</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;selectableunselected&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-unselecting">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-unselecting">unselecting</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">selectableunselecting</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered during the select operation, on each element removed from the selection.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>unselecting</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).selectable({
-   unselecting: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>unselecting</code> event by type: <code>selectableunselecting</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;selectableunselecting&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.selectable( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the selectable functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.selectable( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the selectable.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.selectable( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the selectable.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any selectable option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.selectable( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-selectable element.</p>
-  </div>
-</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">.selectable( "refresh"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Refresh the position and size of each selectee element. This method can be used to manually recalculate the position and size of each selectee element. Very useful if autoRefresh is set to false.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Selectable plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.selectable.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;ul class=&quot;<strong>ui-selectable</strong>&quot;&gt;<br />
-&#160;&#160;&#160;&lt;li class=&quot;<strong>ui-selectee</strong>&quot;&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li class=&quot;<strong>ui-selectee</strong>&quot;&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li class=&quot;<strong>ui-selectee</strong>&quot;&gt;&lt;/li&gt;<br />
-&lt;/ul&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the selectable plugin, not markup you should use to create a selectable. The only markup needed for that is <br />&lt;ul&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&lt;/ul&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 34674 bytes
-Post-expand include size: 53359 bytes
-Template argument size: 26926 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3771-1!1!0!!en!2 and timestamp 20110315194405 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/show.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/show.html
deleted file mode 100644
index e77dade..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/show.html
+++ /dev/null
@@ -1,144 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI show</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/show?section=1" title="Edit section: show( effect, [options], [speed], [callback] )">edit</a>]</div><a name="show.28_effect.2C_.5Boptions.5D.2C_.5Bspeed.5D.2C_.5Bcallback.5D_.29"></a><h3>show( effect, <span class="optional">[</span>options<span class="optional">]</span>, <span class="optional">[</span>speed<span class="optional">]</span>, <span class="optional">[</span>callback<span class="optional">]</span> )</h3>
-<p>The enhanced show method optionally accepts jQuery UI advanced effects.</p>
-<p>Uses a specific effect on an element to show the element if the first argument is a effect string.</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="170">
-Apply the effect slide if you click on the p to show a div.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">show</strong>(&quot;slide&quot;, {}, 1000);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.slide.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  div { display: none; margin: 0px; width: 100px; height: 80px; background: blue; position: relative; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">show</strong>(&quot;slide&quot;, {}, 1000);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;p&gt;Click me&lt;/p&gt;&lt;div&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-effect">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-effect">effect</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The effect to be used. Possible values: 'blind', 'clip', 'drop', 'explode', 'fold', 'puff', 'slide', 'scale', 'size', 'pulsate'.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-options">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-options">options</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Hash</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A object/hash including specific options for the effect.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-speed">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-speed">speed</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-
-
-<li class="option" id="option-callback">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-callback">callback</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Function</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A function that is called after the effect is completed.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 6332 bytes
-Post-expand include size: 8594 bytes
-Template argument size: 5382 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2613-1!1!0!!en!2 and timestamp 20110315175259 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/slider.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/slider.html
deleted file mode 100644
index fdc9138..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/slider.html
+++ /dev/null
@@ -1,860 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Slider</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>The jQuery UI Slider plugin makes selected elements into sliders. There are various options such as multiple handles, and ranges. The handle can be moved with the mouse or the arrow keys.</p>
-<p>All callbacks receive two arguments: The original browser event and a prepared ui object, view below for a documentation of this object (if you name your second argument 'ui'):
-</p><p>The slider widget will create handle elements with the class 'ui-slider-handle' on initialization. You can specify custom handle elements by creating and appending the elements and adding the 'ui-slider-handle' class before init. It will only create the number of handles needed to match the length of value/values. For example, if you specify 'values: [1, 5, 18]' and create one custom handle, the plugin will create the other two.
-</p>
-<ul>
-  <li><b>ui.handle</b>: DOMElement - the current focused handle
-  <li><b>ui.value</b>: Integer - the current handle's value
-</ul>
-    </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">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="">
-A simple jQuery UI Slider.<br />
-</p>
-<pre>$(&quot;#slider&quot;).slider();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-    &lt;style type=&quot;text/css&quot;&gt;
-    #slider { margin: 10px; }
-  &lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#slider&quot;).slider();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;slider&quot;&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the slider. Can be set when initialising (first creating) the slider.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).slider( "option", "disabled" );
-//setter
-$( ".selector" ).slider( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-animate">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-animate">animate</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean, String, Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Whether to slide handle smoothly when user click outside handle on the bar. Will also accept 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>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>animate</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ animate: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>animate</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var animate = $( ".selector" ).slider( "option", "animate" );
-//setter
-$( ".selector" ).slider( "option", "animate", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-max">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-max">max</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">100</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The maximum value of the slider.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>max</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ max: 7 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>max</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var max = $( ".selector" ).slider( "option", "max" );
-//setter
-$( ".selector" ).slider( "option", "max", 7 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-min">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-min">min</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The minimum value of the slider.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>min</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ min: -7 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>min</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var min = $( ".selector" ).slider( "option", "min" );
-//setter
-$( ".selector" ).slider( "option", "min", -7 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-orientation">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-orientation">orientation</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'horizontal'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This option determines whether the slider has the min at the left, the max at the right or the min at the bottom, the max at the top. Possible values: 'horizontal', 'vertical'.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>orientation</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ orientation: 'vertical' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>orientation</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var orientation = $( ".selector" ).slider( "option", "orientation" );
-//setter
-$( ".selector" ).slider( "option", "orientation", 'vertical' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-range">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-range">range</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean, String</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 slider will detect if you have two handles and create a stylable range element between these two. Two other possible values are 'min' and 'max'. A min range goes from the slider min to one handle. A max range goes from one handle to the slider max.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>range</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ range: 'min' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>range</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var range = $( ".selector" ).slider( "option", "range" );
-//setter
-$( ".selector" ).slider( "option", "range", 'min' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-step">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-step">step</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Determines the size or amount of each interval or step the slider takes between min and max. The full specified value range of the slider (max - min) needs to be evenly divisible by the step.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>step</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ step: 5 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>step</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var step = $( ".selector" ).slider( "option", "step" );
-//setter
-$( ".selector" ).slider( "option", "step", 5 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-value">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-value">value</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Determines the value of the slider, if there's only one handle. If there is more than one handle, determines the value of the first handle.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>value</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ value: 37 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>value</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var value = $( ".selector" ).slider( "option", "value" );
-//setter
-$( ".selector" ).slider( "option", "value", 37 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-values">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-values">values</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">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This option can be used to specify multiple handles. If range is set to true, the length of 'values' should be 2.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a slider with the <code>values</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).slider({ values: [1,5,9] });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>values</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var values = $( ".selector" ).slider( "option", "values" );
-//setter
-$( ".selector" ).slider( "option", "values", [1,5,9] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;slidecreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">slidestart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the user starts sliding.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>start</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).slider({
-   start: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>start</code> event by type: <code>slidestart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;slidestart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-slide">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-slide">slide</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">slide</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered on every mouse move during slide. Use ui.value (single-handled sliders) to obtain the value of the current handle, $(..).slider('value', index) to get another handles' value.
-</p><p>Return false in order to prevent a slide, based on ui.value.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>slide</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).slider({
-   slide: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>slide</code> event by type: <code>slide</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;slide&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">slidechange</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered on slide stop, or if the value is changed programmatically (by the <code>value</code> method).  Takes arguments event and ui.  Use event.orginalEvent to detect whether the value changed by mouse, keyboard, or programmatically. Use ui.value (single-handled sliders) to obtain the value of the current handle, $(this).slider('values', index) to get another handle's value.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>change</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).slider({
-   change: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>change</code> event by type: <code>slidechange</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;slidechange&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-stop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-stop">stop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">slidestop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the user stops sliding.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>stop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).slider({
-   stop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>stop</code> event by type: <code>slidestop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;slidestop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.slider( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the slider functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.slider( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the slider.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.slider( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the slider.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any slider option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.slider( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-slider element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-value">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-value">value</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.slider( "value"
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Gets or sets the value of the slider. For single handle sliders.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-values">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-values">values</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.slider( "values"
-
-, index
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Gets or sets the values of the slider. For multiple handle or range sliders.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Slider plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.slider.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class=&quot;ui-slider<strong> ui-slider-horizontal</strong> ui-widget ui-widget-content ui-corner-all&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;a style=&quot;left: 0%;&quot; class=&quot;<strong>ui-slider-handle</strong> ui-state-default ui-corner-all&quot; href=&quot;#&quot;&gt;&lt;/a&gt;<br />
-&lt;/div&gt;<br />
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the slider plugin, not markup you should use to create a slider. The only markup needed for that is &lt;div&gt;&lt;div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 36418 bytes
-Post-expand include size: 54713 bytes
-Template argument size: 27351 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3776-1!1!0!!en!2 and timestamp 20110315185554 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/sortable.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/sortable.html
deleted file mode 100644
index 15d63ff..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/sortable.html
+++ /dev/null
@@ -1,1952 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Sortable</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <p>The jQuery UI Sortable plugin makes selected elements sortable by dragging with the mouse.</p>
-<p>All callbacks receive two arguments: The original browser event and a prepared ui object, view below for a documentation of this object (if you name your second argument 'ui'):</p>
-<ul>
-<li><b>ui.helper</b> - the current helper element (most often a clone of the item)</li>
-<li><b>ui.position</b> - current position of the helper</li>
-<li><b>ui.offset</b> - current absolute position of the helper</li>
-<li><b>ui.item</b> - the current dragged element</li>
-<li><b>ui.placeholder</b> - the placeholder (if you defined one)</li>
-<li><b>ui.sender</b> - the sortable where the item comes from (only exists if you move from one connected list to another)</li>
-</ul>
-    </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">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="100">
-A simple jQuery UI Sortable.<br />
-</p>
-<pre>$(&quot;#sortable&quot;).sortable();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#sortable&quot;).sortable();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;ul id=&quot;sortable&quot;&gt;
-&lt;li&gt;Item 1&lt;/li&gt;
-&lt;li&gt;Item 2&lt;/li&gt;
-&lt;li&gt;Item 3&lt;/li&gt;
-&lt;li&gt;Item 4&lt;/li&gt;
-&lt;li&gt;Item 5&lt;/li&gt;
-&lt;/ul&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the sortable. Can be set when initialising (first creating) the sortable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).sortable( "option", "disabled" );
-//setter
-$( ".selector" ).sortable( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</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">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'parent'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Defines where the helper that moves with the mouse is being appended to during the drag (for example, to resolve overlap/zIndex issues).</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>appendTo</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ appendTo: 'body' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>appendTo</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var appendTo = $( ".selector" ).sortable( "option", "appendTo" );
-//setter
-$( ".selector" ).sortable( "option", "appendTo", 'body' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-axis">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-axis">axis</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If defined, the items can be dragged only horizontally or vertically. Possible values:'x', 'y'.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>axis</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ axis: 'x' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>axis</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var axis = $( ".selector" ).sortable( "option", "axis" );
-//setter
-$( ".selector" ).sortable( "option", "axis", 'x' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cancel">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cancel">cancel</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">':input,button'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Prevents sorting if you start on elements matching the selector.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>cancel</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ cancel: 'button' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cancel</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cancel = $( ".selector" ).sortable( "option", "cancel" );
-//setter
-$( ".selector" ).sortable( "option", "cancel", 'button' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-connectWith">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-connectWith">connectWith</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Takes a jQuery selector with items that also have sortables applied. If used, the sortable is now connected to the other one-way, so you can drag from this sortable to the other.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>connectWith</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ connectWith: '.otherlist' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>connectWith</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var connectWith = $( ".selector" ).sortable( "option", "connectWith" );
-//setter
-$( ".selector" ).sortable( "option", "connectWith", '.otherlist' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-containment">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-containment">containment</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Element, String, Selector</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </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>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>containment</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ containment: 'parent' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>containment</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var containment = $( ".selector" ).sortable( "option", "containment" );
-//setter
-$( ".selector" ).sortable( "option", "containment", 'parent' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cursor">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cursor">cursor</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'auto'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Defines the cursor that is being shown while sorting.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>cursor</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ cursor: 'crosshair' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cursor</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cursor = $( ".selector" ).sortable( "option", "cursor" );
-//setter
-$( ".selector" ).sortable( "option", "cursor", 'crosshair' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cursorAt">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cursorAt">cursorAt</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Moves the sorting element or helper so the cursor always appears to drag from the same position. Coordinates can be given as a hash using a combination of one or two keys: <code>{ top, left, right, bottom }</code>.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>cursorAt</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ cursorAt: 'top' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cursorAt</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cursorAt = $( ".selector" ).sortable( "option", "cursorAt" );
-//setter
-$( ".selector" ).sortable( "option", "cursorAt", 'top' );</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>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Time in milliseconds to define when the sorting should start. It helps preventing unwanted drags when clicking on an element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>delay</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ delay: 500 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>delay</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var delay = $( ".selector" ).sortable( "option", "delay" );
-//setter
-$( ".selector" ).sortable( "option", "delay", 500 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-distance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-distance">distance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Tolerance, in pixels, for when sorting should start. If specified, sorting will not start until after mouse is dragged beyond distance. Can be used to allow for clicks on elements within a handle.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>distance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ distance: 30 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>distance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var distance = $( ".selector" ).sortable( "option", "distance" );
-//setter
-$( ".selector" ).sortable( "option", "distance", 30 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-dropOnEmpty">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-dropOnEmpty">dropOnEmpty</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>If false items from this sortable can't be dropped to an empty linked sortable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>dropOnEmpty</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ dropOnEmpty: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>dropOnEmpty</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var dropOnEmpty = $( ".selector" ).sortable( "option", "dropOnEmpty" );
-//setter
-$( ".selector" ).sortable( "option", "dropOnEmpty", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-forceHelperSize">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-forceHelperSize">forceHelperSize</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 true, forces the helper to have a size.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>forceHelperSize</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ forceHelperSize: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>forceHelperSize</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var forceHelperSize = $( ".selector" ).sortable( "option", "forceHelperSize" );
-//setter
-$( ".selector" ).sortable( "option", "forceHelperSize", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-forcePlaceholderSize">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-forcePlaceholderSize">forcePlaceholderSize</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 true, forces the placeholder to have a size.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>forcePlaceholderSize</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ forcePlaceholderSize: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>forcePlaceholderSize</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var forcePlaceholderSize = $( ".selector" ).sortable( "option", "forcePlaceholderSize" );
-//setter
-$( ".selector" ).sortable( "option", "forcePlaceholderSize", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-grid">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-grid">grid</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">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Snaps the sorting element or helper to a grid, every x and y pixels. Array values: [x, y]</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>grid</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ grid: [50, 20] });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>grid</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var grid = $( ".selector" ).sortable( "option", "grid" );
-//setter
-$( ".selector" ).sortable( "option", "grid", [50, 20] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-handle">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-handle">handle</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Selector, Element</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Restricts sort start click to the specified element.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>handle</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ handle: 'h2' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>handle</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var handle = $( ".selector" ).sortable( "option", "handle" );
-//setter
-$( ".selector" ).sortable( "option", "handle", 'h2' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-helper">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-helper">helper</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Function</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'original'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Allows for a helper element to be used for dragging display. The supplied function receives the event and the element being sorted, and should return a DOMElement to be used as a custom proxy helper. Possible values: 'original', 'clone'</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>helper</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ helper: 'clone' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>helper</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var helper = $( ".selector" ).sortable( "option", "helper" );
-//setter
-$( ".selector" ).sortable( "option", "helper", 'clone' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-items">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-items">items</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">'&gt; *'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Specifies which items inside the element should be sortable.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>items</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ items: 'li' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>items</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var items = $( ".selector" ).sortable( "option", "items" );
-//setter
-$( ".selector" ).sortable( "option", "items", 'li' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-opacity">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-opacity">opacity</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Float</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Defines the opacity of the helper while sorting. From 0.01 to 1</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>opacity</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ opacity: 0.6 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>opacity</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var opacity = $( ".selector" ).sortable( "option", "opacity" );
-//setter
-$( ".selector" ).sortable( "option", "opacity", 0.6 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-placeholder">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-placeholder">placeholder</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">false</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Class that gets applied to the otherwise white space.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>placeholder</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ placeholder: 'ui-state-highlight' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>placeholder</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var placeholder = $( ".selector" ).sortable( "option", "placeholder" );
-//setter
-$( ".selector" ).sortable( "option", "placeholder", 'ui-state-highlight' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-revert">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-revert">revert</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Boolean/Integer</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 item will be reverted to its new DOM position with a smooth animation. Optionally, it can also be set to a number that controls the duration of the animation in ms.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>revert</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ revert: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>revert</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var revert = $( ".selector" ).sortable( "option", "revert" );
-//setter
-$( ".selector" ).sortable( "option", "revert", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scroll">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scroll">scroll</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>If set to true, the page scrolls when coming to an edge.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>scroll</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ scroll: false });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scroll</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scroll = $( ".selector" ).sortable( "option", "scroll" );
-//setter
-$( ".selector" ).sortable( "option", "scroll", false );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scrollSensitivity">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scrollSensitivity">scrollSensitivity</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">20</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Defines how near the mouse must be to an edge to start scrolling.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>scrollSensitivity</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ scrollSensitivity: 40 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scrollSensitivity</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scrollSensitivity = $( ".selector" ).sortable( "option", "scrollSensitivity" );
-//setter
-$( ".selector" ).sortable( "option", "scrollSensitivity", 40 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-scrollSpeed">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-scrollSpeed">scrollSpeed</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">20</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The speed at which the window should scroll once the mouse pointer gets within the scrollSensitivity distance.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>scrollSpeed</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ scrollSpeed: 40 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>scrollSpeed</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var scrollSpeed = $( ".selector" ).sortable( "option", "scrollSpeed" );
-//setter
-$( ".selector" ).sortable( "option", "scrollSpeed", 40 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-tolerance">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-tolerance">tolerance</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'intersect'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>This is the way the reordering behaves during drag. Possible values: 'intersect', 'pointer'. In some setups, 'pointer' is more natural.
-</p>
-<ul>
-<li><b>intersect</b>: draggable overlaps the droppable at least 50%</li>
-<li><b>pointer</b>: mouse pointer overlaps the droppable</li>
-</ul>
-<p></p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>tolerance</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ tolerance: 'pointer' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>tolerance</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var tolerance = $( ".selector" ).sortable( "option", "tolerance" );
-//setter
-$( ".selector" ).sortable( "option", "tolerance", 'pointer' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-zIndex">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-zIndex">zIndex</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Integer</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">1000</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Z-index for element/helper while being sorted.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a sortable with the <code>zIndex</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).sortable({ zIndex: 5 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>zIndex</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var zIndex = $( ".selector" ).sortable( "option", "zIndex" );
-//setter
-$( ".selector" ).sortable( "option", "zIndex", 5 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;sortcreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortstart</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when sorting starts.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>start</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   start: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>start</code> event by type: <code>sortstart</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortstart&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-sort">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-sort">sort</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sort</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered during sorting.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>sort</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   sort: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>sort</code> event by type: <code>sort</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sort&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortchange</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered during sorting, but only when the DOM position has changed.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>change</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   change: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>change</code> event by type: <code>sortchange</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortchange&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-beforeStop">
-  <div class="event-header">
-    <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>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when sorting stops, but when the placeholder/helper is still available.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>beforeStop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   beforeStop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>beforeStop</code> event by type: <code>sortbeforestop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortbeforestop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-stop">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-stop">stop</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortstop</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when sorting has stopped.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>stop</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   stop: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>stop</code> event by type: <code>sortstop</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortstop&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-update">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-update">update</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortupdate</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when the user stopped sorting and the DOM position has changed.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>update</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   update: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>update</code> event by type: <code>sortupdate</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortupdate&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-receive">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-receive">receive</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortreceive</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a connected sortable list has received an item from another list.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>receive</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   receive: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>receive</code> event by type: <code>sortreceive</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortreceive&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-remove">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-remove">remove</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortremove</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a sortable item has been dragged out from the list and into another.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>remove</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   remove: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>remove</code> event by type: <code>sortremove</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortremove&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-over">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-over">over</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortover</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a sortable item is moved into a connected list.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>over</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   over: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>over</code> event by type: <code>sortover</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortover&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-out">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-out">out</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortout</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a sortable item is moved away from a connected list.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>out</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   out: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>out</code> event by type: <code>sortout</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortout&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortactivate</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when using connected lists, every connected list on drag start receives it.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>activate</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   activate: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>activate</code> event by type: <code>sortactivate</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortactivate&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-deactivate">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-deactivate">deactivate</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">sortdeactivate</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when sorting was stopped, is propagated to all possible connected lists.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>deactivate</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).sortable({
-   deactivate: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>deactivate</code> event by type: <code>sortdeactivate</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;sortdeactivate&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the sortable functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the sortable.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the sortable.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any sortable option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-sortable element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-serialize">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-serialize">serialize</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "serialize"
-
-, <span class="optional">[</span>options<span class="optional">] </span>
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Serializes the sortable's item id's into a form/ajax submittable string. Calling this method produces a hash that can be appended to any url to easily submit a new item order back to the server.
-</p><p>It works by default by looking at the id of each item in the format 'setname_number', and it spits out a hash like "setname[]=number&amp;setname[]=number".
-</p><p>You can also give in a option hash as second argument to custom define how the function works. The possible options are: 'key' (replaces part1[] with whatever you want), 'attribute' (test another attribute than 'id') and 'expression' (use your own regexp).
-</p><p>If serialize returns an empty string, make sure the id attributes include an underscore.  They must be in the form: "set_number" For example, a 3 element list with id attributes foo_1, foo_5, foo_2 will serialize to foo[]=1&amp;foo[]=5&amp;foo[]=2. You can use an underscore, equal sign or hyphen to separate the set and number.  For example foo=1 or foo-1 or foo_1 all serialize to foo[]=1.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-toArray">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-toArray">toArray</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "toArray"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Serializes the sortable's item id's into an array of string. If you have
-</p>
-<pre>
-&lt;ul id=&quot;a_sortable&quot;&gt;&lt;br&gt;
-&lt;li id=&quot;hello&quot;&gt;Hello&lt;/li&gt;&lt;br&gt;
-&lt;li id=&quot;goodbye&quot;&gt;Good bye&lt;/li&gt;&lt;br&gt;
-&lt;/ul&gt;
-</pre>
-<p>and do
-</p>
-<pre>var result = $('#a_sortable').sortable('toArray');</pre>
-<p>then
-</p>
-<pre>result[0] will contain &quot;hello&quot; and result[1] will contain &quot;goodbye&quot;.</pre></p>
-  </div>
-</li>
-
-<p>
-<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">.sortable( "refresh"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Refresh the sortable items. Custom trigger the reloading of all sortable items, causing new items to be recognized.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-refreshPositions">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-refreshPositions">refreshPositions</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "refreshPositions"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Refresh the cached positions of the sortables' items. Calling this method refreshes the cached item positions of all sortables. This is usually done automatically by the script and slows down performance. Use wisely.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-cancel">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-cancel">cancel</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.sortable( "cancel"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Cancels a change in the current sortable and reverts it back to how it was before the current sort started. Useful in the stop and receive callback functions.
-</p><p>If the sortable item is not being moved from one connected sortable to another:
-</p>
-<pre>$(this).sortable('cancel');</pre>
-<p>will cancel the change.
-</p><p>If the sortable item is being moved from one connected sortable to another:
-</p>
-<pre>$(ui.sender).sortable('cancel');</pre>
-<p>will cancel the change. Useful in the 'receive' callback.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Sortable plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.sortable.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;ul class=&quot;<strong>ui-sortable</strong>&quot;&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li class=&quot;<strong>ui-sortable-helper</strong>&quot;&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li class=&quot;<strong>ui-sortable-placeholder</strong>&quot;&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&lt;/ul&gt;
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the sortable plugin, not markup you should use to create a sortable. The only markup needed for that is <br />&lt;ul&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;li&gt;&lt;/li&gt;<br />
-&lt;/ul&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 74974 bytes
-Post-expand include size: 128872 bytes
-Template argument size: 72454 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3772-1!1!0!!en!2 and timestamp 20110315194349 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/switchClass.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/switchClass.html
deleted file mode 100644
index 1f5ae75..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/switchClass.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI switchClass</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/switchClass?section=1" title="Edit section: switchClass( remove, add, [duration] )">edit</a>]</div><a name="switchClass.28_remove.2C_add.2C_.5Bduration.5D_.29"></a><h3>switchClass( remove, add, <span class="optional">[</span>duration<span class="optional">]</span> )</h3>
-<p>Switches from the class defined in the first argument to the class defined as second argument, using an optional transition.</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="170">
-Switch the class 'highlight' to 'blue' when a paragraph is clicked with a one second transition.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">switchClass</strong>(&quot;highlight&quot;, &quot;blue&quot;, 1000);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  p { margin: 4px; font-size:16px; font-weight:bolder; 
-      cursor:pointer; }
-  .blue { background: blue; }
-  .highlight { background:yellow; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">switchClass</strong>(&quot;highlight&quot;, &quot;blue&quot;, 1000);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;p class=&quot;highlight&quot;&gt;Click to switch&lt;/p&gt;
-&lt;p class=&quot;highlight&quot;&gt;to blue&lt;/p&gt;
-&lt;p class=&quot;highlight&quot;&gt;on these&lt;/p&gt;
-&lt;p class=&quot;highlight&quot;&gt;paragraphs&lt;/p&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-remove">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-remove">remove</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The CSS class that will be removed.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-add">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-add">add</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The CSS class that will be added.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-duration">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-duration">duration</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </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>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 5818 bytes
-Post-expand include size: 7682 bytes
-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 20110315175313 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/tabs.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/tabs.html
deleted file mode 100644
index 0affd40..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/tabs.html
+++ /dev/null
@@ -1,1549 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Options</a></li>
-<li><a href="#events">Events</a></li>
-<li><a href="#methods">Methods</a></li>
-<li><a href="#theming">Theming</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI Tabs</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <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>
-<li class="toclevel-1"><a href="#Ajax_mode"><span class="tocnumber">2</span> <span class="toctext">Ajax mode</span></a>
-<ul>
-<li class="toclevel-2"><a href="#Back_button_and_bookmarking"><span class="tocnumber">2.1</span> <span class="toctext">Back button and bookmarking</span></a></li>
-</ul>
-</li>
-<li class="toclevel-1"><a href="#How_to..."><span class="tocnumber">3</span> <span class="toctext">How to...</span></a>
-<ul>
-<li class="toclevel-2"><a href="#...retrieve_the_index_of_the_currently_selected_tab"><span class="tocnumber">3.1</span> <span class="toctext">...retrieve the index of the currently selected tab</span></a></li>
-<li class="toclevel-2"><a href="#...open_links_in_the_current_tab_instead_of_leaving_the_page"><span class="tocnumber">3.2</span> <span class="toctext">...open links in the current tab instead of leaving the page</span></a></li>
-<li class="toclevel-2"><a href="#...select_a_tab_from_a_text_link_instead_of_clicking_a_tab_itself"><span class="tocnumber">3.3</span> <span class="toctext">...select a tab from a text link instead of clicking a tab itself</span></a></li>
-<li class="toclevel-2"><a href="#...prevent_switching_to_the_tab_on_click_depending_on_form_validation"><span class="tocnumber">3.4</span> <span class="toctext">...prevent switching to the tab on click depending on form validation</span></a></li>
-<li class="toclevel-2"><a href="#...immediately_select_a_just_added_tab"><span class="tocnumber">3.5</span> <span class="toctext">...immediately select a just added tab</span></a></li>
-<li class="toclevel-2"><a href="#...follow_a_tab.27s_URL_instead_of_loading_its_content_via_ajax"><span class="tocnumber">3.6</span> <span class="toctext">...follow a tab's URL instead of loading its content via ajax</span></a></li>
-<li class="toclevel-2"><a href="#...prevent_a_FOUC_.28Flash_of_Unstyled_Content.29_before_tabs_are_initialized"><span class="tocnumber">3.7</span> <span class="toctext">...prevent a FOUC (Flash of Unstyled Content) before tabs are initialized</span></a></li>
-</ul>
-</li>
-<li class="toclevel-1"><a href="#Why_does..."><span class="tocnumber">4</span> <span class="toctext">Why does...</span></a>
-<ul>
-<li class="toclevel-2"><a href="#...my_slider.2C_Google_Map.2C_sIFR_etc._not_work_when_placed_in_a_hidden_.28inactive.29_tab.3F"><span class="tocnumber">4.1</span> <span class="toctext">...my slider, Google Map, sIFR etc. not work when placed in a hidden (inactive) tab?</span></a></li>
-</ul>
-</li>
-</ul>
-</td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=1" title="Template:UIAPIPlugin">edit</a>]</div><a name="Events"></a><h2>Events</h2>
-<p>A series of events fire when interacting with a tabs interface:
-</p>
-<ul><li> tabsselect, tabsload, tabsshow (in that order)
-</li><li> tabsadd, tabsremove
-</li><li> tabsenable, tabsdisable
-</li></ul>
-<p>Event binding example:
-</p>
-<pre>$('#example').bind('tabsselect', function(event, ui) {
-
-    // Objects available in the function context:
-    ui.tab     // anchor element of the selected (clicked) tab
-    ui.panel   // element, that contains the selected/clicked tab contents
-    ui.index   // zero-based index of the selected (clicked) tab
-
-});</pre>
-<p>Note that if a handler for the tabsselect event returns false, the clicked tab will not become selected (useful for example if switching to the next tab requires a form validation).
-</p>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=2" title="Template:UIAPIPlugin">edit</a>]</div><a name="Ajax_mode"></a><h2> Ajax mode </h2>
-<p>Tabs supports loading tab content via Ajax in an unobtrusive manner.
-</p><p>The HTML you need is slightly different from the one that is used for static tabs: A list of links pointing to existing resources (from where the content gets loaded) and no additional containers at all (unobtrusive!). The containers' markup is going to be created on the fly:
-</p>
-<pre>
-&lt;div id=&quot;example&quot;&gt;
-     &lt;ul&gt;
-         &lt;li&gt;&lt;a href=&quot;ahah_1.html&quot;&gt;&lt;span&gt;Content 1&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-         &lt;li&gt;&lt;a href=&quot;ahah_2.html&quot;&gt;&lt;span&gt;Content 2&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-         &lt;li&gt;&lt;a href=&quot;ahah_3.html&quot;&gt;&lt;span&gt;Content 3&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-     &lt;/ul&gt;
-&lt;/div&gt;
-</pre>
-<p>Obviously this degrades gracefully - the links, e.g. the content, will still be accessible with JavaScript disabled.
-</p><p>Note that if you wish to reuse an existing container, you
-could do so by matching a title attribute and the container's id:
-</p>
-<pre>
-&lt;li&gt;&lt;a href=&quot;hello/world.html&quot; title=&quot;Todo Overview&quot;&gt; ... &lt;/a&gt;&lt;/li&gt;
-</pre>
-<p>and a container like:
-</p>
-<pre>
-&lt;div id=&quot;Todo_Overview&quot;&gt; ... &lt;/div&gt;
-</pre>
-<p>(Note how white space is replaced with an underscore)
-</p><p>This is useful if you want a human readable hash in the URL instead of
-a cryptic generated one.
-</p>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=3" title="Template:UIAPIPlugin">edit</a>]</div><a name="Back_button_and_bookmarking"></a><h3>Back button and bookmarking</h3>
-<p>Tabs 2 already supported this functionality, although the history plugin needs a rewrite first (it doesn't support Safari 3 and is in general a little inflexible) before it can be build back into the tabs. It is planned and Klaus is working on it whenever he finds the time. Actual bugs in the UI Tabs plugin itself always have higher priority though.
-</p>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=4" title="Template:UIAPIPlugin">edit</a>]</div><a name="How_to..."></a><h2>How to...</h2>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=5" title="Template:UIAPIPlugin">edit</a>]</div><a name="...retrieve_the_index_of_the_currently_selected_tab"></a><h3>...retrieve the index of the currently selected tab</h3>
-<pre>var $tabs = $('#example').tabs();
-var selected = $tabs.tabs('option', 'selected'); // =&gt; 0</pre>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=6" title="Template:UIAPIPlugin">edit</a>]</div><a name="...open_links_in_the_current_tab_instead_of_leaving_the_page"></a><h3>...open links in the current tab instead of leaving the page</h3>
-<p>"Hijax" links after tab content has been loaded:
-</p>
-<pre>$('#example').tabs({
-    load: function(event, ui) {
-        $('a', ui.panel).click(function() {
-            $(ui.panel).load(this.href);
-            return false;
-        });
-    }
-});</pre>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=7" title="Template:UIAPIPlugin">edit</a>]</div><a name="...select_a_tab_from_a_text_link_instead_of_clicking_a_tab_itself"></a><h3>...select a tab from a text link instead of clicking a tab itself</h3>
-<pre>var $tabs = $('#example').tabs(); // first tab selected
-
-$('#my-text-link').click(function() { // bind click event to link
-    $tabs.tabs('select', 2); // switch to third tab
-    return false;
-});</pre>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=8" title="Template:UIAPIPlugin">edit</a>]</div><a name="...prevent_switching_to_the_tab_on_click_depending_on_form_validation"></a><h3>...prevent switching to the tab on click depending on form validation</h3>
-<p>Returning false in the tabs select handler prevents the clicked tab from becoming selected.
-</p>
-<pre>$('#example').tabs({
-    select: function(event, ui) {
-        var isValid = ... // form validation returning true or false
-        return isValid;
-    }
-});</pre>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=9" title="Template:UIAPIPlugin">edit</a>]</div><a name="...immediately_select_a_just_added_tab"></a><h3>...immediately select a just added tab</h3>
-<pre>var $tabs = $('#example').tabs({
-    add: function(event, ui) {
-        $tabs.tabs('select', '#' + ui.panel.id);
-    }
-});</pre>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=10" title="Template:UIAPIPlugin">edit</a>]</div><a name="...follow_a_tab.27s_URL_instead_of_loading_its_content_via_ajax"></a><h3>...follow a tab's URL instead of loading its content via ajax</h3>
-<p>Note that opening a tab in a new window is unexpected, e.g.
-inconsistent behaviour exposing a usablity problem (<a href="http://www.useit.com/alertbox/tabs.html" class="external free" title="http://www.useit.com/alertbox/tabs.html">http://www.useit.com/alertbox/tabs.html</a>).
-</p>
-<pre>$('#example').tabs({
-    select: function(event, ui) {
-        var url = $.data(ui.tab, 'load.tabs');
-        if( url ) {
-            location.href = url;
-            return false;
-        }
-        return true;
-    }
-});</pre>
-<p><br />
-</p>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=11" title="Template:UIAPIPlugin">edit</a>]</div><a name="...prevent_a_FOUC_.28Flash_of_Unstyled_Content.29_before_tabs_are_initialized"></a><h3>...prevent a FOUC (Flash of Unstyled Content) before tabs are initialized</h3>
-<p>Add the necessary classes to hide an inactive tab panel to the HTML right away - note that this will <b>not</b> degrade gracefully with JavaScript being disabled:
-</p>
-<pre>&lt;div id=&quot;example&quot; class=&quot;ui-tabs&quot;&gt;
-  ...
-  &lt;div id=&quot;a-tab-panel&quot; class=&quot;ui-tabs-hide&quot;&gt; &lt;/div&gt;
-  ...
-&lt;/div&gt;</pre>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=12" title="Template:UIAPIPlugin">edit</a>]</div><a name="Why_does..."></a><h2>Why does...</h2>
-<div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/Template:UIAPIPlugin?section=13" title="Template:UIAPIPlugin">edit</a>]</div><a name="...my_slider.2C_Google_Map.2C_sIFR_etc._not_work_when_placed_in_a_hidden_.28inactive.29_tab.3F"></a><h3>...my slider, Google Map, sIFR etc. not work when placed in a hidden (inactive) tab?</h3>
-<p>Any component that requires some dimensional computation for its initialization won't work in a hidden tab, because the tab panel itself is hidden via <code>display: none</code> so that any elements inside won't report their actual width and height (0 in most browsers).
-</p><p>There's an easy workaround. Use the <em>off-left technique</em> for hiding inactive tab panels. E.g. in your style sheet replace the rule for the class selector ".ui-tabs .ui-tabs-hide" with
-</p>
-<pre>.ui-tabs .ui-tabs-hide {
-    position: absolute;
-    left: -10000px;
-}</pre>
-<p>For Google maps you can also resize the map once the tab is displayed like this:
-</p>
-<pre>$('#example').bind('tabsshow', function(event, ui) {
-    if (ui.panel.id == &quot;map-tab&quot;) {
-        resizeMap();
-    }
-});</pre>
-resizeMap() will call Google Maps' checkResize() on the particular map.
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>UI Core</li>
-<li>UI Widget</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>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="295">
-A simple jQuery UI Tabs.<br />
-</p>
-<pre>$(&quot;#tabs&quot;).tabs();
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;#tabs&quot;).tabs();
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;div id=&quot;tabs&quot;&gt;
-    &lt;ul&gt;
-        &lt;li&gt;&lt;a href=&quot;#fragment-1&quot;&gt;&lt;span&gt;One&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-        &lt;li&gt;&lt;a href=&quot;#fragment-2&quot;&gt;&lt;span&gt;Two&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-        &lt;li&gt;&lt;a href=&quot;#fragment-3&quot;&gt;&lt;span&gt;Three&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
-    &lt;/ul&gt;
-    &lt;div id=&quot;fragment-1&quot;&gt;
-        &lt;p&gt;First tab is active by default:&lt;/p&gt;
-        &lt;pre&gt;&lt;code&gt;$('#example').tabs();&lt;/code&gt;&lt;/pre&gt;
-    &lt;/div&gt;
-    &lt;div id=&quot;fragment-2&quot;&gt;
-        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
-        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
-    &lt;/div&gt;
-    &lt;div id=&quot;fragment-3&quot;&gt;
-        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
-        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
-        Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
-    &lt;/div&gt;
-&lt;/div&gt;
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Options</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</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>Disables (true) or enables (false) the tabs. Can be set when initialising (first creating) the tabs.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ disabled: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).tabs( "option", "disabled" );
-//setter
-$( ".selector" ).tabs( "option", "disabled", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-ajaxOptions">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-ajaxOptions">ajaxOptions</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Options</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Additional Ajax options to consider when loading tab content (see $.ajax).</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>ajaxOptions</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ ajaxOptions: { async: false } });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>ajaxOptions</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var ajaxOptions = $( ".selector" ).tabs( "option", "ajaxOptions" );
-//setter
-$( ".selector" ).tabs( "option", "ajaxOptions", { async: false } );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cache">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cache">cache</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>Whether or not to cache remote tabs content, e.g. load only once or with every click. Cached content is being lazy loaded, e.g once and only once for the first click. Note that to prevent the actual Ajax requests from being cached by the browser you need to provide an extra cache: false flag to ajaxOptions.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>cache</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ cache: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cache</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cache = $( ".selector" ).tabs( "option", "cache" );
-//setter
-$( ".selector" ).tabs( "option", "cache", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-collapsible">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-collapsible">collapsible</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>Set to true to allow an already selected tab to become unselected again upon reselection.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>collapsible</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ collapsible: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>collapsible</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var collapsible = $( ".selector" ).tabs( "option", "collapsible" );
-//setter
-$( ".selector" ).tabs( "option", "collapsible", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-cookie">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-cookie">cookie</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">null</dd>
-      
-    </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): &#123; expires: 7, path: '/', domain: 'jquery.com', secure: true &#125;. 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>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>cookie</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ cookie: { expires: 30 } });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>cookie</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var cookie = $( ".selector" ).tabs( "option", "cookie" );
-//setter
-$( ".selector" ).tabs( "option", "cookie", { expires: 30 } );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-deselectable">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-deselectable">deselectable</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>deprecated in jQuery UI 1.7, use collapsible.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>deselectable</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ deselectable: true });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>deselectable</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var deselectable = $( ".selector" ).tabs( "option", "deselectable" );
-//setter
-$( ".selector" ).tabs( "option", "deselectable", true );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-disabled">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-disabled">disabled</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Array&lt;Number&gt;</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">[]</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>An array containing the position of the tabs (zero-based index) that should be disabled on initialization.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>disabled</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ disabled: [1, 2] });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>disabled</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var disabled = $( ".selector" ).tabs( "option", "disabled" );
-//setter
-$( ".selector" ).tabs( "option", "disabled", [1, 2] );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-event">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-event">event</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'click'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The type of event to be used for selecting a tab.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>event</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ event: 'mouseover' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>event</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var event = $( ".selector" ).tabs( "option", "event" );
-//setter
-$( ".selector" ).tabs( "option", "event", 'mouseover' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-fx">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-fx">fx</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Options, Array&lt;Options&gt;</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">null</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Enable animations for hiding and showing tab panels. The duration option can be a string representing one of the three predefined speeds ("slow", "normal", "fast") or the duration in milliseconds to run an animation (default is "normal").</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>fx</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ fx: { opacity: 'toggle' } });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>fx</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var fx = $( ".selector" ).tabs( "option", "fx" );
-//setter
-$( ".selector" ).tabs( "option", "fx", { opacity: 'toggle' } );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-idPrefix">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-idPrefix">idPrefix</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'ui-tabs-'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>If the remote tab, its anchor element that is, has no title attribute to generate an id from, an id/fragment identifier is created from this prefix and a unique id returned by $.data(el), for example "ui-tabs-54".</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>idPrefix</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ idPrefix: 'ui-tabs-primary' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>idPrefix</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var idPrefix = $( ".selector" ).tabs( "option", "idPrefix" );
-//setter
-$( ".selector" ).tabs( "option", "idPrefix", 'ui-tabs-primary' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-panelTemplate">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-panelTemplate">panelTemplate</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'&lt;div&gt;&lt;/div&gt;'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>HTML template from which a new tab panel is created in case of adding a tab with the add method or when creating a panel for a remote tab on the fly.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>panelTemplate</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ panelTemplate: '&lt;li&gt;&lt;/li&gt;' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>panelTemplate</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var panelTemplate = $( ".selector" ).tabs( "option", "panelTemplate" );
-//setter
-$( ".selector" ).tabs( "option", "panelTemplate", '&lt;li&gt;&lt;/li&gt;' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-selected">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-selected">selected</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Number</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">0</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>Zero-based index of the tab to be selected on initialization. To set all tabs to unselected pass -1 as value.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>selected</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ selected: 3 });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>selected</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var selected = $( ".selector" ).tabs( "option", "selected" );
-//setter
-$( ".selector" ).tabs( "option", "selected", 3 );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-spinner">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-spinner">spinner</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'&lt;em&gt;Loading&amp;#8230;&lt;/em&gt;'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The HTML content of this string is shown in a tab title while remote content is loading. Pass in empty string to deactivate that behavior. An span element must be present in the A tag of the title, for the spinner content to be visible.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>spinner</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ spinner: 'Retrieving data...' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>spinner</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var spinner = $( ".selector" ).tabs( "option", "spinner" );
-//setter
-$( ".selector" ).tabs( "option", "spinner", 'Retrieving data...' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="option" id="option-tabTemplate">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-tabTemplate">tabTemplate</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-      <dt class="option-default-label">Default:</dt>
-        <dd class="option-default">'&lt;li&gt;&lt;a href&#61;"#&#123;href&#125;"&gt;&lt;span&gt;#&#123;label&#125;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;'</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>HTML template from which a new tab is created and added. The placeholders #&#123;href&#125; and #&#123;label&#125; are replaced with the url and tab label that are passed as arguments to the add method.</p>
-  </div>
-  <div class="option-examples">
-    <h4>Code examples</h4>
-    <dl class="option-examples-list">
-    
-<dt>
-  Initialize a tabs with the <code>tabTemplate</code> option specified.
-</dt>
-<dd>
-<pre><code>$( ".selector" ).tabs({ tabTemplate: '&lt;div&gt;&lt;a href&#61;"#&#123;href&#125;"&gt;&lt;span&gt;#&#123;label&#125;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;' });</code></pre>
-</dd>
-
-    
-<dt>
-  Get or set the <code>tabTemplate</code> option, after init.
-</dt>
-<dd>
-<pre><code>//getter
-var tabTemplate = $( ".selector" ).tabs( "option", "tabTemplate" );
-//setter
-$( ".selector" ).tabs( "option", "tabTemplate", '&lt;div&gt;&lt;a href&#61;"#&#123;href&#125;"&gt;&lt;span&gt;#&#123;label&#125;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;' );</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="events">
-    <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>$( &quot;.selector&quot; ).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>$( &quot;.selector&quot; ).bind( &quot;tabscreate&quot;, 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>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">tabsselect</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when clicking a tab.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>select</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).tabs({
-   select: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>select</code> event by type: <code>tabsselect</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;tabsselect&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-load">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-load">load</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">tabsload</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered after the content of a remote tab has been loaded.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>load</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).tabs({
-   load: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>load</code> event by type: <code>tabsload</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;tabsload&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-show">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-show">show</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">tabsshow</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a tab is shown.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>show</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).tabs({
-   show: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>show</code> event by type: <code>tabsshow</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;tabsshow&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-add">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-add">add</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">tabsadd</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a tab is added.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>add</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).tabs({
-   add: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>add</code> event by type: <code>tabsadd</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;tabsadd&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-remove">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-remove">remove</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">tabsremove</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a tab is removed.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>remove</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).tabs({
-   remove: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>remove</code> event by type: <code>tabsremove</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;tabsremove&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-enable">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-enable">enable</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">tabsenable</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a tab is enabled.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>enable</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).tabs({
-   enable: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>enable</code> event by type: <code>tabsenable</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;tabsenable&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-
-<li class="event" id="event-disable">
-  <div class="event-header">
-    <h3 class="event-name"><a href="#event-disable">disable</a></h3>
-    <dl>
-      <dt class="event-type-label">Type:</dt>
-        <dd class="event-type">tabsdisable</dd>
-    </dl>
-  </div>
-  <div class="event-description">
-    <p>This event is triggered when a tab is disabled.</p>
-  </div>
-  <div class="event-examples">
-    <h4>Code examples</h4>
-    <dl class="event-examples-list">
-    
-<dt>
-  Supply a callback function to handle the <code>disable</code> event as an init option.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).tabs({
-   disable: function(event, ui) { ... }
-});</code></pre>
-</dd>
-
-    
-<dt>
-  Bind to the <code>disable</code> event by type: <code>tabsdisable</code>.
-</dt>
-<dd>
-<pre><code>$( &quot;.selector&quot; ).bind( &quot;tabsdisable&quot;, function(event, ui) {
-  ...
-});</code></pre>
-</dd>
-
-    </dl>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="methods">
-    <h2 class="top-header">Methods</h2>
-    <ul class="methods-list">
-      
-<li class="method" id="method-destroy">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-destroy">destroy</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "destroy"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove the tabs functionality completely. This will return the element back to its pre-init state.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "disable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Disable the tabs.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "enable"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Enable the tabs.</p>
-  </div>
-</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"
-
-, optionName
-
-, <span class="optional">[</span>value<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Get or set any tabs option. If no value is specified, will act as a getter.</p>
-  </div>
-</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>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "widget"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Returns the .ui-tabs element.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-add">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-add">add</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "add"
-
-, url
-
-, label
-
-, <span class="optional">[</span>index<span class="optional">] </span>
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Add a new tab. The second argument is either a URL consisting of a fragment identifier only to create an in-page tab or a full url (relative or absolute, no cross-domain support) to turn the new tab into an Ajax (remote) tab. The third is the zero-based position where to insert the new tab. Optional, by default a new tab is appended at the end.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-remove">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-remove">remove</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "remove"
-
-, index
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Remove a tab. The second argument is the zero-based index of the tab to be removed.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-enable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-enable">enable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "enable"
-
-, index
-
-
-
-
-
-)</dd>
-    </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').tabs("option","disabled",[]);</code>. The second argument is the zero-based index of the tab to be enabled.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-disable">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-disable">disable</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "disable"
-
-, index
-
-
-
-
-
-)</dd>
-    </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').tabs("option","disabled", [1, 2, 3]);</code>  The second argument is the zero-based index of the tab to be disabled.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-select">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-select">select</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "select"
-
-, index
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Select a tab, as if it were clicked. The second argument is the zero-based index of the tab to be selected or the id selector of the panel the tab is associated with (the tab's href fragment identifier, e.g. hash, points to the panel's id).</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-load">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-load">load</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "load"
-
-, index
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Reload the content of an Ajax tab programmatically. This method always loads the tab content from the remote location, even if cache is set to true. The second argument is the zero-based index of the tab to be reloaded.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-url">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-url">url</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "url"
-
-, index
-
-, url
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Change the url from which an Ajax (remote) tab will be loaded. The specified URL will be used for subsequent loads. Note that you can not only change the URL for an existing remote tab with this method, but also turn an in-page tab into a remote tab.  The second argument is the zero-based index of the tab of which its URL is to be updated.  The third is a URL the content of the tab is loaded from.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-length">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-length">length</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "length"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Retrieve the number of tabs of the first matched tab pane.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-abort">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-abort">abort</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "abort"
-
-
-
-
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Terminate all running tab ajax requests and animations.</p>
-  </div>
-</li>
-
-
-<li class="method" id="method-rotate">
-  <div class="method-header">
-    <h3 class="method-name"><a href="#method-rotate">rotate</a></h3>
-    <dl>
-      <dt class="method-signature-label">Signature:</dt>
-        <dd class="method-signature">.tabs( "rotate"
-
-, ms
-
-, <span class="optional">[</span>continuing<span class="optional">] </span>
-
-
-
-)</dd>
-    </dl>
-  </div>
-  <div class="method-description">
-    <p>Set up an automatic rotation through tabs of a tab pane.  The second argument is an amount of time in milliseconds until the next tab in the cycle gets activated. Use 0 or null to stop the rotation.  The third controls whether or not to continue the rotation after a tab has been selected by a user. Default: false.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-  <div id="theming">
-    <h2 class="top-header">Theming</h2>
-    <p>The jQuery UI Tabs plugin uses the jQuery UI CSS Framework to style its look and feel, including colors and background textures. We recommend using the ThemeRoller tool to create and download custom themes that are easy to build and maintain.
-</p>
-  <p>If a deeper level of customization is needed, there are widget-specific classes referenced within the jquery.ui.tabs.css stylesheet that can be modified. These classes are highlighed in bold below.
-</p>
-    
-  <h3>Sample markup with jQuery UI CSS Framework classes</h3>
-  &lt;div class=&quot;<strong>ui-tabs</strong> ui-widget ui-widget-content ui-corner-all&quot; id=&quot;tabs&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;ul class=&quot;<strong>ui-tabs-nav</strong> ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li class=&quot;ui-state-default ui-corner-top ui-tabs-selected ui-state-active&quot;&gt;&lt;a href=&quot;#tabs-1&quot;&gt;Nunc tincidunt&lt;/a&gt;&lt;/li&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li class=&quot;ui-state-default ui-corner-top&quot;&gt;&lt;a href=&quot;#tabs-2&quot;&gt;Proin dolor&lt;/a&gt;&lt;/li&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;div class=&quot;<strong>ui-tabs-panel</strong> ui-widget-content ui-corner-bottom&quot; id=&quot;tabs-1&quot;&gt;<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;p&gt;Tab one content goes here.&lt;/p&gt;<br />
-&nbsp;&nbsp;&nbsp;&lt;/div&gt;<br />
-&nbsp;&nbsp;&nbsp; ...<br />
-&lt;/div&gt;<br />
-  <p class="theme-note">
-    <strong>
-      Note: This is a sample of markup generated by the tabs plugin, not markup you should use to create a tabs. The only markup needed for that is <br />&lt;div id=&quot;tabs&quot;&gt;<br />
-&#160;&#160;&#160;&lt;ul&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;&lt;li&gt;&lt;a href=&quot;#tabs-1&quot;&gt;Nunc tincidunt&lt;/a&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;&lt;li&gt;&lt;a href=&quot;#tabs-2&quot;&gt;Proin dolor&lt;/a&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;&lt;li&gt;&lt;a href=&quot;#tabs-3&quot;&gt;Aenean lacinia&lt;/a&gt;&lt;/li&gt;<br />
-&#160;&#160;&#160;&lt;/ul&gt;<br />
-&#160;&#160;&#160;&lt;div id=&quot;tabs-1&quot;&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;&lt;p&gt;Tab 1 content&lt;/p&gt;<br />
-&#160;&#160;&#160;&lt;/div&gt;<br />
-&#160;&#160;&#160;&lt;div id=&quot;tabs-2&quot;&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;&lt;p&gt;Tab 2 content&lt;/p&gt;<br />
-&#160;&#160;&#160;&lt;/div&gt;<br />
-&#160;&#160;&#160;&lt;div id=&quot;tabs-3&quot;&gt;<br />
-&#160;&#160;&#160;&#160;&#160;&#160;&lt;p&gt;Tab 3 content&lt;/p&gt;<br />
-&#160;&#160;&#160;&lt;/div&gt;<br />
-&lt;/div&gt;.
-    </strong>
-  </p>
-
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 57707 bytes
-Post-expand include size: 98476 bytes
-Template argument size: 57716 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:3777-1!1!0!!en!2 and timestamp 20110315194556 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggle.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggle.html
deleted file mode 100644
index 9b1504f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggle.html
+++ /dev/null
@@ -1,144 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI toggle</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/toggle?section=1" title="Edit section: toggle( effect, [options], [speed], [callback] )">edit</a>]</div><a name="toggle.28_effect.2C_.5Boptions.5D.2C_.5Bspeed.5D.2C_.5Bcallback.5D_.29"></a><h3>toggle( effect, <span class="optional">[</span>options<span class="optional">]</span>, <span class="optional">[</span>speed<span class="optional">]</span>, <span class="optional">[</span>callback<span class="optional">]</span> )</h3>
-<p>The enhanced toggle method optionally accepts jQuery UI advanced effects.</p>
-<p>Uses a specific effect on an element to toggle the element if the first argument is an effect string.</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="170">
-Apply the effect slide if you click on the p to toggle a div.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">toggle</strong>(&quot;slide&quot;, {}, 1000);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.slide.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  div { display: none; margin: 0px; width: 100px; height: 80px; background: blue; position: relative; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(&quot;div&quot;).<strong class="selflink">toggle</strong>(&quot;slide&quot;, {}, 1000);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;p&gt;Click me&lt;/p&gt;&lt;div&gt;&lt;/div&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-effect">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-effect">effect</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>The effect to be used. Possible values: 'blind', 'clip', 'drop', 'explode', 'fold', 'puff', 'slide', 'scale', 'size', 'pulsate'.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-options">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-options">options</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Hash</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A object/hash including specific options for the effect.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-speed">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-speed">speed</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <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>
-
-
-<li class="option" id="option-callback">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-callback">callback</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">Function</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A function that is called after the effect is completed.</p>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-Pre-expand include size: 6350 bytes
-Post-expand include size: 8665 bytes
-Template argument size: 5445 bytes
-Maximum: 2097152 bytes
--->
-
-<!-- Saved in parser cache with key jqdocs_docs:pcache:idhash:2615-1!1!0!!en!2 and timestamp 20110315175400 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggleClass.html b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggleClass.html
deleted file mode 100644
index 931c73d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/docs/toggleClass.html
+++ /dev/null
@@ -1,111 +0,0 @@
-
-<ul class="UIAPIPlugin-toc">
-<li><a href="#overview">Overview</a></li>
-<li><a href="#options">Arguments</a></li>
-</ul>
-<div class="UIAPIPlugin">
-  <h1>jQuery UI toggleClass</h1>
-  <div id="overview">
-    <h2 class="top-header">Overview</h2>
-    <div id="overview-main">
-        <div class="editsection" style="float:right;margin-left:5px;">[<a href="http://docs.jquery.com/action/edit/UI/Effects/toggleClass?section=1" title="Edit section: toggleClass( class, [duration] )">edit</a>]</div><a name="toggleClass.28_class.2C_.5Bduration.5D_.29"></a><h3>toggleClass( class, <span class="optional">[</span>duration<span class="optional">]</span> )</h3>
-<p>Adds the specified class if it is not present, and removes the specified class if it is present, using an optional transition.</p>
-    </div>
-    <div id="overview-dependencies">
-        <h3>Dependencies</h3>
-        <ul>
-<li>Effects Core</li>
-</ul>
-    </div>
-    <div id="overview-example">
-        <h3>Example</h3>
-        <div id="overview-example" class="example">
-<ul><li><a href="#demo"><span>Demo</span></a></li><li><a href="#source"><span>View Source</span></a></li></ul>
-<p><div id="demo" class="tabs-container" rel="100">
-Adds the 'selected' class if it is not present, and removes the 'selected' class if it is present.<br />
-</p>
-<pre>$(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">toggleClass</strong>(&quot;selected&quot;, 1000);
-    });
-</pre>
-<p></div><div id="source" class="tabs-container">
-</p>
-<pre>&lt;!DOCTYPE html&gt;
-&lt;html&gt;
-&lt;head&gt;
-  &lt;link href=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js&quot;&gt;&lt;/script&gt;
-  &lt;script src=&quot;http://ui.jquery.com/latest/ui/effects.core.js&quot;&gt;&lt;/script&gt;
-&lt;style type=&quot;text/css&quot;&gt;
-  p { cursor: pointer; font-size: 1.2em; }
-  .selected { color:red; }
-&lt;/style&gt;
-  &lt;script&gt;
-  $(document).ready(function() {
-    $(&quot;p&quot;).<a href="http://docs.jquery.com/Events/click" title="Events/click">click</a>(function () {
-      $(this).<strong class="selflink">toggleClass</strong>(&quot;selected&quot;, 1000);
-    });
-  });
-  &lt;/script&gt;
-&lt;/head&gt;
-&lt;body style="font-size:62.5%;"&gt;
-  
-&lt;p&gt;Click me to toggle 'selected' class.&lt;/p&gt;
-&lt;p class=&quot;selected&quot;&gt;Click me to toggle 'selected' class.&lt;/p&gt;
-&lt;p&gt;Click me to toggle 'selected' class.&lt;/p&gt;
-
-&lt;/body&gt;
-&lt;/html&gt;
-</pre>
-<p></div>
-</p><p></div>
-    </div>
-  </div>
-  <div id="options">
-    <h2 class="top-header">Arguments</h2>
-    <ul class="options-list">
-      
-<li class="option" id="option-class">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-class">class</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String</dd>
-      
-    </dl>
-  </div>
-  <div class="option-description">
-    <p>A CSS class to toggle on the elements.</p>
-  </div>
-</li>
-
-
-<li class="option" id="option-duration">
-  <div class="option-header">
-    <h3 class="option-name"><a href="#option-duration">duration</a></h3>
-    <dl>
-      <dt class="option-type-label">Type:</dt>
-        <dd class="option-type">String, Number</dd>
-      
-      <dt class="option-optional-label">Optional</dt>
-      
-    </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>
-  </div>
-</li>
-
-    </ul>
-  </div>
-</div>
-
-</p><!-- 
-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 20110315175306 -->
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.bgiframe-2.1.2.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.bgiframe-2.1.2.js
deleted file mode 100644
index 5cd38bb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.bgiframe-2.1.2.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
- * Licensed under the MIT License (LICENSE.txt).
- *
- * Version 2.1.2
- */
-
-(function($){
-
-$.fn.bgiframe = ($.browser.msie && /msie 6\.0/i.test(navigator.userAgent) ? function(s) {
-    s = $.extend({
-        top     : 'auto', // auto == .currentStyle.borderTopWidth
-        left    : 'auto', // auto == .currentStyle.borderLeftWidth
-        width   : 'auto', // auto == offsetWidth
-        height  : 'auto', // auto == offsetHeight
-        opacity : true,
-        src     : 'javascript:false;'
-    }, s);
-    var html = '<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+
-                   'style="display:block;position:absolute;z-index:-1;'+
-                       (s.opacity !== false?'filter:Alpha(Opacity=\'0\');':'')+
-                       'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+
-                       'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+
-                       'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+
-                       'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+
-                '"/>';
-    return this.each(function() {
-        if ( $(this).children('iframe.bgiframe').length === 0 )
-            this.insertBefore( document.createElement(html), this.firstChild );
-    });
-} : function() { return this; });
-
-// old alias
-$.fn.bgIframe = $.fn.bgiframe;
-
-function prop(n) {
-    return n && n.constructor === Number ? n + 'px' : n;
-}
-
-})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.cookie.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.cookie.js
deleted file mode 100644
index 7b3e701..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.cookie.js
+++ /dev/null
@@ -1,89 +0,0 @@
-/*jslint browser: true */ /*global jQuery: true */
-
-/**
- * jQuery Cookie plugin
- *
- * Copyright (c) 2010 Klaus Hartl (stilbuero.de)
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- */
-
-// TODO JsDoc
-
-/**
- * Create a cookie with the given key and value and other optional parameters.
- *
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Set the value of a cookie.
- * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
- * @desc Create a cookie with all available options.
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Create a session cookie.
- * @example $.cookie('the_cookie', null);
- * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
- *       used when the cookie was set.
- *
- * @param String key The key of the cookie.
- * @param String value The value of the cookie.
- * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
- * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
- *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
- *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
- *                             when the the browser exits.
- * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
- * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
- * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
- *                        require a secure protocol (like HTTPS).
- * @type undefined
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-
-/**
- * Get the value of a cookie with the given key.
- *
- * @example $.cookie('the_cookie');
- * @desc Get the value of a cookie.
- *
- * @param String key The key of the cookie.
- * @return The value of the cookie.
- * @type String
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-jQuery.cookie = function (key, value, options) {
-
-    // key and value given, set cookie...
-    if (arguments.length > 1 && (value === null || typeof value !== "object")) {
-        options = jQuery.extend({}, options);
-
-        if (value === null) {
-            options.expires = -1;
-        }
-
-        if (typeof options.expires === 'number') {
-            var days = options.expires, t = options.expires = new Date();
-            t.setDate(t.getDate() + days);
-        }
-
-        return (document.cookie = [
-            encodeURIComponent(key), '=',
-            options.raw ? String(value) : encodeURIComponent(String(value)),
-            options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
-            options.path ? '; path=' + options.path : '',
-            options.domain ? '; domain=' + options.domain : '',
-            options.secure ? '; secure' : ''
-        ].join(''));
-    }
-
-    // key and possibly options given, get cookie...
-    options = value || {};
-    var result, decode = options.raw ? function (s) { return s; } : decodeURIComponent;
-    return (result = new RegExp('(?:^|; )' + encodeURIComponent(key) + '=([^;]*)').exec(document.cookie)) ? decode(result[1]) : null;
-};
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.metadata.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.metadata.js
deleted file mode 100644
index ad8bfba..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/jquery.metadata.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * Metadata - jQuery plugin for parsing metadata from elements
- *
- * Copyright (c) 2006 John Resig, Yehuda Katz, J�örn Zaefferer, Paul McLanahan
- *
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- *
- * Revision: $Id: jquery.metadata.js 4187 2007-12-16 17:15:27Z joern.zaefferer $
- *
- */
-
-/**
- * Sets the type of metadata to use. Metadata is encoded in JSON, and each property
- * in the JSON will become a property of the element itself.
- *
- * There are three supported types of metadata storage:
- *
- *   attr:  Inside an attribute. The name parameter indicates *which* attribute.
- *          
- *   class: Inside the class attribute, wrapped in curly braces: { }
- *   
- *   elem:  Inside a child element (e.g. a script tag). The
- *          name parameter indicates *which* element.
- *          
- * The metadata for an element is loaded the first time the element is accessed via jQuery.
- *
- * As a result, you can define the metadata type, use $(expr) to load the metadata into the elements
- * matched by expr, then redefine the metadata type and run another $(expr) for other elements.
- * 
- * @name $.metadata.setType
- *
- * @example <p id="one" class="some_class {item_id: 1, item_label: 'Label'}">This is a p</p>
- * @before $.metadata.setType("class")
- * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
- * @desc Reads metadata from the class attribute
- * 
- * @example <p id="one" class="some_class" data="{item_id: 1, item_label: 'Label'}">This is a p</p>
- * @before $.metadata.setType("attr", "data")
- * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
- * @desc Reads metadata from a "data" attribute
- * 
- * @example <p id="one" class="some_class"><script>{item_id: 1, item_label: 'Label'}</script>This is a p</p>
- * @before $.metadata.setType("elem", "script")
- * @after $("#one").metadata().item_id == 1; $("#one").metadata().item_label == "Label"
- * @desc Reads metadata from a nested script element
- * 
- * @param String type The encoding type
- * @param String name The name of the attribute to be used to get metadata (optional)
- * @cat Plugins/Metadata
- * @descr Sets the type of encoding to be used when loading metadata for the first time
- * @type undefined
- * @see metadata()
- */
-
-(function($) {
-
-$.extend({
-	metadata : {
-		defaults : {
-			type: 'class',
-			name: 'metadata',
-			cre: /({.*})/,
-			single: 'metadata'
-		},
-		setType: function( type, name ){
-			this.defaults.type = type;
-			this.defaults.name = name;
-		},
-		get: function( elem, opts ){
-			var settings = $.extend({},this.defaults,opts);
-			// check for empty string in single property
-			if ( !settings.single.length ) settings.single = 'metadata';
-			
-			var data = $.data(elem, settings.single);
-			// returned cached data if it already exists
-			if ( data ) return data;
-			
-			data = "{}";
-			
-			if ( settings.type == "class" ) {
-				var m = settings.cre.exec( elem.className );
-				if ( m )
-					data = m[1];
-			} else if ( settings.type == "elem" ) {
-				if( !elem.getElementsByTagName )
-					return undefined;
-				var e = elem.getElementsByTagName(settings.name);
-				if ( e.length )
-					data = $.trim(e[0].innerHTML);
-			} else if ( elem.getAttribute != undefined ) {
-				var attr = elem.getAttribute( settings.name );
-				if ( attr )
-					data = attr;
-			}
-			
-			if ( data.indexOf( '{' ) <0 )
-			data = "{" + data + "}";
-			
-			data = eval("(" + data + ")");
-			
-			$.data( elem, settings.single, data );
-			return data;
-		}
-	}
-});
-
-/**
- * Returns the metadata object for the first member of the jQuery object.
- *
- * @name metadata
- * @descr Returns element's metadata object
- * @param Object opts An object contianing settings to override the defaults
- * @type jQuery
- * @cat Plugins/Metadata
- */
-$.fn.metadata = function( opts ){
-	return $.metadata.get( this[0], opts );
-};
-
-})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.css
deleted file mode 100644
index a4daa27..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.css
+++ /dev/null
@@ -1,153 +0,0 @@
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-tests li ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
-	padding: 0.5em 0 0.5em 1em;
-	
-	color: #fff;
-	text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;
-	background-color: #0d3349;
-	
-	border-radius: 15px 15px 0 0;
-	-moz-border-radius: 15px 15px 0 0;
-	-webkit-border-top-right-radius: 15px;
-	-webkit-border-top-left-radius: 15px;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: white;
-}
-
-#qunit-banner {
-	height: 5px;
-}
-
-#qunit-testrunner-toolbar {
-	padding: 0em 0 0.5em 2em;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 0 0.5em 2.5em;
-	background-color: #2b81af;
-	color: #fff;
-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-position: inside;
-}
-
-#qunit-tests li {
-	padding: 0.4em 0.5em 0.4em 2.5em;
-	border-bottom: 1px solid #fff;
-	list-style-position: inside;
-}
-
-#qunit-tests li strong {
-	cursor: pointer;
-}
-
-#qunit-tests li ol {
-	margin-top: 0.5em;
-	padding: 0.5em;
-	
-	background-color: #fff;
-	
-	border-radius: 15px;
-	-moz-border-radius: 15px;
-	-webkit-border-radius: 15px;
-	
-	box-shadow: inset 0px 2px 13px #999;
-	-moz-box-shadow: inset 0px 2px 13px #999;
-	-webkit-box-shadow: inset 0px 2px 13px #999;
-}
-
-#qunit-tests li li {
-	margin: 0.5em;
-	padding: 0.4em 0.5em 0.4em 0.5em;
-	background-color: #fff;
-	border-bottom: none;
-	list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #5E740B;
-	background-color: #fff;
-	border-left: 26px solid #C6E746;
-}
-
-#qunit-tests li.pass                        { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests li.pass span.test-name         { color: #366097; }
- 
-#qunit-tests li li.pass span.test-actual,
-#qunit-tests li li.pass span.test-expected  { color: #999999; }
-
-strong b.pass                               { color: #5E740B; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #fff;
-	border-left: 26px solid #EE5757;
-}
-
-#qunit-tests li.fail                        { color: #000000; background-color: #EE5757; }
-#qunit-tests li.fail span.test-name,
-#qunit-tests li.fail span.module-name       { color: #000000; }
-
-#qunit-tests li li.fail span.test-actual    { color: #EE5757; }
-#qunit-tests li li.fail span.test-expected  { color: green;   }
-
-strong b.fail                               { color: #710909; }
-
-#qunit-banner.qunit-fail, 
-#qunit-testrunner-toolbar                   { background-color: #EE5757; }
-
-
-/** Footer */
-
-#qunit-testresult {
-	padding: 0.5em 0.5em 0.5em 2.5em;
-	
-	color: #2b81af;
-	background-color: #D2E0E6;
-
-	border-radius: 0 0 15px 15px;
-	-moz-border-radius: 0 0 15px 15px;
-	-webkit-border-bottom-right-radius: 15px;
-	-webkit-border-bottom-left-radius: 15px;	
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.js
deleted file mode 100644
index 45ad1dc..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/external/qunit.js
+++ /dev/null
@@ -1,1261 +0,0 @@
-/*
- * QUnit - A JavaScript Unit Testing Framework
- * 
- * http://docs.jquery.com/QUnit
- *
- * Copyright (c) 2009 John Resig, Jörn Zaefferer
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- */
-
-(function(window) {
-
-var QUnit = {
-
-	// call on start of module test to prepend name to all tests
-	module: function(name, testEnvironment) {
-		config.currentModule = name;
-
-		synchronize(function() {
-			if ( config.currentModule ) {
-				QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
-			}
-
-			config.currentModule = name;
-			config.moduleTestEnvironment = testEnvironment;
-			config.moduleStats = { all: 0, bad: 0 };
-
-			QUnit.moduleStart( name, testEnvironment );
-		});
-	},
-
-	asyncTest: function(testName, expected, callback) {
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = 0;
-		}
-
-		QUnit.test(testName, expected, callback, true);
-	},
-	
-	test: function(testName, expected, callback, async) {
-		var name = '<span class="test-name">' + testName + '</span>', testEnvironment, testEnvironmentArg;
-
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-		// is 2nd argument a testEnvironment?
-		if ( expected && typeof expected === 'object') {
-			testEnvironmentArg =  expected;
-			expected = null;
-		}
-
-		if ( config.currentModule ) {
-			name = '<span class="module-name">' + config.currentModule + "</span>: " + name;
-		}
-
-		if ( !validTest(config.currentModule + ": " + testName) ) {
-			return;
-		}
-
-		synchronize(function() {
-
-			testEnvironment = extend({
-				setup: function() {},
-				teardown: function() {}
-			}, config.moduleTestEnvironment);
-			if (testEnvironmentArg) {
-				extend(testEnvironment,testEnvironmentArg);
-			}
-
-			QUnit.testStart( testName, testEnvironment );
-
-			// allow utility functions to access the current test environment
-			QUnit.current_testEnvironment = testEnvironment;
-			
-			config.assertions = [];
-			config.expected = expected;
-			
-			var tests = id("qunit-tests");
-			if (tests) {
-				var b = document.createElement("strong");
-					b.innerHTML = "Running " + name;
-				var li = document.createElement("li");
-					li.appendChild( b );
-					li.id = "current-test-output";
-				tests.appendChild( li )
-			}
-
-			try {
-				if ( !config.pollution ) {
-					saveGlobal();
-				}
-
-				testEnvironment.setup.call(testEnvironment);
-			} catch(e) {
-				QUnit.ok( false, "Setup failed on " + name + ": " + e.message );
-			}
-	    });
-	
-	    synchronize(function() {
-			if ( async ) {
-				QUnit.stop();
-			}
-
-			try {
-				callback.call(testEnvironment);
-			} catch(e) {
-				fail("Test " + name + " died, exception and test follows", e, callback);
-				QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message );
-				// else next test will carry the responsibility
-				saveGlobal();
-
-				// Restart the tests if they're blocking
-				if ( config.blocking ) {
-					start();
-				}
-			}
-		});
-
-		synchronize(function() {
-			try {
-				checkPollution();
-				testEnvironment.teardown.call(testEnvironment);
-			} catch(e) {
-				QUnit.ok( false, "Teardown failed on " + name + ": " + e.message );
-			}
-	    });
-	
-	    synchronize(function() {
-			try {
-				QUnit.reset();
-			} catch(e) {
-				fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, reset);
-			}
-
-			if ( config.expected && config.expected != config.assertions.length ) {
-				QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );
-			}
-
-			var good = 0, bad = 0,
-				tests = id("qunit-tests");
-
-			config.stats.all += config.assertions.length;
-			config.moduleStats.all += config.assertions.length;
-
-			if ( tests ) {
-				var ol  = document.createElement("ol");
-
-				for ( var i = 0; i < config.assertions.length; i++ ) {
-					var assertion = config.assertions[i];
-
-					var li = document.createElement("li");
-					li.className = assertion.result ? "pass" : "fail";
-					li.innerHTML = assertion.message || "(no message)";
-					ol.appendChild( li );
-
-					if ( assertion.result ) {
-						good++;
-					} else {
-						bad++;
-						config.stats.bad++;
-						config.moduleStats.bad++;
-					}
-				}
-				if (bad == 0) {
-					ol.style.display = "none";
-				}
-
-				var b = document.createElement("strong");
-				b.innerHTML = name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>";
-				
-				addEvent(b, "click", function() {
-					var next = b.nextSibling, display = next.style.display;
-					next.style.display = display === "none" ? "block" : "none";
-				});
-				
-				addEvent(b, "dblclick", function(e) {
-					var target = e && e.target ? e.target : window.event.srcElement;
-					if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) {
-						target = target.parentNode;
-					}
-					if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-						window.location.search = "?" + encodeURIComponent(getText([target]).replace(/\(.+\)$/, "").replace(/(^\s*|\s*$)/g, ""));
-					}
-				});
-
-				var li = id("current-test-output");
-				li.id = "";
-				li.className = bad ? "fail" : "pass";
-				li.removeChild( li.firstChild );
-				li.appendChild( b );
-				li.appendChild( ol );
-
-				if ( bad ) {
-					var toolbar = id("qunit-testrunner-toolbar");
-					if ( toolbar ) {
-						toolbar.style.display = "block";
-						id("qunit-filter-pass").disabled = null;
-						id("qunit-filter-missing").disabled = null;
-					}
-				}
-
-			} else {
-				for ( var i = 0; i < config.assertions.length; i++ ) {
-					if ( !config.assertions[i].result ) {
-						bad++;
-						config.stats.bad++;
-						config.moduleStats.bad++;
-					}
-				}
-			}
-
-			QUnit.testDone( testName, bad, config.assertions.length );
-
-			if ( !window.setTimeout && !config.queue.length ) {
-				done();
-			}
-		});
-
-		synchronize( done );
-	},
-	
-	/**
-	 * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
-	 */
-	expect: function(asserts) {
-		config.expected = asserts;
-	},
-
-	/**
-	 * Asserts true.
-	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-	 */
-	ok: function(a, msg) {
-		msg = escapeHtml(msg);
-		QUnit.log(a, msg);
-
-		config.assertions.push({
-			result: !!a,
-			message: msg
-		});
-	},
-
-	/**
-	 * Checks that the first two arguments are equal, with an optional message.
-	 * Prints out both actual and expected values.
-	 *
-	 * Prefered to ok( actual == expected, message )
-	 *
-	 * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." );
-	 *
-	 * @param Object actual
-	 * @param Object expected
-	 * @param String message (optional)
-	 */
-	equal: function(actual, expected, message) {
-		push(expected == actual, actual, expected, message);
-	},
-
-	notEqual: function(actual, expected, message) {
-		push(expected != actual, actual, expected, message);
-	},
-	
-	deepEqual: function(actual, expected, message) {
-		push(QUnit.equiv(actual, expected), actual, expected, message);
-	},
-
-	notDeepEqual: function(actual, expected, message) {
-		push(!QUnit.equiv(actual, expected), actual, expected, message);
-	},
-
-	strictEqual: function(actual, expected, message) {
-		push(expected === actual, actual, expected, message);
-	},
-
-	notStrictEqual: function(actual, expected, message) {
-		push(expected !== actual, actual, expected, message);
-	},
-
-	raises: function(fn,  message) {
-		try {
-			fn();
-			ok( false, message );
-		}
-		catch (e) {
-			ok( true, message );
-		}
-	},
-
-	start: function() {
-		// A slight delay, to avoid any current callbacks
-		if ( window.setTimeout ) {
-			window.setTimeout(function() {
-				if ( config.timeout ) {
-					clearTimeout(config.timeout);
-				}
-
-				config.blocking = false;
-				process();
-			}, 13);
-		} else {
-			config.blocking = false;
-			process();
-		}
-	},
-	
-	stop: function(timeout) {
-		config.blocking = true;
-
-		if ( timeout && window.setTimeout ) {
-			config.timeout = window.setTimeout(function() {
-				QUnit.ok( false, "Test timed out" );
-				QUnit.start();
-			}, timeout);
-		}
-	}
-
-};
-
-// Backwards compatibility, deprecated
-QUnit.equals = QUnit.equal;
-QUnit.same = QUnit.deepEqual;
-
-// Maintain internal state
-var config = {
-	// The queue of tests to run
-	queue: [],
-
-	// block until document ready
-	blocking: true
-};
-
-// Load paramaters
-(function() {
-	var location = window.location || { search: "", protocol: "file:" },
-		GETParams = location.search.slice(1).split('&');
-
-	for ( var i = 0; i < GETParams.length; i++ ) {
-		GETParams[i] = decodeURIComponent( GETParams[i] );
-		if ( GETParams[i] === "noglobals" ) {
-			GETParams.splice( i, 1 );
-			i--;
-			config.noglobals = true;
-		} else if ( GETParams[i].search('=') > -1 ) {
-			GETParams.splice( i, 1 );
-			i--;
-		}
-	}
-	
-	// restrict modules/tests by get parameters
-	config.filters = GETParams;
-	
-	// Figure out if we're running the tests from a server or not
-	QUnit.isLocal = !!(location.protocol === 'file:');
-})();
-
-// Expose the API as global variables, unless an 'exports'
-// object exists, in that case we assume we're in CommonJS
-if ( typeof exports === "undefined" || typeof require === "undefined" ) {
-	extend(window, QUnit);
-	window.QUnit = QUnit;
-} else {
-	extend(exports, QUnit);
-	exports.QUnit = QUnit;
-}
-
-// define these after exposing globals to keep them in these QUnit namespace only
-extend(QUnit, {
-	config: config,
-
-	// Initialize the configuration options
-	init: function() {
-		extend(config, {
-			stats: { all: 0, bad: 0 },
-			moduleStats: { all: 0, bad: 0 },
-			started: +new Date,
-			updateRate: 1000,
-			blocking: false,
-			autostart: true,
-			autorun: false,
-			assertions: [],
-			filters: [],
-			queue: []
-		});
-
-		var tests = id("qunit-tests"),
-			banner = id("qunit-banner"),
-			result = id("qunit-testresult");
-
-		if ( tests ) {
-			tests.innerHTML = "";
-		}
-
-		if ( banner ) {
-			banner.className = "";
-		}
-
-		if ( result ) {
-			result.parentNode.removeChild( result );
-		}
-	},
-	
-	/**
-	 * Resets the test setup. Useful for tests that modify the DOM.
-	 */
-	reset: function() {
-		if ( window.jQuery ) {
-			jQuery("#main, #qunit-fixture").html( config.fixture );
-		}
-	},
-	
-	/**
-	 * Trigger an event on an element.
-	 *
-	 * @example triggerEvent( document.body, "click" );
-	 *
-	 * @param DOMElement elem
-	 * @param String type
-	 */
-	triggerEvent: function( elem, type, event ) {
-		if ( document.createEvent ) {
-			event = document.createEvent("MouseEvents");
-			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
-				0, 0, 0, 0, 0, false, false, false, false, 0, null);
-			elem.dispatchEvent( event );
-
-		} else if ( elem.fireEvent ) {
-			elem.fireEvent("on"+type);
-		}
-	},
-	
-	// Safe object type checking
-	is: function( type, obj ) {
-		return QUnit.objectType( obj ) == type;
-	},
-	
-	objectType: function( obj ) {
-		if (typeof obj === "undefined") {
-				return "undefined";
-
-		// consider: typeof null === object
-		}
-		if (obj === null) {
-				return "null";
-		}
-
-		var type = Object.prototype.toString.call( obj )
-			.match(/^\[object\s(.*)\]$/)[1] || '';
-
-		switch (type) {
-				case 'Number':
-						if (isNaN(obj)) {
-								return "nan";
-						} else {
-								return "number";
-						}
-				case 'String':
-				case 'Boolean':
-				case 'Array':
-				case 'Date':
-				case 'RegExp':
-				case 'Function':
-						return type.toLowerCase();
-		}
-		if (typeof obj === "object") {
-				return "object";
-		}
-		return undefined;
-	},
-	
-	// Logging callbacks
-	begin: function() {},
-	done: function(failures, total) {},
-	log: function(result, message) {},
-	testStart: function(name, testEnvironment) {},
-	testDone: function(name, failures, total) {},
-	moduleStart: function(name, testEnvironment) {},
-	moduleDone: function(name, failures, total) {}
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
-	config.autorun = true;
-}
-
-addEvent(window, "load", function() {
-	QUnit.begin();
-	
-	// Initialize the config, saving the execution queue
-	var oldconfig = extend({}, config);
-	QUnit.init();
-	extend(config, oldconfig);
-
-	config.blocking = false;
-
-	var userAgent = id("qunit-userAgent");
-	if ( userAgent ) {
-		userAgent.innerHTML = navigator.userAgent;
-	}
-	var banner = id("qunit-header");
-	if ( banner ) {
-		banner.innerHTML = '<a href="' + location.href + '">' + banner.innerHTML + '</a>'; 
-	}
-	
-	var toolbar = id("qunit-testrunner-toolbar");
-	if ( toolbar ) {
-		toolbar.style.display = "none";
-		
-		var filter = document.createElement("input");
-		filter.type = "checkbox";
-		filter.id = "qunit-filter-pass";
-		filter.disabled = true;
-		addEvent( filter, "click", function() {
-			var li = document.getElementsByTagName("li");
-			for ( var i = 0; i < li.length; i++ ) {
-				if ( li[i].className.indexOf("pass") > -1 ) {
-					li[i].style.display = filter.checked ? "none" : "";
-				}
-			}
-		});
-		toolbar.appendChild( filter );
-
-		var label = document.createElement("label");
-		label.setAttribute("for", "qunit-filter-pass");
-		label.innerHTML = "Hide passed tests";
-		toolbar.appendChild( label );
-
-		var missing = document.createElement("input");
-		missing.type = "checkbox";
-		missing.id = "qunit-filter-missing";
-		missing.disabled = true;
-		addEvent( missing, "click", function() {
-			var li = document.getElementsByTagName("li");
-			for ( var i = 0; i < li.length; i++ ) {
-				if ( li[i].className.indexOf("fail") > -1 && li[i].innerHTML.indexOf('missing test - untested code is broken code') > - 1 ) {
-					li[i].parentNode.parentNode.style.display = missing.checked ? "none" : "block";
-				}
-			}
-		});
-		toolbar.appendChild( missing );
-
-		label = document.createElement("label");
-		label.setAttribute("for", "qunit-filter-missing");
-		label.innerHTML = "Hide missing tests (untested code is broken code)";
-		toolbar.appendChild( label );
-	}
-
-	var main = id('main') || id('qunit-fixture');
-	if ( main ) {
-		config.fixture = main.innerHTML;
-	}
-
-	if (config.autostart) {
-		QUnit.start();
-	}
-});
-
-function done() {
-	if ( config.doneTimer && window.clearTimeout ) {
-		window.clearTimeout( config.doneTimer );
-		config.doneTimer = null;
-	}
-
-	if ( config.queue.length ) {
-		config.doneTimer = window.setTimeout(function(){
-			if ( !config.queue.length ) {
-				done();
-			} else {
-				synchronize( done );
-			}
-		}, 13);
-
-		return;
-	}
-
-	config.autorun = true;
-
-	// Log the last module results
-	if ( config.currentModule ) {
-		QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
-	}
-
-	var banner = id("qunit-banner"),
-		tests = id("qunit-tests"),
-		html = ['Tests completed in ',
-		+new Date - config.started, ' milliseconds.<br/>',
-		'<span class="passed">', config.stats.all - config.stats.bad, '</span> tests of <span class="total">', config.stats.all, '</span> passed, <span class="failed">', config.stats.bad,'</span> failed.'].join('');
-
-	if ( banner ) {
-		banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass");
-	}
-
-	if ( tests ) {	
-		var result = id("qunit-testresult");
-
-		if ( !result ) {
-			result = document.createElement("p");
-			result.id = "qunit-testresult";
-			result.className = "result";
-			tests.parentNode.insertBefore( result, tests.nextSibling );
-		}
-
-		result.innerHTML = html;
-	}
-
-	QUnit.done( config.stats.bad, config.stats.all );
-}
-
-function validTest( name ) {
-	var i = config.filters.length,
-		run = false;
-
-	if ( !i ) {
-		return true;
-	}
-	
-	while ( i-- ) {
-		var filter = config.filters[i],
-			not = filter.charAt(0) == '!';
-
-		if ( not ) {
-			filter = filter.slice(1);
-		}
-
-		if ( name.indexOf(filter) !== -1 ) {
-			return !not;
-		}
-
-		if ( not ) {
-			run = true;
-		}
-	}
-
-	return run;
-}
-
-function escapeHtml(s) {
-	s = s === null ? "" : s + "";
-	return s.replace(/[\&"<>\\]/g, function(s) {
-		switch(s) {
-			case "&": return "&amp;";
-			case "\\": return "\\\\";
-			case '"': return '\"';
-			case "<": return "&lt;";
-			case ">": return "&gt;";
-			default: return s;
-		}
-	});
-}
-
-function push(result, actual, expected, message) {
-	message = escapeHtml(message) || (result ? "okay" : "failed");
-	message = '<span class="test-message">' + message + "</span>";
-	expected = escapeHtml(QUnit.jsDump.parse(expected));
-	actual = escapeHtml(QUnit.jsDump.parse(actual));
-	var output = message + ', expected: <span class="test-expected">' + expected + '</span>';
-	if (actual != expected) {
-		output += ' result: <span class="test-actual">' + actual + '</span>, diff: ' + QUnit.diff(expected, actual);
-	}
-	
-	// can't use ok, as that would double-escape messages
-	QUnit.log(result, output);
-	config.assertions.push({
-		result: !!result,
-		message: output
-	});
-}
-
-function synchronize( callback ) {
-	config.queue.push( callback );
-
-	if ( config.autorun && !config.blocking ) {
-		process();
-	}
-}
-
-function process() {
-	var start = (new Date()).getTime();
-
-	while ( config.queue.length && !config.blocking ) {
-		if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) {
-			config.queue.shift()();
-
-		} else {
-			setTimeout( process, 13 );
-			break;
-		}
-	}
-}
-
-function saveGlobal() {
-	config.pollution = [];
-	
-	if ( config.noglobals ) {
-		for ( var key in window ) {
-			config.pollution.push( key );
-		}
-	}
-}
-
-function checkPollution( name ) {
-	var old = config.pollution;
-	saveGlobal();
-	
-	var newGlobals = diff( old, config.pollution );
-	if ( newGlobals.length > 0 ) {
-		ok( false, "Introduced global variable(s): " + newGlobals.join(", ") );
-		config.expected++;
-	}
-
-	var deletedGlobals = diff( config.pollution, old );
-	if ( deletedGlobals.length > 0 ) {
-		ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") );
-		config.expected++;
-	}
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
-	var result = a.slice();
-	for ( var i = 0; i < result.length; i++ ) {
-		for ( var j = 0; j < b.length; j++ ) {
-			if ( result[i] === b[j] ) {
-				result.splice(i, 1);
-				i--;
-				break;
-			}
-		}
-	}
-	return result;
-}
-
-function fail(message, exception, callback) {
-	if ( typeof console !== "undefined" && console.error && console.warn ) {
-		console.error(message);
-		console.error(exception);
-		console.warn(callback.toString());
-
-	} else if ( window.opera && opera.postError ) {
-		opera.postError(message, exception, callback.toString);
-	}
-}
-
-function extend(a, b) {
-	for ( var prop in b ) {
-		a[prop] = b[prop];
-	}
-
-	return a;
-}
-
-function addEvent(elem, type, fn) {
-	if ( elem.addEventListener ) {
-		elem.addEventListener( type, fn, false );
-	} else if ( elem.attachEvent ) {
-		elem.attachEvent( "on" + type, fn );
-	} else {
-		fn();
-	}
-}
-
-function id(name) {
-	return !!(typeof document !== "undefined" && document && document.getElementById) &&
-		document.getElementById( name );
-}
-
-// Test for equality any JavaScript type.
-// Discussions and reference: http://philrathe.com/articles/equiv
-// Test suites: http://philrathe.com/tests/equiv
-// Author: Philippe Rathé <prathe@gmail.com>
-QUnit.equiv = function () {
-
-    var innerEquiv; // the real equiv function
-    var callers = []; // stack to decide between skip/abort functions
-    var parents = []; // stack to avoiding loops from circular referencing
-
-    // Call the o related callback with the given arguments.
-    function bindCallbacks(o, callbacks, args) {
-        var prop = QUnit.objectType(o);
-        if (prop) {
-            if (QUnit.objectType(callbacks[prop]) === "function") {
-                return callbacks[prop].apply(callbacks, args);
-            } else {
-                return callbacks[prop]; // or undefined
-            }
-        }
-    }
-    
-    var callbacks = function () {
-
-        // for string, boolean, number and null
-        function useStrictEquality(b, a) {
-            if (b instanceof a.constructor || a instanceof b.constructor) {
-                // to catch short annotaion VS 'new' annotation of a declaration
-                // e.g. var i = 1;
-                //      var j = new Number(1);
-                return a == b;
-            } else {
-                return a === b;
-            }
-        }
-
-        return {
-            "string": useStrictEquality,
-            "boolean": useStrictEquality,
-            "number": useStrictEquality,
-            "null": useStrictEquality,
-            "undefined": useStrictEquality,
-
-            "nan": function (b) {
-                return isNaN(b);
-            },
-
-            "date": function (b, a) {
-                return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf();
-            },
-
-            "regexp": function (b, a) {
-                return QUnit.objectType(b) === "regexp" &&
-                    a.source === b.source && // the regex itself
-                    a.global === b.global && // and its modifers (gmi) ...
-                    a.ignoreCase === b.ignoreCase &&
-                    a.multiline === b.multiline;
-            },
-
-            // - skip when the property is a method of an instance (OOP)
-            // - abort otherwise,
-            //   initial === would have catch identical references anyway
-            "function": function () {
-                var caller = callers[callers.length - 1];
-                return caller !== Object &&
-                        typeof caller !== "undefined";
-            },
-
-            "array": function (b, a) {
-                var i, j, loop;
-                var len;
-
-                // b could be an object literal here
-                if ( ! (QUnit.objectType(b) === "array")) {
-                    return false;
-                }   
-                
-                len = a.length;
-                if (len !== b.length) { // safe and faster
-                    return false;
-                }
-                
-                //track reference to avoid circular references
-                parents.push(a);
-                for (i = 0; i < len; i++) {
-                    loop = false;
-                    for(j=0;j<parents.length;j++){
-                        if(parents[j] === a[i]){
-                            loop = true;//dont rewalk array
-                        }
-                    }
-                    if (!loop && ! innerEquiv(a[i], b[i])) {
-                        parents.pop();
-                        return false;
-                    }
-                }
-                parents.pop();
-                return true;
-            },
-
-            "object": function (b, a) {
-                var i, j, loop;
-                var eq = true; // unless we can proove it
-                var aProperties = [], bProperties = []; // collection of strings
-
-                // comparing constructors is more strict than using instanceof
-                if ( a.constructor !== b.constructor) {
-                    return false;
-                }
-
-                // stack constructor before traversing properties
-                callers.push(a.constructor);
-                //track reference to avoid circular references
-                parents.push(a);
-                
-                for (i in a) { // be strict: don't ensures hasOwnProperty and go deep
-                    loop = false;
-                    for(j=0;j<parents.length;j++){
-                        if(parents[j] === a[i])
-                            loop = true; //don't go down the same path twice
-                    }
-                    aProperties.push(i); // collect a's properties
-
-                    if (!loop && ! innerEquiv(a[i], b[i])) {
-                        eq = false;
-                        break;
-                    }
-                }
-
-                callers.pop(); // unstack, we are done
-                parents.pop();
-
-                for (i in b) {
-                    bProperties.push(i); // collect b's properties
-                }
-
-                // Ensures identical properties name
-                return eq && innerEquiv(aProperties.sort(), bProperties.sort());
-            }
-        };
-    }();
-
-    innerEquiv = function () { // can take multiple arguments
-        var args = Array.prototype.slice.apply(arguments);
-        if (args.length < 2) {
-            return true; // end transition
-        }
-
-        return (function (a, b) {
-            if (a === b) {
-                return true; // catch the most you can
-            } else if (a === null || b === null || typeof a === "undefined" || typeof b === "undefined" || QUnit.objectType(a) !== QUnit.objectType(b)) {
-                return false; // don't lose time with error prone cases
-            } else {
-                return bindCallbacks(a, callbacks, [b, a]);
-            }
-
-        // apply transition with (1..n) arguments
-        })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1));
-    };
-
-    return innerEquiv;
-
-}();
-
-/**
- * jsDump
- * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
- * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)
- * Date: 5/15/2008
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
-	function quote( str ) {
-		return '"' + str.toString().replace(/"/g, '\\"') + '"';
-	};
-	function literal( o ) {
-		return o + '';	
-	};
-	function join( pre, arr, post ) {
-		var s = jsDump.separator(),
-			base = jsDump.indent(),
-			inner = jsDump.indent(1);
-		if ( arr.join )
-			arr = arr.join( ',' + s + inner );
-		if ( !arr )
-			return pre + post;
-		return [ pre, inner + arr, base + post ].join(s);
-	};
-	function array( arr ) {
-		var i = arr.length,	ret = Array(i);					
-		this.up();
-		while ( i-- )
-			ret[i] = this.parse( arr[i] );				
-		this.down();
-		return join( '[', ret, ']' );
-	};
-	
-	var reName = /^function (\w+)/;
-	
-	var jsDump = {
-		parse:function( obj, type ) { //type is used mostly internally, you can fix a (custom)type in advance
-			var	parser = this.parsers[ type || this.typeOf(obj) ];
-			type = typeof parser;			
-			
-			return type == 'function' ? parser.call( this, obj ) :
-				   type == 'string' ? parser :
-				   this.parsers.error;
-		},
-		typeOf:function( obj ) {
-			var type;
-			if ( obj === null ) {
-				type = "null";
-			} else if (typeof obj === "undefined") {
-				type = "undefined";
-			} else if (QUnit.is("RegExp", obj)) {
-				type = "regexp";
-			} else if (QUnit.is("Date", obj)) {
-				type = "date";
-			} else if (QUnit.is("Function", obj)) {
-				type = "function";
-			} else if (obj.setInterval && obj.document && !obj.nodeType) {
-				type = "window";
-			} else if (obj.nodeType === 9) {
-				type = "document";
-			} else if (obj.nodeType) {
-				type = "node";
-			} else if (typeof obj === "object" && typeof obj.length === "number" && obj.length >= 0) {
-				type = "array";
-			} else {
-				type = typeof obj;
-			}
-			return type;
-		},
-		separator:function() {
-			return this.multiline ?	this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
-		},
-		indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
-			if ( !this.multiline )
-				return '';
-			var chr = this.indentChar;
-			if ( this.HTML )
-				chr = chr.replace(/\t/g,'   ').replace(/ /g,'&nbsp;');
-			return Array( this._depth_ + (extra||0) ).join(chr);
-		},
-		up:function( a ) {
-			this._depth_ += a || 1;
-		},
-		down:function( a ) {
-			this._depth_ -= a || 1;
-		},
-		setParser:function( name, parser ) {
-			this.parsers[name] = parser;
-		},
-		// The next 3 are exposed so you can use them
-		quote:quote, 
-		literal:literal,
-		join:join,
-		//
-		_depth_: 1,
-		// This is the list of parsers, to modify them, use jsDump.setParser
-		parsers:{
-			window: '[Window]',
-			document: '[Document]',
-			error:'[ERROR]', //when no parser is found, shouldn't happen
-			unknown: '[Unknown]',
-			'null':'null',
-			undefined:'undefined',
-			'function':function( fn ) {
-				var ret = 'function',
-					name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
-				if ( name )
-					ret += ' ' + name;
-				ret += '(';
-				
-				ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');
-				return join( ret, this.parse(fn,'functionCode'), '}' );
-			},
-			array: array,
-			nodelist: array,
-			arguments: array,
-			object:function( map ) {
-				var ret = [ ];
-				this.up();
-				for ( var key in map )
-					ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );
-				this.down();
-				return join( '{', ret, '}' );
-			},
-			node:function( node ) {
-				var open = this.HTML ? '&lt;' : '<',
-					close = this.HTML ? '&gt;' : '>';
-					
-				var tag = node.nodeName.toLowerCase(),
-					ret = open + tag;
-					
-				for ( var a in this.DOMAttrs ) {
-					var val = node[this.DOMAttrs[a]];
-					if ( val )
-						ret += ' ' + a + '=' + this.parse( val, 'attribute' );
-				}
-				return ret + close + open + '/' + tag + close;
-			},
-			functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function
-				var l = fn.length;
-				if ( !l ) return '';				
-				
-				var args = Array(l);
-				while ( l-- )
-					args[l] = String.fromCharCode(97+l);//97 is 'a'
-				return ' ' + args.join(', ') + ' ';
-			},
-			key:quote, //object calls it internally, the key part of an item in a map
-			functionCode:'[code]', //function calls it internally, it's the content of the function
-			attribute:quote, //node calls it internally, it's an html attribute value
-			string:quote,
-			date:quote,
-			regexp:literal, //regex
-			number:literal,
-			'boolean':literal
-		},
-		DOMAttrs:{//attributes to dump from nodes, name=>realName
-			id:'id',
-			name:'name',
-			'class':'className'
-		},
-		HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
-		indentChar:'   ',//indentation unit
-		multiline:false //if true, items in a collection, are separated by a \n, else just a space.
-	};
-
-	return jsDump;
-})();
-
-// from Sizzle.js
-function getText( elems ) {
-	var ret = "", elem;
-
-	for ( var i = 0; elems[i]; i++ ) {
-		elem = elems[i];
-
-		// Get the text from text nodes and CDATA nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
-			ret += elem.nodeValue;
-
-		// Traverse everything else, except comment nodes
-		} else if ( elem.nodeType !== 8 ) {
-			ret += getText( elem.childNodes );
-		}
-	}
-
-	return ret;
-};
-
-/*
- * Javascript Diff Algorithm
- *  By John Resig (http://ejohn.org/)
- *  Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- *  http://ejohn.org/projects/javascript-diff-algorithm/
- *  
- * Usage: QUnit.diff(expected, actual)
- * 
- * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
- */
-QUnit.diff = (function() {
-	function diff(o, n){
-		var ns = new Object();
-		var os = new Object();
-		
-		for (var i = 0; i < n.length; i++) {
-			if (ns[n[i]] == null) 
-				ns[n[i]] = {
-					rows: new Array(),
-					o: null
-				};
-			ns[n[i]].rows.push(i);
-		}
-		
-		for (var i = 0; i < o.length; i++) {
-			if (os[o[i]] == null) 
-				os[o[i]] = {
-					rows: new Array(),
-					n: null
-				};
-			os[o[i]].rows.push(i);
-		}
-		
-		for (var i in ns) {
-			if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) {
-				n[ns[i].rows[0]] = {
-					text: n[ns[i].rows[0]],
-					row: os[i].rows[0]
-				};
-				o[os[i].rows[0]] = {
-					text: o[os[i].rows[0]],
-					row: ns[i].rows[0]
-				};
-			}
-		}
-		
-		for (var i = 0; i < n.length - 1; i++) {
-			if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null &&
-			n[i + 1] == o[n[i].row + 1]) {
-				n[i + 1] = {
-					text: n[i + 1],
-					row: n[i].row + 1
-				};
-				o[n[i].row + 1] = {
-					text: o[n[i].row + 1],
-					row: i + 1
-				};
-			}
-		}
-		
-		for (var i = n.length - 1; i > 0; i--) {
-			if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null &&
-			n[i - 1] == o[n[i].row - 1]) {
-				n[i - 1] = {
-					text: n[i - 1],
-					row: n[i].row - 1
-				};
-				o[n[i].row - 1] = {
-					text: o[n[i].row - 1],
-					row: i - 1
-				};
-			}
-		}
-		
-		return {
-			o: o,
-			n: n
-		};
-	}
-	
-	return function(o, n){
-		o = o.replace(/\s+$/, '');
-		n = n.replace(/\s+$/, '');
-		var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/));
-
-		var str = "";
-		
-		var oSpace = o.match(/\s+/g);
-		if (oSpace == null) {
-			oSpace = [" "];
-		}
-		else {
-			oSpace.push(" ");
-		}
-		var nSpace = n.match(/\s+/g);
-		if (nSpace == null) {
-			nSpace = [" "];
-		}
-		else {
-			nSpace.push(" ");
-		}
-		
-		if (out.n.length == 0) {
-			for (var i = 0; i < out.o.length; i++) {
-				str += '<del>' + out.o[i] + oSpace[i] + "</del>";
-			}
-		}
-		else {
-			if (out.n[0].text == null) {
-				for (n = 0; n < out.o.length && out.o[n].text == null; n++) {
-					str += '<del>' + out.o[n] + oSpace[n] + "</del>";
-				}
-			}
-			
-			for (var i = 0; i < out.n.length; i++) {
-				if (out.n[i].text == null) {
-					str += '<ins>' + out.n[i] + nSpace[i] + "</ins>";
-				}
-				else {
-					var pre = "";
-					
-					for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) {
-						pre += '<del>' + out.o[n] + oSpace[n] + "</del>";
-					}
-					str += " " + out.n[i].text + nSpace[i] + pre;
-				}
-			}
-		}
-		
-		return str;
-	}
-})();
-
-})(this);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/jquery-1.5.1.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/jquery-1.5.1.js
deleted file mode 100644
index 78fcfa4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/jquery-1.5.1.js
+++ /dev/null
@@ -1,8316 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.5.1
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Wed Feb 23 13:55:29 2011 -0500
- */
-(function( window, undefined ) {
-
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document;
-var jQuery = (function() {
-
-// Define a local copy of jQuery
-var jQuery = function( selector, context ) {
-		// The jQuery object is actually just the init constructor 'enhanced'
-		return new jQuery.fn.init( selector, context, rootjQuery );
-	},
-
-	// Map over jQuery in case of overwrite
-	_jQuery = window.jQuery,
-
-	// Map over the $ in case of overwrite
-	_$ = window.$,
-
-	// A central reference to the root jQuery(document)
-	rootjQuery,
-
-	// A simple way to check for HTML strings or ID strings
-	// (both of which we optimize for)
-	quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,
-
-	// Check if a string has a non-whitespace character in it
-	rnotwhite = /\S/,
-
-	// Used for trimming whitespace
-	trimLeft = /^\s+/,
-	trimRight = /\s+$/,
-
-	// Check for digits
-	rdigit = /\d/,
-
-	// Match a standalone tag
-	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-
-	// JSON RegExp
-	rvalidchars = /^[\],:{}\s]*$/,
-	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
-	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-
-	// Useragent RegExp
-	rwebkit = /(webkit)[ \/]([\w.]+)/,
-	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
-	rmsie = /(msie) ([\w.]+)/,
-	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
-
-	// Keep a UserAgent string for use with jQuery.browser
-	userAgent = navigator.userAgent,
-
-	// For matching the engine and version of the browser
-	browserMatch,
-
-	// Has the ready events already been bound?
-	readyBound = false,
-
-	// The deferred used on DOM ready
-	readyList,
-
-	// Promise methods
-	promiseMethods = "then done fail isResolved isRejected promise".split( " " ),
-
-	// The ready event handler
-	DOMContentLoaded,
-
-	// Save a reference to some core methods
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	push = Array.prototype.push,
-	slice = Array.prototype.slice,
-	trim = String.prototype.trim,
-	indexOf = Array.prototype.indexOf,
-
-	// [[Class]] -> type pairs
-	class2type = {};
-
-jQuery.fn = jQuery.prototype = {
-	constructor: jQuery,
-	init: function( selector, context, rootjQuery ) {
-		var match, elem, ret, doc;
-
-		// Handle $(""), $(null), or $(undefined)
-		if ( !selector ) {
-			return this;
-		}
-
-		// Handle $(DOMElement)
-		if ( selector.nodeType ) {
-			this.context = this[0] = selector;
-			this.length = 1;
-			return this;
-		}
-
-		// The body element only exists once, optimize finding it
-		if ( selector === "body" && !context && document.body ) {
-			this.context = document;
-			this[0] = document.body;
-			this.selector = "body";
-			this.length = 1;
-			return this;
-		}
-
-		// Handle HTML strings
-		if ( typeof selector === "string" ) {
-			// Are we dealing with HTML string or an ID?
-			match = quickExpr.exec( selector );
-
-			// Verify a match, and that no context was specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] ) {
-					context = context instanceof jQuery ? context[0] : context;
-					doc = (context ? context.ownerDocument || context : document);
-
-					// If a single string is passed in and it's a single tag
-					// just do a createElement and skip the rest
-					ret = rsingleTag.exec( selector );
-
-					if ( ret ) {
-						if ( jQuery.isPlainObject( context ) ) {
-							selector = [ document.createElement( ret[1] ) ];
-							jQuery.fn.attr.call( selector, context, true );
-
-						} else {
-							selector = [ doc.createElement( ret[1] ) ];
-						}
-
-					} else {
-						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
-						selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
-					}
-
-					return jQuery.merge( this, selector );
-
-				// HANDLE: $("#id")
-				} else {
-					elem = document.getElementById( match[2] );
-
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE and Opera return items
-						// by name instead of ID
-						if ( elem.id !== match[2] ) {
-							return rootjQuery.find( selector );
-						}
-
-						// Otherwise, we inject the element directly into the jQuery object
-						this.length = 1;
-						this[0] = elem;
-					}
-
-					this.context = document;
-					this.selector = selector;
-					return this;
-				}
-
-			// HANDLE: $(expr, $(...))
-			} else if ( !context || context.jquery ) {
-				return (context || rootjQuery).find( selector );
-
-			// HANDLE: $(expr, context)
-			// (which is just equivalent to: $(context).find(expr)
-			} else {
-				return this.constructor( context ).find( selector );
-			}
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
-			return rootjQuery.ready( selector );
-		}
-
-		if (selector.selector !== undefined) {
-			this.selector = selector.selector;
-			this.context = selector.context;
-		}
-
-		return jQuery.makeArray( selector, this );
-	},
-
-	// Start with an empty selector
-	selector: "",
-
-	// The current version of jQuery being used
-	jquery: "1.5.1",
-
-	// The default length of a jQuery object is 0
-	length: 0,
-
-	// The number of elements contained in the matched element set
-	size: function() {
-		return this.length;
-	},
-
-	toArray: function() {
-		return slice.call( this, 0 );
-	},
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-		return num == null ?
-
-			// Return a 'clean' array
-			this.toArray() :
-
-			// Return just the object
-			( num < 0 ? this[ this.length + num ] : this[ num ] );
-	},
-
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems, name, selector ) {
-		// Build a new jQuery matched element set
-		var ret = this.constructor();
-
-		if ( jQuery.isArray( elems ) ) {
-			push.apply( ret, elems );
-
-		} else {
-			jQuery.merge( ret, elems );
-		}
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-
-		ret.context = this.context;
-
-		if ( name === "find" ) {
-			ret.selector = this.selector + (this.selector ? " " : "") + selector;
-		} else if ( name ) {
-			ret.selector = this.selector + "." + name + "(" + selector + ")";
-		}
-
-		// Return the newly-formed element set
-		return ret;
-	},
-
-	// Execute a callback for every element in the matched set.
-	// (You can seed the arguments with an array of args, but this is
-	// only used internally.)
-	each: function( callback, args ) {
-		return jQuery.each( this, callback, args );
-	},
-
-	ready: function( fn ) {
-		// Attach the listeners
-		jQuery.bindReady();
-
-		// Add the callback
-		readyList.done( fn );
-
-		return this;
-	},
-
-	eq: function( i ) {
-		return i === -1 ?
-			this.slice( i ) :
-			this.slice( i, +i + 1 );
-	},
-
-	first: function() {
-		return this.eq( 0 );
-	},
-
-	last: function() {
-		return this.eq( -1 );
-	},
-
-	slice: function() {
-		return this.pushStack( slice.apply( this, arguments ),
-			"slice", slice.call(arguments).join(",") );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function( elem, i ) {
-			return callback.call( elem, i, elem );
-		}));
-	},
-
-	end: function() {
-		return this.prevObject || this.constructor(null);
-	},
-
-	// For internal use only.
-	// Behaves like an Array's method, not like a jQuery method.
-	push: push,
-	sort: [].sort,
-	splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
-	var options, name, src, copy, copyIsArray, clone,
-		target = arguments[0] || {},
-		i = 1,
-		length = arguments.length,
-		deep = false;
-
-	// Handle a deep copy situation
-	if ( typeof target === "boolean" ) {
-		deep = target;
-		target = arguments[1] || {};
-		// skip the boolean and the target
-		i = 2;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
-		target = {};
-	}
-
-	// extend jQuery itself if only one argument is passed
-	if ( length === i ) {
-		target = this;
-		--i;
-	}
-
-	for ( ; i < length; i++ ) {
-		// Only deal with non-null/undefined values
-		if ( (options = arguments[ i ]) != null ) {
-			// Extend the base object
-			for ( name in options ) {
-				src = target[ name ];
-				copy = options[ name ];
-
-				// Prevent never-ending loop
-				if ( target === copy ) {
-					continue;
-				}
-
-				// Recurse if we're merging plain objects or arrays
-				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && jQuery.isArray(src) ? src : [];
-
-					} else {
-						clone = src && jQuery.isPlainObject(src) ? src : {};
-					}
-
-					// Never move original objects, clone them
-					target[ name ] = jQuery.extend( deep, clone, copy );
-
-				// Don't bring in undefined values
-				} else if ( copy !== undefined ) {
-					target[ name ] = copy;
-				}
-			}
-		}
-	}
-
-	// Return the modified object
-	return target;
-};
-
-jQuery.extend({
-	noConflict: function( deep ) {
-		window.$ = _$;
-
-		if ( deep ) {
-			window.jQuery = _jQuery;
-		}
-
-		return jQuery;
-	},
-
-	// Is the DOM ready to be used? Set to true once it occurs.
-	isReady: false,
-
-	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
-	readyWait: 1,
-
-	// Handle when the DOM is ready
-	ready: function( wait ) {
-		// A third-party is pushing the ready event forwards
-		if ( wait === true ) {
-			jQuery.readyWait--;
-		}
-
-		// Make sure that the DOM is not already loaded
-		if ( !jQuery.readyWait || (wait !== true && !jQuery.isReady) ) {
-			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-			if ( !document.body ) {
-				return setTimeout( jQuery.ready, 1 );
-			}
-
-			// Remember that the DOM is ready
-			jQuery.isReady = true;
-
-			// If a normal DOM Ready event fired, decrement, and wait if need be
-			if ( wait !== true && --jQuery.readyWait > 0 ) {
-				return;
-			}
-
-			// If there are functions bound, to execute
-			readyList.resolveWith( document, [ jQuery ] );
-
-			// Trigger any bound ready events
-			if ( jQuery.fn.trigger ) {
-				jQuery( document ).trigger( "ready" ).unbind( "ready" );
-			}
-		}
-	},
-
-	bindReady: function() {
-		if ( readyBound ) {
-			return;
-		}
-
-		readyBound = true;
-
-		// Catch cases where $(document).ready() is called after the
-		// browser event has already occurred.
-		if ( document.readyState === "complete" ) {
-			// Handle it asynchronously to allow scripts the opportunity to delay ready
-			return setTimeout( jQuery.ready, 1 );
-		}
-
-		// Mozilla, Opera and webkit nightlies currently support this event
-		if ( document.addEventListener ) {
-			// Use the handy event callback
-			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-
-			// A fallback to window.onload, that will always work
-			window.addEventListener( "load", jQuery.ready, false );
-
-		// If IE event model is used
-		} else if ( document.attachEvent ) {
-			// ensure firing before onload,
-			// maybe late but safe also for iframes
-			document.attachEvent("onreadystatechange", DOMContentLoaded);
-
-			// A fallback to window.onload, that will always work
-			window.attachEvent( "onload", jQuery.ready );
-
-			// If IE and not a frame
-			// continually check to see if the document is ready
-			var toplevel = false;
-
-			try {
-				toplevel = window.frameElement == null;
-			} catch(e) {}
-
-			if ( document.documentElement.doScroll && toplevel ) {
-				doScrollCheck();
-			}
-		}
-	},
-
-	// See test/unit/core.js for details concerning isFunction.
-	// Since version 1.3, DOM methods and functions like alert
-	// aren't supported. They return false on IE (#2968).
-	isFunction: function( obj ) {
-		return jQuery.type(obj) === "function";
-	},
-
-	isArray: Array.isArray || function( obj ) {
-		return jQuery.type(obj) === "array";
-	},
-
-	// A crude way of determining if an object is a window
-	isWindow: function( obj ) {
-		return obj && typeof obj === "object" && "setInterval" in obj;
-	},
-
-	isNaN: function( obj ) {
-		return obj == null || !rdigit.test( obj ) || isNaN( obj );
-	},
-
-	type: function( obj ) {
-		return obj == null ?
-			String( obj ) :
-			class2type[ toString.call(obj) ] || "object";
-	},
-
-	isPlainObject: function( obj ) {
-		// Must be an Object.
-		// Because of IE, we also have to check the presence of the constructor property.
-		// Make sure that DOM nodes and window objects don't pass through, as well
-		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
-			return false;
-		}
-
-		// Not own constructor property must be Object
-		if ( obj.constructor &&
-			!hasOwn.call(obj, "constructor") &&
-			!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
-			return false;
-		}
-
-		// Own properties are enumerated firstly, so to speed up,
-		// if last one is own, then all properties are own.
-
-		var key;
-		for ( key in obj ) {}
-
-		return key === undefined || hasOwn.call( obj, key );
-	},
-
-	isEmptyObject: function( obj ) {
-		for ( var name in obj ) {
-			return false;
-		}
-		return true;
-	},
-
-	error: function( msg ) {
-		throw msg;
-	},
-
-	parseJSON: function( data ) {
-		if ( typeof data !== "string" || !data ) {
-			return null;
-		}
-
-		// Make sure leading/trailing whitespace is removed (IE can't handle it)
-		data = jQuery.trim( data );
-
-		// Make sure the incoming data is actual JSON
-		// Logic borrowed from http://json.org/json2.js
-		if ( rvalidchars.test(data.replace(rvalidescape, "@")
-			.replace(rvalidtokens, "]")
-			.replace(rvalidbraces, "")) ) {
-
-			// Try to use the native JSON parser first
-			return window.JSON && window.JSON.parse ?
-				window.JSON.parse( data ) :
-				(new Function("return " + data))();
-
-		} else {
-			jQuery.error( "Invalid JSON: " + data );
-		}
-	},
-
-	// Cross-browser xml parsing
-	// (xml & tmp used internally)
-	parseXML: function( data , xml , tmp ) {
-
-		if ( window.DOMParser ) { // Standard
-			tmp = new DOMParser();
-			xml = tmp.parseFromString( data , "text/xml" );
-		} else { // IE
-			xml = new ActiveXObject( "Microsoft.XMLDOM" );
-			xml.async = "false";
-			xml.loadXML( data );
-		}
-
-		tmp = xml.documentElement;
-
-		if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
-			jQuery.error( "Invalid XML: " + data );
-		}
-
-		return xml;
-	},
-
-	noop: function() {},
-
-	// Evalulates a script in a global context
-	globalEval: function( data ) {
-		if ( data && rnotwhite.test(data) ) {
-			// Inspired by code by Andrea Giammarchi
-			// http://webreflection.blogspot.com/2007/08/global-scope-evaluation-and-dom.html
-			var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement,
-				script = document.createElement( "script" );
-
-			if ( jQuery.support.scriptEval() ) {
-				script.appendChild( document.createTextNode( data ) );
-			} else {
-				script.text = data;
-			}
-
-			// Use insertBefore instead of appendChild to circumvent an IE6 bug.
-			// This arises when a base node is used (#2709).
-			head.insertBefore( script, head.firstChild );
-			head.removeChild( script );
-		}
-	},
-
-	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
-	},
-
-	// args is for internal usage only
-	each: function( object, callback, args ) {
-		var name, i = 0,
-			length = object.length,
-			isObj = length === undefined || jQuery.isFunction(object);
-
-		if ( args ) {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.apply( object[ name ], args ) === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( ; i < length; ) {
-					if ( callback.apply( object[ i++ ], args ) === false ) {
-						break;
-					}
-				}
-			}
-
-		// A special, fast, case for the most common use of each
-		} else {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( var value = object[0];
-					i < length && callback.call( value, i, value ) !== false; value = object[++i] ) {}
-			}
-		}
-
-		return object;
-	},
-
-	// Use native String.trim function wherever possible
-	trim: trim ?
-		function( text ) {
-			return text == null ?
-				"" :
-				trim.call( text );
-		} :
-
-		// Otherwise use our own trimming functionality
-		function( text ) {
-			return text == null ?
-				"" :
-				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
-		},
-
-	// results is for internal usage only
-	makeArray: function( array, results ) {
-		var ret = results || [];
-
-		if ( array != null ) {
-			// The window, strings (and functions) also have 'length'
-			// The extra typeof function check is to prevent crashes
-			// in Safari 2 (See: #3039)
-			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
-			var type = jQuery.type(array);
-
-			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
-				push.call( ret, array );
-			} else {
-				jQuery.merge( ret, array );
-			}
-		}
-
-		return ret;
-	},
-
-	inArray: function( elem, array ) {
-		if ( array.indexOf ) {
-			return array.indexOf( elem );
-		}
-
-		for ( var i = 0, length = array.length; i < length; i++ ) {
-			if ( array[ i ] === elem ) {
-				return i;
-			}
-		}
-
-		return -1;
-	},
-
-	merge: function( first, second ) {
-		var i = first.length,
-			j = 0;
-
-		if ( typeof second.length === "number" ) {
-			for ( var l = second.length; j < l; j++ ) {
-				first[ i++ ] = second[ j ];
-			}
-
-		} else {
-			while ( second[j] !== undefined ) {
-				first[ i++ ] = second[ j++ ];
-			}
-		}
-
-		first.length = i;
-
-		return first;
-	},
-
-	grep: function( elems, callback, inv ) {
-		var ret = [], retVal;
-		inv = !!inv;
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( var i = 0, length = elems.length; i < length; i++ ) {
-			retVal = !!callback( elems[ i ], i );
-			if ( inv !== retVal ) {
-				ret.push( elems[ i ] );
-			}
-		}
-
-		return ret;
-	},
-
-	// arg is for internal usage only
-	map: function( elems, callback, arg ) {
-		var ret = [], value;
-
-		// Go through the array, translating each of the items to their
-		// new value (or values).
-		for ( var i = 0, length = elems.length; i < length; i++ ) {
-			value = callback( elems[ i ], i, arg );
-
-			if ( value != null ) {
-				ret[ ret.length ] = value;
-			}
-		}
-
-		// Flatten any nested arrays
-		return ret.concat.apply( [], ret );
-	},
-
-	// A global GUID counter for objects
-	guid: 1,
-
-	proxy: function( fn, proxy, thisObject ) {
-		if ( arguments.length === 2 ) {
-			if ( typeof proxy === "string" ) {
-				thisObject = fn;
-				fn = thisObject[ proxy ];
-				proxy = undefined;
-
-			} else if ( proxy && !jQuery.isFunction( proxy ) ) {
-				thisObject = proxy;
-				proxy = undefined;
-			}
-		}
-
-		if ( !proxy && fn ) {
-			proxy = function() {
-				return fn.apply( thisObject || this, arguments );
-			};
-		}
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		if ( fn ) {
-			proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
-		}
-
-		// So proxy can be declared as an argument
-		return proxy;
-	},
-
-	// Mutifunctional method to get and set values to a collection
-	// The value/s can be optionally by executed if its a function
-	access: function( elems, key, value, exec, fn, pass ) {
-		var length = elems.length;
-
-		// Setting many attributes
-		if ( typeof key === "object" ) {
-			for ( var k in key ) {
-				jQuery.access( elems, k, key[k], exec, fn, value );
-			}
-			return elems;
-		}
-
-		// Setting one attribute
-		if ( value !== undefined ) {
-			// Optionally, function values get executed if exec is true
-			exec = !pass && exec && jQuery.isFunction(value);
-
-			for ( var i = 0; i < length; i++ ) {
-				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
-			}
-
-			return elems;
-		}
-
-		// Getting an attribute
-		return length ? fn( elems[0], key ) : undefined;
-	},
-
-	now: function() {
-		return (new Date()).getTime();
-	},
-
-	// Create a simple deferred (one callbacks list)
-	_Deferred: function() {
-		var // callbacks list
-			callbacks = [],
-			// stored [ context , args ]
-			fired,
-			// to avoid firing when already doing so
-			firing,
-			// flag to know if the deferred has been cancelled
-			cancelled,
-			// the deferred itself
-			deferred  = {
-
-				// done( f1, f2, ...)
-				done: function() {
-					if ( !cancelled ) {
-						var args = arguments,
-							i,
-							length,
-							elem,
-							type,
-							_fired;
-						if ( fired ) {
-							_fired = fired;
-							fired = 0;
-						}
-						for ( i = 0, length = args.length; i < length; i++ ) {
-							elem = args[ i ];
-							type = jQuery.type( elem );
-							if ( type === "array" ) {
-								deferred.done.apply( deferred, elem );
-							} else if ( type === "function" ) {
-								callbacks.push( elem );
-							}
-						}
-						if ( _fired ) {
-							deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );
-						}
-					}
-					return this;
-				},
-
-				// resolve with given context and args
-				resolveWith: function( context, args ) {
-					if ( !cancelled && !fired && !firing ) {
-						firing = 1;
-						try {
-							while( callbacks[ 0 ] ) {
-								callbacks.shift().apply( context, args );
-							}
-						}
-						// We have to add a catch block for
-						// IE prior to 8 or else the finally
-						// block will never get executed
-						catch (e) {
-							throw e;
-						}
-						finally {
-							fired = [ context, args ];
-							firing = 0;
-						}
-					}
-					return this;
-				},
-
-				// resolve with this as context and given arguments
-				resolve: function() {
-					deferred.resolveWith( jQuery.isFunction( this.promise ) ? this.promise() : this, arguments );
-					return this;
-				},
-
-				// Has this deferred been resolved?
-				isResolved: function() {
-					return !!( firing || fired );
-				},
-
-				// Cancel
-				cancel: function() {
-					cancelled = 1;
-					callbacks = [];
-					return this;
-				}
-			};
-
-		return deferred;
-	},
-
-	// Full fledged deferred (two callbacks list)
-	Deferred: function( func ) {
-		var deferred = jQuery._Deferred(),
-			failDeferred = jQuery._Deferred(),
-			promise;
-		// Add errorDeferred methods, then and promise
-		jQuery.extend( deferred, {
-			then: function( doneCallbacks, failCallbacks ) {
-				deferred.done( doneCallbacks ).fail( failCallbacks );
-				return this;
-			},
-			fail: failDeferred.done,
-			rejectWith: failDeferred.resolveWith,
-			reject: failDeferred.resolve,
-			isRejected: failDeferred.isResolved,
-			// Get a promise for this deferred
-			// If obj is provided, the promise aspect is added to the object
-			promise: function( obj ) {
-				if ( obj == null ) {
-					if ( promise ) {
-						return promise;
-					}
-					promise = obj = {};
-				}
-				var i = promiseMethods.length;
-				while( i-- ) {
-					obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];
-				}
-				return obj;
-			}
-		} );
-		// Make sure only one callback list will be used
-		deferred.done( failDeferred.cancel ).fail( deferred.cancel );
-		// Unexpose cancel
-		delete deferred.cancel;
-		// Call given func if any
-		if ( func ) {
-			func.call( deferred, deferred );
-		}
-		return deferred;
-	},
-
-	// Deferred helper
-	when: function( object ) {
-		var lastIndex = arguments.length,
-			deferred = lastIndex <= 1 && object && jQuery.isFunction( object.promise ) ?
-				object :
-				jQuery.Deferred(),
-			promise = deferred.promise();
-
-		if ( lastIndex > 1 ) {
-			var array = slice.call( arguments, 0 ),
-				count = lastIndex,
-				iCallback = function( index ) {
-					return function( value ) {
-						array[ index ] = arguments.length > 1 ? slice.call( arguments, 0 ) : value;
-						if ( !( --count ) ) {
-							deferred.resolveWith( promise, array );
-						}
-					};
-				};
-			while( ( lastIndex-- ) ) {
-				object = array[ lastIndex ];
-				if ( object && jQuery.isFunction( object.promise ) ) {
-					object.promise().then( iCallback(lastIndex), deferred.reject );
-				} else {
-					--count;
-				}
-			}
-			if ( !count ) {
-				deferred.resolveWith( promise, array );
-			}
-		} else if ( deferred !== object ) {
-			deferred.resolve( object );
-		}
-		return promise;
-	},
-
-	// Use of jQuery.browser is frowned upon.
-	// More details: http://docs.jquery.com/Utilities/jQuery.browser
-	uaMatch: function( ua ) {
-		ua = ua.toLowerCase();
-
-		var match = rwebkit.exec( ua ) ||
-			ropera.exec( ua ) ||
-			rmsie.exec( ua ) ||
-			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
-			[];
-
-		return { browser: match[1] || "", version: match[2] || "0" };
-	},
-
-	sub: function() {
-		function jQuerySubclass( selector, context ) {
-			return new jQuerySubclass.fn.init( selector, context );
-		}
-		jQuery.extend( true, jQuerySubclass, this );
-		jQuerySubclass.superclass = this;
-		jQuerySubclass.fn = jQuerySubclass.prototype = this();
-		jQuerySubclass.fn.constructor = jQuerySubclass;
-		jQuerySubclass.subclass = this.subclass;
-		jQuerySubclass.fn.init = function init( selector, context ) {
-			if ( context && context instanceof jQuery && !(context instanceof jQuerySubclass) ) {
-				context = jQuerySubclass(context);
-			}
-
-			return jQuery.fn.init.call( this, selector, context, rootjQuerySubclass );
-		};
-		jQuerySubclass.fn.init.prototype = jQuerySubclass.fn;
-		var rootjQuerySubclass = jQuerySubclass(document);
-		return jQuerySubclass;
-	},
-
-	browser: {}
-});
-
-// Create readyList deferred
-readyList = jQuery._Deferred();
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-browserMatch = jQuery.uaMatch( userAgent );
-if ( browserMatch.browser ) {
-	jQuery.browser[ browserMatch.browser ] = true;
-	jQuery.browser.version = browserMatch.version;
-}
-
-// Deprecated, use jQuery.browser.webkit instead
-if ( jQuery.browser.webkit ) {
-	jQuery.browser.safari = true;
-}
-
-if ( indexOf ) {
-	jQuery.inArray = function( elem, array ) {
-		return indexOf.call( array, elem );
-	};
-}
-
-// IE doesn't match non-breaking spaces with \s
-if ( rnotwhite.test( "\xA0" ) ) {
-	trimLeft = /^[\s\xA0]+/;
-	trimRight = /[\s\xA0]+$/;
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-
-// Cleanup functions for the document ready method
-if ( document.addEventListener ) {
-	DOMContentLoaded = function() {
-		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-		jQuery.ready();
-	};
-
-} else if ( document.attachEvent ) {
-	DOMContentLoaded = function() {
-		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-		if ( document.readyState === "complete" ) {
-			document.detachEvent( "onreadystatechange", DOMContentLoaded );
-			jQuery.ready();
-		}
-	};
-}
-
-// The DOM ready check for Internet Explorer
-function doScrollCheck() {
-	if ( jQuery.isReady ) {
-		return;
-	}
-
-	try {
-		// If IE is used, use the trick by Diego Perini
-		// http://javascript.nwbox.com/IEContentLoaded/
-		document.documentElement.doScroll("left");
-	} catch(e) {
-		setTimeout( doScrollCheck, 1 );
-		return;
-	}
-
-	// and execute any waiting functions
-	jQuery.ready();
-}
-
-// Expose jQuery to the global object
-return jQuery;
-
-})();
-
-
-(function() {
-
-	jQuery.support = {};
-
-	var div = document.createElement("div");
-
-	div.style.display = "none";
-	div.innerHTML = "   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
-
-	var all = div.getElementsByTagName("*"),
-		a = div.getElementsByTagName("a")[0],
-		select = document.createElement("select"),
-		opt = select.appendChild( document.createElement("option") ),
-		input = div.getElementsByTagName("input")[0];
-
-	// Can't get basic test support
-	if ( !all || !all.length || !a ) {
-		return;
-	}
-
-	jQuery.support = {
-		// IE strips leading whitespace when .innerHTML is used
-		leadingWhitespace: div.firstChild.nodeType === 3,
-
-		// Make sure that tbody elements aren't automatically inserted
-		// IE will insert them into empty tables
-		tbody: !div.getElementsByTagName("tbody").length,
-
-		// Make sure that link elements get serialized correctly by innerHTML
-		// This requires a wrapper element in IE
-		htmlSerialize: !!div.getElementsByTagName("link").length,
-
-		// Get the style information from getAttribute
-		// (IE uses .cssText insted)
-		style: /red/.test( a.getAttribute("style") ),
-
-		// Make sure that URLs aren't manipulated
-		// (IE normalizes it by default)
-		hrefNormalized: a.getAttribute("href") === "/a",
-
-		// Make sure that element opacity exists
-		// (IE uses filter instead)
-		// Use a regex to work around a WebKit issue. See #5145
-		opacity: /^0.55$/.test( a.style.opacity ),
-
-		// Verify style float existence
-		// (IE uses styleFloat instead of cssFloat)
-		cssFloat: !!a.style.cssFloat,
-
-		// Make sure that if no value is specified for a checkbox
-		// that it defaults to "on".
-		// (WebKit defaults to "" instead)
-		checkOn: input.value === "on",
-
-		// Make sure that a selected-by-default option has a working selected property.
-		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
-		optSelected: opt.selected,
-
-		// Will be defined later
-		deleteExpando: true,
-		optDisabled: false,
-		checkClone: false,
-		noCloneEvent: true,
-		noCloneChecked: true,
-		boxModel: null,
-		inlineBlockNeedsLayout: false,
-		shrinkWrapBlocks: false,
-		reliableHiddenOffsets: true
-	};
-
-	input.checked = true;
-	jQuery.support.noCloneChecked = input.cloneNode( true ).checked;
-
-	// Make sure that the options inside disabled selects aren't marked as disabled
-	// (WebKit marks them as diabled)
-	select.disabled = true;
-	jQuery.support.optDisabled = !opt.disabled;
-
-	var _scriptEval = null;
-	jQuery.support.scriptEval = function() {
-		if ( _scriptEval === null ) {
-			var root = document.documentElement,
-				script = document.createElement("script"),
-				id = "script" + jQuery.now();
-
-			try {
-				script.appendChild( document.createTextNode( "window." + id + "=1;" ) );
-			} catch(e) {}
-
-			root.insertBefore( script, root.firstChild );
-
-			// Make sure that the execution of code works by injecting a script
-			// tag with appendChild/createTextNode
-			// (IE doesn't support this, fails, and uses .text instead)
-			if ( window[ id ] ) {
-				_scriptEval = true;
-				delete window[ id ];
-			} else {
-				_scriptEval = false;
-			}
-
-			root.removeChild( script );
-			// release memory in IE
-			root = script = id  = null;
-		}
-
-		return _scriptEval;
-	};
-
-	// Test to see if it's possible to delete an expando from an element
-	// Fails in Internet Explorer
-	try {
-		delete div.test;
-
-	} catch(e) {
-		jQuery.support.deleteExpando = false;
-	}
-
-	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
-		div.attachEvent("onclick", function click() {
-			// Cloning a node shouldn't copy over any
-			// bound event handlers (IE does this)
-			jQuery.support.noCloneEvent = false;
-			div.detachEvent("onclick", click);
-		});
-		div.cloneNode(true).fireEvent("onclick");
-	}
-
-	div = document.createElement("div");
-	div.innerHTML = "<input type='radio' name='radiotest' checked='checked'/>";
-
-	var fragment = document.createDocumentFragment();
-	fragment.appendChild( div.firstChild );
-
-	// WebKit doesn't clone checked state correctly in fragments
-	jQuery.support.checkClone = fragment.cloneNode(true).cloneNode(true).lastChild.checked;
-
-	// Figure out if the W3C box model works as expected
-	// document.body must exist before we can do this
-	jQuery(function() {
-		var div = document.createElement("div"),
-			body = document.getElementsByTagName("body")[0];
-
-		// Frameset documents with no body should not run this code
-		if ( !body ) {
-			return;
-		}
-
-		div.style.width = div.style.paddingLeft = "1px";
-		body.appendChild( div );
-		jQuery.boxModel = jQuery.support.boxModel = div.offsetWidth === 2;
-
-		if ( "zoom" in div.style ) {
-			// Check if natively block-level elements act like inline-block
-			// elements when setting their display to 'inline' and giving
-			// them layout
-			// (IE < 8 does this)
-			div.style.display = "inline";
-			div.style.zoom = 1;
-			jQuery.support.inlineBlockNeedsLayout = div.offsetWidth === 2;
-
-			// Check if elements with layout shrink-wrap their children
-			// (IE 6 does this)
-			div.style.display = "";
-			div.innerHTML = "<div style='width:4px;'></div>";
-			jQuery.support.shrinkWrapBlocks = div.offsetWidth !== 2;
-		}
-
-		div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
-		var tds = div.getElementsByTagName("td");
-
-		// Check if table cells still have offsetWidth/Height when they are set
-		// to display:none and there are still other visible table cells in a
-		// table row; if so, offsetWidth/Height are not reliable for use when
-		// determining if an element has been hidden directly using
-		// display:none (it is still safe to use offsets if a parent element is
-		// hidden; don safety goggles and see bug #4512 for more information).
-		// (only IE 8 fails this test)
-		jQuery.support.reliableHiddenOffsets = tds[0].offsetHeight === 0;
-
-		tds[0].style.display = "";
-		tds[1].style.display = "none";
-
-		// Check if empty table cells still have offsetWidth/Height
-		// (IE < 8 fail this test)
-		jQuery.support.reliableHiddenOffsets = jQuery.support.reliableHiddenOffsets && tds[0].offsetHeight === 0;
-		div.innerHTML = "";
-
-		body.removeChild( div ).style.display = "none";
-		div = tds = null;
-	});
-
-	// Technique from Juriy Zaytsev
-	// http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
-	var eventSupported = function( eventName ) {
-		var el = document.createElement("div");
-		eventName = "on" + eventName;
-
-		// We only care about the case where non-standard event systems
-		// are used, namely in IE. Short-circuiting here helps us to
-		// avoid an eval call (in setAttribute) which can cause CSP
-		// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
-		if ( !el.attachEvent ) {
-			return true;
-		}
-
-		var isSupported = (eventName in el);
-		if ( !isSupported ) {
-			el.setAttribute(eventName, "return;");
-			isSupported = typeof el[eventName] === "function";
-		}
-		el = null;
-
-		return isSupported;
-	};
-
-	jQuery.support.submitBubbles = eventSupported("submit");
-	jQuery.support.changeBubbles = eventSupported("change");
-
-	// release memory in IE
-	div = all = a = null;
-})();
-
-
-
-var rbrace = /^(?:\{.*\}|\[.*\])$/;
-
-jQuery.extend({
-	cache: {},
-
-	// Please use with caution
-	uuid: 0,
-
-	// Unique for each copy of jQuery on the page
-	// Non-digits removed to match rinlinejQuery
-	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
-
-	// The following elements throw uncatchable exceptions if you
-	// attempt to add expando properties to them.
-	noData: {
-		"embed": true,
-		// Ban all objects except for Flash (which handle expandos)
-		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
-		"applet": true
-	},
-
-	hasData: function( elem ) {
-		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
-
-		return !!elem && !isEmptyDataObject( elem );
-	},
-
-	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
-
-		var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
-
-			// We have to handle DOM nodes and JS objects differently because IE6-7
-			// can't GC object references properly across the DOM-JS boundary
-			isNode = elem.nodeType,
-
-			// Only DOM nodes need the global jQuery cache; JS object data is
-			// attached directly to the object so GC can occur automatically
-			cache = isNode ? jQuery.cache : elem,
-
-			// Only defining an ID for JS objects if its cache already exists allows
-			// the code to shortcut on the same path as a DOM node with no cache
-			id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
-
-		// Avoid doing any more work than we need to when trying to get data on an
-		// object that has no data at all
-		if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {
-			return;
-		}
-
-		if ( !id ) {
-			// Only DOM nodes need a new unique ID for each element since their data
-			// ends up in the global cache
-			if ( isNode ) {
-				elem[ jQuery.expando ] = id = ++jQuery.uuid;
-			} else {
-				id = jQuery.expando;
-			}
-		}
-
-		if ( !cache[ id ] ) {
-			cache[ id ] = {};
-
-			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-			// metadata on plain JS objects when the object is serialized using
-			// JSON.stringify
-			if ( !isNode ) {
-				cache[ id ].toJSON = jQuery.noop;
-			}
-		}
-
-		// An object can be passed to jQuery.data instead of a key/value pair; this gets
-		// shallow copied over onto the existing cache
-		if ( typeof name === "object" || typeof name === "function" ) {
-			if ( pvt ) {
-				cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
-			} else {
-				cache[ id ] = jQuery.extend(cache[ id ], name);
-			}
-		}
-
-		thisCache = cache[ id ];
-
-		// Internal jQuery data is stored in a separate object inside the object's data
-		// cache in order to avoid key collisions between internal data and user-defined
-		// data
-		if ( pvt ) {
-			if ( !thisCache[ internalKey ] ) {
-				thisCache[ internalKey ] = {};
-			}
-
-			thisCache = thisCache[ internalKey ];
-		}
-
-		if ( data !== undefined ) {
-			thisCache[ name ] = data;
-		}
-
-		// TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
-		// not attempt to inspect the internal events object using jQuery.data, as this
-		// internal data object is undocumented and subject to change.
-		if ( name === "events" && !thisCache[name] ) {
-			return thisCache[ internalKey ] && thisCache[ internalKey ].events;
-		}
-
-		return getByName ? thisCache[ name ] : thisCache;
-	},
-
-	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
-
-		var internalKey = jQuery.expando, isNode = elem.nodeType,
-
-			// See jQuery.data for more information
-			cache = isNode ? jQuery.cache : elem,
-
-			// See jQuery.data for more information
-			id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
-		// If there is already no cache entry for this object, there is no
-		// purpose in continuing
-		if ( !cache[ id ] ) {
-			return;
-		}
-
-		if ( name ) {
-			var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
-
-			if ( thisCache ) {
-				delete thisCache[ name ];
-
-				// If there is no data left in the cache, we want to continue
-				// and let the cache object itself get destroyed
-				if ( !isEmptyDataObject(thisCache) ) {
-					return;
-				}
-			}
-		}
-
-		// See jQuery.data for more information
-		if ( pvt ) {
-			delete cache[ id ][ internalKey ];
-
-			// Don't destroy the parent cache unless the internal data object
-			// had been the only thing left in it
-			if ( !isEmptyDataObject(cache[ id ]) ) {
-				return;
-			}
-		}
-
-		var internalCache = cache[ id ][ internalKey ];
-
-		// Browsers that fail expando deletion also refuse to delete expandos on
-		// the window, but it will allow it on all other JS objects; other browsers
-		// don't care
-		if ( jQuery.support.deleteExpando || cache != window ) {
-			delete cache[ id ];
-		} else {
-			cache[ id ] = null;
-		}
-
-		// We destroyed the entire user cache at once because it's faster than
-		// iterating through each key, but we need to continue to persist internal
-		// data if it existed
-		if ( internalCache ) {
-			cache[ id ] = {};
-			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-			// metadata on plain JS objects when the object is serialized using
-			// JSON.stringify
-			if ( !isNode ) {
-				cache[ id ].toJSON = jQuery.noop;
-			}
-
-			cache[ id ][ internalKey ] = internalCache;
-
-		// Otherwise, we need to eliminate the expando on the node to avoid
-		// false lookups in the cache for entries that no longer exist
-		} else if ( isNode ) {
-			// IE does not allow us to delete expando properties from nodes,
-			// nor does it have a removeAttribute function on Document nodes;
-			// we must handle all of these cases
-			if ( jQuery.support.deleteExpando ) {
-				delete elem[ jQuery.expando ];
-			} else if ( elem.removeAttribute ) {
-				elem.removeAttribute( jQuery.expando );
-			} else {
-				elem[ jQuery.expando ] = null;
-			}
-		}
-	},
-
-	// For internal use only.
-	_data: function( elem, name, data ) {
-		return jQuery.data( elem, name, data, true );
-	},
-
-	// A method for determining if a DOM node can handle the data expando
-	acceptData: function( elem ) {
-		if ( elem.nodeName ) {
-			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
-
-			if ( match ) {
-				return !(match === true || elem.getAttribute("classid") !== match);
-			}
-		}
-
-		return true;
-	}
-});
-
-jQuery.fn.extend({
-	data: function( key, value ) {
-		var data = null;
-
-		if ( typeof key === "undefined" ) {
-			if ( this.length ) {
-				data = jQuery.data( this[0] );
-
-				if ( this[0].nodeType === 1 ) {
-					var attr = this[0].attributes, name;
-					for ( var i = 0, l = attr.length; i < l; i++ ) {
-						name = attr[i].name;
-
-						if ( name.indexOf( "data-" ) === 0 ) {
-							name = name.substr( 5 );
-							dataAttr( this[0], name, data[ name ] );
-						}
-					}
-				}
-			}
-
-			return data;
-
-		} else if ( typeof key === "object" ) {
-			return this.each(function() {
-				jQuery.data( this, key );
-			});
-		}
-
-		var parts = key.split(".");
-		parts[1] = parts[1] ? "." + parts[1] : "";
-
-		if ( value === undefined ) {
-			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
-			// Try to fetch any internally stored data first
-			if ( data === undefined && this.length ) {
-				data = jQuery.data( this[0], key );
-				data = dataAttr( this[0], key, data );
-			}
-
-			return data === undefined && parts[1] ?
-				this.data( parts[0] ) :
-				data;
-
-		} else {
-			return this.each(function() {
-				var $this = jQuery( this ),
-					args = [ parts[0], value ];
-
-				$this.triggerHandler( "setData" + parts[1] + "!", args );
-				jQuery.data( this, key, value );
-				$this.triggerHandler( "changeData" + parts[1] + "!", args );
-			});
-		}
-	},
-
-	removeData: function( key ) {
-		return this.each(function() {
-			jQuery.removeData( this, key );
-		});
-	}
-});
-
-function dataAttr( elem, key, data ) {
-	// If nothing was found internally, try to fetch any
-	// data from the HTML5 data-* attribute
-	if ( data === undefined && elem.nodeType === 1 ) {
-		data = elem.getAttribute( "data-" + key );
-
-		if ( typeof data === "string" ) {
-			try {
-				data = data === "true" ? true :
-				data === "false" ? false :
-				data === "null" ? null :
-				!jQuery.isNaN( data ) ? parseFloat( data ) :
-					rbrace.test( data ) ? jQuery.parseJSON( data ) :
-					data;
-			} catch( e ) {}
-
-			// Make sure we set the data so it isn't changed later
-			jQuery.data( elem, key, data );
-
-		} else {
-			data = undefined;
-		}
-	}
-
-	return data;
-}
-
-// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON
-// property to be considered empty objects; this property always exists in
-// order to make sure JSON.stringify does not expose internal metadata
-function isEmptyDataObject( obj ) {
-	for ( var name in obj ) {
-		if ( name !== "toJSON" ) {
-			return false;
-		}
-	}
-
-	return true;
-}
-
-
-
-
-jQuery.extend({
-	queue: function( elem, type, data ) {
-		if ( !elem ) {
-			return;
-		}
-
-		type = (type || "fx") + "queue";
-		var q = jQuery._data( elem, type );
-
-		// Speed up dequeue by getting out quickly if this is just a lookup
-		if ( !data ) {
-			return q || [];
-		}
-
-		if ( !q || jQuery.isArray(data) ) {
-			q = jQuery._data( elem, type, jQuery.makeArray(data) );
-
-		} else {
-			q.push( data );
-		}
-
-		return q;
-	},
-
-	dequeue: function( elem, type ) {
-		type = type || "fx";
-
-		var queue = jQuery.queue( elem, type ),
-			fn = queue.shift();
-
-		// If the fx queue is dequeued, always remove the progress sentinel
-		if ( fn === "inprogress" ) {
-			fn = queue.shift();
-		}
-
-		if ( fn ) {
-			// Add a progress sentinel to prevent the fx queue from being
-			// automatically dequeued
-			if ( type === "fx" ) {
-				queue.unshift("inprogress");
-			}
-
-			fn.call(elem, function() {
-				jQuery.dequeue(elem, type);
-			});
-		}
-
-		if ( !queue.length ) {
-			jQuery.removeData( elem, type + "queue", true );
-		}
-	}
-});
-
-jQuery.fn.extend({
-	queue: function( type, data ) {
-		if ( typeof type !== "string" ) {
-			data = type;
-			type = "fx";
-		}
-
-		if ( data === undefined ) {
-			return jQuery.queue( this[0], type );
-		}
-		return this.each(function( i ) {
-			var queue = jQuery.queue( this, type, data );
-
-			if ( type === "fx" && queue[0] !== "inprogress" ) {
-				jQuery.dequeue( this, type );
-			}
-		});
-	},
-	dequeue: function( type ) {
-		return this.each(function() {
-			jQuery.dequeue( this, type );
-		});
-	},
-
-	// Based off of the plugin by Clint Helfers, with permission.
-	// http://blindsignals.com/index.php/2009/07/jquery-delay/
-	delay: function( time, type ) {
-		time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
-		type = type || "fx";
-
-		return this.queue( type, function() {
-			var elem = this;
-			setTimeout(function() {
-				jQuery.dequeue( elem, type );
-			}, time );
-		});
-	},
-
-	clearQueue: function( type ) {
-		return this.queue( type || "fx", [] );
-	}
-});
-
-
-
-
-var rclass = /[\n\t\r]/g,
-	rspaces = /\s+/,
-	rreturn = /\r/g,
-	rspecialurl = /^(?:href|src|style)$/,
-	rtype = /^(?:button|input)$/i,
-	rfocusable = /^(?:button|input|object|select|textarea)$/i,
-	rclickable = /^a(?:rea)?$/i,
-	rradiocheck = /^(?:radio|checkbox)$/i;
-
-jQuery.props = {
-	"for": "htmlFor",
-	"class": "className",
-	readonly: "readOnly",
-	maxlength: "maxLength",
-	cellspacing: "cellSpacing",
-	rowspan: "rowSpan",
-	colspan: "colSpan",
-	tabindex: "tabIndex",
-	usemap: "useMap",
-	frameborder: "frameBorder"
-};
-
-jQuery.fn.extend({
-	attr: function( name, value ) {
-		return jQuery.access( this, name, value, true, jQuery.attr );
-	},
-
-	removeAttr: function( name, fn ) {
-		return this.each(function(){
-			jQuery.attr( this, name, "" );
-			if ( this.nodeType === 1 ) {
-				this.removeAttribute( name );
-			}
-		});
-	},
-
-	addClass: function( value ) {
-		if ( jQuery.isFunction(value) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				self.addClass( value.call(this, i, self.attr("class")) );
-			});
-		}
-
-		if ( value && typeof value === "string" ) {
-			var classNames = (value || "").split( rspaces );
-
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				var elem = this[i];
-
-				if ( elem.nodeType === 1 ) {
-					if ( !elem.className ) {
-						elem.className = value;
-
-					} else {
-						var className = " " + elem.className + " ",
-							setClass = elem.className;
-
-						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
-							if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
-								setClass += " " + classNames[c];
-							}
-						}
-						elem.className = jQuery.trim( setClass );
-					}
-				}
-			}
-		}
-
-		return this;
-	},
-
-	removeClass: function( value ) {
-		if ( jQuery.isFunction(value) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				self.removeClass( value.call(this, i, self.attr("class")) );
-			});
-		}
-
-		if ( (value && typeof value === "string") || value === undefined ) {
-			var classNames = (value || "").split( rspaces );
-
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				var elem = this[i];
-
-				if ( elem.nodeType === 1 && elem.className ) {
-					if ( value ) {
-						var className = (" " + elem.className + " ").replace(rclass, " ");
-						for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
-							className = className.replace(" " + classNames[c] + " ", " ");
-						}
-						elem.className = jQuery.trim( className );
-
-					} else {
-						elem.className = "";
-					}
-				}
-			}
-		}
-
-		return this;
-	},
-
-	toggleClass: function( value, stateVal ) {
-		var type = typeof value,
-			isBool = typeof stateVal === "boolean";
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				self.toggleClass( value.call(this, i, self.attr("class"), stateVal), stateVal );
-			});
-		}
-
-		return this.each(function() {
-			if ( type === "string" ) {
-				// toggle individual class names
-				var className,
-					i = 0,
-					self = jQuery( this ),
-					state = stateVal,
-					classNames = value.split( rspaces );
-
-				while ( (className = classNames[ i++ ]) ) {
-					// check each className given, space seperated list
-					state = isBool ? state : !self.hasClass( className );
-					self[ state ? "addClass" : "removeClass" ]( className );
-				}
-
-			} else if ( type === "undefined" || type === "boolean" ) {
-				if ( this.className ) {
-					// store className if set
-					jQuery._data( this, "__className__", this.className );
-				}
-
-				// toggle whole className
-				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
-			}
-		});
-	},
-
-	hasClass: function( selector ) {
-		var className = " " + selector + " ";
-		for ( var i = 0, l = this.length; i < l; i++ ) {
-			if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
-				return true;
-			}
-		}
-
-		return false;
-	},
-
-	val: function( value ) {
-		if ( !arguments.length ) {
-			var elem = this[0];
-
-			if ( elem ) {
-				if ( jQuery.nodeName( elem, "option" ) ) {
-					// attributes.value is undefined in Blackberry 4.7 but
-					// uses .value. See #6932
-					var val = elem.attributes.value;
-					return !val || val.specified ? elem.value : elem.text;
-				}
-
-				// We need to handle select boxes special
-				if ( jQuery.nodeName( elem, "select" ) ) {
-					var index = elem.selectedIndex,
-						values = [],
-						options = elem.options,
-						one = elem.type === "select-one";
-
-					// Nothing was selected
-					if ( index < 0 ) {
-						return null;
-					}
-
-					// Loop through all the selected options
-					for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
-						var option = options[ i ];
-
-						// Don't return options that are disabled or in a disabled optgroup
-						if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
-								(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
-
-							// Get the specific value for the option
-							value = jQuery(option).val();
-
-							// We don't need an array for one selects
-							if ( one ) {
-								return value;
-							}
-
-							// Multi-Selects return an array
-							values.push( value );
-						}
-					}
-
-					// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
-					if ( one && !values.length && options.length ) {
-						return jQuery( options[ index ] ).val();
-					}
-
-					return values;
-				}
-
-				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
-				if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {
-					return elem.getAttribute("value") === null ? "on" : elem.value;
-				}
-
-				// Everything else, we just grab the value
-				return (elem.value || "").replace(rreturn, "");
-
-			}
-
-			return undefined;
-		}
-
-		var isFunction = jQuery.isFunction(value);
-
-		return this.each(function(i) {
-			var self = jQuery(this), val = value;
-
-			if ( this.nodeType !== 1 ) {
-				return;
-			}
-
-			if ( isFunction ) {
-				val = value.call(this, i, self.val());
-			}
-
-			// Treat null/undefined as ""; convert numbers to string
-			if ( val == null ) {
-				val = "";
-			} else if ( typeof val === "number" ) {
-				val += "";
-			} else if ( jQuery.isArray(val) ) {
-				val = jQuery.map(val, function (value) {
-					return value == null ? "" : value + "";
-				});
-			}
-
-			if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
-				this.checked = jQuery.inArray( self.val(), val ) >= 0;
-
-			} else if ( jQuery.nodeName( this, "select" ) ) {
-				var values = jQuery.makeArray(val);
-
-				jQuery( "option", this ).each(function() {
-					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
-				});
-
-				if ( !values.length ) {
-					this.selectedIndex = -1;
-				}
-
-			} else {
-				this.value = val;
-			}
-		});
-	}
-});
-
-jQuery.extend({
-	attrFn: {
-		val: true,
-		css: true,
-		html: true,
-		text: true,
-		data: true,
-		width: true,
-		height: true,
-		offset: true
-	},
-
-	attr: function( elem, name, value, pass ) {
-		// don't get/set attributes on text, comment and attribute nodes
-		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) {
-			return undefined;
-		}
-
-		if ( pass && name in jQuery.attrFn ) {
-			return jQuery(elem)[name](value);
-		}
-
-		var notxml = elem.nodeType !== 1 || !jQuery.isXMLDoc( elem ),
-			// Whether we are setting (or getting)
-			set = value !== undefined;
-
-		// Try to normalize/fix the name
-		name = notxml && jQuery.props[ name ] || name;
-
-		// Only do all the following if this is a node (faster for style)
-		if ( elem.nodeType === 1 ) {
-			// These attributes require special treatment
-			var special = rspecialurl.test( name );
-
-			// Safari mis-reports the default selected property of an option
-			// Accessing the parent's selectedIndex property fixes it
-			if ( name === "selected" && !jQuery.support.optSelected ) {
-				var parent = elem.parentNode;
-				if ( parent ) {
-					parent.selectedIndex;
-
-					// Make sure that it also works with optgroups, see #5701
-					if ( parent.parentNode ) {
-						parent.parentNode.selectedIndex;
-					}
-				}
-			}
-
-			// If applicable, access the attribute via the DOM 0 way
-			// 'in' checks fail in Blackberry 4.7 #6931
-			if ( (name in elem || elem[ name ] !== undefined) && notxml && !special ) {
-				if ( set ) {
-					// We can't allow the type property to be changed (since it causes problems in IE)
-					if ( name === "type" && rtype.test( elem.nodeName ) && elem.parentNode ) {
-						jQuery.error( "type property can't be changed" );
-					}
-
-					if ( value === null ) {
-						if ( elem.nodeType === 1 ) {
-							elem.removeAttribute( name );
-						}
-
-					} else {
-						elem[ name ] = value;
-					}
-				}
-
-				// browsers index elements by id/name on forms, give priority to attributes.
-				if ( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) ) {
-					return elem.getAttributeNode( name ).nodeValue;
-				}
-
-				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				if ( name === "tabIndex" ) {
-					var attributeNode = elem.getAttributeNode( "tabIndex" );
-
-					return attributeNode && attributeNode.specified ?
-						attributeNode.value :
-						rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
-							0 :
-							undefined;
-				}
-
-				return elem[ name ];
-			}
-
-			if ( !jQuery.support.style && notxml && name === "style" ) {
-				if ( set ) {
-					elem.style.cssText = "" + value;
-				}
-
-				return elem.style.cssText;
-			}
-
-			if ( set ) {
-				// convert the value to a string (all browsers do this but IE) see #1070
-				elem.setAttribute( name, "" + value );
-			}
-
-			// Ensure that missing attributes return undefined
-			// Blackberry 4.7 returns "" from getAttribute #6938
-			if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) {
-				return undefined;
-			}
-
-			var attr = !jQuery.support.hrefNormalized && notxml && special ?
-					// Some attributes require a special call on IE
-					elem.getAttribute( name, 2 ) :
-					elem.getAttribute( name );
-
-			// Non-existent attributes return null, we normalize to undefined
-			return attr === null ? undefined : attr;
-		}
-		// Handle everything which isn't a DOM element node
-		if ( set ) {
-			elem[ name ] = value;
-		}
-		return elem[ name ];
-	}
-});
-
-
-
-
-var rnamespaces = /\.(.*)$/,
-	rformElems = /^(?:textarea|input|select)$/i,
-	rperiod = /\./g,
-	rspace = / /g,
-	rescape = /[^\w\s.|`]/g,
-	fcleanup = function( nm ) {
-		return nm.replace(rescape, "\\$&");
-	};
-
-/*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code originated from
- * Dean Edwards' addEvent library.
- */
-jQuery.event = {
-
-	// Bind an event to an element
-	// Original by Dean Edwards
-	add: function( elem, types, handler, data ) {
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
-
-		// TODO :: Use a try/catch until it's safe to pull this out (likely 1.6)
-		// Minor release fix for bug #8018
-		try {
-			// For whatever reason, IE has trouble passing the window object
-			// around, causing it to be cloned in the process
-			if ( jQuery.isWindow( elem ) && ( elem !== window && !elem.frameElement ) ) {
-				elem = window;
-			}
-		}
-		catch ( e ) {}
-
-		if ( handler === false ) {
-			handler = returnFalse;
-		} else if ( !handler ) {
-			// Fixes bug #7229. Fix recommended by jdalton
-			return;
-		}
-
-		var handleObjIn, handleObj;
-
-		if ( handler.handler ) {
-			handleObjIn = handler;
-			handler = handleObjIn.handler;
-		}
-
-		// Make sure that the function being executed has a unique ID
-		if ( !handler.guid ) {
-			handler.guid = jQuery.guid++;
-		}
-
-		// Init the element's event structure
-		var elemData = jQuery._data( elem );
-
-		// If no elemData is found then we must be trying to bind to one of the
-		// banned noData elements
-		if ( !elemData ) {
-			return;
-		}
-
-		var events = elemData.events,
-			eventHandle = elemData.handle;
-
-		if ( !events ) {
-			elemData.events = events = {};
-		}
-
-		if ( !eventHandle ) {
-			elemData.handle = eventHandle = function() {
-				// Handle the second event of a trigger and when
-				// an event is called after a page has unloaded
-				return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
-					jQuery.event.handle.apply( eventHandle.elem, arguments ) :
-					undefined;
-			};
-		}
-
-		// Add elem as a property of the handle function
-		// This is to prevent a memory leak with non-native events in IE.
-		eventHandle.elem = elem;
-
-		// Handle multiple events separated by a space
-		// jQuery(...).bind("mouseover mouseout", fn);
-		types = types.split(" ");
-
-		var type, i = 0, namespaces;
-
-		while ( (type = types[ i++ ]) ) {
-			handleObj = handleObjIn ?
-				jQuery.extend({}, handleObjIn) :
-				{ handler: handler, data: data };
-
-			// Namespaced event handlers
-			if ( type.indexOf(".") > -1 ) {
-				namespaces = type.split(".");
-				type = namespaces.shift();
-				handleObj.namespace = namespaces.slice(0).sort().join(".");
-
-			} else {
-				namespaces = [];
-				handleObj.namespace = "";
-			}
-
-			handleObj.type = type;
-			if ( !handleObj.guid ) {
-				handleObj.guid = handler.guid;
-			}
-
-			// Get the current list of functions bound to this event
-			var handlers = events[ type ],
-				special = jQuery.event.special[ type ] || {};
-
-			// Init the event handler queue
-			if ( !handlers ) {
-				handlers = events[ type ] = [];
-
-				// Check for a special event handler
-				// Only use addEventListener/attachEvent if the special
-				// events handler returns false
-				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-					// Bind the global event handler to the element
-					if ( elem.addEventListener ) {
-						elem.addEventListener( type, eventHandle, false );
-
-					} else if ( elem.attachEvent ) {
-						elem.attachEvent( "on" + type, eventHandle );
-					}
-				}
-			}
-
-			if ( special.add ) {
-				special.add.call( elem, handleObj );
-
-				if ( !handleObj.handler.guid ) {
-					handleObj.handler.guid = handler.guid;
-				}
-			}
-
-			// Add the function to the element's handler list
-			handlers.push( handleObj );
-
-			// Keep track of which events have been used, for global triggering
-			jQuery.event.global[ type ] = true;
-		}
-
-		// Nullify elem to prevent memory leaks in IE
-		elem = null;
-	},
-
-	global: {},
-
-	// Detach an event or set of events from an element
-	remove: function( elem, types, handler, pos ) {
-		// don't do events on text and comment nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
-
-		if ( handler === false ) {
-			handler = returnFalse;
-		}
-
-		var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
-			elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
-			events = elemData && elemData.events;
-
-		if ( !elemData || !events ) {
-			return;
-		}
-
-		// types is actually an event object here
-		if ( types && types.type ) {
-			handler = types.handler;
-			types = types.type;
-		}
-
-		// Unbind all events for the element
-		if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
-			types = types || "";
-
-			for ( type in events ) {
-				jQuery.event.remove( elem, type + types );
-			}
-
-			return;
-		}
-
-		// Handle multiple events separated by a space
-		// jQuery(...).unbind("mouseover mouseout", fn);
-		types = types.split(" ");
-
-		while ( (type = types[ i++ ]) ) {
-			origType = type;
-			handleObj = null;
-			all = type.indexOf(".") < 0;
-			namespaces = [];
-
-			if ( !all ) {
-				// Namespaced event handlers
-				namespaces = type.split(".");
-				type = namespaces.shift();
-
-				namespace = new RegExp("(^|\\.)" +
-					jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
-			}
-
-			eventType = events[ type ];
-
-			if ( !eventType ) {
-				continue;
-			}
-
-			if ( !handler ) {
-				for ( j = 0; j < eventType.length; j++ ) {
-					handleObj = eventType[ j ];
-
-					if ( all || namespace.test( handleObj.namespace ) ) {
-						jQuery.event.remove( elem, origType, handleObj.handler, j );
-						eventType.splice( j--, 1 );
-					}
-				}
-
-				continue;
-			}
-
-			special = jQuery.event.special[ type ] || {};
-
-			for ( j = pos || 0; j < eventType.length; j++ ) {
-				handleObj = eventType[ j ];
-
-				if ( handler.guid === handleObj.guid ) {
-					// remove the given handler for the given type
-					if ( all || namespace.test( handleObj.namespace ) ) {
-						if ( pos == null ) {
-							eventType.splice( j--, 1 );
-						}
-
-						if ( special.remove ) {
-							special.remove.call( elem, handleObj );
-						}
-					}
-
-					if ( pos != null ) {
-						break;
-					}
-				}
-			}
-
-			// remove generic event handler if no more handlers exist
-			if ( eventType.length === 0 || pos != null && eventType.length === 1 ) {
-				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
-					jQuery.removeEvent( elem, type, elemData.handle );
-				}
-
-				ret = null;
-				delete events[ type ];
-			}
-		}
-
-		// Remove the expando if it's no longer used
-		if ( jQuery.isEmptyObject( events ) ) {
-			var handle = elemData.handle;
-			if ( handle ) {
-				handle.elem = null;
-			}
-
-			delete elemData.events;
-			delete elemData.handle;
-
-			if ( jQuery.isEmptyObject( elemData ) ) {
-				jQuery.removeData( elem, undefined, true );
-			}
-		}
-	},
-
-	// bubbling is internal
-	trigger: function( event, data, elem /*, bubbling */ ) {
-		// Event object or event type
-		var type = event.type || event,
-			bubbling = arguments[3];
-
-		if ( !bubbling ) {
-			event = typeof event === "object" ?
-				// jQuery.Event object
-				event[ jQuery.expando ] ? event :
-				// Object literal
-				jQuery.extend( jQuery.Event(type), event ) :
-				// Just the event type (string)
-				jQuery.Event(type);
-
-			if ( type.indexOf("!") >= 0 ) {
-				event.type = type = type.slice(0, -1);
-				event.exclusive = true;
-			}
-
-			// Handle a global trigger
-			if ( !elem ) {
-				// Don't bubble custom events when global (to avoid too much overhead)
-				event.stopPropagation();
-
-				// Only trigger if we've ever bound an event for it
-				if ( jQuery.event.global[ type ] ) {
-					// XXX This code smells terrible. event.js should not be directly
-					// inspecting the data cache
-					jQuery.each( jQuery.cache, function() {
-						// internalKey variable is just used to make it easier to find
-						// and potentially change this stuff later; currently it just
-						// points to jQuery.expando
-						var internalKey = jQuery.expando,
-							internalCache = this[ internalKey ];
-						if ( internalCache && internalCache.events && internalCache.events[ type ] ) {
-							jQuery.event.trigger( event, data, internalCache.handle.elem );
-						}
-					});
-				}
-			}
-
-			// Handle triggering a single element
-
-			// don't do events on text and comment nodes
-			if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
-				return undefined;
-			}
-
-			// Clean up in case it is reused
-			event.result = undefined;
-			event.target = elem;
-
-			// Clone the incoming data, if any
-			data = jQuery.makeArray( data );
-			data.unshift( event );
-		}
-
-		event.currentTarget = elem;
-
-		// Trigger the event, it is assumed that "handle" is a function
-		var handle = jQuery._data( elem, "handle" );
-
-		if ( handle ) {
-			handle.apply( elem, data );
-		}
-
-		var parent = elem.parentNode || elem.ownerDocument;
-
-		// Trigger an inline bound script
-		try {
-			if ( !(elem && elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()]) ) {
-				if ( elem[ "on" + type ] && elem[ "on" + type ].apply( elem, data ) === false ) {
-					event.result = false;
-					event.preventDefault();
-				}
-			}
-
-		// prevent IE from throwing an error for some elements with some event types, see #3533
-		} catch (inlineError) {}
-
-		if ( !event.isPropagationStopped() && parent ) {
-			jQuery.event.trigger( event, data, parent, true );
-
-		} else if ( !event.isDefaultPrevented() ) {
-			var old,
-				target = event.target,
-				targetType = type.replace( rnamespaces, "" ),
-				isClick = jQuery.nodeName( target, "a" ) && targetType === "click",
-				special = jQuery.event.special[ targetType ] || {};
-
-			if ( (!special._default || special._default.call( elem, event ) === false) &&
-				!isClick && !(target && target.nodeName && jQuery.noData[target.nodeName.toLowerCase()]) ) {
-
-				try {
-					if ( target[ targetType ] ) {
-						// Make sure that we don't accidentally re-trigger the onFOO events
-						old = target[ "on" + targetType ];
-
-						if ( old ) {
-							target[ "on" + targetType ] = null;
-						}
-
-						jQuery.event.triggered = true;
-						target[ targetType ]();
-					}
-
-				// prevent IE from throwing an error for some elements with some event types, see #3533
-				} catch (triggerError) {}
-
-				if ( old ) {
-					target[ "on" + targetType ] = old;
-				}
-
-				jQuery.event.triggered = false;
-			}
-		}
-	},
-
-	handle: function( event ) {
-		var all, handlers, namespaces, namespace_re, events,
-			namespace_sort = [],
-			args = jQuery.makeArray( arguments );
-
-		event = args[0] = jQuery.event.fix( event || window.event );
-		event.currentTarget = this;
-
-		// Namespaced event handlers
-		all = event.type.indexOf(".") < 0 && !event.exclusive;
-
-		if ( !all ) {
-			namespaces = event.type.split(".");
-			event.type = namespaces.shift();
-			namespace_sort = namespaces.slice(0).sort();
-			namespace_re = new RegExp("(^|\\.)" + namespace_sort.join("\\.(?:.*\\.)?") + "(\\.|$)");
-		}
-
-		event.namespace = event.namespace || namespace_sort.join(".");
-
-		events = jQuery._data(this, "events");
-
-		handlers = (events || {})[ event.type ];
-
-		if ( events && handlers ) {
-			// Clone the handlers to prevent manipulation
-			handlers = handlers.slice(0);
-
-			for ( var j = 0, l = handlers.length; j < l; j++ ) {
-				var handleObj = handlers[ j ];
-
-				// Filter the functions by class
-				if ( all || namespace_re.test( handleObj.namespace ) ) {
-					// Pass in a reference to the handler function itself
-					// So that we can later remove it
-					event.handler = handleObj.handler;
-					event.data = handleObj.data;
-					event.handleObj = handleObj;
-
-					var ret = handleObj.handler.apply( this, args );
-
-					if ( ret !== undefined ) {
-						event.result = ret;
-						if ( ret === false ) {
-							event.preventDefault();
-							event.stopPropagation();
-						}
-					}
-
-					if ( event.isImmediatePropagationStopped() ) {
-						break;
-					}
-				}
-			}
-		}
-
-		return event.result;
-	},
-
-	props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-
-	fix: function( event ) {
-		if ( event[ jQuery.expando ] ) {
-			return event;
-		}
-
-		// store a copy of the original event object
-		// and "clone" to set read-only properties
-		var originalEvent = event;
-		event = jQuery.Event( originalEvent );
-
-		for ( var i = this.props.length, prop; i; ) {
-			prop = this.props[ --i ];
-			event[ prop ] = originalEvent[ prop ];
-		}
-
-		// Fix target property, if necessary
-		if ( !event.target ) {
-			// Fixes #1925 where srcElement might not be defined either
-			event.target = event.srcElement || document;
-		}
-
-		// check if target is a textnode (safari)
-		if ( event.target.nodeType === 3 ) {
-			event.target = event.target.parentNode;
-		}
-
-		// Add relatedTarget, if necessary
-		if ( !event.relatedTarget && event.fromElement ) {
-			event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
-		}
-
-		// Calculate pageX/Y if missing and clientX/Y available
-		if ( event.pageX == null && event.clientX != null ) {
-			var doc = document.documentElement,
-				body = document.body;
-
-			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
-			event.pageY = event.clientY + (doc && doc.scrollTop  || body && body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop  || 0);
-		}
-
-		// Add which for key events
-		if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
-			event.which = event.charCode != null ? event.charCode : event.keyCode;
-		}
-
-		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
-		if ( !event.metaKey && event.ctrlKey ) {
-			event.metaKey = event.ctrlKey;
-		}
-
-		// Add which for click: 1 === left; 2 === middle; 3 === right
-		// Note: button is not normalized, so don't use it
-		if ( !event.which && event.button !== undefined ) {
-			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-		}
-
-		return event;
-	},
-
-	// Deprecated, use jQuery.guid instead
-	guid: 1E8,
-
-	// Deprecated, use jQuery.proxy instead
-	proxy: jQuery.proxy,
-
-	special: {
-		ready: {
-			// Make sure the ready event is setup
-			setup: jQuery.bindReady,
-			teardown: jQuery.noop
-		},
-
-		live: {
-			add: function( handleObj ) {
-				jQuery.event.add( this,
-					liveConvert( handleObj.origType, handleObj.selector ),
-					jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
-			},
-
-			remove: function( handleObj ) {
-				jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj );
-			}
-		},
-
-		beforeunload: {
-			setup: function( data, namespaces, eventHandle ) {
-				// We only want to do this special case on windows
-				if ( jQuery.isWindow( this ) ) {
-					this.onbeforeunload = eventHandle;
-				}
-			},
-
-			teardown: function( namespaces, eventHandle ) {
-				if ( this.onbeforeunload === eventHandle ) {
-					this.onbeforeunload = null;
-				}
-			}
-		}
-	}
-};
-
-jQuery.removeEvent = document.removeEventListener ?
-	function( elem, type, handle ) {
-		if ( elem.removeEventListener ) {
-			elem.removeEventListener( type, handle, false );
-		}
-	} :
-	function( elem, type, handle ) {
-		if ( elem.detachEvent ) {
-			elem.detachEvent( "on" + type, handle );
-		}
-	};
-
-jQuery.Event = function( src ) {
-	// Allow instantiation without the 'new' keyword
-	if ( !this.preventDefault ) {
-		return new jQuery.Event( src );
-	}
-
-	// Event object
-	if ( src && src.type ) {
-		this.originalEvent = src;
-		this.type = src.type;
-
-		// Events bubbling up the document may have been marked as prevented
-		// by a handler lower down the tree; reflect the correct value.
-		this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
-			src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
-
-	// Event type
-	} else {
-		this.type = src;
-	}
-
-	// timeStamp is buggy for some events on Firefox(#3843)
-	// So we won't rely on the native value
-	this.timeStamp = jQuery.now();
-
-	// Mark it as fixed
-	this[ jQuery.expando ] = true;
-};
-
-function returnFalse() {
-	return false;
-}
-function returnTrue() {
-	return true;
-}
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
-	preventDefault: function() {
-		this.isDefaultPrevented = returnTrue;
-
-		var e = this.originalEvent;
-		if ( !e ) {
-			return;
-		}
-
-		// if preventDefault exists run it on the original event
-		if ( e.preventDefault ) {
-			e.preventDefault();
-
-		// otherwise set the returnValue property of the original event to false (IE)
-		} else {
-			e.returnValue = false;
-		}
-	},
-	stopPropagation: function() {
-		this.isPropagationStopped = returnTrue;
-
-		var e = this.originalEvent;
-		if ( !e ) {
-			return;
-		}
-		// if stopPropagation exists run it on the original event
-		if ( e.stopPropagation ) {
-			e.stopPropagation();
-		}
-		// otherwise set the cancelBubble property of the original event to true (IE)
-		e.cancelBubble = true;
-	},
-	stopImmediatePropagation: function() {
-		this.isImmediatePropagationStopped = returnTrue;
-		this.stopPropagation();
-	},
-	isDefaultPrevented: returnFalse,
-	isPropagationStopped: returnFalse,
-	isImmediatePropagationStopped: returnFalse
-};
-
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function( event ) {
-	// Check if mouse(over|out) are still within the same parent element
-	var parent = event.relatedTarget;
-
-	// Firefox sometimes assigns relatedTarget a XUL element
-	// which we cannot access the parentNode property of
-	try {
-
-		// Chrome does something similar, the parentNode property
-		// can be accessed but is null.
-		if ( parent !== document && !parent.parentNode ) {
-			return;
-		}
-		// Traverse up the tree
-		while ( parent && parent !== this ) {
-			parent = parent.parentNode;
-		}
-
-		if ( parent !== this ) {
-			// set the correct event type
-			event.type = event.data;
-
-			// handle event if we actually just moused on to a non sub-element
-			jQuery.event.handle.apply( this, arguments );
-		}
-
-	// assuming we've left the element since we most likely mousedover a xul element
-	} catch(e) { }
-},
-
-// In case of event delegation, we only need to rename the event.type,
-// liveHandler will take care of the rest.
-delegate = function( event ) {
-	event.type = event.data;
-	jQuery.event.handle.apply( this, arguments );
-};
-
-// Create mouseenter and mouseleave events
-jQuery.each({
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-}, function( orig, fix ) {
-	jQuery.event.special[ orig ] = {
-		setup: function( data ) {
-			jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
-		},
-		teardown: function( data ) {
-			jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
-		}
-	};
-});
-
-// submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
-	jQuery.event.special.submit = {
-		setup: function( data, namespaces ) {
-			if ( this.nodeName && this.nodeName.toLowerCase() !== "form" ) {
-				jQuery.event.add(this, "click.specialSubmit", function( e ) {
-					var elem = e.target,
-						type = elem.type;
-
-					if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
-						trigger( "submit", this, arguments );
-					}
-				});
-
-				jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
-					var elem = e.target,
-						type = elem.type;
-
-					if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
-						trigger( "submit", this, arguments );
-					}
-				});
-
-			} else {
-				return false;
-			}
-		},
-
-		teardown: function( namespaces ) {
-			jQuery.event.remove( this, ".specialSubmit" );
-		}
-	};
-
-}
-
-// change delegation, happens here so we have bind.
-if ( !jQuery.support.changeBubbles ) {
-
-	var changeFilters,
-
-	getVal = function( elem ) {
-		var type = elem.type, val = elem.value;
-
-		if ( type === "radio" || type === "checkbox" ) {
-			val = elem.checked;
-
-		} else if ( type === "select-multiple" ) {
-			val = elem.selectedIndex > -1 ?
-				jQuery.map( elem.options, function( elem ) {
-					return elem.selected;
-				}).join("-") :
-				"";
-
-		} else if ( elem.nodeName.toLowerCase() === "select" ) {
-			val = elem.selectedIndex;
-		}
-
-		return val;
-	},
-
-	testChange = function testChange( e ) {
-		var elem = e.target, data, val;
-
-		if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {
-			return;
-		}
-
-		data = jQuery._data( elem, "_change_data" );
-		val = getVal(elem);
-
-		// the current data will be also retrieved by beforeactivate
-		if ( e.type !== "focusout" || elem.type !== "radio" ) {
-			jQuery._data( elem, "_change_data", val );
-		}
-
-		if ( data === undefined || val === data ) {
-			return;
-		}
-
-		if ( data != null || val ) {
-			e.type = "change";
-			e.liveFired = undefined;
-			jQuery.event.trigger( e, arguments[1], elem );
-		}
-	};
-
-	jQuery.event.special.change = {
-		filters: {
-			focusout: testChange,
-
-			beforedeactivate: testChange,
-
-			click: function( e ) {
-				var elem = e.target, type = elem.type;
-
-				if ( type === "radio" || type === "checkbox" || elem.nodeName.toLowerCase() === "select" ) {
-					testChange.call( this, e );
-				}
-			},
-
-			// Change has to be called before submit
-			// Keydown will be called before keypress, which is used in submit-event delegation
-			keydown: function( e ) {
-				var elem = e.target, type = elem.type;
-
-				if ( (e.keyCode === 13 && elem.nodeName.toLowerCase() !== "textarea") ||
-					(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
-					type === "select-multiple" ) {
-					testChange.call( this, e );
-				}
-			},
-
-			// Beforeactivate happens also before the previous element is blurred
-			// with this event you can't trigger a change event, but you can store
-			// information
-			beforeactivate: function( e ) {
-				var elem = e.target;
-				jQuery._data( elem, "_change_data", getVal(elem) );
-			}
-		},
-
-		setup: function( data, namespaces ) {
-			if ( this.type === "file" ) {
-				return false;
-			}
-
-			for ( var type in changeFilters ) {
-				jQuery.event.add( this, type + ".specialChange", changeFilters[type] );
-			}
-
-			return rformElems.test( this.nodeName );
-		},
-
-		teardown: function( namespaces ) {
-			jQuery.event.remove( this, ".specialChange" );
-
-			return rformElems.test( this.nodeName );
-		}
-	};
-
-	changeFilters = jQuery.event.special.change.filters;
-
-	// Handle when the input is .focus()'d
-	changeFilters.focus = changeFilters.beforeactivate;
-}
-
-function trigger( type, elem, args ) {
-	// Piggyback on a donor event to simulate a different one.
-	// Fake originalEvent to avoid donor's stopPropagation, but if the
-	// simulated event prevents default then we do the same on the donor.
-	// Don't pass args or remember liveFired; they apply to the donor event.
-	var event = jQuery.extend( {}, args[ 0 ] );
-	event.type = type;
-	event.originalEvent = {};
-	event.liveFired = undefined;
-	jQuery.event.handle.call( elem, event );
-	if ( event.isDefaultPrevented() ) {
-		args[ 0 ].preventDefault();
-	}
-}
-
-// Create "bubbling" focus and blur events
-if ( document.addEventListener ) {
-	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-		jQuery.event.special[ fix ] = {
-			setup: function() {
-				this.addEventListener( orig, handler, true );
-			},
-			teardown: function() {
-				this.removeEventListener( orig, handler, true );
-			}
-		};
-
-		function handler( e ) {
-			e = jQuery.event.fix( e );
-			e.type = fix;
-			return jQuery.event.handle.call( this, e );
-		}
-	});
-}
-
-jQuery.each(["bind", "one"], function( i, name ) {
-	jQuery.fn[ name ] = function( type, data, fn ) {
-		// Handle object literals
-		if ( typeof type === "object" ) {
-			for ( var key in type ) {
-				this[ name ](key, data, type[key], fn);
-			}
-			return this;
-		}
-
-		if ( jQuery.isFunction( data ) || data === false ) {
-			fn = data;
-			data = undefined;
-		}
-
-		var handler = name === "one" ? jQuery.proxy( fn, function( event ) {
-			jQuery( this ).unbind( event, handler );
-			return fn.apply( this, arguments );
-		}) : fn;
-
-		if ( type === "unload" && name !== "one" ) {
-			this.one( type, data, fn );
-
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				jQuery.event.add( this[i], type, handler, data );
-			}
-		}
-
-		return this;
-	};
-});
-
-jQuery.fn.extend({
-	unbind: function( type, fn ) {
-		// Handle object literals
-		if ( typeof type === "object" && !type.preventDefault ) {
-			for ( var key in type ) {
-				this.unbind(key, type[key]);
-			}
-
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				jQuery.event.remove( this[i], type, fn );
-			}
-		}
-
-		return this;
-	},
-
-	delegate: function( selector, types, data, fn ) {
-		return this.live( types, data, fn, selector );
-	},
-
-	undelegate: function( selector, types, fn ) {
-		if ( arguments.length === 0 ) {
-				return this.unbind( "live" );
-
-		} else {
-			return this.die( types, null, fn, selector );
-		}
-	},
-
-	trigger: function( type, data ) {
-		return this.each(function() {
-			jQuery.event.trigger( type, data, this );
-		});
-	},
-
-	triggerHandler: function( type, data ) {
-		if ( this[0] ) {
-			var event = jQuery.Event( type );
-			event.preventDefault();
-			event.stopPropagation();
-			jQuery.event.trigger( event, data, this[0] );
-			return event.result;
-		}
-	},
-
-	toggle: function( fn ) {
-		// Save reference to arguments for access in closure
-		var args = arguments,
-			i = 1;
-
-		// link all the functions, so any of them can unbind this click handler
-		while ( i < args.length ) {
-			jQuery.proxy( fn, args[ i++ ] );
-		}
-
-		return this.click( jQuery.proxy( fn, function( event ) {
-			// Figure out which function to execute
-			var lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;
-			jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
-			// Make sure that clicks stop
-			event.preventDefault();
-
-			// and execute the function
-			return args[ lastToggle ].apply( this, arguments ) || false;
-		}));
-	},
-
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	}
-});
-
-var liveMap = {
-	focus: "focusin",
-	blur: "focusout",
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-};
-
-jQuery.each(["live", "die"], function( i, name ) {
-	jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
-		var type, i = 0, match, namespaces, preType,
-			selector = origSelector || this.selector,
-			context = origSelector ? this : jQuery( this.context );
-
-		if ( typeof types === "object" && !types.preventDefault ) {
-			for ( var key in types ) {
-				context[ name ]( key, data, types[key], selector );
-			}
-
-			return this;
-		}
-
-		if ( jQuery.isFunction( data ) ) {
-			fn = data;
-			data = undefined;
-		}
-
-		types = (types || "").split(" ");
-
-		while ( (type = types[ i++ ]) != null ) {
-			match = rnamespaces.exec( type );
-			namespaces = "";
-
-			if ( match )  {
-				namespaces = match[0];
-				type = type.replace( rnamespaces, "" );
-			}
-
-			if ( type === "hover" ) {
-				types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
-				continue;
-			}
-
-			preType = type;
-
-			if ( type === "focus" || type === "blur" ) {
-				types.push( liveMap[ type ] + namespaces );
-				type = type + namespaces;
-
-			} else {
-				type = (liveMap[ type ] || type) + namespaces;
-			}
-
-			if ( name === "live" ) {
-				// bind live handler
-				for ( var j = 0, l = context.length; j < l; j++ ) {
-					jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
-						{ data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
-				}
-
-			} else {
-				// unbind live handler
-				context.unbind( "live." + liveConvert( type, selector ), fn );
-			}
-		}
-
-		return this;
-	};
-});
-
-function liveHandler( event ) {
-	var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
-		elems = [],
-		selectors = [],
-		events = jQuery._data( this, "events" );
-
-	// Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
-	if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
-		return;
-	}
-
-	if ( event.namespace ) {
-		namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
-	}
-
-	event.liveFired = this;
-
-	var live = events.live.slice(0);
-
-	for ( j = 0; j < live.length; j++ ) {
-		handleObj = live[j];
-
-		if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
-			selectors.push( handleObj.selector );
-
-		} else {
-			live.splice( j--, 1 );
-		}
-	}
-
-	match = jQuery( event.target ).closest( selectors, event.currentTarget );
-
-	for ( i = 0, l = match.length; i < l; i++ ) {
-		close = match[i];
-
-		for ( j = 0; j < live.length; j++ ) {
-			handleObj = live[j];
-
-			if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
-				elem = close.elem;
-				related = null;
-
-				// Those two events require additional checking
-				if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
-					event.type = handleObj.preType;
-					related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
-				}
-
-				if ( !related || related !== elem ) {
-					elems.push({ elem: elem, handleObj: handleObj, level: close.level });
-				}
-			}
-		}
-	}
-
-	for ( i = 0, l = elems.length; i < l; i++ ) {
-		match = elems[i];
-
-		if ( maxLevel && match.level > maxLevel ) {
-			break;
-		}
-
-		event.currentTarget = match.elem;
-		event.data = match.handleObj.data;
-		event.handleObj = match.handleObj;
-
-		ret = match.handleObj.origHandler.apply( match.elem, arguments );
-
-		if ( ret === false || event.isPropagationStopped() ) {
-			maxLevel = match.level;
-
-			if ( ret === false ) {
-				stop = false;
-			}
-			if ( event.isImmediatePropagationStopped() ) {
-				break;
-			}
-		}
-	}
-
-	return stop;
-}
-
-function liveConvert( type, selector ) {
-	return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspace, "&");
-}
-
-jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
-	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-	"change select submit keydown keypress keyup error").split(" "), function( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		if ( fn == null ) {
-			fn = data;
-			data = null;
-		}
-
-		return arguments.length > 0 ?
-			this.bind( name, data, fn ) :
-			this.trigger( name );
-	};
-
-	if ( jQuery.attrFn ) {
-		jQuery.attrFn[ name ] = true;
-	}
-});
-
-
-/*!
- * Sizzle CSS Selector Engine
- *  Copyright 2011, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){
-
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
-	done = 0,
-	toString = Object.prototype.toString,
-	hasDuplicate = false,
-	baseHasDuplicate = true,
-	rBackslash = /\\/g,
-	rNonWord = /\W/;
-
-// Here we check if the JavaScript engine is using some sort of
-// optimization where it does not always call our comparision
-// function. If that is the case, discard the hasDuplicate value.
-//   Thus far that includes Google Chrome.
-[0, 0].sort(function() {
-	baseHasDuplicate = false;
-	return 0;
-});
-
-var Sizzle = function( selector, context, results, seed ) {
-	results = results || [];
-	context = context || document;
-
-	var origContext = context;
-
-	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
-		return [];
-	}
-	
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	var m, set, checkSet, extra, ret, cur, pop, i,
-		prune = true,
-		contextXML = Sizzle.isXML( context ),
-		parts = [],
-		soFar = selector;
-	
-	// Reset the position of the chunker regexp (start from head)
-	do {
-		chunker.exec( "" );
-		m = chunker.exec( soFar );
-
-		if ( m ) {
-			soFar = m[3];
-		
-			parts.push( m[1] );
-		
-			if ( m[2] ) {
-				extra = m[3];
-				break;
-			}
-		}
-	} while ( m );
-
-	if ( parts.length > 1 && origPOS.exec( selector ) ) {
-
-		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
-			set = posProcess( parts[0] + parts[1], context );
-
-		} else {
-			set = Expr.relative[ parts[0] ] ?
-				[ context ] :
-				Sizzle( parts.shift(), context );
-
-			while ( parts.length ) {
-				selector = parts.shift();
-
-				if ( Expr.relative[ selector ] ) {
-					selector += parts.shift();
-				}
-				
-				set = posProcess( selector, set );
-			}
-		}
-
-	} else {
-		// Take a shortcut and set the context if the root selector is an ID
-		// (but not if it'll be faster if the inner selector is an ID)
-		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
-				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
-
-			ret = Sizzle.find( parts.shift(), context, contextXML );
-			context = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set )[0] :
-				ret.set[0];
-		}
-
-		if ( context ) {
-			ret = seed ?
-				{ expr: parts.pop(), set: makeArray(seed) } :
-				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
-
-			set = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set ) :
-				ret.set;
-
-			if ( parts.length > 0 ) {
-				checkSet = makeArray( set );
-
-			} else {
-				prune = false;
-			}
-
-			while ( parts.length ) {
-				cur = parts.pop();
-				pop = cur;
-
-				if ( !Expr.relative[ cur ] ) {
-					cur = "";
-				} else {
-					pop = parts.pop();
-				}
-
-				if ( pop == null ) {
-					pop = context;
-				}
-
-				Expr.relative[ cur ]( checkSet, pop, contextXML );
-			}
-
-		} else {
-			checkSet = parts = [];
-		}
-	}
-
-	if ( !checkSet ) {
-		checkSet = set;
-	}
-
-	if ( !checkSet ) {
-		Sizzle.error( cur || selector );
-	}
-
-	if ( toString.call(checkSet) === "[object Array]" ) {
-		if ( !prune ) {
-			results.push.apply( results, checkSet );
-
-		} else if ( context && context.nodeType === 1 ) {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
-					results.push( set[i] );
-				}
-			}
-
-		} else {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
-					results.push( set[i] );
-				}
-			}
-		}
-
-	} else {
-		makeArray( checkSet, results );
-	}
-
-	if ( extra ) {
-		Sizzle( extra, origContext, results, seed );
-		Sizzle.uniqueSort( results );
-	}
-
-	return results;
-};
-
-Sizzle.uniqueSort = function( results ) {
-	if ( sortOrder ) {
-		hasDuplicate = baseHasDuplicate;
-		results.sort( sortOrder );
-
-		if ( hasDuplicate ) {
-			for ( var i = 1; i < results.length; i++ ) {
-				if ( results[i] === results[ i - 1 ] ) {
-					results.splice( i--, 1 );
-				}
-			}
-		}
-	}
-
-	return results;
-};
-
-Sizzle.matches = function( expr, set ) {
-	return Sizzle( expr, null, null, set );
-};
-
-Sizzle.matchesSelector = function( node, expr ) {
-	return Sizzle( expr, null, null, [node] ).length > 0;
-};
-
-Sizzle.find = function( expr, context, isXML ) {
-	var set;
-
-	if ( !expr ) {
-		return [];
-	}
-
-	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
-		var match,
-			type = Expr.order[i];
-		
-		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
-			var left = match[1];
-			match.splice( 1, 1 );
-
-			if ( left.substr( left.length - 1 ) !== "\\" ) {
-				match[1] = (match[1] || "").replace( rBackslash, "" );
-				set = Expr.find[ type ]( match, context, isXML );
-
-				if ( set != null ) {
-					expr = expr.replace( Expr.match[ type ], "" );
-					break;
-				}
-			}
-		}
-	}
-
-	if ( !set ) {
-		set = typeof context.getElementsByTagName !== "undefined" ?
-			context.getElementsByTagName( "*" ) :
-			[];
-	}
-
-	return { set: set, expr: expr };
-};
-
-Sizzle.filter = function( expr, set, inplace, not ) {
-	var match, anyFound,
-		old = expr,
-		result = [],
-		curLoop = set,
-		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
-
-	while ( expr && set.length ) {
-		for ( var type in Expr.filter ) {
-			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
-				var found, item,
-					filter = Expr.filter[ type ],
-					left = match[1];
-
-				anyFound = false;
-
-				match.splice(1,1);
-
-				if ( left.substr( left.length - 1 ) === "\\" ) {
-					continue;
-				}
-
-				if ( curLoop === result ) {
-					result = [];
-				}
-
-				if ( Expr.preFilter[ type ] ) {
-					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
-
-					if ( !match ) {
-						anyFound = found = true;
-
-					} else if ( match === true ) {
-						continue;
-					}
-				}
-
-				if ( match ) {
-					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
-						if ( item ) {
-							found = filter( item, match, i, curLoop );
-							var pass = not ^ !!found;
-
-							if ( inplace && found != null ) {
-								if ( pass ) {
-									anyFound = true;
-
-								} else {
-									curLoop[i] = false;
-								}
-
-							} else if ( pass ) {
-								result.push( item );
-								anyFound = true;
-							}
-						}
-					}
-				}
-
-				if ( found !== undefined ) {
-					if ( !inplace ) {
-						curLoop = result;
-					}
-
-					expr = expr.replace( Expr.match[ type ], "" );
-
-					if ( !anyFound ) {
-						return [];
-					}
-
-					break;
-				}
-			}
-		}
-
-		// Improper expression
-		if ( expr === old ) {
-			if ( anyFound == null ) {
-				Sizzle.error( expr );
-
-			} else {
-				break;
-			}
-		}
-
-		old = expr;
-	}
-
-	return curLoop;
-};
-
-Sizzle.error = function( msg ) {
-	throw "Syntax error, unrecognized expression: " + msg;
-};
-
-var Expr = Sizzle.selectors = {
-	order: [ "ID", "NAME", "TAG" ],
-
-	match: {
-		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
-		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
-		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
-		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
-		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
-		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
-	},
-
-	leftMatch: {},
-
-	attrMap: {
-		"class": "className",
-		"for": "htmlFor"
-	},
-
-	attrHandle: {
-		href: function( elem ) {
-			return elem.getAttribute( "href" );
-		},
-		type: function( elem ) {
-			return elem.getAttribute( "type" );
-		}
-	},
-
-	relative: {
-		"+": function(checkSet, part){
-			var isPartStr = typeof part === "string",
-				isTag = isPartStr && !rNonWord.test( part ),
-				isPartStrNotTag = isPartStr && !isTag;
-
-			if ( isTag ) {
-				part = part.toLowerCase();
-			}
-
-			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
-				if ( (elem = checkSet[i]) ) {
-					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
-
-					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
-						elem || false :
-						elem === part;
-				}
-			}
-
-			if ( isPartStrNotTag ) {
-				Sizzle.filter( part, checkSet, true );
-			}
-		},
-
-		">": function( checkSet, part ) {
-			var elem,
-				isPartStr = typeof part === "string",
-				i = 0,
-				l = checkSet.length;
-
-			if ( isPartStr && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
-
-					if ( elem ) {
-						var parent = elem.parentNode;
-						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
-					}
-				}
-
-			} else {
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
-
-					if ( elem ) {
-						checkSet[i] = isPartStr ?
-							elem.parentNode :
-							elem.parentNode === part;
-					}
-				}
-
-				if ( isPartStr ) {
-					Sizzle.filter( part, checkSet, true );
-				}
-			}
-		},
-
-		"": function(checkSet, part, isXML){
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
-
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
-		},
-
-		"~": function( checkSet, part, isXML ) {
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
-
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
-		}
-	},
-
-	find: {
-		ID: function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-				// Check parentNode to catch when Blackberry 4.6 returns
-				// nodes that are no longer in the document #6963
-				return m && m.parentNode ? [m] : [];
-			}
-		},
-
-		NAME: function( match, context ) {
-			if ( typeof context.getElementsByName !== "undefined" ) {
-				var ret = [],
-					results = context.getElementsByName( match[1] );
-
-				for ( var i = 0, l = results.length; i < l; i++ ) {
-					if ( results[i].getAttribute("name") === match[1] ) {
-						ret.push( results[i] );
-					}
-				}
-
-				return ret.length === 0 ? null : ret;
-			}
-		},
-
-		TAG: function( match, context ) {
-			if ( typeof context.getElementsByTagName !== "undefined" ) {
-				return context.getElementsByTagName( match[1] );
-			}
-		}
-	},
-	preFilter: {
-		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
-			match = " " + match[1].replace( rBackslash, "" ) + " ";
-
-			if ( isXML ) {
-				return match;
-			}
-
-			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
-				if ( elem ) {
-					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
-						if ( !inplace ) {
-							result.push( elem );
-						}
-
-					} else if ( inplace ) {
-						curLoop[i] = false;
-					}
-				}
-			}
-
-			return false;
-		},
-
-		ID: function( match ) {
-			return match[1].replace( rBackslash, "" );
-		},
-
-		TAG: function( match, curLoop ) {
-			return match[1].replace( rBackslash, "" ).toLowerCase();
-		},
-
-		CHILD: function( match ) {
-			if ( match[1] === "nth" ) {
-				if ( !match[2] ) {
-					Sizzle.error( match[0] );
-				}
-
-				match[2] = match[2].replace(/^\+|\s*/g, '');
-
-				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
-				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
-					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
-					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
-
-				// calculate the numbers (first)n+(last) including if they are negative
-				match[2] = (test[1] + (test[2] || 1)) - 0;
-				match[3] = test[3] - 0;
-			}
-			else if ( match[2] ) {
-				Sizzle.error( match[0] );
-			}
-
-			// TODO: Move to normal caching system
-			match[0] = done++;
-
-			return match;
-		},
-
-		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
-			var name = match[1] = match[1].replace( rBackslash, "" );
-			
-			if ( !isXML && Expr.attrMap[name] ) {
-				match[1] = Expr.attrMap[name];
-			}
-
-			// Handle if an un-quoted value was used
-			match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
-
-			if ( match[2] === "~=" ) {
-				match[4] = " " + match[4] + " ";
-			}
-
-			return match;
-		},
-
-		PSEUDO: function( match, curLoop, inplace, result, not ) {
-			if ( match[1] === "not" ) {
-				// If we're dealing with a complex expression, or a simple one
-				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
-					match[3] = Sizzle(match[3], null, null, curLoop);
-
-				} else {
-					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
-
-					if ( !inplace ) {
-						result.push.apply( result, ret );
-					}
-
-					return false;
-				}
-
-			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
-				return true;
-			}
-			
-			return match;
-		},
-
-		POS: function( match ) {
-			match.unshift( true );
-
-			return match;
-		}
-	},
-	
-	filters: {
-		enabled: function( elem ) {
-			return elem.disabled === false && elem.type !== "hidden";
-		},
-
-		disabled: function( elem ) {
-			return elem.disabled === true;
-		},
-
-		checked: function( elem ) {
-			return elem.checked === true;
-		},
-		
-		selected: function( elem ) {
-			// Accessing this property makes selected-by-default
-			// options in Safari work properly
-			if ( elem.parentNode ) {
-				elem.parentNode.selectedIndex;
-			}
-			
-			return elem.selected === true;
-		},
-
-		parent: function( elem ) {
-			return !!elem.firstChild;
-		},
-
-		empty: function( elem ) {
-			return !elem.firstChild;
-		},
-
-		has: function( elem, i, match ) {
-			return !!Sizzle( match[3], elem ).length;
-		},
-
-		header: function( elem ) {
-			return (/h\d/i).test( elem.nodeName );
-		},
-
-		text: function( elem ) {
-			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) 
-			// use getAttribute instead to test this case
-			return "text" === elem.getAttribute( 'type' );
-		},
-		radio: function( elem ) {
-			return "radio" === elem.type;
-		},
-
-		checkbox: function( elem ) {
-			return "checkbox" === elem.type;
-		},
-
-		file: function( elem ) {
-			return "file" === elem.type;
-		},
-		password: function( elem ) {
-			return "password" === elem.type;
-		},
-
-		submit: function( elem ) {
-			return "submit" === elem.type;
-		},
-
-		image: function( elem ) {
-			return "image" === elem.type;
-		},
-
-		reset: function( elem ) {
-			return "reset" === elem.type;
-		},
-
-		button: function( elem ) {
-			return "button" === elem.type || elem.nodeName.toLowerCase() === "button";
-		},
-
-		input: function( elem ) {
-			return (/input|select|textarea|button/i).test( elem.nodeName );
-		}
-	},
-	setFilters: {
-		first: function( elem, i ) {
-			return i === 0;
-		},
-
-		last: function( elem, i, match, array ) {
-			return i === array.length - 1;
-		},
-
-		even: function( elem, i ) {
-			return i % 2 === 0;
-		},
-
-		odd: function( elem, i ) {
-			return i % 2 === 1;
-		},
-
-		lt: function( elem, i, match ) {
-			return i < match[3] - 0;
-		},
-
-		gt: function( elem, i, match ) {
-			return i > match[3] - 0;
-		},
-
-		nth: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		},
-
-		eq: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		}
-	},
-	filter: {
-		PSEUDO: function( elem, match, i, array ) {
-			var name = match[1],
-				filter = Expr.filters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-
-			} else if ( name === "contains" ) {
-				return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
-
-			} else if ( name === "not" ) {
-				var not = match[3];
-
-				for ( var j = 0, l = not.length; j < l; j++ ) {
-					if ( not[j] === elem ) {
-						return false;
-					}
-				}
-
-				return true;
-
-			} else {
-				Sizzle.error( name );
-			}
-		},
-
-		CHILD: function( elem, match ) {
-			var type = match[1],
-				node = elem;
-
-			switch ( type ) {
-				case "only":
-				case "first":
-					while ( (node = node.previousSibling) )	 {
-						if ( node.nodeType === 1 ) { 
-							return false; 
-						}
-					}
-
-					if ( type === "first" ) { 
-						return true; 
-					}
-
-					node = elem;
-
-				case "last":
-					while ( (node = node.nextSibling) )	 {
-						if ( node.nodeType === 1 ) { 
-							return false; 
-						}
-					}
-
-					return true;
-
-				case "nth":
-					var first = match[2],
-						last = match[3];
-
-					if ( first === 1 && last === 0 ) {
-						return true;
-					}
-					
-					var doneName = match[0],
-						parent = elem.parentNode;
-	
-					if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
-						var count = 0;
-						
-						for ( node = parent.firstChild; node; node = node.nextSibling ) {
-							if ( node.nodeType === 1 ) {
-								node.nodeIndex = ++count;
-							}
-						} 
-
-						parent.sizcache = doneName;
-					}
-					
-					var diff = elem.nodeIndex - last;
-
-					if ( first === 0 ) {
-						return diff === 0;
-
-					} else {
-						return ( diff % first === 0 && diff / first >= 0 );
-					}
-			}
-		},
-
-		ID: function( elem, match ) {
-			return elem.nodeType === 1 && elem.getAttribute("id") === match;
-		},
-
-		TAG: function( elem, match ) {
-			return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
-		},
-		
-		CLASS: function( elem, match ) {
-			return (" " + (elem.className || elem.getAttribute("class")) + " ")
-				.indexOf( match ) > -1;
-		},
-
-		ATTR: function( elem, match ) {
-			var name = match[1],
-				result = Expr.attrHandle[ name ] ?
-					Expr.attrHandle[ name ]( elem ) :
-					elem[ name ] != null ?
-						elem[ name ] :
-						elem.getAttribute( name ),
-				value = result + "",
-				type = match[2],
-				check = match[4];
-
-			return result == null ?
-				type === "!=" :
-				type === "=" ?
-				value === check :
-				type === "*=" ?
-				value.indexOf(check) >= 0 :
-				type === "~=" ?
-				(" " + value + " ").indexOf(check) >= 0 :
-				!check ?
-				value && result !== false :
-				type === "!=" ?
-				value !== check :
-				type === "^=" ?
-				value.indexOf(check) === 0 :
-				type === "$=" ?
-				value.substr(value.length - check.length) === check :
-				type === "|=" ?
-				value === check || value.substr(0, check.length + 1) === check + "-" :
-				false;
-		},
-
-		POS: function( elem, match, i, array ) {
-			var name = match[2],
-				filter = Expr.setFilters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-			}
-		}
-	}
-};
-
-var origPOS = Expr.match.POS,
-	fescape = function(all, num){
-		return "\\" + (num - 0 + 1);
-	};
-
-for ( var type in Expr.match ) {
-	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
-	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
-}
-
-var makeArray = function( array, results ) {
-	array = Array.prototype.slice.call( array, 0 );
-
-	if ( results ) {
-		results.push.apply( results, array );
-		return results;
-	}
-	
-	return array;
-};
-
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-// Also verifies that the returned array holds DOM nodes
-// (which is not the case in the Blackberry browser)
-try {
-	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
-
-// Provide a fallback method if it does not work
-} catch( e ) {
-	makeArray = function( array, results ) {
-		var i = 0,
-			ret = results || [];
-
-		if ( toString.call(array) === "[object Array]" ) {
-			Array.prototype.push.apply( ret, array );
-
-		} else {
-			if ( typeof array.length === "number" ) {
-				for ( var l = array.length; i < l; i++ ) {
-					ret.push( array[i] );
-				}
-
-			} else {
-				for ( ; array[i]; i++ ) {
-					ret.push( array[i] );
-				}
-			}
-		}
-
-		return ret;
-	};
-}
-
-var sortOrder, siblingCheck;
-
-if ( document.documentElement.compareDocumentPosition ) {
-	sortOrder = function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-
-		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
-			return a.compareDocumentPosition ? -1 : 1;
-		}
-
-		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
-	};
-
-} else {
-	sortOrder = function( a, b ) {
-		var al, bl,
-			ap = [],
-			bp = [],
-			aup = a.parentNode,
-			bup = b.parentNode,
-			cur = aup;
-
-		// The nodes are identical, we can exit early
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-
-		// If the nodes are siblings (or identical) we can do a quick check
-		} else if ( aup === bup ) {
-			return siblingCheck( a, b );
-
-		// If no parents were found then the nodes are disconnected
-		} else if ( !aup ) {
-			return -1;
-
-		} else if ( !bup ) {
-			return 1;
-		}
-
-		// Otherwise they're somewhere else in the tree so we need
-		// to build up a full list of the parentNodes for comparison
-		while ( cur ) {
-			ap.unshift( cur );
-			cur = cur.parentNode;
-		}
-
-		cur = bup;
-
-		while ( cur ) {
-			bp.unshift( cur );
-			cur = cur.parentNode;
-		}
-
-		al = ap.length;
-		bl = bp.length;
-
-		// Start walking down the tree looking for a discrepancy
-		for ( var i = 0; i < al && i < bl; i++ ) {
-			if ( ap[i] !== bp[i] ) {
-				return siblingCheck( ap[i], bp[i] );
-			}
-		}
-
-		// We ended someplace up the tree so do a sibling check
-		return i === al ?
-			siblingCheck( a, bp[i], -1 ) :
-			siblingCheck( ap[i], b, 1 );
-	};
-
-	siblingCheck = function( a, b, ret ) {
-		if ( a === b ) {
-			return ret;
-		}
-
-		var cur = a.nextSibling;
-
-		while ( cur ) {
-			if ( cur === b ) {
-				return -1;
-			}
-
-			cur = cur.nextSibling;
-		}
-
-		return 1;
-	};
-}
-
-// Utility function for retreiving the text value of an array of DOM nodes
-Sizzle.getText = function( elems ) {
-	var ret = "", elem;
-
-	for ( var i = 0; elems[i]; i++ ) {
-		elem = elems[i];
-
-		// Get the text from text nodes and CDATA nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
-			ret += elem.nodeValue;
-
-		// Traverse everything else, except comment nodes
-		} else if ( elem.nodeType !== 8 ) {
-			ret += Sizzle.getText( elem.childNodes );
-		}
-	}
-
-	return ret;
-};
-
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
-	// We're going to inject a fake input element with a specified name
-	var form = document.createElement("div"),
-		id = "script" + (new Date()).getTime(),
-		root = document.documentElement;
-
-	form.innerHTML = "<a name='" + id + "'/>";
-
-	// Inject it into the root element, check its status, and remove it quickly
-	root.insertBefore( form, root.firstChild );
-
-	// The workaround has to do additional checks after a getElementById
-	// Which slows things down for other browsers (hence the branching)
-	if ( document.getElementById( id ) ) {
-		Expr.find.ID = function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-
-				return m ?
-					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
-						[m] :
-						undefined :
-					[];
-			}
-		};
-
-		Expr.filter.ID = function( elem, match ) {
-			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
-
-			return elem.nodeType === 1 && node && node.nodeValue === match;
-		};
-	}
-
-	root.removeChild( form );
-
-	// release memory in IE
-	root = form = null;
-})();
-
-(function(){
-	// Check to see if the browser returns only elements
-	// when doing getElementsByTagName("*")
-
-	// Create a fake element
-	var div = document.createElement("div");
-	div.appendChild( document.createComment("") );
-
-	// Make sure no comments are found
-	if ( div.getElementsByTagName("*").length > 0 ) {
-		Expr.find.TAG = function( match, context ) {
-			var results = context.getElementsByTagName( match[1] );
-
-			// Filter out possible comments
-			if ( match[1] === "*" ) {
-				var tmp = [];
-
-				for ( var i = 0; results[i]; i++ ) {
-					if ( results[i].nodeType === 1 ) {
-						tmp.push( results[i] );
-					}
-				}
-
-				results = tmp;
-			}
-
-			return results;
-		};
-	}
-
-	// Check to see if an attribute returns normalized href attributes
-	div.innerHTML = "<a href='#'></a>";
-
-	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
-			div.firstChild.getAttribute("href") !== "#" ) {
-
-		Expr.attrHandle.href = function( elem ) {
-			return elem.getAttribute( "href", 2 );
-		};
-	}
-
-	// release memory in IE
-	div = null;
-})();
-
-if ( document.querySelectorAll ) {
-	(function(){
-		var oldSizzle = Sizzle,
-			div = document.createElement("div"),
-			id = "__sizzle__";
-
-		div.innerHTML = "<p class='TEST'></p>";
-
-		// Safari can't handle uppercase or unicode characters when
-		// in quirks mode.
-		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
-			return;
-		}
-	
-		Sizzle = function( query, context, extra, seed ) {
-			context = context || document;
-
-			// Only use querySelectorAll on non-XML documents
-			// (ID selectors don't work in non-HTML documents)
-			if ( !seed && !Sizzle.isXML(context) ) {
-				// See if we find a selector to speed up
-				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
-				
-				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
-					// Speed-up: Sizzle("TAG")
-					if ( match[1] ) {
-						return makeArray( context.getElementsByTagName( query ), extra );
-					
-					// Speed-up: Sizzle(".CLASS")
-					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
-						return makeArray( context.getElementsByClassName( match[2] ), extra );
-					}
-				}
-				
-				if ( context.nodeType === 9 ) {
-					// Speed-up: Sizzle("body")
-					// The body element only exists once, optimize finding it
-					if ( query === "body" && context.body ) {
-						return makeArray( [ context.body ], extra );
-						
-					// Speed-up: Sizzle("#ID")
-					} else if ( match && match[3] ) {
-						var elem = context.getElementById( match[3] );
-
-						// Check parentNode to catch when Blackberry 4.6 returns
-						// nodes that are no longer in the document #6963
-						if ( elem && elem.parentNode ) {
-							// Handle the case where IE and Opera return items
-							// by name instead of ID
-							if ( elem.id === match[3] ) {
-								return makeArray( [ elem ], extra );
-							}
-							
-						} else {
-							return makeArray( [], extra );
-						}
-					}
-					
-					try {
-						return makeArray( context.querySelectorAll(query), extra );
-					} catch(qsaError) {}
-
-				// qSA works strangely on Element-rooted queries
-				// We can work around this by specifying an extra ID on the root
-				// and working up from there (Thanks to Andrew Dupont for the technique)
-				// IE 8 doesn't work on object elements
-				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-					var oldContext = context,
-						old = context.getAttribute( "id" ),
-						nid = old || id,
-						hasParent = context.parentNode,
-						relativeHierarchySelector = /^\s*[+~]/.test( query );
-
-					if ( !old ) {
-						context.setAttribute( "id", nid );
-					} else {
-						nid = nid.replace( /'/g, "\\$&" );
-					}
-					if ( relativeHierarchySelector && hasParent ) {
-						context = context.parentNode;
-					}
-
-					try {
-						if ( !relativeHierarchySelector || hasParent ) {
-							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
-						}
-
-					} catch(pseudoError) {
-					} finally {
-						if ( !old ) {
-							oldContext.removeAttribute( "id" );
-						}
-					}
-				}
-			}
-		
-			return oldSizzle(query, context, extra, seed);
-		};
-
-		for ( var prop in oldSizzle ) {
-			Sizzle[ prop ] = oldSizzle[ prop ];
-		}
-
-		// release memory in IE
-		div = null;
-	})();
-}
-
-(function(){
-	var html = document.documentElement,
-		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector,
-		pseudoWorks = false;
-
-	try {
-		// This should fail with an exception
-		// Gecko does not error, returns false instead
-		matches.call( document.documentElement, "[test!='']:sizzle" );
-	
-	} catch( pseudoError ) {
-		pseudoWorks = true;
-	}
-
-	if ( matches ) {
-		Sizzle.matchesSelector = function( node, expr ) {
-			// Make sure that attribute selectors are quoted
-			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
-
-			if ( !Sizzle.isXML( node ) ) {
-				try { 
-					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
-						return matches.call( node, expr );
-					}
-				} catch(e) {}
-			}
-
-			return Sizzle(expr, null, null, [node]).length > 0;
-		};
-	}
-})();
-
-(function(){
-	var div = document.createElement("div");
-
-	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
-	// Opera can't find a second classname (in 9.6)
-	// Also, make sure that getElementsByClassName actually exists
-	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
-		return;
-	}
-
-	// Safari caches class attributes, doesn't catch changes (in 3.2)
-	div.lastChild.className = "e";
-
-	if ( div.getElementsByClassName("e").length === 1 ) {
-		return;
-	}
-	
-	Expr.order.splice(1, 0, "CLASS");
-	Expr.find.CLASS = function( match, context, isXML ) {
-		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
-			return context.getElementsByClassName(match[1]);
-		}
-	};
-
-	// release memory in IE
-	div = null;
-})();
-
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-
-		if ( elem ) {
-			var match = false;
-
-			elem = elem[dir];
-
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 && !isXML ){
-					elem.sizcache = doneName;
-					elem.sizset = i;
-				}
-
-				if ( elem.nodeName.toLowerCase() === cur ) {
-					match = elem;
-					break;
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-
-		if ( elem ) {
-			var match = false;
-			
-			elem = elem[dir];
-
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 ) {
-					if ( !isXML ) {
-						elem.sizcache = doneName;
-						elem.sizset = i;
-					}
-
-					if ( typeof cur !== "string" ) {
-						if ( elem === cur ) {
-							match = true;
-							break;
-						}
-
-					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
-						match = elem;
-						break;
-					}
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-if ( document.documentElement.contains ) {
-	Sizzle.contains = function( a, b ) {
-		return a !== b && (a.contains ? a.contains(b) : true);
-	};
-
-} else if ( document.documentElement.compareDocumentPosition ) {
-	Sizzle.contains = function( a, b ) {
-		return !!(a.compareDocumentPosition(b) & 16);
-	};
-
-} else {
-	Sizzle.contains = function() {
-		return false;
-	};
-}
-
-Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833) 
-	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
-
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-var posProcess = function( selector, context ) {
-	var match,
-		tmpSet = [],
-		later = "",
-		root = context.nodeType ? [context] : context;
-
-	// Position selectors must be done after the filter
-	// And so must :not(positional) so we move all PSEUDOs to the end
-	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
-		later += match[0];
-		selector = selector.replace( Expr.match.PSEUDO, "" );
-	}
-
-	selector = Expr.relative[selector] ? selector + "*" : selector;
-
-	for ( var i = 0, l = root.length; i < l; i++ ) {
-		Sizzle( selector, root[i], tmpSet );
-	}
-
-	return Sizzle.filter( later, tmpSet );
-};
-
-// EXPOSE
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})();
-
-
-var runtil = /Until$/,
-	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
-	// Note: This RegExp should be improved, or likely pulled from Sizzle
-	rmultiselector = /,/,
-	isSimple = /^.[^:#\[\.,]*$/,
-	slice = Array.prototype.slice,
-	POS = jQuery.expr.match.POS,
-	// methods guaranteed to produce a unique set when starting from a unique set
-	guaranteedUnique = {
-		children: true,
-		contents: true,
-		next: true,
-		prev: true
-	};
-
-jQuery.fn.extend({
-	find: function( selector ) {
-		var ret = this.pushStack( "", "find", selector ),
-			length = 0;
-
-		for ( var i = 0, l = this.length; i < l; i++ ) {
-			length = ret.length;
-			jQuery.find( selector, this[i], ret );
-
-			if ( i > 0 ) {
-				// Make sure that the results are unique
-				for ( var n = length; n < ret.length; n++ ) {
-					for ( var r = 0; r < length; r++ ) {
-						if ( ret[r] === ret[n] ) {
-							ret.splice(n--, 1);
-							break;
-						}
-					}
-				}
-			}
-		}
-
-		return ret;
-	},
-
-	has: function( target ) {
-		var targets = jQuery( target );
-		return this.filter(function() {
-			for ( var i = 0, l = targets.length; i < l; i++ ) {
-				if ( jQuery.contains( this, targets[i] ) ) {
-					return true;
-				}
-			}
-		});
-	},
-
-	not: function( selector ) {
-		return this.pushStack( winnow(this, selector, false), "not", selector);
-	},
-
-	filter: function( selector ) {
-		return this.pushStack( winnow(this, selector, true), "filter", selector );
-	},
-
-	is: function( selector ) {
-		return !!selector && jQuery.filter( selector, this ).length > 0;
-	},
-
-	closest: function( selectors, context ) {
-		var ret = [], i, l, cur = this[0];
-
-		if ( jQuery.isArray( selectors ) ) {
-			var match, selector,
-				matches = {},
-				level = 1;
-
-			if ( cur && selectors.length ) {
-				for ( i = 0, l = selectors.length; i < l; i++ ) {
-					selector = selectors[i];
-
-					if ( !matches[selector] ) {
-						matches[selector] = jQuery.expr.match.POS.test( selector ) ?
-							jQuery( selector, context || this.context ) :
-							selector;
-					}
-				}
-
-				while ( cur && cur.ownerDocument && cur !== context ) {
-					for ( selector in matches ) {
-						match = matches[selector];
-
-						if ( match.jquery ? match.index(cur) > -1 : jQuery(cur).is(match) ) {
-							ret.push({ selector: selector, elem: cur, level: level });
-						}
-					}
-
-					cur = cur.parentNode;
-					level++;
-				}
-			}
-
-			return ret;
-		}
-
-		var pos = POS.test( selectors ) ?
-			jQuery( selectors, context || this.context ) : null;
-
-		for ( i = 0, l = this.length; i < l; i++ ) {
-			cur = this[i];
-
-			while ( cur ) {
-				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
-					ret.push( cur );
-					break;
-
-				} else {
-					cur = cur.parentNode;
-					if ( !cur || !cur.ownerDocument || cur === context ) {
-						break;
-					}
-				}
-			}
-		}
-
-		ret = ret.length > 1 ? jQuery.unique(ret) : ret;
-
-		return this.pushStack( ret, "closest", selectors );
-	},
-
-	// Determine the position of an element within
-	// the matched set of elements
-	index: function( elem ) {
-		if ( !elem || typeof elem === "string" ) {
-			return jQuery.inArray( this[0],
-				// If it receives a string, the selector is used
-				// If it receives nothing, the siblings are used
-				elem ? jQuery( elem ) : this.parent().children() );
-		}
-		// Locate the position of the desired element
-		return jQuery.inArray(
-			// If it receives a jQuery object, the first element is used
-			elem.jquery ? elem[0] : elem, this );
-	},
-
-	add: function( selector, context ) {
-		var set = typeof selector === "string" ?
-				jQuery( selector, context ) :
-				jQuery.makeArray( selector ),
-			all = jQuery.merge( this.get(), set );
-
-		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
-			all :
-			jQuery.unique( all ) );
-	},
-
-	andSelf: function() {
-		return this.add( this.prevObject );
-	}
-});
-
-// A painfully simple check to see if an element is disconnected
-// from a document (should be improved, where feasible).
-function isDisconnected( node ) {
-	return !node || !node.parentNode || node.parentNode.nodeType === 11;
-}
-
-jQuery.each({
-	parent: function( elem ) {
-		var parent = elem.parentNode;
-		return parent && parent.nodeType !== 11 ? parent : null;
-	},
-	parents: function( elem ) {
-		return jQuery.dir( elem, "parentNode" );
-	},
-	parentsUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "parentNode", until );
-	},
-	next: function( elem ) {
-		return jQuery.nth( elem, 2, "nextSibling" );
-	},
-	prev: function( elem ) {
-		return jQuery.nth( elem, 2, "previousSibling" );
-	},
-	nextAll: function( elem ) {
-		return jQuery.dir( elem, "nextSibling" );
-	},
-	prevAll: function( elem ) {
-		return jQuery.dir( elem, "previousSibling" );
-	},
-	nextUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "nextSibling", until );
-	},
-	prevUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "previousSibling", until );
-	},
-	siblings: function( elem ) {
-		return jQuery.sibling( elem.parentNode.firstChild, elem );
-	},
-	children: function( elem ) {
-		return jQuery.sibling( elem.firstChild );
-	},
-	contents: function( elem ) {
-		return jQuery.nodeName( elem, "iframe" ) ?
-			elem.contentDocument || elem.contentWindow.document :
-			jQuery.makeArray( elem.childNodes );
-	}
-}, function( name, fn ) {
-	jQuery.fn[ name ] = function( until, selector ) {
-		var ret = jQuery.map( this, fn, until ),
-			// The variable 'args' was introduced in
-			// https://github.com/jquery/jquery/commit/52a0238
-			// to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
-			// http://code.google.com/p/v8/issues/detail?id=1050
-			args = slice.call(arguments);
-
-		if ( !runtil.test( name ) ) {
-			selector = until;
-		}
-
-		if ( selector && typeof selector === "string" ) {
-			ret = jQuery.filter( selector, ret );
-		}
-
-		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
-
-		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
-			ret = ret.reverse();
-		}
-
-		return this.pushStack( ret, name, args.join(",") );
-	};
-});
-
-jQuery.extend({
-	filter: function( expr, elems, not ) {
-		if ( not ) {
-			expr = ":not(" + expr + ")";
-		}
-
-		return elems.length === 1 ?
-			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
-			jQuery.find.matches(expr, elems);
-	},
-
-	dir: function( elem, dir, until ) {
-		var matched = [],
-			cur = elem[ dir ];
-
-		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
-			if ( cur.nodeType === 1 ) {
-				matched.push( cur );
-			}
-			cur = cur[dir];
-		}
-		return matched;
-	},
-
-	nth: function( cur, result, dir, elem ) {
-		result = result || 1;
-		var num = 0;
-
-		for ( ; cur; cur = cur[dir] ) {
-			if ( cur.nodeType === 1 && ++num === result ) {
-				break;
-			}
-		}
-
-		return cur;
-	},
-
-	sibling: function( n, elem ) {
-		var r = [];
-
-		for ( ; n; n = n.nextSibling ) {
-			if ( n.nodeType === 1 && n !== elem ) {
-				r.push( n );
-			}
-		}
-
-		return r;
-	}
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, keep ) {
-	if ( jQuery.isFunction( qualifier ) ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			var retVal = !!qualifier.call( elem, i, elem );
-			return retVal === keep;
-		});
-
-	} else if ( qualifier.nodeType ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			return (elem === qualifier) === keep;
-		});
-
-	} else if ( typeof qualifier === "string" ) {
-		var filtered = jQuery.grep(elements, function( elem ) {
-			return elem.nodeType === 1;
-		});
-
-		if ( isSimple.test( qualifier ) ) {
-			return jQuery.filter(qualifier, filtered, !keep);
-		} else {
-			qualifier = jQuery.filter( qualifier, filtered );
-		}
-	}
-
-	return jQuery.grep(elements, function( elem, i ) {
-		return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
-	});
-}
-
-
-
-
-var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
-	rleadingWhitespace = /^\s+/,
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
-	rtagName = /<([\w:]+)/,
-	rtbody = /<tbody/i,
-	rhtml = /<|&#?\w+;/,
-	rnocache = /<(?:script|object|embed|option|style)/i,
-	// checked="checked" or checked
-	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	wrapMap = {
-		option: [ 1, "<select multiple='multiple'>", "</select>" ],
-		legend: [ 1, "<fieldset>", "</fieldset>" ],
-		thead: [ 1, "<table>", "</table>" ],
-		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
-		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
-		area: [ 1, "<map>", "</map>" ],
-		_default: [ 0, "", "" ]
-	};
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-// IE can't serialize <link> and <script> tags normally
-if ( !jQuery.support.htmlSerialize ) {
-	wrapMap._default = [ 1, "div<div>", "</div>" ];
-}
-
-jQuery.fn.extend({
-	text: function( text ) {
-		if ( jQuery.isFunction(text) ) {
-			return this.each(function(i) {
-				var self = jQuery( this );
-
-				self.text( text.call(this, i, self.text()) );
-			});
-		}
-
-		if ( typeof text !== "object" && text !== undefined ) {
-			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-		}
-
-		return jQuery.text( this );
-	},
-
-	wrapAll: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapAll( html.call(this, i) );
-			});
-		}
-
-		if ( this[0] ) {
-			// The elements to wrap the target around
-			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
-
-			if ( this[0].parentNode ) {
-				wrap.insertBefore( this[0] );
-			}
-
-			wrap.map(function() {
-				var elem = this;
-
-				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
-					elem = elem.firstChild;
-				}
-
-				return elem;
-			}).append(this);
-		}
-
-		return this;
-	},
-
-	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapInner( html.call(this, i) );
-			});
-		}
-
-		return this.each(function() {
-			var self = jQuery( this ),
-				contents = self.contents();
-
-			if ( contents.length ) {
-				contents.wrapAll( html );
-
-			} else {
-				self.append( html );
-			}
-		});
-	},
-
-	wrap: function( html ) {
-		return this.each(function() {
-			jQuery( this ).wrapAll( html );
-		});
-	},
-
-	unwrap: function() {
-		return this.parent().each(function() {
-			if ( !jQuery.nodeName( this, "body" ) ) {
-				jQuery( this ).replaceWith( this.childNodes );
-			}
-		}).end();
-	},
-
-	append: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.appendChild( elem );
-			}
-		});
-	},
-
-	prepend: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.insertBefore( elem, this.firstChild );
-			}
-		});
-	},
-
-	before: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this );
-			});
-		} else if ( arguments.length ) {
-			var set = jQuery(arguments[0]);
-			set.push.apply( set, this.toArray() );
-			return this.pushStack( set, "before", arguments );
-		}
-	},
-
-	after: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this.nextSibling );
-			});
-		} else if ( arguments.length ) {
-			var set = this.pushStack( this, "after", arguments );
-			set.push.apply( set, jQuery(arguments[0]).toArray() );
-			return set;
-		}
-	},
-
-	// keepData is for internal use only--do not document
-	remove: function( selector, keepData ) {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
-				if ( !keepData && elem.nodeType === 1 ) {
-					jQuery.cleanData( elem.getElementsByTagName("*") );
-					jQuery.cleanData( [ elem ] );
-				}
-
-				if ( elem.parentNode ) {
-					elem.parentNode.removeChild( elem );
-				}
-			}
-		}
-
-		return this;
-	},
-
-	empty: function() {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			// Remove element nodes and prevent memory leaks
-			if ( elem.nodeType === 1 ) {
-				jQuery.cleanData( elem.getElementsByTagName("*") );
-			}
-
-			// Remove any remaining nodes
-			while ( elem.firstChild ) {
-				elem.removeChild( elem.firstChild );
-			}
-		}
-
-		return this;
-	},
-
-	clone: function( dataAndEvents, deepDataAndEvents ) {
-		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
-		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
-		return this.map( function () {
-			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
-		});
-	},
-
-	html: function( value ) {
-		if ( value === undefined ) {
-			return this[0] && this[0].nodeType === 1 ?
-				this[0].innerHTML.replace(rinlinejQuery, "") :
-				null;
-
-		// See if we can take a shortcut and just use innerHTML
-		} else if ( typeof value === "string" && !rnocache.test( value ) &&
-			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
-			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
-
-			value = value.replace(rxhtmlTag, "<$1></$2>");
-
-			try {
-				for ( var i = 0, l = this.length; i < l; i++ ) {
-					// Remove element nodes and prevent memory leaks
-					if ( this[i].nodeType === 1 ) {
-						jQuery.cleanData( this[i].getElementsByTagName("*") );
-						this[i].innerHTML = value;
-					}
-				}
-
-			// If using innerHTML throws an exception, use the fallback method
-			} catch(e) {
-				this.empty().append( value );
-			}
-
-		} else if ( jQuery.isFunction( value ) ) {
-			this.each(function(i){
-				var self = jQuery( this );
-
-				self.html( value.call(this, i, self.html()) );
-			});
-
-		} else {
-			this.empty().append( value );
-		}
-
-		return this;
-	},
-
-	replaceWith: function( value ) {
-		if ( this[0] && this[0].parentNode ) {
-			// Make sure that the elements are removed from the DOM before they are inserted
-			// this can help fix replacing a parent with child elements
-			if ( jQuery.isFunction( value ) ) {
-				return this.each(function(i) {
-					var self = jQuery(this), old = self.html();
-					self.replaceWith( value.call( this, i, old ) );
-				});
-			}
-
-			if ( typeof value !== "string" ) {
-				value = jQuery( value ).detach();
-			}
-
-			return this.each(function() {
-				var next = this.nextSibling,
-					parent = this.parentNode;
-
-				jQuery( this ).remove();
-
-				if ( next ) {
-					jQuery(next).before( value );
-				} else {
-					jQuery(parent).append( value );
-				}
-			});
-		} else {
-			return this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value );
-		}
-	},
-
-	detach: function( selector ) {
-		return this.remove( selector, true );
-	},
-
-	domManip: function( args, table, callback ) {
-		var results, first, fragment, parent,
-			value = args[0],
-			scripts = [];
-
-		// We can't cloneNode fragments that contain checked, in WebKit
-		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
-			return this.each(function() {
-				jQuery(this).domManip( args, table, callback, true );
-			});
-		}
-
-		if ( jQuery.isFunction(value) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				args[0] = value.call(this, i, table ? self.html() : undefined);
-				self.domManip( args, table, callback );
-			});
-		}
-
-		if ( this[0] ) {
-			parent = value && value.parentNode;
-
-			// If we're in a fragment, just use that instead of building a new one
-			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
-				results = { fragment: parent };
-
-			} else {
-				results = jQuery.buildFragment( args, this, scripts );
-			}
-
-			fragment = results.fragment;
-
-			if ( fragment.childNodes.length === 1 ) {
-				first = fragment = fragment.firstChild;
-			} else {
-				first = fragment.firstChild;
-			}
-
-			if ( first ) {
-				table = table && jQuery.nodeName( first, "tr" );
-
-				for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
-					callback.call(
-						table ?
-							root(this[i], first) :
-							this[i],
-						// Make sure that we do not leak memory by inadvertently discarding
-						// the original fragment (which might have attached data) instead of
-						// using it; in addition, use the original fragment object for the last
-						// item instead of first because it can end up being emptied incorrectly
-						// in certain situations (Bug #8070).
-						// Fragments from the fragment cache must always be cloned and never used
-						// in place.
-						results.cacheable || (l > 1 && i < lastIndex) ?
-							jQuery.clone( fragment, true, true ) :
-							fragment
-					);
-				}
-			}
-
-			if ( scripts.length ) {
-				jQuery.each( scripts, evalScript );
-			}
-		}
-
-		return this;
-	}
-});
-
-function root( elem, cur ) {
-	return jQuery.nodeName(elem, "table") ?
-		(elem.getElementsByTagName("tbody")[0] ||
-		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
-		elem;
-}
-
-function cloneCopyEvent( src, dest ) {
-
-	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
-		return;
-	}
-
-	var internalKey = jQuery.expando,
-		oldData = jQuery.data( src ),
-		curData = jQuery.data( dest, oldData );
-
-	// Switch to use the internal data object, if it exists, for the next
-	// stage of data copying
-	if ( (oldData = oldData[ internalKey ]) ) {
-		var events = oldData.events;
-				curData = curData[ internalKey ] = jQuery.extend({}, oldData);
-
-		if ( events ) {
-			delete curData.handle;
-			curData.events = {};
-
-			for ( var type in events ) {
-				for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
-					jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
-				}
-			}
-		}
-	}
-}
-
-function cloneFixAttributes(src, dest) {
-	// We do not need to do anything for non-Elements
-	if ( dest.nodeType !== 1 ) {
-		return;
-	}
-
-	var nodeName = dest.nodeName.toLowerCase();
-
-	// clearAttributes removes the attributes, which we don't want,
-	// but also removes the attachEvent events, which we *do* want
-	dest.clearAttributes();
-
-	// mergeAttributes, in contrast, only merges back on the
-	// original attributes, not the events
-	dest.mergeAttributes(src);
-
-	// IE6-8 fail to clone children inside object elements that use
-	// the proprietary classid attribute value (rather than the type
-	// attribute) to identify the type of content to display
-	if ( nodeName === "object" ) {
-		dest.outerHTML = src.outerHTML;
-
-	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
-		// IE6-8 fails to persist the checked state of a cloned checkbox
-		// or radio button. Worse, IE6-7 fail to give the cloned element
-		// a checked appearance if the defaultChecked value isn't also set
-		if ( src.checked ) {
-			dest.defaultChecked = dest.checked = src.checked;
-		}
-
-		// IE6-7 get confused and end up setting the value of a cloned
-		// checkbox/radio button to an empty string instead of "on"
-		if ( dest.value !== src.value ) {
-			dest.value = src.value;
-		}
-
-	// IE6-8 fails to return the selected option to the default selected
-	// state when cloning options
-	} else if ( nodeName === "option" ) {
-		dest.selected = src.defaultSelected;
-
-	// IE6-8 fails to set the defaultValue to the correct value when
-	// cloning other types of input fields
-	} else if ( nodeName === "input" || nodeName === "textarea" ) {
-		dest.defaultValue = src.defaultValue;
-	}
-
-	// Event data gets referenced instead of copied if the expando
-	// gets copied too
-	dest.removeAttribute( jQuery.expando );
-}
-
-jQuery.buildFragment = function( args, nodes, scripts ) {
-	var fragment, cacheable, cacheresults,
-		doc = (nodes && nodes[0] ? nodes[0].ownerDocument || nodes[0] : document);
-
-	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
-	// Cloning options loses the selected state, so don't cache them
-	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
-	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
-	if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
-		args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
-
-		cacheable = true;
-		cacheresults = jQuery.fragments[ args[0] ];
-		if ( cacheresults ) {
-			if ( cacheresults !== 1 ) {
-				fragment = cacheresults;
-			}
-		}
-	}
-
-	if ( !fragment ) {
-		fragment = doc.createDocumentFragment();
-		jQuery.clean( args, doc, fragment, scripts );
-	}
-
-	if ( cacheable ) {
-		jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
-	}
-
-	return { fragment: fragment, cacheable: cacheable };
-};
-
-jQuery.fragments = {};
-
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function( name, original ) {
-	jQuery.fn[ name ] = function( selector ) {
-		var ret = [],
-			insert = jQuery( selector ),
-			parent = this.length === 1 && this[0].parentNode;
-
-		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
-			insert[ original ]( this[0] );
-			return this;
-
-		} else {
-			for ( var i = 0, l = insert.length; i < l; i++ ) {
-				var elems = (i > 0 ? this.clone(true) : this).get();
-				jQuery( insert[i] )[ original ]( elems );
-				ret = ret.concat( elems );
-			}
-
-			return this.pushStack( ret, name, insert.selector );
-		}
-	};
-});
-
-function getAll( elem ) {
-	if ( "getElementsByTagName" in elem ) {
-		return elem.getElementsByTagName( "*" );
-	
-	} else if ( "querySelectorAll" in elem ) {
-		return elem.querySelectorAll( "*" );
-
-	} else {
-		return [];
-	}
-}
-
-jQuery.extend({
-	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
-		var clone = elem.cloneNode(true),
-				srcElements,
-				destElements,
-				i;
-
-		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
-				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-			// IE copies events bound via attachEvent when using cloneNode.
-			// Calling detachEvent on the clone will also remove the events
-			// from the original. In order to get around this, we use some
-			// proprietary methods to clear the events. Thanks to MooTools
-			// guys for this hotness.
-
-			cloneFixAttributes( elem, clone );
-
-			// Using Sizzle here is crazy slow, so we use getElementsByTagName
-			// instead
-			srcElements = getAll( elem );
-			destElements = getAll( clone );
-
-			// Weird iteration because IE will replace the length property
-			// with an element if you are cloning the body and one of the
-			// elements on the page has a name or id of "length"
-			for ( i = 0; srcElements[i]; ++i ) {
-				cloneFixAttributes( srcElements[i], destElements[i] );
-			}
-		}
-
-		// Copy the events from the original to the clone
-		if ( dataAndEvents ) {
-			cloneCopyEvent( elem, clone );
-
-			if ( deepDataAndEvents ) {
-				srcElements = getAll( elem );
-				destElements = getAll( clone );
-
-				for ( i = 0; srcElements[i]; ++i ) {
-					cloneCopyEvent( srcElements[i], destElements[i] );
-				}
-			}
-		}
-
-		// Return the cloned set
-		return clone;
-},
-	clean: function( elems, context, fragment, scripts ) {
-		context = context || document;
-
-		// !context.createElement fails in IE with an error but returns typeof 'object'
-		if ( typeof context.createElement === "undefined" ) {
-			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-		}
-
-		var ret = [];
-
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( typeof elem === "number" ) {
-				elem += "";
-			}
-
-			if ( !elem ) {
-				continue;
-			}
-
-			// Convert html string into DOM nodes
-			if ( typeof elem === "string" && !rhtml.test( elem ) ) {
-				elem = context.createTextNode( elem );
-
-			} else if ( typeof elem === "string" ) {
-				// Fix "XHTML"-style tags in all browsers
-				elem = elem.replace(rxhtmlTag, "<$1></$2>");
-
-				// Trim whitespace, otherwise indexOf won't work as expected
-				var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
-					wrap = wrapMap[ tag ] || wrapMap._default,
-					depth = wrap[0],
-					div = context.createElement("div");
-
-				// Go to html and back, then peel off extra wrappers
-				div.innerHTML = wrap[1] + elem + wrap[2];
-
-				// Move to the right depth
-				while ( depth-- ) {
-					div = div.lastChild;
-				}
-
-				// Remove IE's autoinserted <tbody> from table fragments
-				if ( !jQuery.support.tbody ) {
-
-					// String was a <table>, *may* have spurious <tbody>
-					var hasBody = rtbody.test(elem),
-						tbody = tag === "table" && !hasBody ?
-							div.firstChild && div.firstChild.childNodes :
-
-							// String was a bare <thead> or <tfoot>
-							wrap[1] === "<table>" && !hasBody ?
-								div.childNodes :
-								[];
-
-					for ( var j = tbody.length - 1; j >= 0 ; --j ) {
-						if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
-							tbody[ j ].parentNode.removeChild( tbody[ j ] );
-						}
-					}
-
-				}
-
-				// IE completely kills leading whitespace when innerHTML is used
-				if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
-					div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
-				}
-
-				elem = div.childNodes;
-			}
-
-			if ( elem.nodeType ) {
-				ret.push( elem );
-			} else {
-				ret = jQuery.merge( ret, elem );
-			}
-		}
-
-		if ( fragment ) {
-			for ( i = 0; ret[i]; i++ ) {
-				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
-					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
-
-				} else {
-					if ( ret[i].nodeType === 1 ) {
-						ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
-					}
-					fragment.appendChild( ret[i] );
-				}
-			}
-		}
-
-		return ret;
-	},
-
-	cleanData: function( elems ) {
-		var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special,
-			deleteExpando = jQuery.support.deleteExpando;
-
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
-				continue;
-			}
-
-			id = elem[ jQuery.expando ];
-
-			if ( id ) {
-				data = cache[ id ] && cache[ id ][ internalKey ];
-
-				if ( data && data.events ) {
-					for ( var type in data.events ) {
-						if ( special[ type ] ) {
-							jQuery.event.remove( elem, type );
-
-						// This is a shortcut to avoid jQuery.event.remove's overhead
-						} else {
-							jQuery.removeEvent( elem, type, data.handle );
-						}
-					}
-
-					// Null the DOM reference to avoid IE6/7/8 leak (#7054)
-					if ( data.handle ) {
-						data.handle.elem = null;
-					}
-				}
-
-				if ( deleteExpando ) {
-					delete elem[ jQuery.expando ];
-
-				} else if ( elem.removeAttribute ) {
-					elem.removeAttribute( jQuery.expando );
-				}
-
-				delete cache[ id ];
-			}
-		}
-	}
-});
-
-function evalScript( i, elem ) {
-	if ( elem.src ) {
-		jQuery.ajax({
-			url: elem.src,
-			async: false,
-			dataType: "script"
-		});
-	} else {
-		jQuery.globalEval( elem.text || elem.textContent || elem.innerHTML || "" );
-	}
-
-	if ( elem.parentNode ) {
-		elem.parentNode.removeChild( elem );
-	}
-}
-
-
-
-
-var ralpha = /alpha\([^)]*\)/i,
-	ropacity = /opacity=([^)]*)/,
-	rdashAlpha = /-([a-z])/ig,
-	rupper = /([A-Z])/g,
-	rnumpx = /^-?\d+(?:px)?$/i,
-	rnum = /^-?\d/,
-
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssWidth = [ "Left", "Right" ],
-	cssHeight = [ "Top", "Bottom" ],
-	curCSS,
-
-	getComputedStyle,
-	currentStyle,
-
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
-	};
-
-jQuery.fn.css = function( name, value ) {
-	// Setting 'undefined' is a no-op
-	if ( arguments.length === 2 && value === undefined ) {
-		return this;
-	}
-
-	return jQuery.access( this, name, value, true, function( elem, name, value ) {
-		return value !== undefined ?
-			jQuery.style( elem, name, value ) :
-			jQuery.css( elem, name );
-	});
-};
-
-jQuery.extend({
-	// Add in style property hooks for overriding the default
-	// behavior of getting and setting a style property
-	cssHooks: {
-		opacity: {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// We should always get a number back from opacity
-					var ret = curCSS( elem, "opacity", "opacity" );
-					return ret === "" ? "1" : ret;
-
-				} else {
-					return elem.style.opacity;
-				}
-			}
-		}
-	},
-
-	// Exclude the following css properties to add px
-	cssNumber: {
-		"zIndex": true,
-		"fontWeight": true,
-		"opacity": true,
-		"zoom": true,
-		"lineHeight": true
-	},
-
-	// Add in properties whose names you wish to fix before
-	// setting or getting the value
-	cssProps: {
-		// normalize float css property
-		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
-	},
-
-	// Get and set the style property on a DOM Node
-	style: function( elem, name, value, extra ) {
-		// Don't set styles on text and comment nodes
-		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
-			return;
-		}
-
-		// Make sure that we're working with the right name
-		var ret, origName = jQuery.camelCase( name ),
-			style = elem.style, hooks = jQuery.cssHooks[ origName ];
-
-		name = jQuery.cssProps[ origName ] || origName;
-
-		// Check if we're setting a value
-		if ( value !== undefined ) {
-			// Make sure that NaN and null values aren't set. See: #7116
-			if ( typeof value === "number" && isNaN( value ) || value == null ) {
-				return;
-			}
-
-			// If a number was passed in, add 'px' to the (except for certain CSS properties)
-			if ( typeof value === "number" && !jQuery.cssNumber[ origName ] ) {
-				value += "px";
-			}
-
-			// If a hook was provided, use that value, otherwise just set the specified value
-			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
-				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
-				// Fixes bug #5509
-				try {
-					style[ name ] = value;
-				} catch(e) {}
-			}
-
-		} else {
-			// If a hook was provided get the non-computed value from there
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
-				return ret;
-			}
-
-			// Otherwise just get the value from the style object
-			return style[ name ];
-		}
-	},
-
-	css: function( elem, name, extra ) {
-		// Make sure that we're working with the right name
-		var ret, origName = jQuery.camelCase( name ),
-			hooks = jQuery.cssHooks[ origName ];
-
-		name = jQuery.cssProps[ origName ] || origName;
-
-		// If a hook was provided get the computed value from there
-		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
-			return ret;
-
-		// Otherwise, if a way to get the computed value exists, use that
-		} else if ( curCSS ) {
-			return curCSS( elem, name, origName );
-		}
-	},
-
-	// A method for quickly swapping in/out CSS properties to get correct calculations
-	swap: function( elem, options, callback ) {
-		var old = {};
-
-		// Remember the old values, and insert the new ones
-		for ( var name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
-		}
-
-		callback.call( elem );
-
-		// Revert the old values
-		for ( name in options ) {
-			elem.style[ name ] = old[ name ];
-		}
-	},
-
-	camelCase: function( string ) {
-		return string.replace( rdashAlpha, fcamelCase );
-	}
-});
-
-// DEPRECATED, Use jQuery.css() instead
-jQuery.curCSS = jQuery.css;
-
-jQuery.each(["height", "width"], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
-		get: function( elem, computed, extra ) {
-			var val;
-
-			if ( computed ) {
-				if ( elem.offsetWidth !== 0 ) {
-					val = getWH( elem, name, extra );
-
-				} else {
-					jQuery.swap( elem, cssShow, function() {
-						val = getWH( elem, name, extra );
-					});
-				}
-
-				if ( val <= 0 ) {
-					val = curCSS( elem, name, name );
-
-					if ( val === "0px" && currentStyle ) {
-						val = currentStyle( elem, name, name );
-					}
-
-					if ( val != null ) {
-						// Should return "auto" instead of 0, use 0 for
-						// temporary backwards-compat
-						return val === "" || val === "auto" ? "0px" : val;
-					}
-				}
-
-				if ( val < 0 || val == null ) {
-					val = elem.style[ name ];
-
-					// Should return "auto" instead of 0, use 0 for
-					// temporary backwards-compat
-					return val === "" || val === "auto" ? "0px" : val;
-				}
-
-				return typeof val === "string" ? val : val + "px";
-			}
-		},
-
-		set: function( elem, value ) {
-			if ( rnumpx.test( value ) ) {
-				// ignore negative width and height values #1599
-				value = parseFloat(value);
-
-				if ( value >= 0 ) {
-					return value + "px";
-				}
-
-			} else {
-				return value;
-			}
-		}
-	};
-});
-
-if ( !jQuery.support.opacity ) {
-	jQuery.cssHooks.opacity = {
-		get: function( elem, computed ) {
-			// IE uses filters for opacity
-			return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ?
-				(parseFloat(RegExp.$1) / 100) + "" :
-				computed ? "1" : "";
-		},
-
-		set: function( elem, value ) {
-			var style = elem.style;
-
-			// IE has trouble with opacity if it does not have layout
-			// Force it by setting the zoom level
-			style.zoom = 1;
-
-			// Set the alpha filter to set the opacity
-			var opacity = jQuery.isNaN(value) ?
-				"" :
-				"alpha(opacity=" + value * 100 + ")",
-				filter = style.filter || "";
-
-			style.filter = ralpha.test(filter) ?
-				filter.replace(ralpha, opacity) :
-				style.filter + ' ' + opacity;
-		}
-	};
-}
-
-if ( document.defaultView && document.defaultView.getComputedStyle ) {
-	getComputedStyle = function( elem, newName, name ) {
-		var ret, defaultView, computedStyle;
-
-		name = name.replace( rupper, "-$1" ).toLowerCase();
-
-		if ( !(defaultView = elem.ownerDocument.defaultView) ) {
-			return undefined;
-		}
-
-		if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
-			ret = computedStyle.getPropertyValue( name );
-			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
-				ret = jQuery.style( elem, name );
-			}
-		}
-
-		return ret;
-	};
-}
-
-if ( document.documentElement.currentStyle ) {
-	currentStyle = function( elem, name ) {
-		var left,
-			ret = elem.currentStyle && elem.currentStyle[ name ],
-			rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
-			style = elem.style;
-
-		// From the awesome hack by Dean Edwards
-		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-		// If we're not dealing with a regular pixel number
-		// but a number that has a weird ending, we need to convert it to pixels
-		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
-			// Remember the original values
-			left = style.left;
-
-			// Put in the new values to get a computed value out
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = elem.currentStyle.left;
-			}
-			style.left = name === "fontSize" ? "1em" : (ret || 0);
-			ret = style.pixelLeft + "px";
-
-			// Revert the changed values
-			style.left = left;
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = rsLeft;
-			}
-		}
-
-		return ret === "" ? "auto" : ret;
-	};
-}
-
-curCSS = getComputedStyle || currentStyle;
-
-function getWH( elem, name, extra ) {
-	var which = name === "width" ? cssWidth : cssHeight,
-		val = name === "width" ? elem.offsetWidth : elem.offsetHeight;
-
-	if ( extra === "border" ) {
-		return val;
-	}
-
-	jQuery.each( which, function() {
-		if ( !extra ) {
-			val -= parseFloat(jQuery.css( elem, "padding" + this )) || 0;
-		}
-
-		if ( extra === "margin" ) {
-			val += parseFloat(jQuery.css( elem, "margin" + this )) || 0;
-
-		} else {
-			val -= parseFloat(jQuery.css( elem, "border" + this + "Width" )) || 0;
-		}
-	});
-
-	return val;
-}
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.hidden = function( elem ) {
-		var width = elem.offsetWidth,
-			height = elem.offsetHeight;
-
-		return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none");
-	};
-
-	jQuery.expr.filters.visible = function( elem ) {
-		return !jQuery.expr.filters.hidden( elem );
-	};
-}
-
-
-
-
-var r20 = /%20/g,
-	rbracket = /\[\]$/,
-	rCRLF = /\r?\n/g,
-	rhash = /#.*$/,
-	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
-	rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
-	// #7653, #8125, #8152: local protocol detection
-	rlocalProtocol = /(?:^file|^widget|\-extension):$/,
-	rnoContent = /^(?:GET|HEAD)$/,
-	rprotocol = /^\/\//,
-	rquery = /\?/,
-	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
-	rselectTextarea = /^(?:select|textarea)/i,
-	rspacesAjax = /\s+/,
-	rts = /([?&])_=[^&]*/,
-	rucHeaders = /(^|\-)([a-z])/g,
-	rucHeadersFunc = function( _, $1, $2 ) {
-		return $1 + $2.toUpperCase();
-	},
-	rurl = /^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,
-
-	// Keep a copy of the old load method
-	_load = jQuery.fn.load,
-
-	/* Prefilters
-	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
-	 * 2) These are called:
-	 *    - BEFORE asking for a transport
-	 *    - AFTER param serialization (s.data is a string if s.processData is true)
-	 * 3) key is the dataType
-	 * 4) the catchall symbol "*" can be used
-	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
-	 */
-	prefilters = {},
-
-	/* Transports bindings
-	 * 1) key is the dataType
-	 * 2) the catchall symbol "*" can be used
-	 * 3) selection will start with transport dataType and THEN go to "*" if needed
-	 */
-	transports = {},
-
-	// Document location
-	ajaxLocation,
-
-	// Document location segments
-	ajaxLocParts;
-
-// #8138, IE may throw an exception when accessing
-// a field from document.location if document.domain has been set
-try {
-	ajaxLocation = document.location.href;
-} catch( e ) {
-	// Use the href attribute of an A element
-	// since IE will modify it given document.location
-	ajaxLocation = document.createElement( "a" );
-	ajaxLocation.href = "";
-	ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() );
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
-	// dataTypeExpression is optional and defaults to "*"
-	return function( dataTypeExpression, func ) {
-
-		if ( typeof dataTypeExpression !== "string" ) {
-			func = dataTypeExpression;
-			dataTypeExpression = "*";
-		}
-
-		if ( jQuery.isFunction( func ) ) {
-			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
-				i = 0,
-				length = dataTypes.length,
-				dataType,
-				list,
-				placeBefore;
-
-			// For each dataType in the dataTypeExpression
-			for(; i < length; i++ ) {
-				dataType = dataTypes[ i ];
-				// We control if we're asked to add before
-				// any existing element
-				placeBefore = /^\+/.test( dataType );
-				if ( placeBefore ) {
-					dataType = dataType.substr( 1 ) || "*";
-				}
-				list = structure[ dataType ] = structure[ dataType ] || [];
-				// then we add to the structure accordingly
-				list[ placeBefore ? "unshift" : "push" ]( func );
-			}
-		}
-	};
-}
-
-//Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
-		dataType /* internal */, inspected /* internal */ ) {
-
-	dataType = dataType || options.dataTypes[ 0 ];
-	inspected = inspected || {};
-
-	inspected[ dataType ] = true;
-
-	var list = structure[ dataType ],
-		i = 0,
-		length = list ? list.length : 0,
-		executeOnly = ( structure === prefilters ),
-		selection;
-
-	for(; i < length && ( executeOnly || !selection ); i++ ) {
-		selection = list[ i ]( options, originalOptions, jqXHR );
-		// If we got redirected to another dataType
-		// we try there if executing only and not done already
-		if ( typeof selection === "string" ) {
-			if ( !executeOnly || inspected[ selection ] ) {
-				selection = undefined;
-			} else {
-				options.dataTypes.unshift( selection );
-				selection = inspectPrefiltersOrTransports(
-						structure, options, originalOptions, jqXHR, selection, inspected );
-			}
-		}
-	}
-	// If we're only executing or nothing was selected
-	// we try the catchall dataType if not done already
-	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
-		selection = inspectPrefiltersOrTransports(
-				structure, options, originalOptions, jqXHR, "*", inspected );
-	}
-	// unnecessary when only executing (prefilters)
-	// but it'll be ignored by the caller in that case
-	return selection;
-}
-
-jQuery.fn.extend({
-	load: function( url, params, callback ) {
-		if ( typeof url !== "string" && _load ) {
-			return _load.apply( this, arguments );
-
-		// Don't do a request if no elements are being requested
-		} else if ( !this.length ) {
-			return this;
-		}
-
-		var off = url.indexOf( " " );
-		if ( off >= 0 ) {
-			var selector = url.slice( off, url.length );
-			url = url.slice( 0, off );
-		}
-
-		// Default to a GET request
-		var type = "GET";
-
-		// If the second parameter was provided
-		if ( params ) {
-			// If it's a function
-			if ( jQuery.isFunction( params ) ) {
-				// We assume that it's the callback
-				callback = params;
-				params = undefined;
-
-			// Otherwise, build a param string
-			} else if ( typeof params === "object" ) {
-				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
-				type = "POST";
-			}
-		}
-
-		var self = this;
-
-		// Request the remote document
-		jQuery.ajax({
-			url: url,
-			type: type,
-			dataType: "html",
-			data: params,
-			// Complete callback (responseText is used internally)
-			complete: function( jqXHR, status, responseText ) {
-				// Store the response as specified by the jqXHR object
-				responseText = jqXHR.responseText;
-				// If successful, inject the HTML into all the matched elements
-				if ( jqXHR.isResolved() ) {
-					// #4825: Get the actual response in case
-					// a dataFilter is present in ajaxSettings
-					jqXHR.done(function( r ) {
-						responseText = r;
-					});
-					// See if a selector was specified
-					self.html( selector ?
-						// Create a dummy div to hold the results
-						jQuery("<div>")
-							// inject the contents of the document in, removing the scripts
-							// to avoid any 'Permission Denied' errors in IE
-							.append(responseText.replace(rscript, ""))
-
-							// Locate the specified elements
-							.find(selector) :
-
-						// If not, just inject the full result
-						responseText );
-				}
-
-				if ( callback ) {
-					self.each( callback, [ responseText, status, jqXHR ] );
-				}
-			}
-		});
-
-		return this;
-	},
-
-	serialize: function() {
-		return jQuery.param( this.serializeArray() );
-	},
-
-	serializeArray: function() {
-		return this.map(function(){
-			return this.elements ? jQuery.makeArray( this.elements ) : this;
-		})
-		.filter(function(){
-			return this.name && !this.disabled &&
-				( this.checked || rselectTextarea.test( this.nodeName ) ||
-					rinput.test( this.type ) );
-		})
-		.map(function( i, elem ){
-			var val = jQuery( this ).val();
-
-			return val == null ?
-				null :
-				jQuery.isArray( val ) ?
-					jQuery.map( val, function( val, i ){
-						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-					}) :
-					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-		}).get();
-	}
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
-	jQuery.fn[ o ] = function( f ){
-		return this.bind( o, f );
-	};
-} );
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
-	jQuery[ method ] = function( url, data, callback, type ) {
-		// shift arguments if data argument was omitted
-		if ( jQuery.isFunction( data ) ) {
-			type = type || callback;
-			callback = data;
-			data = undefined;
-		}
-
-		return jQuery.ajax({
-			type: method,
-			url: url,
-			data: data,
-			success: callback,
-			dataType: type
-		});
-	};
-} );
-
-jQuery.extend({
-
-	getScript: function( url, callback ) {
-		return jQuery.get( url, undefined, callback, "script" );
-	},
-
-	getJSON: function( url, data, callback ) {
-		return jQuery.get( url, data, callback, "json" );
-	},
-
-	// Creates a full fledged settings object into target
-	// with both ajaxSettings and settings fields.
-	// If target is omitted, writes into ajaxSettings.
-	ajaxSetup: function ( target, settings ) {
-		if ( !settings ) {
-			// Only one parameter, we extend ajaxSettings
-			settings = target;
-			target = jQuery.extend( true, jQuery.ajaxSettings, settings );
-		} else {
-			// target was provided, we extend into it
-			jQuery.extend( true, target, jQuery.ajaxSettings, settings );
-		}
-		// Flatten fields we don't want deep extended
-		for( var field in { context: 1, url: 1 } ) {
-			if ( field in settings ) {
-				target[ field ] = settings[ field ];
-			} else if( field in jQuery.ajaxSettings ) {
-				target[ field ] = jQuery.ajaxSettings[ field ];
-			}
-		}
-		return target;
-	},
-
-	ajaxSettings: {
-		url: ajaxLocation,
-		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
-		global: true,
-		type: "GET",
-		contentType: "application/x-www-form-urlencoded",
-		processData: true,
-		async: true,
-		/*
-		timeout: 0,
-		data: null,
-		dataType: null,
-		username: null,
-		password: null,
-		cache: null,
-		traditional: false,
-		headers: {},
-		crossDomain: null,
-		*/
-
-		accepts: {
-			xml: "application/xml, text/xml",
-			html: "text/html",
-			text: "text/plain",
-			json: "application/json, text/javascript",
-			"*": "*/*"
-		},
-
-		contents: {
-			xml: /xml/,
-			html: /html/,
-			json: /json/
-		},
-
-		responseFields: {
-			xml: "responseXML",
-			text: "responseText"
-		},
-
-		// List of data converters
-		// 1) key format is "source_type destination_type" (a single space in-between)
-		// 2) the catchall symbol "*" can be used for source_type
-		converters: {
-
-			// Convert anything to text
-			"* text": window.String,
-
-			// Text to html (true = no transformation)
-			"text html": true,
-
-			// Evaluate text as a json expression
-			"text json": jQuery.parseJSON,
-
-			// Parse text as xml
-			"text xml": jQuery.parseXML
-		}
-	},
-
-	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
-	ajaxTransport: addToPrefiltersOrTransports( transports ),
-
-	// Main method
-	ajax: function( url, options ) {
-
-		// If url is an object, simulate pre-1.5 signature
-		if ( typeof url === "object" ) {
-			options = url;
-			url = undefined;
-		}
-
-		// Force options to be an object
-		options = options || {};
-
-		var // Create the final options object
-			s = jQuery.ajaxSetup( {}, options ),
-			// Callbacks context
-			callbackContext = s.context || s,
-			// Context for global events
-			// It's the callbackContext if one was provided in the options
-			// and if it's a DOM node or a jQuery collection
-			globalEventContext = callbackContext !== s &&
-				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
-						jQuery( callbackContext ) : jQuery.event,
-			// Deferreds
-			deferred = jQuery.Deferred(),
-			completeDeferred = jQuery._Deferred(),
-			// Status-dependent callbacks
-			statusCode = s.statusCode || {},
-			// ifModified key
-			ifModifiedKey,
-			// Headers (they are sent all at once)
-			requestHeaders = {},
-			// Response headers
-			responseHeadersString,
-			responseHeaders,
-			// transport
-			transport,
-			// timeout handle
-			timeoutTimer,
-			// Cross-domain detection vars
-			parts,
-			// The jqXHR state
-			state = 0,
-			// To know if global events are to be dispatched
-			fireGlobals,
-			// Loop variable
-			i,
-			// Fake xhr
-			jqXHR = {
-
-				readyState: 0,
-
-				// Caches the header
-				setRequestHeader: function( name, value ) {
-					if ( !state ) {
-						requestHeaders[ name.toLowerCase().replace( rucHeaders, rucHeadersFunc ) ] = value;
-					}
-					return this;
-				},
-
-				// Raw string
-				getAllResponseHeaders: function() {
-					return state === 2 ? responseHeadersString : null;
-				},
-
-				// Builds headers hashtable if needed
-				getResponseHeader: function( key ) {
-					var match;
-					if ( state === 2 ) {
-						if ( !responseHeaders ) {
-							responseHeaders = {};
-							while( ( match = rheaders.exec( responseHeadersString ) ) ) {
-								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
-							}
-						}
-						match = responseHeaders[ key.toLowerCase() ];
-					}
-					return match === undefined ? null : match;
-				},
-
-				// Overrides response content-type header
-				overrideMimeType: function( type ) {
-					if ( !state ) {
-						s.mimeType = type;
-					}
-					return this;
-				},
-
-				// Cancel the request
-				abort: function( statusText ) {
-					statusText = statusText || "abort";
-					if ( transport ) {
-						transport.abort( statusText );
-					}
-					done( 0, statusText );
-					return this;
-				}
-			};
-
-		// Callback for when everything is done
-		// It is defined here because jslint complains if it is declared
-		// at the end of the function (which would be more logical and readable)
-		function done( status, statusText, responses, headers ) {
-
-			// Called once
-			if ( state === 2 ) {
-				return;
-			}
-
-			// State is "done" now
-			state = 2;
-
-			// Clear timeout if it exists
-			if ( timeoutTimer ) {
-				clearTimeout( timeoutTimer );
-			}
-
-			// Dereference transport for early garbage collection
-			// (no matter how long the jqXHR object will be used)
-			transport = undefined;
-
-			// Cache response headers
-			responseHeadersString = headers || "";
-
-			// Set readyState
-			jqXHR.readyState = status ? 4 : 0;
-
-			var isSuccess,
-				success,
-				error,
-				response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
-				lastModified,
-				etag;
-
-			// If successful, handle type chaining
-			if ( status >= 200 && status < 300 || status === 304 ) {
-
-				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-				if ( s.ifModified ) {
-
-					if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
-						jQuery.lastModified[ ifModifiedKey ] = lastModified;
-					}
-					if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
-						jQuery.etag[ ifModifiedKey ] = etag;
-					}
-				}
-
-				// If not modified
-				if ( status === 304 ) {
-
-					statusText = "notmodified";
-					isSuccess = true;
-
-				// If we have data
-				} else {
-
-					try {
-						success = ajaxConvert( s, response );
-						statusText = "success";
-						isSuccess = true;
-					} catch(e) {
-						// We have a parsererror
-						statusText = "parsererror";
-						error = e;
-					}
-				}
-			} else {
-				// We extract error from statusText
-				// then normalize statusText and status for non-aborts
-				error = statusText;
-				if( !statusText || status ) {
-					statusText = "error";
-					if ( status < 0 ) {
-						status = 0;
-					}
-				}
-			}
-
-			// Set data for the fake xhr object
-			jqXHR.status = status;
-			jqXHR.statusText = statusText;
-
-			// Success/Error
-			if ( isSuccess ) {
-				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
-			} else {
-				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
-			}
-
-			// Status-dependent callbacks
-			jqXHR.statusCode( statusCode );
-			statusCode = undefined;
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
-						[ jqXHR, s, isSuccess ? success : error ] );
-			}
-
-			// Complete
-			completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );
-				// Handle the global AJAX counter
-				if ( !( --jQuery.active ) ) {
-					jQuery.event.trigger( "ajaxStop" );
-				}
-			}
-		}
-
-		// Attach deferreds
-		deferred.promise( jqXHR );
-		jqXHR.success = jqXHR.done;
-		jqXHR.error = jqXHR.fail;
-		jqXHR.complete = completeDeferred.done;
-
-		// Status-dependent callbacks
-		jqXHR.statusCode = function( map ) {
-			if ( map ) {
-				var tmp;
-				if ( state < 2 ) {
-					for( tmp in map ) {
-						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
-					}
-				} else {
-					tmp = map[ jqXHR.status ];
-					jqXHR.then( tmp, tmp );
-				}
-			}
-			return this;
-		};
-
-		// Remove hash character (#7531: and string promotion)
-		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
-		// We also use the url parameter if available
-		s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
-		// Extract dataTypes list
-		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
-
-		// Determine if a cross-domain request is in order
-		if ( !s.crossDomain ) {
-			parts = rurl.exec( s.url.toLowerCase() );
-			s.crossDomain = !!( parts &&
-				( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
-					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
-						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
-			);
-		}
-
-		// Convert data if not already a string
-		if ( s.data && s.processData && typeof s.data !== "string" ) {
-			s.data = jQuery.param( s.data, s.traditional );
-		}
-
-		// Apply prefilters
-		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
-		// If request was aborted inside a prefiler, stop there
-		if ( state === 2 ) {
-			return false;
-		}
-
-		// We can fire global events as of now if asked to
-		fireGlobals = s.global;
-
-		// Uppercase the type
-		s.type = s.type.toUpperCase();
-
-		// Determine if request has content
-		s.hasContent = !rnoContent.test( s.type );
-
-		// Watch for a new set of requests
-		if ( fireGlobals && jQuery.active++ === 0 ) {
-			jQuery.event.trigger( "ajaxStart" );
-		}
-
-		// More options handling for requests with no content
-		if ( !s.hasContent ) {
-
-			// If data is available, append data to url
-			if ( s.data ) {
-				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
-			}
-
-			// Get ifModifiedKey before adding the anti-cache parameter
-			ifModifiedKey = s.url;
-
-			// Add anti-cache in url if needed
-			if ( s.cache === false ) {
-
-				var ts = jQuery.now(),
-					// try replacing _= if it is there
-					ret = s.url.replace( rts, "$1_=" + ts );
-
-				// if nothing was replaced, add timestamp to the end
-				s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
-			}
-		}
-
-		// Set the correct header, if data is being sent
-		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
-			requestHeaders[ "Content-Type" ] = s.contentType;
-		}
-
-		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-		if ( s.ifModified ) {
-			ifModifiedKey = ifModifiedKey || s.url;
-			if ( jQuery.lastModified[ ifModifiedKey ] ) {
-				requestHeaders[ "If-Modified-Since" ] = jQuery.lastModified[ ifModifiedKey ];
-			}
-			if ( jQuery.etag[ ifModifiedKey ] ) {
-				requestHeaders[ "If-None-Match" ] = jQuery.etag[ ifModifiedKey ];
-			}
-		}
-
-		// Set the Accepts header for the server, depending on the dataType
-		requestHeaders.Accept = s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
-			s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
-			s.accepts[ "*" ];
-
-		// Check for headers option
-		for ( i in s.headers ) {
-			jqXHR.setRequestHeader( i, s.headers[ i ] );
-		}
-
-		// Allow custom headers/mimetypes and early abort
-		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-				// Abort if not done already
-				jqXHR.abort();
-				return false;
-
-		}
-
-		// Install callbacks on deferreds
-		for ( i in { success: 1, error: 1, complete: 1 } ) {
-			jqXHR[ i ]( s[ i ] );
-		}
-
-		// Get transport
-		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
-		// If no transport, we auto-abort
-		if ( !transport ) {
-			done( -1, "No Transport" );
-		} else {
-			jqXHR.readyState = 1;
-			// Send global event
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
-			}
-			// Timeout
-			if ( s.async && s.timeout > 0 ) {
-				timeoutTimer = setTimeout( function(){
-					jqXHR.abort( "timeout" );
-				}, s.timeout );
-			}
-
-			try {
-				state = 1;
-				transport.send( requestHeaders, done );
-			} catch (e) {
-				// Propagate exception as error if not done
-				if ( status < 2 ) {
-					done( -1, e );
-				// Simply rethrow otherwise
-				} else {
-					jQuery.error( e );
-				}
-			}
-		}
-
-		return jqXHR;
-	},
-
-	// Serialize an array of form elements or a set of
-	// key/values into a query string
-	param: function( a, traditional ) {
-		var s = [],
-			add = function( key, value ) {
-				// If value is a function, invoke it and return its value
-				value = jQuery.isFunction( value ) ? value() : value;
-				s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
-			};
-
-		// Set traditional to true for jQuery <= 1.3.2 behavior.
-		if ( traditional === undefined ) {
-			traditional = jQuery.ajaxSettings.traditional;
-		}
-
-		// If an array was passed in, assume that it is an array of form elements.
-		if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-			// Serialize the form elements
-			jQuery.each( a, function() {
-				add( this.name, this.value );
-			} );
-
-		} else {
-			// If traditional, encode the "old" way (the way 1.3.2 or older
-			// did it), otherwise encode params recursively.
-			for ( var prefix in a ) {
-				buildParams( prefix, a[ prefix ], traditional, add );
-			}
-		}
-
-		// Return the resulting serialization
-		return s.join( "&" ).replace( r20, "+" );
-	}
-});
-
-function buildParams( prefix, obj, traditional, add ) {
-	if ( jQuery.isArray( obj ) && obj.length ) {
-		// Serialize array item.
-		jQuery.each( obj, function( i, v ) {
-			if ( traditional || rbracket.test( prefix ) ) {
-				// Treat each array item as a scalar.
-				add( prefix, v );
-
-			} else {
-				// If array item is non-scalar (array or object), encode its
-				// numeric index to resolve deserialization ambiguity issues.
-				// Note that rack (as of 1.0.0) can't currently deserialize
-				// nested arrays properly, and attempting to do so may cause
-				// a server error. Possible fixes are to modify rack's
-				// deserialization algorithm or to provide an option or flag
-				// to force array serialization to be shallow.
-				buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
-			}
-		});
-
-	} else if ( !traditional && obj != null && typeof obj === "object" ) {
-		// If we see an array here, it is empty and should be treated as an empty
-		// object
-		if ( jQuery.isArray( obj ) || jQuery.isEmptyObject( obj ) ) {
-			add( prefix, "" );
-
-		// Serialize object item.
-		} else {
-			for ( var name in obj ) {
-				buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
-			}
-		}
-
-	} else {
-		// Serialize scalar item.
-		add( prefix, obj );
-	}
-}
-
-// This is still on the jQuery object... for now
-// Want to move this to jQuery.ajax some day
-jQuery.extend({
-
-	// Counter for holding the number of active queries
-	active: 0,
-
-	// Last-Modified header cache for next request
-	lastModified: {},
-	etag: {}
-
-});
-
-/* Handles responses to an ajax request:
- * - sets all responseXXX fields accordingly
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-
-	var contents = s.contents,
-		dataTypes = s.dataTypes,
-		responseFields = s.responseFields,
-		ct,
-		type,
-		finalDataType,
-		firstDataType;
-
-	// Fill responseXXX fields
-	for( type in responseFields ) {
-		if ( type in responses ) {
-			jqXHR[ responseFields[type] ] = responses[ type ];
-		}
-	}
-
-	// Remove auto dataType and get content-type in the process
-	while( dataTypes[ 0 ] === "*" ) {
-		dataTypes.shift();
-		if ( ct === undefined ) {
-			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
-		}
-	}
-
-	// Check if we're dealing with a known content-type
-	if ( ct ) {
-		for ( type in contents ) {
-			if ( contents[ type ] && contents[ type ].test( ct ) ) {
-				dataTypes.unshift( type );
-				break;
-			}
-		}
-	}
-
-	// Check to see if we have a response for the expected dataType
-	if ( dataTypes[ 0 ] in responses ) {
-		finalDataType = dataTypes[ 0 ];
-	} else {
-		// Try convertible dataTypes
-		for ( type in responses ) {
-			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
-				finalDataType = type;
-				break;
-			}
-			if ( !firstDataType ) {
-				firstDataType = type;
-			}
-		}
-		// Or just use first one
-		finalDataType = finalDataType || firstDataType;
-	}
-
-	// If we found a dataType
-	// We add the dataType to the list if needed
-	// and return the corresponding response
-	if ( finalDataType ) {
-		if ( finalDataType !== dataTypes[ 0 ] ) {
-			dataTypes.unshift( finalDataType );
-		}
-		return responses[ finalDataType ];
-	}
-}
-
-// Chain conversions given the request and the original response
-function ajaxConvert( s, response ) {
-
-	// Apply the dataFilter if provided
-	if ( s.dataFilter ) {
-		response = s.dataFilter( response, s.dataType );
-	}
-
-	var dataTypes = s.dataTypes,
-		converters = {},
-		i,
-		key,
-		length = dataTypes.length,
-		tmp,
-		// Current and previous dataTypes
-		current = dataTypes[ 0 ],
-		prev,
-		// Conversion expression
-		conversion,
-		// Conversion function
-		conv,
-		// Conversion functions (transitive conversion)
-		conv1,
-		conv2;
-
-	// For each dataType in the chain
-	for( i = 1; i < length; i++ ) {
-
-		// Create converters map
-		// with lowercased keys
-		if ( i === 1 ) {
-			for( key in s.converters ) {
-				if( typeof key === "string" ) {
-					converters[ key.toLowerCase() ] = s.converters[ key ];
-				}
-			}
-		}
-
-		// Get the dataTypes
-		prev = current;
-		current = dataTypes[ i ];
-
-		// If current is auto dataType, update it to prev
-		if( current === "*" ) {
-			current = prev;
-		// If no auto and dataTypes are actually different
-		} else if ( prev !== "*" && prev !== current ) {
-
-			// Get the converter
-			conversion = prev + " " + current;
-			conv = converters[ conversion ] || converters[ "* " + current ];
-
-			// If there is no direct converter, search transitively
-			if ( !conv ) {
-				conv2 = undefined;
-				for( conv1 in converters ) {
-					tmp = conv1.split( " " );
-					if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
-						conv2 = converters[ tmp[1] + " " + current ];
-						if ( conv2 ) {
-							conv1 = converters[ conv1 ];
-							if ( conv1 === true ) {
-								conv = conv2;
-							} else if ( conv2 === true ) {
-								conv = conv1;
-							}
-							break;
-						}
-					}
-				}
-			}
-			// If we found no converter, dispatch an error
-			if ( !( conv || conv2 ) ) {
-				jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
-			}
-			// If found converter is not an equivalence
-			if ( conv !== true ) {
-				// Convert with 1 or 2 converters accordingly
-				response = conv ? conv( response ) : conv2( conv1(response) );
-			}
-		}
-	}
-	return response;
-}
-
-
-
-
-var jsc = jQuery.now(),
-	jsre = /(\=)\?(&|$)|()\?\?()/i;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
-	jsonp: "callback",
-	jsonpCallback: function() {
-		return jQuery.expando + "_" + ( jsc++ );
-	}
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
-	var dataIsString = ( typeof s.data === "string" );
-
-	if ( s.dataTypes[ 0 ] === "jsonp" ||
-		originalSettings.jsonpCallback ||
-		originalSettings.jsonp != null ||
-		s.jsonp !== false && ( jsre.test( s.url ) ||
-				dataIsString && jsre.test( s.data ) ) ) {
-
-		var responseContainer,
-			jsonpCallback = s.jsonpCallback =
-				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
-			previous = window[ jsonpCallback ],
-			url = s.url,
-			data = s.data,
-			replace = "$1" + jsonpCallback + "$2",
-			cleanUp = function() {
-				// Set callback back to previous value
-				window[ jsonpCallback ] = previous;
-				// Call if it was a function and we have a response
-				if ( responseContainer && jQuery.isFunction( previous ) ) {
-					window[ jsonpCallback ]( responseContainer[ 0 ] );
-				}
-			};
-
-		if ( s.jsonp !== false ) {
-			url = url.replace( jsre, replace );
-			if ( s.url === url ) {
-				if ( dataIsString ) {
-					data = data.replace( jsre, replace );
-				}
-				if ( s.data === data ) {
-					// Add callback manually
-					url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
-				}
-			}
-		}
-
-		s.url = url;
-		s.data = data;
-
-		// Install callback
-		window[ jsonpCallback ] = function( response ) {
-			responseContainer = [ response ];
-		};
-
-		// Install cleanUp function
-		jqXHR.then( cleanUp, cleanUp );
-
-		// Use data converter to retrieve json after script execution
-		s.converters["script json"] = function() {
-			if ( !responseContainer ) {
-				jQuery.error( jsonpCallback + " was not called" );
-			}
-			return responseContainer[ 0 ];
-		};
-
-		// force json dataType
-		s.dataTypes[ 0 ] = "json";
-
-		// Delegate to script
-		return "script";
-	}
-} );
-
-
-
-
-// Install script dataType
-jQuery.ajaxSetup({
-	accepts: {
-		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
-	},
-	contents: {
-		script: /javascript|ecmascript/
-	},
-	converters: {
-		"text script": function( text ) {
-			jQuery.globalEval( text );
-			return text;
-		}
-	}
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
-	if ( s.cache === undefined ) {
-		s.cache = false;
-	}
-	if ( s.crossDomain ) {
-		s.type = "GET";
-		s.global = false;
-	}
-} );
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
-	// This transport only deals with cross domain requests
-	if ( s.crossDomain ) {
-
-		var script,
-			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
-
-		return {
-
-			send: function( _, callback ) {
-
-				script = document.createElement( "script" );
-
-				script.async = "async";
-
-				if ( s.scriptCharset ) {
-					script.charset = s.scriptCharset;
-				}
-
-				script.src = s.url;
-
-				// Attach handlers for all browsers
-				script.onload = script.onreadystatechange = function( _, isAbort ) {
-
-					if ( !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
-						// Handle memory leak in IE
-						script.onload = script.onreadystatechange = null;
-
-						// Remove the script
-						if ( head && script.parentNode ) {
-							head.removeChild( script );
-						}
-
-						// Dereference the script
-						script = undefined;
-
-						// Callback if not abort
-						if ( !isAbort ) {
-							callback( 200, "success" );
-						}
-					}
-				};
-				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
-				// This arises when a base node is used (#2709 and #4378).
-				head.insertBefore( script, head.firstChild );
-			},
-
-			abort: function() {
-				if ( script ) {
-					script.onload( 0, 1 );
-				}
-			}
-		};
-	}
-} );
-
-
-
-
-var // #5280: next active xhr id and list of active xhrs' callbacks
-	xhrId = jQuery.now(),
-	xhrCallbacks,
-
-	// XHR used to determine supports properties
-	testXHR;
-
-// #5280: Internet Explorer will keep connections alive if we don't abort on unload
-function xhrOnUnloadAbort() {
-	jQuery( window ).unload(function() {
-		// Abort all pending requests
-		for ( var key in xhrCallbacks ) {
-			xhrCallbacks[ key ]( 0, 1 );
-		}
-	});
-}
-
-// Functions to create xhrs
-function createStandardXHR() {
-	try {
-		return new window.XMLHttpRequest();
-	} catch( e ) {}
-}
-
-function createActiveXHR() {
-	try {
-		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
-	} catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
-	/* Microsoft failed to properly
-	 * implement the XMLHttpRequest in IE7 (can't request local files),
-	 * so we use the ActiveXObject when it is available
-	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
-	 * we need a fallback.
-	 */
-	function() {
-		return !this.isLocal && createStandardXHR() || createActiveXHR();
-	} :
-	// For all other browsers, use the standard XMLHttpRequest object
-	createStandardXHR;
-
-// Test if we can create an xhr object
-testXHR = jQuery.ajaxSettings.xhr();
-jQuery.support.ajax = !!testXHR;
-
-// Does this browser support crossDomain XHR requests
-jQuery.support.cors = testXHR && ( "withCredentials" in testXHR );
-
-// No need for the temporary xhr anymore
-testXHR = undefined;
-
-// Create transport if the browser can provide an xhr
-if ( jQuery.support.ajax ) {
-
-	jQuery.ajaxTransport(function( s ) {
-		// Cross domain only allowed if supported through XMLHttpRequest
-		if ( !s.crossDomain || jQuery.support.cors ) {
-
-			var callback;
-
-			return {
-				send: function( headers, complete ) {
-
-					// Get a new xhr
-					var xhr = s.xhr(),
-						handle,
-						i;
-
-					// Open the socket
-					// Passing null username, generates a login popup on Opera (#2865)
-					if ( s.username ) {
-						xhr.open( s.type, s.url, s.async, s.username, s.password );
-					} else {
-						xhr.open( s.type, s.url, s.async );
-					}
-
-					// Apply custom fields if provided
-					if ( s.xhrFields ) {
-						for ( i in s.xhrFields ) {
-							xhr[ i ] = s.xhrFields[ i ];
-						}
-					}
-
-					// Override mime type if needed
-					if ( s.mimeType && xhr.overrideMimeType ) {
-						xhr.overrideMimeType( s.mimeType );
-					}
-
-					// Requested-With header
-					// Not set for crossDomain requests with no content
-					// (see why at http://trac.dojotoolkit.org/ticket/9486)
-					// Won't change header if already provided
-					if ( !( s.crossDomain && !s.hasContent ) && !headers["X-Requested-With"] ) {
-						headers[ "X-Requested-With" ] = "XMLHttpRequest";
-					}
-
-					// Need an extra try/catch for cross domain requests in Firefox 3
-					try {
-						for ( i in headers ) {
-							xhr.setRequestHeader( i, headers[ i ] );
-						}
-					} catch( _ ) {}
-
-					// Do send the request
-					// This may raise an exception which is actually
-					// handled in jQuery.ajax (so no try/catch here)
-					xhr.send( ( s.hasContent && s.data ) || null );
-
-					// Listener
-					callback = function( _, isAbort ) {
-
-						var status,
-							statusText,
-							responseHeaders,
-							responses,
-							xml;
-
-						// Firefox throws exceptions when accessing properties
-						// of an xhr when a network error occured
-						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
-						try {
-
-							// Was never called and is aborted or complete
-							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
-								// Only called once
-								callback = undefined;
-
-								// Do not keep as active anymore
-								if ( handle ) {
-									xhr.onreadystatechange = jQuery.noop;
-									delete xhrCallbacks[ handle ];
-								}
-
-								// If it's an abort
-								if ( isAbort ) {
-									// Abort it manually if needed
-									if ( xhr.readyState !== 4 ) {
-										xhr.abort();
-									}
-								} else {
-									status = xhr.status;
-									responseHeaders = xhr.getAllResponseHeaders();
-									responses = {};
-									xml = xhr.responseXML;
-
-									// Construct response list
-									if ( xml && xml.documentElement /* #4958 */ ) {
-										responses.xml = xml;
-									}
-									responses.text = xhr.responseText;
-
-									// Firefox throws an exception when accessing
-									// statusText for faulty cross-domain requests
-									try {
-										statusText = xhr.statusText;
-									} catch( e ) {
-										// We normalize with Webkit giving an empty statusText
-										statusText = "";
-									}
-
-									// Filter status for non standard behaviors
-
-									// If the request is local and we have data: assume a success
-									// (success with no data won't get notified, that's the best we
-									// can do given current implementations)
-									if ( !status && s.isLocal && !s.crossDomain ) {
-										status = responses.text ? 200 : 404;
-									// IE - #1450: sometimes returns 1223 when it should be 204
-									} else if ( status === 1223 ) {
-										status = 204;
-									}
-								}
-							}
-						} catch( firefoxAccessException ) {
-							if ( !isAbort ) {
-								complete( -1, firefoxAccessException );
-							}
-						}
-
-						// Call complete if needed
-						if ( responses ) {
-							complete( status, statusText, responses, responseHeaders );
-						}
-					};
-
-					// if we're in sync mode or it's in cache
-					// and has been retrieved directly (IE6 & IE7)
-					// we need to manually fire the callback
-					if ( !s.async || xhr.readyState === 4 ) {
-						callback();
-					} else {
-						// Create the active xhrs callbacks list if needed
-						// and attach the unload handler
-						if ( !xhrCallbacks ) {
-							xhrCallbacks = {};
-							xhrOnUnloadAbort();
-						}
-						// Add to list of active xhrs callbacks
-						handle = xhrId++;
-						xhr.onreadystatechange = xhrCallbacks[ handle ] = callback;
-					}
-				},
-
-				abort: function() {
-					if ( callback ) {
-						callback(0,1);
-					}
-				}
-			};
-		}
-	});
-}
-
-
-
-
-var elemdisplay = {},
-	rfxtypes = /^(?:toggle|show|hide)$/,
-	rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
-	timerId,
-	fxAttrs = [
-		// height animations
-		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
-		// width animations
-		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
-		// opacity animations
-		[ "opacity" ]
-	];
-
-jQuery.fn.extend({
-	show: function( speed, easing, callback ) {
-		var elem, display;
-
-		if ( speed || speed === 0 ) {
-			return this.animate( genFx("show", 3), speed, easing, callback);
-
-		} else {
-			for ( var i = 0, j = this.length; i < j; i++ ) {
-				elem = this[i];
-				display = elem.style.display;
-
-				// Reset the inline display of this element to learn if it is
-				// being hidden by cascaded rules or not
-				if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
-					display = elem.style.display = "";
-				}
-
-				// Set elements which have been overridden with display: none
-				// in a stylesheet to whatever the default browser style is
-				// for such an element
-				if ( display === "" && jQuery.css( elem, "display" ) === "none" ) {
-					jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));
-				}
-			}
-
-			// Set the display of most of the elements in a second loop
-			// to avoid the constant reflow
-			for ( i = 0; i < j; i++ ) {
-				elem = this[i];
-				display = elem.style.display;
-
-				if ( display === "" || display === "none" ) {
-					elem.style.display = jQuery._data(elem, "olddisplay") || "";
-				}
-			}
-
-			return this;
-		}
-	},
-
-	hide: function( speed, easing, callback ) {
-		if ( speed || speed === 0 ) {
-			return this.animate( genFx("hide", 3), speed, easing, callback);
-
-		} else {
-			for ( var i = 0, j = this.length; i < j; i++ ) {
-				var display = jQuery.css( this[i], "display" );
-
-				if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {
-					jQuery._data( this[i], "olddisplay", display );
-				}
-			}
-
-			// Set the display of the elements in a second loop
-			// to avoid the constant reflow
-			for ( i = 0; i < j; i++ ) {
-				this[i].style.display = "none";
-			}
-
-			return this;
-		}
-	},
-
-	// Save the old toggle function
-	_toggle: jQuery.fn.toggle,
-
-	toggle: function( fn, fn2, callback ) {
-		var bool = typeof fn === "boolean";
-
-		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
-			this._toggle.apply( this, arguments );
-
-		} else if ( fn == null || bool ) {
-			this.each(function() {
-				var state = bool ? fn : jQuery(this).is(":hidden");
-				jQuery(this)[ state ? "show" : "hide" ]();
-			});
-
-		} else {
-			this.animate(genFx("toggle", 3), fn, fn2, callback);
-		}
-
-		return this;
-	},
-
-	fadeTo: function( speed, to, easing, callback ) {
-		return this.filter(":hidden").css("opacity", 0).show().end()
-					.animate({opacity: to}, speed, easing, callback);
-	},
-
-	animate: function( prop, speed, easing, callback ) {
-		var optall = jQuery.speed(speed, easing, callback);
-
-		if ( jQuery.isEmptyObject( prop ) ) {
-			return this.each( optall.complete );
-		}
-
-		return this[ optall.queue === false ? "each" : "queue" ](function() {
-			// XXX 'this' does not always have a nodeName when running the
-			// test suite
-
-			var opt = jQuery.extend({}, optall), p,
-				isElement = this.nodeType === 1,
-				hidden = isElement && jQuery(this).is(":hidden"),
-				self = this;
-
-			for ( p in prop ) {
-				var name = jQuery.camelCase( p );
-
-				if ( p !== name ) {
-					prop[ name ] = prop[ p ];
-					delete prop[ p ];
-					p = name;
-				}
-
-				if ( prop[p] === "hide" && hidden || prop[p] === "show" && !hidden ) {
-					return opt.complete.call(this);
-				}
-
-				if ( isElement && ( p === "height" || p === "width" ) ) {
-					// Make sure that nothing sneaks out
-					// Record all 3 overflow attributes because IE does not
-					// change the overflow attribute when overflowX and
-					// overflowY are set to the same value
-					opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
-
-					// Set display property to inline-block for height/width
-					// animations on inline elements that are having width/height
-					// animated
-					if ( jQuery.css( this, "display" ) === "inline" &&
-							jQuery.css( this, "float" ) === "none" ) {
-						if ( !jQuery.support.inlineBlockNeedsLayout ) {
-							this.style.display = "inline-block";
-
-						} else {
-							var display = defaultDisplay(this.nodeName);
-
-							// inline-level elements accept inline-block;
-							// block-level elements need to be inline with layout
-							if ( display === "inline" ) {
-								this.style.display = "inline-block";
-
-							} else {
-								this.style.display = "inline";
-								this.style.zoom = 1;
-							}
-						}
-					}
-				}
-
-				if ( jQuery.isArray( prop[p] ) ) {
-					// Create (if needed) and add to specialEasing
-					(opt.specialEasing = opt.specialEasing || {})[p] = prop[p][1];
-					prop[p] = prop[p][0];
-				}
-			}
-
-			if ( opt.overflow != null ) {
-				this.style.overflow = "hidden";
-			}
-
-			opt.curAnim = jQuery.extend({}, prop);
-
-			jQuery.each( prop, function( name, val ) {
-				var e = new jQuery.fx( self, opt, name );
-
-				if ( rfxtypes.test(val) ) {
-					e[ val === "toggle" ? hidden ? "show" : "hide" : val ]( prop );
-
-				} else {
-					var parts = rfxnum.exec(val),
-						start = e.cur();
-
-					if ( parts ) {
-						var end = parseFloat( parts[2] ),
-							unit = parts[3] || ( jQuery.cssNumber[ name ] ? "" : "px" );
-
-						// We need to compute starting value
-						if ( unit !== "px" ) {
-							jQuery.style( self, name, (end || 1) + unit);
-							start = ((end || 1) / e.cur()) * start;
-							jQuery.style( self, name, start + unit);
-						}
-
-						// If a +=/-= token was provided, we're doing a relative animation
-						if ( parts[1] ) {
-							end = ((parts[1] === "-=" ? -1 : 1) * end) + start;
-						}
-
-						e.custom( start, end, unit );
-
-					} else {
-						e.custom( start, val, "" );
-					}
-				}
-			});
-
-			// For JS strict compliance
-			return true;
-		});
-	},
-
-	stop: function( clearQueue, gotoEnd ) {
-		var timers = jQuery.timers;
-
-		if ( clearQueue ) {
-			this.queue([]);
-		}
-
-		this.each(function() {
-			// go in reverse order so anything added to the queue during the loop is ignored
-			for ( var i = timers.length - 1; i >= 0; i-- ) {
-				if ( timers[i].elem === this ) {
-					if (gotoEnd) {
-						// force the next step to be the last
-						timers[i](true);
-					}
-
-					timers.splice(i, 1);
-				}
-			}
-		});
-
-		// start the next in the queue if the last step wasn't forced
-		if ( !gotoEnd ) {
-			this.dequeue();
-		}
-
-		return this;
-	}
-
-});
-
-function genFx( type, num ) {
-	var obj = {};
-
-	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() {
-		obj[ this ] = type;
-	});
-
-	return obj;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
-	slideDown: genFx("show", 1),
-	slideUp: genFx("hide", 1),
-	slideToggle: genFx("toggle", 1),
-	fadeIn: { opacity: "show" },
-	fadeOut: { opacity: "hide" },
-	fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
-	jQuery.fn[ name ] = function( speed, easing, callback ) {
-		return this.animate( props, speed, easing, callback );
-	};
-});
-
-jQuery.extend({
-	speed: function( speed, easing, fn ) {
-		var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : {
-			complete: fn || !fn && easing ||
-				jQuery.isFunction( speed ) && speed,
-			duration: speed,
-			easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
-		};
-
-		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default;
-
-		// Queueing
-		opt.old = opt.complete;
-		opt.complete = function() {
-			if ( opt.queue !== false ) {
-				jQuery(this).dequeue();
-			}
-			if ( jQuery.isFunction( opt.old ) ) {
-				opt.old.call( this );
-			}
-		};
-
-		return opt;
-	},
-
-	easing: {
-		linear: function( p, n, firstNum, diff ) {
-			return firstNum + diff * p;
-		},
-		swing: function( p, n, firstNum, diff ) {
-			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
-		}
-	},
-
-	timers: [],
-
-	fx: function( elem, options, prop ) {
-		this.options = options;
-		this.elem = elem;
-		this.prop = prop;
-
-		if ( !options.orig ) {
-			options.orig = {};
-		}
-	}
-
-});
-
-jQuery.fx.prototype = {
-	// Simple function for setting a style value
-	update: function() {
-		if ( this.options.step ) {
-			this.options.step.call( this.elem, this.now, this );
-		}
-
-		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
-	},
-
-	// Get the current size
-	cur: function() {
-		if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
-			return this.elem[ this.prop ];
-		}
-
-		var parsed,
-			r = jQuery.css( this.elem, this.prop );
-		// Empty strings, null, undefined and "auto" are converted to 0,
-		// complex values such as "rotate(1rad)" are returned as is,
-		// simple values such as "10px" are parsed to Float.
-		return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
-	},
-
-	// Start an animation from one number to another
-	custom: function( from, to, unit ) {
-		var self = this,
-			fx = jQuery.fx;
-
-		this.startTime = jQuery.now();
-		this.start = from;
-		this.end = to;
-		this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
-		this.now = this.start;
-		this.pos = this.state = 0;
-
-		function t( gotoEnd ) {
-			return self.step(gotoEnd);
-		}
-
-		t.elem = this.elem;
-
-		if ( t() && jQuery.timers.push(t) && !timerId ) {
-			timerId = setInterval(fx.tick, fx.interval);
-		}
-	},
-
-	// Simple 'show' function
-	show: function() {
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
-		this.options.show = true;
-
-		// Begin the animation
-		// Make sure that we start at a small width/height to avoid any
-		// flash of content
-		this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
-
-		// Start by showing the element
-		jQuery( this.elem ).show();
-	},
-
-	// Simple 'hide' function
-	hide: function() {
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
-		this.options.hide = true;
-
-		// Begin the animation
-		this.custom(this.cur(), 0);
-	},
-
-	// Each step of an animation
-	step: function( gotoEnd ) {
-		var t = jQuery.now(), done = true;
-
-		if ( gotoEnd || t >= this.options.duration + this.startTime ) {
-			this.now = this.end;
-			this.pos = this.state = 1;
-			this.update();
-
-			this.options.curAnim[ this.prop ] = true;
-
-			for ( var i in this.options.curAnim ) {
-				if ( this.options.curAnim[i] !== true ) {
-					done = false;
-				}
-			}
-
-			if ( done ) {
-				// Reset the overflow
-				if ( this.options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
-					var elem = this.elem,
-						options = this.options;
-
-					jQuery.each( [ "", "X", "Y" ], function (index, value) {
-						elem.style[ "overflow" + value ] = options.overflow[index];
-					} );
-				}
-
-				// Hide the element if the "hide" operation was done
-				if ( this.options.hide ) {
-					jQuery(this.elem).hide();
-				}
-
-				// Reset the properties, if the item has been hidden or shown
-				if ( this.options.hide || this.options.show ) {
-					for ( var p in this.options.curAnim ) {
-						jQuery.style( this.elem, p, this.options.orig[p] );
-					}
-				}
-
-				// Execute the complete function
-				this.options.complete.call( this.elem );
-			}
-
-			return false;
-
-		} else {
-			var n = t - this.startTime;
-			this.state = n / this.options.duration;
-
-			// Perform the easing function, defaults to swing
-			var specialEasing = this.options.specialEasing && this.options.specialEasing[this.prop];
-			var defaultEasing = this.options.easing || (jQuery.easing.swing ? "swing" : "linear");
-			this.pos = jQuery.easing[specialEasing || defaultEasing](this.state, n, 0, 1, this.options.duration);
-			this.now = this.start + ((this.end - this.start) * this.pos);
-
-			// Perform the next step of the animation
-			this.update();
-		}
-
-		return true;
-	}
-};
-
-jQuery.extend( jQuery.fx, {
-	tick: function() {
-		var timers = jQuery.timers;
-
-		for ( var i = 0; i < timers.length; i++ ) {
-			if ( !timers[i]() ) {
-				timers.splice(i--, 1);
-			}
-		}
-
-		if ( !timers.length ) {
-			jQuery.fx.stop();
-		}
-	},
-
-	interval: 13,
-
-	stop: function() {
-		clearInterval( timerId );
-		timerId = null;
-	},
-
-	speeds: {
-		slow: 600,
-		fast: 200,
-		// Default speed
-		_default: 400
-	},
-
-	step: {
-		opacity: function( fx ) {
-			jQuery.style( fx.elem, "opacity", fx.now );
-		},
-
-		_default: function( fx ) {
-			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
-				fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;
-			} else {
-				fx.elem[ fx.prop ] = fx.now;
-			}
-		}
-	}
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.animated = function( elem ) {
-		return jQuery.grep(jQuery.timers, function( fn ) {
-			return elem === fn.elem;
-		}).length;
-	};
-}
-
-function defaultDisplay( nodeName ) {
-	if ( !elemdisplay[ nodeName ] ) {
-		var elem = jQuery("<" + nodeName + ">").appendTo("body"),
-			display = elem.css("display");
-
-		elem.remove();
-
-		if ( display === "none" || display === "" ) {
-			display = "block";
-		}
-
-		elemdisplay[ nodeName ] = display;
-	}
-
-	return elemdisplay[ nodeName ];
-}
-
-
-
-
-var rtable = /^t(?:able|d|h)$/i,
-	rroot = /^(?:body|html)$/i;
-
-if ( "getBoundingClientRect" in document.documentElement ) {
-	jQuery.fn.offset = function( options ) {
-		var elem = this[0], box;
-
-		if ( options ) {
-			return this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-		}
-
-		if ( !elem || !elem.ownerDocument ) {
-			return null;
-		}
-
-		if ( elem === elem.ownerDocument.body ) {
-			return jQuery.offset.bodyOffset( elem );
-		}
-
-		try {
-			box = elem.getBoundingClientRect();
-		} catch(e) {}
-
-		var doc = elem.ownerDocument,
-			docElem = doc.documentElement;
-
-		// Make sure we're not dealing with a disconnected DOM node
-		if ( !box || !jQuery.contains( docElem, elem ) ) {
-			return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
-		}
-
-		var body = doc.body,
-			win = getWindow(doc),
-			clientTop  = docElem.clientTop  || body.clientTop  || 0,
-			clientLeft = docElem.clientLeft || body.clientLeft || 0,
-			scrollTop  = (win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop ),
-			scrollLeft = (win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft),
-			top  = box.top  + scrollTop  - clientTop,
-			left = box.left + scrollLeft - clientLeft;
-
-		return { top: top, left: left };
-	};
-
-} else {
-	jQuery.fn.offset = function( options ) {
-		var elem = this[0];
-
-		if ( options ) {
-			return this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-		}
-
-		if ( !elem || !elem.ownerDocument ) {
-			return null;
-		}
-
-		if ( elem === elem.ownerDocument.body ) {
-			return jQuery.offset.bodyOffset( elem );
-		}
-
-		jQuery.offset.initialize();
-
-		var computedStyle,
-			offsetParent = elem.offsetParent,
-			prevOffsetParent = elem,
-			doc = elem.ownerDocument,
-			docElem = doc.documentElement,
-			body = doc.body,
-			defaultView = doc.defaultView,
-			prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
-			top = elem.offsetTop,
-			left = elem.offsetLeft;
-
-		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
-			if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
-				break;
-			}
-
-			computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
-			top  -= elem.scrollTop;
-			left -= elem.scrollLeft;
-
-			if ( elem === offsetParent ) {
-				top  += elem.offsetTop;
-				left += elem.offsetLeft;
-
-				if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
-					top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-					left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-				}
-
-				prevOffsetParent = offsetParent;
-				offsetParent = elem.offsetParent;
-			}
-
-			if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
-				top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-				left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-			}
-
-			prevComputedStyle = computedStyle;
-		}
-
-		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
-			top  += body.offsetTop;
-			left += body.offsetLeft;
-		}
-
-		if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
-			top  += Math.max( docElem.scrollTop, body.scrollTop );
-			left += Math.max( docElem.scrollLeft, body.scrollLeft );
-		}
-
-		return { top: top, left: left };
-	};
-}
-
-jQuery.offset = {
-	initialize: function() {
-		var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0,
-			html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
-
-		jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } );
-
-		container.innerHTML = html;
-		body.insertBefore( container, body.firstChild );
-		innerDiv = container.firstChild;
-		checkDiv = innerDiv.firstChild;
-		td = innerDiv.nextSibling.firstChild.firstChild;
-
-		this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
-		this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
-
-		checkDiv.style.position = "fixed";
-		checkDiv.style.top = "20px";
-
-		// safari subtracts parent border width here which is 5px
-		this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15);
-		checkDiv.style.position = checkDiv.style.top = "";
-
-		innerDiv.style.overflow = "hidden";
-		innerDiv.style.position = "relative";
-
-		this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
-
-		this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
-
-		body.removeChild( container );
-		body = container = innerDiv = checkDiv = table = td = null;
-		jQuery.offset.initialize = jQuery.noop;
-	},
-
-	bodyOffset: function( body ) {
-		var top = body.offsetTop,
-			left = body.offsetLeft;
-
-		jQuery.offset.initialize();
-
-		if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
-			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
-			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
-		}
-
-		return { top: top, left: left };
-	},
-
-	setOffset: function( elem, options, i ) {
-		var position = jQuery.css( elem, "position" );
-
-		// set position first, in-case top/left are set even on static elem
-		if ( position === "static" ) {
-			elem.style.position = "relative";
-		}
-
-		var curElem = jQuery( elem ),
-			curOffset = curElem.offset(),
-			curCSSTop = jQuery.css( elem, "top" ),
-			curCSSLeft = jQuery.css( elem, "left" ),
-			calculatePosition = (position === "absolute" && jQuery.inArray('auto', [curCSSTop, curCSSLeft]) > -1),
-			props = {}, curPosition = {}, curTop, curLeft;
-
-		// need to be able to calculate position if either top or left is auto and position is absolute
-		if ( calculatePosition ) {
-			curPosition = curElem.position();
-		}
-
-		curTop  = calculatePosition ? curPosition.top  : parseInt( curCSSTop,  10 ) || 0;
-		curLeft = calculatePosition ? curPosition.left : parseInt( curCSSLeft, 10 ) || 0;
-
-		if ( jQuery.isFunction( options ) ) {
-			options = options.call( elem, i, curOffset );
-		}
-
-		if (options.top != null) {
-			props.top = (options.top - curOffset.top) + curTop;
-		}
-		if (options.left != null) {
-			props.left = (options.left - curOffset.left) + curLeft;
-		}
-
-		if ( "using" in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	}
-};
-
-
-jQuery.fn.extend({
-	position: function() {
-		if ( !this[0] ) {
-			return null;
-		}
-
-		var elem = this[0],
-
-		// Get *real* offsetParent
-		offsetParent = this.offsetParent(),
-
-		// Get correct offsets
-		offset       = this.offset(),
-		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
-
-		// Subtract element margins
-		// note: when an element has margin: auto the offsetLeft and marginLeft
-		// are the same in Safari causing offset.left to incorrectly be 0
-		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
-		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
-
-		// Add offsetParent borders
-		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
-		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
-
-		// Subtract the two offsets
-		return {
-			top:  offset.top  - parentOffset.top,
-			left: offset.left - parentOffset.left
-		};
-	},
-
-	offsetParent: function() {
-		return this.map(function() {
-			var offsetParent = this.offsetParent || document.body;
-			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
-				offsetParent = offsetParent.offsetParent;
-			}
-			return offsetParent;
-		});
-	}
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( ["Left", "Top"], function( i, name ) {
-	var method = "scroll" + name;
-
-	jQuery.fn[ method ] = function(val) {
-		var elem = this[0], win;
-
-		if ( !elem ) {
-			return null;
-		}
-
-		if ( val !== undefined ) {
-			// Set the scroll offset
-			return this.each(function() {
-				win = getWindow( this );
-
-				if ( win ) {
-					win.scrollTo(
-						!i ? val : jQuery(win).scrollLeft(),
-						i ? val : jQuery(win).scrollTop()
-					);
-
-				} else {
-					this[ method ] = val;
-				}
-			});
-		} else {
-			win = getWindow( elem );
-
-			// Return the scroll offset
-			return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
-				jQuery.support.boxModel && win.document.documentElement[ method ] ||
-					win.document.body[ method ] :
-				elem[ method ];
-		}
-	};
-});
-
-function getWindow( elem ) {
-	return jQuery.isWindow( elem ) ?
-		elem :
-		elem.nodeType === 9 ?
-			elem.defaultView || elem.parentWindow :
-			false;
-}
-
-
-
-
-// Create innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each([ "Height", "Width" ], function( i, name ) {
-
-	var type = name.toLowerCase();
-
-	// innerHeight and innerWidth
-	jQuery.fn["inner" + name] = function() {
-		return this[0] ?
-			parseFloat( jQuery.css( this[0], type, "padding" ) ) :
-			null;
-	};
-
-	// outerHeight and outerWidth
-	jQuery.fn["outer" + name] = function( margin ) {
-		return this[0] ?
-			parseFloat( jQuery.css( this[0], type, margin ? "margin" : "border" ) ) :
-			null;
-	};
-
-	jQuery.fn[ type ] = function( size ) {
-		// Get window width or height
-		var elem = this[0];
-		if ( !elem ) {
-			return size == null ? null : this;
-		}
-
-		if ( jQuery.isFunction( size ) ) {
-			return this.each(function( i ) {
-				var self = jQuery( this );
-				self[ type ]( size.call( this, i, self[ type ]() ) );
-			});
-		}
-
-		if ( jQuery.isWindow( elem ) ) {
-			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
-			// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
-			var docElemProp = elem.document.documentElement[ "client" + name ];
-			return elem.document.compatMode === "CSS1Compat" && docElemProp ||
-				elem.document.body[ "client" + name ] || docElemProp;
-
-		// Get document width or height
-		} else if ( elem.nodeType === 9 ) {
-			// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
-			return Math.max(
-				elem.documentElement["client" + name],
-				elem.body["scroll" + name], elem.documentElement["scroll" + name],
-				elem.body["offset" + name], elem.documentElement["offset" + name]
-			);
-
-		// Get or set width or height on the element
-		} else if ( size === undefined ) {
-			var orig = jQuery.css( elem, type ),
-				ret = parseFloat( orig );
-
-			return jQuery.isNaN( ret ) ? orig : ret;
-
-		// Set the width or height on the element (default to pixels if value is unitless)
-		} else {
-			return this.css( type, typeof size === "string" ? size : size + "px" );
-		}
-	};
-
-});
-
-
-window.jQuery = window.$ = jQuery;
-})(window);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png
deleted file mode 100644
index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_75_ffffff_40x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_75_ffffff_40x100.png
deleted file mode 100644
index ac8b229af950c29356abf64a6c4aa894575445f0..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png
deleted file mode 100644
index ad3d6346e00f246102f72f2e026ed0491988b394..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_65_ffffff_1x400.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_65_ffffff_1x400.png
deleted file mode 100644
index 42ccba269b6e91bef12ad0fa18be651b5ef0ee68..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_dadada_1x400.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_dadada_1x400.png
deleted file mode 100644
index 5a46b47cb16631068aee9e0bd61269fc4e95e5cd..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png
deleted file mode 100644
index 86c2baa655eac8539db34f8d9adb69ec1226201c..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png
deleted file mode 100644
index 4443fdc1a156babad4336f004eaf5ca5dfa0f9ab..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png
deleted file mode 100644
index 7c9fa6c6edcfcdd3e5b77e6f547b719e6fc66e30..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_222222_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_222222_256x240.png
deleted file mode 100644
index ee039dc096a38a3753f92519546eee94bcfbeffa..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_2e83ff_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_2e83ff_256x240.png
deleted file mode 100644
index 45e8928e5284adacea3f9ec07b9b50667d2ac65f..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_454545_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_454545_256x240.png
deleted file mode 100644
index 7ec70d11bfb2f77374dfd00ef61ba0c3647b5a0c..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_888888_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_888888_256x240.png
deleted file mode 100644
index 5ba708c39172a69e069136bd1309c4322c61f571..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_cd0a0a_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_cd0a0a_256x240.png
deleted file mode 100644
index 7930a558099bc8d92b4264eb67a0f040460f4a4f..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.accordion.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.accordion.css
deleted file mode 100644
index 76540a3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.accordion.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.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; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.all.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.all.css
deleted file mode 100644
index da37bf1..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.all.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming
- */
-@import "jquery.ui.base.css";
-@import "jquery.ui.theme.css";
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.autocomplete.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.autocomplete.css
deleted file mode 100644
index 83b7b9d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.autocomplete.css
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.11
- *
- * 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;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.base.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.base.css
deleted file mode 100644
index f52ee39..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.base.css
+++ /dev/null
@@ -1,11 +0,0 @@
-@import url("jquery.ui.core.css");
-@import url("jquery.ui.resizable.css");
-@import url("jquery.ui.selectable.css");
-@import url("jquery.ui.accordion.css");
-@import url("jquery.ui.autocomplete.css");
-@import url("jquery.ui.button.css");
-@import url("jquery.ui.dialog.css");
-@import url("jquery.ui.slider.css");
-@import url("jquery.ui.tabs.css");
-@import url("jquery.ui.datepicker.css");
-@import url("jquery.ui.progressbar.css");
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.button.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.button.css
deleted file mode 100644
index 6be1c1a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.button.css
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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 */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 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-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.core.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.core.css
deleted file mode 100644
index ef27f47..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.core.css
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.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; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.datepicker.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.datepicker.css
deleted file mode 100644
index 7db4231..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.datepicker.css
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.dialog.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.dialog.css
deleted file mode 100644
index 533eba0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.dialog.css
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.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 { 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 .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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.progressbar.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.progressbar.css
deleted file mode 100644
index 2a77bcd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.progressbar.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.resizable.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.resizable.css
deleted file mode 100644
index 4fce779..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.resizable.css
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.selectable.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.selectable.css
deleted file mode 100644
index 19602d4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.selectable.css
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.slider.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.slider.css
deleted file mode 100644
index 7fa2b6c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.slider.css
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.tabs.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.tabs.css
deleted file mode 100644
index ee1dd4d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.tabs.css
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.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-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.theme.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.theme.css
deleted file mode 100644
index 30690c5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.theme.css
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1.1em/*{fsDefault}*/; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif/*{ffDefault}*/; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa/*{borderColorContent}*/; background: #ffffff/*{bgColorContent}*/ url(images/ui-bg_flat_75_ffffff_40x100.png)/*{bgImgUrlContent}*/ 50%/*{bgContentXPos}*/ 50%/*{bgContentYPos}*/ repeat-x/*{bgContentRepeat}*/; color: #222222/*{fcContent}*/; }
-.ui-widget-content a { color: #222222/*{fcContent}*/; }
-.ui-widget-header { border: 1px solid #aaaaaa/*{borderColorHeader}*/; background: #cccccc/*{bgColorHeader}*/ url(images/ui-bg_highlight-soft_75_cccccc_1x100.png)/*{bgImgUrlHeader}*/ 50%/*{bgHeaderXPos}*/ 50%/*{bgHeaderYPos}*/ repeat-x/*{bgHeaderRepeat}*/; color: #222222/*{fcHeader}*/; font-weight: bold; }
-.ui-widget-header a { color: #222222/*{fcHeader}*/; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3/*{borderColorDefault}*/; background: #e6e6e6/*{bgColorDefault}*/ url(images/ui-bg_glass_75_e6e6e6_1x400.png)/*{bgImgUrlDefault}*/ 50%/*{bgDefaultXPos}*/ 50%/*{bgDefaultYPos}*/ repeat-x/*{bgDefaultRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #555555/*{fcDefault}*/; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555/*{fcDefault}*/; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999/*{borderColorHover}*/; background: #dadada/*{bgColorHover}*/ url(images/ui-bg_glass_75_dadada_1x400.png)/*{bgImgUrlHover}*/ 50%/*{bgHoverXPos}*/ 50%/*{bgHoverYPos}*/ repeat-x/*{bgHoverRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcHover}*/; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #212121/*{fcHover}*/; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa/*{borderColorActive}*/; background: #ffffff/*{bgColorActive}*/ url(images/ui-bg_glass_65_ffffff_1x400.png)/*{bgImgUrlActive}*/ 50%/*{bgActiveXPos}*/ 50%/*{bgActiveYPos}*/ repeat-x/*{bgActiveRepeat}*/; font-weight: normal/*{fwDefault}*/; color: #212121/*{fcActive}*/; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121/*{fcActive}*/; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1/*{borderColorHighlight}*/; background: #fbf9ee/*{bgColorHighlight}*/ url(images/ui-bg_glass_55_fbf9ee_1x400.png)/*{bgImgUrlHighlight}*/ 50%/*{bgHighlightXPos}*/ 50%/*{bgHighlightYPos}*/ repeat-x/*{bgHighlightRepeat}*/; color: #363636/*{fcHighlight}*/; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636/*{fcHighlight}*/; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a/*{borderColorError}*/; background: #fef1ec/*{bgColorError}*/ url(images/ui-bg_glass_95_fef1ec_1x400.png)/*{bgImgUrlError}*/ 50%/*{bgErrorXPos}*/ 50%/*{bgErrorYPos}*/ repeat-x/*{bgErrorRepeat}*/; color: #cd0a0a/*{fcError}*/; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a/*{fcError}*/; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a/*{fcError}*/; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsContent}*/; }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png)/*{iconsHeader}*/; }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png)/*{iconsDefault}*/; }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsHover}*/; }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png)/*{iconsActive}*/; }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png)/*{iconsHighlight}*/; }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png)/*{iconsError}*/; }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-tr { -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-br { -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-top { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-right {  -moz-border-radius-topright: 4px/*{cornerRadius}*/; -webkit-border-top-right-radius: 4px/*{cornerRadius}*/; border-top-right-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomright: 4px/*{cornerRadius}*/; -webkit-border-bottom-right-radius: 4px/*{cornerRadius}*/; border-bottom-right-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-left { -moz-border-radius-topleft: 4px/*{cornerRadius}*/; -webkit-border-top-left-radius: 4px/*{cornerRadius}*/; border-top-left-radius: 4px/*{cornerRadius}*/; -moz-border-radius-bottomleft: 4px/*{cornerRadius}*/; -webkit-border-bottom-left-radius: 4px/*{cornerRadius}*/; border-bottom-left-radius: 4px/*{cornerRadius}*/; }
-.ui-corner-all { -moz-border-radius: 4px/*{cornerRadius}*/; -webkit-border-radius: 4px/*{cornerRadius}*/; border-radius: 4px/*{cornerRadius}*/; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa/*{bgColorOverlay}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlOverlay}*/ 50%/*{bgOverlayXPos}*/ 50%/*{bgOverlayYPos}*/ repeat-x/*{bgOverlayRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityOverlay}*/; }
-.ui-widget-shadow { margin: -8px/*{offsetTopShadow}*/ 0 0 -8px/*{offsetLeftShadow}*/; padding: 8px/*{thicknessShadow}*/; background: #aaaaaa/*{bgColorShadow}*/ url(images/ui-bg_flat_0_aaaaaa_40x100.png)/*{bgImgUrlShadow}*/ 50%/*{bgShadowXPos}*/ 50%/*{bgShadowYPos}*/ repeat-x/*{bgShadowRepeat}*/; opacity: .3;filter:Alpha(Opacity=30)/*{opacityShadow}*/; -moz-border-radius: 8px/*{cornerRadiusShadow}*/; -webkit-border-radius: 8px/*{cornerRadiusShadow}*/; border-radius: 8px/*{cornerRadiusShadow}*/; }
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png
deleted file mode 100644
index 5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png
deleted file mode 100644
index ac8b229af950c29356abf64a6c4aa894575445f0..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png
deleted file mode 100644
index eef96a3ef29b556251e6c97c628cc5936fb4c6f6..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png
deleted file mode 100644
index 31503e6215c8ba914450dd173a0cad541f833d54..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png
deleted file mode 100644
index 045ddf5c9c0046ddd43a6b17de645d47cad3ff88..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png
deleted file mode 100644
index 40ac3b9c516ddfcbe622eb829c4da8c06e889efc..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png
deleted file mode 100644
index b1b2f9d983487c8257b9d79a33c0356b8ff456d6..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png
deleted file mode 100644
index 0e05810fffe0b6b8ac320e55d1eb4ba259b89d92..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_8f8f8f_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_8f8f8f_256x240.png
deleted file mode 100644
index a47d6131a9cd13b726c80618e133cd5a5a15e1f0..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_97baed_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_97baed_256x240.png
deleted file mode 100644
index 04511769917277d442ae9cdd5f92bd3bed72cad4..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_cd0a0a_256x240.png b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_cd0a0a_256x240.png
deleted file mode 100644
index 2ab019b73ec11a485fa09378f3a0e155194f6a5d..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery-ui-1.8.11.custom.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery-ui-1.8.11.custom.css
deleted file mode 100644
index c91ce6a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery-ui-1.8.11.custom.css
+++ /dev/null
@@ -1,573 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.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; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Liberation%20Sans&fwDefault=normal&fsDefault=1.1em&cornerRadius=2px&bgColorHeader=e0e0e0&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=80&borderColorHeader=aaaaaa&fcHeader=000&iconColorHeader=8f8f8f&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=b5b5b5&fcContent=222222&iconColorContent=8f8f8f&bgColorDefault=e6e6e6&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=75&borderColorDefault=e3e3e3&fcDefault=888888&iconColorDefault=8f8f8f&bgColorHover=dadada&bgTextureHover=04_highlight_hard.png&bgImgOpacityHover=75&borderColorHover=b5b5b5&fcHover=212121&iconColorHover=8f8f8f&bgColorActive=ffffff&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=65&borderColorActive=b5b5b5&fcActive=212121&iconColorActive=8f8f8f&bgColorHighlight=ffffff&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=95&borderColorHighlight=b5b5b5&fcHighlight=000000&iconColorHighlight=97baed&bgColorError=fef1ec&bgTextureError=05_inset_soft.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
-----------------------------------*/
-.ui-widget { font-family: Liberation Sans; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Liberation Sans; font-size: 1em; }
-.ui-widget-content { border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #e0e0e0 url(images/ui-bg_highlight-soft_80_e0e0e0_1x100.png) 50% 50% repeat-x; color: #000; font-weight: bold; }
-.ui-widget-header a { color: #000; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #e3e3e3; background: #e6e6e6 url(images/ui-bg_highlight-hard_75_e6e6e6_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #888888; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #888888; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #b5b5b5; background: #dadada url(images/ui-bg_highlight-hard_75_dadada_1x100.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, .ui-widget-header .ui-state-active { border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_inset-hard_65_ffffff_1x100.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, .ui-widget-header .ui-state-highlight  {border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_highlight-hard_95_ffffff_1x100.png) 50% top repeat-x; color: #000000; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #000000; }
-.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_inset-soft_95_fef1ec_1x100.png) 50% bottom 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
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_97baed_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; }
-.ui-corner-tr { -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
-.ui-corner-br { -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-top { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-right {  -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-left { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
-.ui-corner-all { -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; }
-
-/* 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; }/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.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; }
-/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.11
- *
- * 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;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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 */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 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-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.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 { 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 .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; }
-/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.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-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.accordion.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.accordion.css
deleted file mode 100644
index 76540a3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.accordion.css
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.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; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.all.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.all.css
deleted file mode 100644
index da37bf1..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.all.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming
- */
-@import "jquery.ui.base.css";
-@import "jquery.ui.theme.css";
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.autocomplete.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.autocomplete.css
deleted file mode 100644
index 83b7b9d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.autocomplete.css
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.11
- *
- * 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;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.base.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.base.css
deleted file mode 100644
index f52ee39..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.base.css
+++ /dev/null
@@ -1,11 +0,0 @@
-@import url("jquery.ui.core.css");
-@import url("jquery.ui.resizable.css");
-@import url("jquery.ui.selectable.css");
-@import url("jquery.ui.accordion.css");
-@import url("jquery.ui.autocomplete.css");
-@import url("jquery.ui.button.css");
-@import url("jquery.ui.dialog.css");
-@import url("jquery.ui.slider.css");
-@import url("jquery.ui.tabs.css");
-@import url("jquery.ui.datepicker.css");
-@import url("jquery.ui.progressbar.css");
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.button.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.button.css
deleted file mode 100644
index 6be1c1a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.button.css
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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 */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 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-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.core.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.core.css
deleted file mode 100644
index ef27f47..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.core.css
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.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; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.datepicker.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.datepicker.css
deleted file mode 100644
index 7db4231..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.datepicker.css
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.dialog.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.dialog.css
deleted file mode 100644
index 533eba0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.dialog.css
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.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 { 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 .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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.progressbar.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.progressbar.css
deleted file mode 100644
index 2a77bcd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.progressbar.css
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.resizable.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.resizable.css
deleted file mode 100644
index 4fce779..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.resizable.css
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.selectable.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.selectable.css
deleted file mode 100644
index 19602d4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.selectable.css
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.slider.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.slider.css
deleted file mode 100644
index 7fa2b6c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.slider.css
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.tabs.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.tabs.css
deleted file mode 100644
index ee1dd4d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.tabs.css
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.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-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.theme.css b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.theme.css
deleted file mode 100644
index f2258bb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.theme.css
+++ /dev/null
@@ -1,254 +0,0 @@
-
-
-/*
- * jQuery UI CSS Framework 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Liberation%20Sans&fwDefault=normal&fsDefault=1.1em&cornerRadius=2px&bgColorHeader=e0e0e0&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=80&borderColorHeader=aaaaaa&fcHeader=000&iconColorHeader=8f8f8f&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=b5b5b5&fcContent=222222&iconColorContent=8f8f8f&bgColorDefault=e6e6e6&bgTextureDefault=04_highlight_hard.png&bgImgOpacityDefault=75&borderColorDefault=e3e3e3&fcDefault=888888&iconColorDefault=8f8f8f&bgColorHover=dadada&bgTextureHover=04_highlight_hard.png&bgImgOpacityHover=75&borderColorHover=b5b5b5&fcHover=212121&iconColorHover=8f8f8f&bgColorActive=ffffff&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=65&borderColorActive=b5b5b5&fcActive=212121&iconColorActive=8f8f8f&bgColorHighlight=ffffff&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=95&borderColorHighlight=b5b5b5&fcHighlight=000000&iconColorHighlight=97baed&bgColorError=fef1ec&bgTextureError=05_inset_soft.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
-----------------------------------*/
-.ui-widget { font-family: Liberation Sans; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Liberation Sans; font-size: 1em; }
-.ui-widget-content { border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #e0e0e0 url(images/ui-bg_highlight-soft_80_e0e0e0_1x100.png) 50% 50% repeat-x; color: #000; font-weight: bold; }
-.ui-widget-header a { color: #000; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #e3e3e3; background: #e6e6e6 url(images/ui-bg_highlight-hard_75_e6e6e6_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #888888; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #888888; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #b5b5b5; background: #dadada url(images/ui-bg_highlight-hard_75_dadada_1x100.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, .ui-widget-header .ui-state-active { border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_inset-hard_65_ffffff_1x100.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, .ui-widget-header .ui-state-highlight  {border: 1px solid #b5b5b5; background: #ffffff url(images/ui-bg_highlight-hard_95_ffffff_1x100.png) 50% top repeat-x; color: #000000; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #000000; }
-.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_inset-soft_95_fef1ec_1x100.png) 50% bottom 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
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_8f8f8f_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_97baed_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-tl { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; }
-.ui-corner-tr { -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; }
-.ui-corner-bl { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
-.ui-corner-br { -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-top { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; }
-.ui-corner-bottom { -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-right {  -moz-border-radius-topright: 2px; -webkit-border-top-right-radius: 2px; border-top-right-radius: 2px; -moz-border-radius-bottomright: 2px; -webkit-border-bottom-right-radius: 2px; border-bottom-right-radius: 2px; }
-.ui-corner-left { -moz-border-radius-topleft: 2px; -webkit-border-top-left-radius: 2px; border-top-left-radius: 2px; -moz-border-radius-bottomleft: 2px; -webkit-border-bottom-left-radius: 2px; border-bottom-left-radius: 2px; }
-.ui-corner-all { -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; }
-
-/* 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; }
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery-ui-i18n.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery-ui-i18n.js
deleted file mode 100644
index fbe5893..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery-ui-i18n.js
+++ /dev/null
@@ -1,1379 +0,0 @@
-﻿/* Afrikaans initialisation for the jQuery UI date picker plugin. */
-/* Written by Renier Pretorius. */
-jQuery(function($){
-	$.datepicker.regional['af'] = {
-		closeText: 'Selekteer',
-		prevText: 'Vorige',
-		nextText: 'Volgende',
-		currentText: 'Vandag',
-		monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
-		'Julie','Augustus','September','Oktober','November','Desember'],
-		monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
-		'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
-		dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
-		dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
-		dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['af']);
-});
-/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
-/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
-
-jQuery(function($){
-	$.datepicker.regional['ar-DZ'] = {
-		closeText: 'إغلاق',
-		prevText: '&#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 Alhourani -- me@khaledalhourani.com */
-/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
-jQuery(function($){
-	$.datepicker.regional['ar'] = {
-		closeText: 'إغلاق',
-		prevText: '&#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']);
-});﻿/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Jamil Najafov (necefov33@gmail.com). */
-jQuery(function($) {
-	$.datepicker.regional['az'] = {
-		closeText: 'Bağla',
-		prevText: '&#x3c;Geri',
-		nextText: 'İrəli&#x3e;',
-		currentText: 'Bugün',
-		monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
-		'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
-		monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
-		'İyul','Avq','Sen','Okt','Noy','Dek'],
-		dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
-		dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
-		dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
-		weekHeader: 'Hf',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['az']);
-});﻿/* Bulgarian initialisation for the jQuery UI date picker plugin. */
-/* Written by Stoyan Kyosev (http://svest.org). */
-jQuery(function($){
-    $.datepicker.regional['bg'] = {
-        closeText: 'затвори',
-        prevText: '&#x3c;назад',
-        nextText: 'напред&#x3e;',
-		nextBigText: '&#x3e;&#x3e;',
-        currentText: 'днес',
-        monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
-        'Юли','Август','Септември','Октомври','Ноември','Декември'],
-        monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
-        'Юли','Авг','Сеп','Окт','Нов','Дек'],
-        dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
-        dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
-        dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
-		weekHeader: 'Wk',
-        dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-        isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['bg']);
-});
-﻿/* Bosnian i18n for the jQuery UI date picker plugin. */
-/* Written by Kenan Konjo. */
-jQuery(function($){
-	$.datepicker.regional['bs'] = {
-		closeText: 'Zatvori', 
-		prevText: '&#x3c;', 
-		nextText: '&#x3e;', 
-		currentText: 'Danas', 
-		monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
-		'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
-		dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
-		dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['bs']);
-});/* Inicialització en català per a l'extenció 'calendar' per jQuery. */
-/* Writers: (joan.leon@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ca'] = {
-		closeText: 'Tancar',
-		prevText: '&#x3c;Ant',
-		nextText: 'Seg&#x3e;',
-		currentText: 'Avui',
-		monthNames: ['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny',
-		'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
-		monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
-		'Jul','Ago','Set','Oct','Nov','Des'],
-		dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
-		dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
-		dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ca']);
-});﻿/* Czech initialisation for the jQuery UI date picker plugin. */
-/* Written by Tomas Muller (tomas@tomas-muller.net). */
-jQuery(function($){
-	$.datepicker.regional['cs'] = {
-		closeText: 'Zavřít',
-		prevText: '&#x3c;Dříve',
-		nextText: 'Později&#x3e;',
-		currentText: 'Nyní',
-		monthNames: ['leden','únor','březen','duben','květen','červen',
-        'červenec','srpen','září','říjen','listopad','prosinec'],
-		monthNamesShort: ['led','úno','bře','dub','kvě','čer',
-		'čvc','srp','zář','říj','lis','pro'],
-		dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
-		dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
-		dayNamesMin: ['ne','po','út','st','čt','pá','so'],
-		weekHeader: 'Týd',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['cs']);
-});
-﻿/* Danish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jan Christensen ( deletestuff@gmail.com). */
-jQuery(function($){
-    $.datepicker.regional['da'] = {
-		closeText: 'Luk',
-        prevText: '&#x3c;Forrige',
-		nextText: 'Næste&#x3e;',
-		currentText: 'Idag',
-        monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
-        'Juli','August','September','Oktober','November','December'],
-        monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-        'Jul','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
-		dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
-		dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
-		weekHeader: 'Uge',
-        dateFormat: 'dd-mm-yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['da']);
-});
-﻿/* German initialisation for the jQuery UI date picker plugin. */
-/* Written by Milian Wolff (mail@milianw.de). */
-jQuery(function($){
-	$.datepicker.regional['de'] = {
-		closeText: 'schließen',
-		prevText: '&#x3c;zurück',
-		nextText: 'Vor&#x3e;',
-		currentText: 'heute',
-		monthNames: ['Januar','Februar','März','April','Mai','Juni',
-		'Juli','August','September','Oktober','November','Dezember'],
-		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
-		'Jul','Aug','Sep','Okt','Nov','Dez'],
-		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
-		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
-		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
-		weekHeader: 'Wo',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['de']);
-});
-﻿/* Greek (el) initialisation for the jQuery UI date picker plugin. */
-/* Written by Alex Cicovic (http://www.alexcicovic.com) */
-jQuery(function($){
-	$.datepicker.regional['el'] = {
-		closeText: 'Κλείσιμο',
-		prevText: 'Προηγούμενος',
-		nextText: 'Επόμενος',
-		currentText: 'Τρέχων Μήνας',
-		monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
-		'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
-		monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
-		'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
-		dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
-		dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
-		dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
-		weekHeader: 'Εβδ',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['el']);
-});/* English/Australia initialisation for the jQuery UI date picker plugin. */
-/* Based on the en-GB initialisation. */
-jQuery(function($){
-	$.datepicker.regional['en-AU'] = {
-		closeText: 'Done',
-		prevText: 'Prev',
-		nextText: 'Next',
-		currentText: 'Today',
-		monthNames: ['January','February','March','April','May','June',
-		'July','August','September','October','November','December'],
-		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
-		'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
-		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
-		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
-		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['en-AU']);
-});
-﻿/* English/UK initialisation for the jQuery UI date picker plugin. */
-/* Written by Stuart. */
-jQuery(function($){
-	$.datepicker.regional['en-GB'] = {
-		closeText: 'Done',
-		prevText: 'Prev',
-		nextText: 'Next',
-		currentText: 'Today',
-		monthNames: ['January','February','March','April','May','June',
-		'July','August','September','October','November','December'],
-		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
-		'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
-		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
-		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
-		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['en-GB']);
-});
-/* English/New Zealand initialisation for the jQuery UI date picker plugin. */
-/* Based on the en-GB initialisation. */
-jQuery(function($){
-	$.datepicker.regional['en-NZ'] = {
-		closeText: 'Done',
-		prevText: 'Prev',
-		nextText: 'Next',
-		currentText: 'Today',
-		monthNames: ['January','February','March','April','May','June',
-		'July','August','September','October','November','December'],
-		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
-		'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
-		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
-		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
-		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['en-NZ']);
-});
-﻿/* Esperanto initialisation for the jQuery UI date picker plugin. */
-/* Written by Olivier M. (olivierweb@ifrance.com). */
-jQuery(function($){
-	$.datepicker.regional['eo'] = {
-		closeText: 'Fermi',
-		prevText: '&lt;Anta',
-		nextText: 'Sekv&gt;',
-		currentText: 'Nuna',
-		monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
-		'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Aŭg','Sep','Okt','Nov','Dec'],
-		dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
-		dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
-		dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
-		weekHeader: 'Sb',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['eo']);
-});
-/* Inicialización en español para la extensión 'UI date picker' para jQuery. */
-/* Traducido por Vester (xvester@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['es'] = {
-		closeText: 'Cerrar',
-		prevText: '&#x3c;Ant',
-		nextText: 'Sig&#x3e;',
-		currentText: 'Hoy',
-		monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
-		'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
-		monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
-		'Jul','Ago','Sep','Oct','Nov','Dic'],
-		dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
-		dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
-		dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['es']);
-});﻿/* Estonian initialisation for the jQuery UI date picker plugin. */
-/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
-jQuery(function($){
-	$.datepicker.regional['et'] = {
-		closeText: 'Sulge',
-		prevText: 'Eelnev',
-		nextText: 'Järgnev',
-		currentText: 'Täna',
-		monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
-		'Juuli','August','September','Oktoober','November','Detsember'],
-		monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
-		'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
-		dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
-		dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
-		dayNamesMin: ['P','E','T','K','N','R','L'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['et']);
-}); ﻿/* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
-/* Karrikas-ek itzulia (karrikas@karrikas.com) */
-jQuery(function($){
-	$.datepicker.regional['eu'] = {
-		closeText: 'Egina',
-		prevText: '&#x3c;Aur',
-		nextText: 'Hur&#x3e;',
-		currentText: 'Gaur',
-		monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina',
-		'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'],
-		monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka',
-		'Uzt','Abu','Ira','Urr','Aza','Abe'],
-		dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'],
-		dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'],
-		dayNamesMin: ['Ig','As','As','As','Os','Os','La'],
-		weekHeader: 'Wk',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['eu']);
-});﻿/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
-/* Javad Mowlanezhad -- jmowla@gmail.com */
-/* Jalali calendar should supported soon! (Its implemented but I have to test it) */
-jQuery(function($) {
-	$.datepicker.regional['fa'] = {
-		closeText: 'بستن',
-		prevText: '&#x3c;قبلي',
-		nextText: 'بعدي&#x3e;',
-		currentText: 'امروز',
-		monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور',
-		'مهر','آبان','آذر','دي','بهمن','اسفند'],
-		monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
-		dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'],
-		dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'],
-		dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'],
-		weekHeader: 'هف',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 6,
-		isRTL: true,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fa']);
-});/* Finnish initialisation for the jQuery UI date picker plugin. */
-/* Written by Harri Kilpi� (harrikilpio@gmail.com). */
-jQuery(function($){
-    $.datepicker.regional['fi'] = {
-		closeText: 'Sulje',
-		prevText: '&laquo;Edellinen',
-		nextText: 'Seuraava&raquo;',
-		currentText: 'T&auml;n&auml;&auml;n',
-        monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&auml;kuu',
-        'Hein&auml;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
-        monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kes&auml;',
-        'Hein&auml;','Elo','Syys','Loka','Marras','Joulu'],
-		dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'],
-		dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
-		dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
-		weekHeader: 'Vk',
-        dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['fi']);
-});
-﻿/* Faroese initialisation for the jQuery UI date picker plugin */
-/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
-jQuery(function($){
-	$.datepicker.regional['fo'] = {
-		closeText: 'Lat aftur',
-		prevText: '&#x3c;Fyrra',
-		nextText: 'Næsta&#x3e;',
-		currentText: 'Í dag',
-		monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
-		'Juli','August','September','Oktober','November','Desember'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
-		'Jul','Aug','Sep','Okt','Nov','Des'],
-		dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
-		dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
-		dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
-		weekHeader: 'Vk',
-		dateFormat: 'dd-mm-yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fo']);
-});
-﻿/* Swiss-French initialisation for the jQuery UI date picker plugin. */
-/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
-jQuery(function($){
-	$.datepicker.regional['fr-CH'] = {
-		closeText: 'Fermer',
-		prevText: '&#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'],
-		dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
-		dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
-		dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fr-CH']);
-});﻿/* French initialisation for the jQuery UI date picker plugin. */
-/* Written by Keith Wood (kbwood{at}iinet.com.au),
-              Stéphane Nahmani (sholby@sholby.net),
-              Stéphane Raimbault <stephane.raimbault@gmail.com> */
-jQuery(function($){
-	$.datepicker.regional['fr'] = {
-		closeText: 'Fermer',
-		prevText: 'Précédent',
-		nextText: 'Suivant',
-		currentText: 'Aujourd\'hui',
-		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
-		'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
-		monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
-		'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
-		dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
-		dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
-		dayNamesMin: ['D','L','M','M','J','V','S'],
-		weekHeader: 'Sem.',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fr']);
-});
-/* Galician localization for 'UI date picker' jQuery extension. */
-/* Translated by Jorge Barreiro <yortx.barry@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&eacute;rcores','Xoves','Venres','S&aacute;bado'],
-		dayNamesShort: ['Dom','Lun','Mar','M&eacute;r','Xov','Ven','S&aacute;b'],
-		dayNamesMin: ['Do','Lu','Ma','M&eacute;','Xo','Ve','S&aacute;'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['gl']);
-});﻿/* Hebrew initialisation for the UI Datepicker extension. */
-/* Written by Amir Hardon (ahardon at gmail dot com). */
-jQuery(function($){
-	$.datepicker.regional['he'] = {
-		closeText: 'סגור',
-		prevText: '&#x3c;הקודם',
-		nextText: 'הבא&#x3e;',
-		currentText: 'היום',
-		monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
-		'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
-		monthNamesShort: ['1','2','3','4','5','6',
-		'7','8','9','10','11','12'],
-		dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
-		dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
-		dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: true,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['he']);
-});
-﻿/* Croatian i18n for the jQuery UI date picker plugin. */
-/* Written by Vjekoslav Nesek. */
-jQuery(function($){
-	$.datepicker.regional['hr'] = {
-		closeText: 'Zatvori',
-		prevText: '&#x3c;',
-		nextText: '&#x3e;',
-		currentText: 'Danas',
-		monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
-		'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
-		monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
-		'Srp','Kol','Ruj','Lis','Stu','Pro'],
-		dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
-		dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
-		dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
-		weekHeader: 'Tje',
-		dateFormat: 'dd.mm.yy.',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['hr']);
-});/* Hungarian initialisation for the jQuery UI date picker plugin. */
-/* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
-jQuery(function($){
-	$.datepicker.regional['hu'] = {
-		closeText: 'bezárás',
-		prevText: '&laquo;&nbsp;vissza',
-		nextText: 'előre&nbsp;&raquo;',
-		currentText: 'ma',
-		monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
-		'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
-		monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
-		'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
-		dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
-		dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
-		dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
-		weekHeader: 'Hé',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['hu']);
-});
-/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
-jQuery(function($){
-	$.datepicker.regional['hy'] = {
-		closeText: 'Փակել',
-		prevText: '&#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['hy']);
-});/* Indonesian initialisation for the jQuery UI date picker plugin. */
-/* Written by Deden Fathurahman (dedenf@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['id'] = {
-		closeText: 'Tutup',
-		prevText: '&#x3c;mundur',
-		nextText: 'maju&#x3e;',
-		currentText: 'hari ini',
-		monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
-		'Juli','Agustus','September','Oktober','Nopember','Desember'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
-		'Jul','Agus','Sep','Okt','Nop','Des'],
-		dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
-		dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
-		dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
-		weekHeader: 'Mg',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['id']);
-});/* Icelandic initialisation for the jQuery UI date picker plugin. */
-/* Written by Haukur H. Thorsson (haukur@eskill.is). */
-jQuery(function($){
-	$.datepicker.regional['is'] = {
-		closeText: 'Loka',
-		prevText: '&#x3c; Fyrri',
-		nextText: 'N&aelig;sti &#x3e;',
-		currentText: '&Iacute; dag',
-		monthNames: ['Jan&uacute;ar','Febr&uacute;ar','Mars','Apr&iacute;l','Ma&iacute','J&uacute;n&iacute;',
-		'J&uacute;l&iacute;','&Aacute;g&uacute;st','September','Okt&oacute;ber','N&oacute;vember','Desember'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Ma&iacute;','J&uacute;n',
-		'J&uacute;l','&Aacute;g&uacute;','Sep','Okt','N&oacute;v','Des'],
-		dayNames: ['Sunnudagur','M&aacute;nudagur','&THORN;ri&eth;judagur','Mi&eth;vikudagur','Fimmtudagur','F&ouml;studagur','Laugardagur'],
-		dayNamesShort: ['Sun','M&aacute;n','&THORN;ri','Mi&eth;','Fim','F&ouml;s','Lau'],
-		dayNamesMin: ['Su','M&aacute;','&THORN;r','Mi','Fi','F&ouml;','La'],
-		weekHeader: 'Vika',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['is']);
-});/* Italian initialisation for the jQuery UI date picker plugin. */
-/* Written by Antonello Pasella (antonello.pasella@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['it'] = {
-		closeText: 'Chiudi',
-		prevText: '&#x3c;Prec',
-		nextText: 'Succ&#x3e;',
-		currentText: 'Oggi',
-		monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
-			'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
-		monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
-			'Lug','Ago','Set','Ott','Nov','Dic'],
-		dayNames: ['Domenica','Luned&#236','Marted&#236','Mercoled&#236','Gioved&#236','Venerd&#236','Sabato'],
-		dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
-		dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['it']);
-});
-﻿/* Japanese initialisation for the jQuery UI date picker plugin. */
-/* Written by Kentaro SATO (kentaro@ranvis.com). */
-jQuery(function($){
-	$.datepicker.regional['ja'] = {
-		closeText: '閉じる',
-		prevText: '&#x3c;前',
-		nextText: '次&#x3e;',
-		currentText: '今日',
-		monthNames: ['1月','2月','3月','4月','5月','6月',
-		'7月','8月','9月','10月','11月','12月'],
-		monthNamesShort: ['1月','2月','3月','4月','5月','6月',
-		'7月','8月','9月','10月','11月','12月'],
-		dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
-		dayNamesShort: ['日','月','火','水','木','金','土'],
-		dayNamesMin: ['日','月','火','水','木','金','土'],
-		weekHeader: '週',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['ja']);
-});/* Korean initialisation for the jQuery calendar extension. */
-/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ko'] = {
-		closeText: '닫기',
-		prevText: '이전달',
-		nextText: '다음달',
-		currentText: '오늘',
-		monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
-		'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
-		monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
-		'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
-		dayNames: ['일','월','화','수','목','금','토'],
-		dayNamesShort: ['일','월','화','수','목','금','토'],
-		dayNamesMin: ['일','월','화','수','목','금','토'],
-		weekHeader: 'Wk',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: '년'};
-	$.datepicker.setDefaults($.datepicker.regional['ko']);
-});/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Dmitriy Karasyov (dmitriy.karasyov@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@avalon.lt> */
-jQuery(function($){
-	$.datepicker.regional['lt'] = {
-		closeText: 'Uždaryti',
-		prevText: '&#x3c;Atgal',
-		nextText: 'Pirmyn&#x3e;',
-		currentText: 'Šiandien',
-		monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
-		'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
-		monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
-		'Lie','Rugp','Rugs','Spa','Lap','Gru'],
-		dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
-		dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
-		dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
-		weekHeader: 'Wk',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['lt']);
-});/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
-jQuery(function($){
-	$.datepicker.regional['lv'] = {
-		closeText: 'Aizvērt',
-		prevText: 'Iepr',
-		nextText: 'Nāka',
-		currentText: 'Šodien',
-		monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
-		'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
-		'Jūl','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
-		dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
-		dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
-		weekHeader: 'Nav',
-		dateFormat: 'dd-mm-yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['lv']);
-});﻿/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Saji Nediyanchath (saji89@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ml'] = {
-		closeText: 'ശരി',
-		prevText: 'മുന്നത്തെ',  
-		nextText: 'അടുത്തത് ',
-		currentText: 'ഇന്ന്',
-		monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍',
-		'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'],
-		monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍',
-		'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],
-		dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
-		dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
-		dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'],
-		weekHeader: 'ആ',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ml']);
-});
-/* Malaysian initialisation for the jQuery UI date picker plugin. */
-/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
-jQuery(function($){
-	$.datepicker.regional['ms'] = {
-		closeText: 'Tutup',
-		prevText: '&#x3c;Sebelum',
-		nextText: 'Selepas&#x3e;',
-		currentText: 'hari ini',
-		monthNames: ['Januari','Februari','Mac','April','Mei','Jun',
-		'Julai','Ogos','September','Oktober','November','Disember'],
-		monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun',
-		'Jul','Ogo','Sep','Okt','Nov','Dis'],
-		dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'],
-		dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'],
-		dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'],
-		weekHeader: 'Mg',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ms']);
-});﻿/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Mathias Bynens <http://mathiasbynens.be/> */
-jQuery(function($){
-	$.datepicker.regional.nl = {
-		closeText: 'Sluiten',
-		prevText: '←',
-		nextText: '→',
-		currentText: 'Vandaag',
-		monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
-		'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
-		monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',
-		'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
-		dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
-		dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
-		dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional.nl);
-});/* Norwegian initialisation for the jQuery UI date picker plugin. */
-/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
-
-jQuery(function($){
-  $.datepicker.regional['no'] = {
-    closeText: 'Lukk',
-    prevText: '&laquo;Forrige',
-    nextText: 'Neste&raquo;',
-    currentText: 'I dag',
-    monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'],
-    monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'],
-    dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'],
-    dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'],
-    dayNamesMin: ['sø','ma','ti','on','to','fr','lø'],
-    weekHeader: 'Uke',
-    dateFormat: 'dd.mm.yy',
-    firstDay: 1,
-    isRTL: false,
-    showMonthAfterYear: false,
-    yearSuffix: ''
-  };
-  $.datepicker.setDefaults($.datepicker.regional['no']);
-});
-/* Polish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['pl'] = {
-		closeText: 'Zamknij',
-		prevText: '&#x3c;Poprzedni',
-		nextText: 'Następny&#x3e;',
-		currentText: 'Dziś',
-		monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
-		'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
-		monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
-		'Lip','Sie','Wrz','Pa','Lis','Gru'],
-		dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
-		dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
-		dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
-		weekHeader: 'Tydz',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['pl']);
-});
-/* Brazilian initialisation for the jQuery UI date picker plugin. */
-/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['pt-BR'] = {
-		closeText: 'Fechar',
-		prevText: '&#x3c;Anterior',
-		nextText: 'Pr&oacute;ximo&#x3e;',
-		currentText: 'Hoje',
-		monthNames: ['Janeiro','Fevereiro','Mar&ccedil;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&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
-		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
-});/* Portuguese initialisation for the jQuery UI date picker plugin. */
-jQuery(function($){
-	$.datepicker.regional['pt'] = {
-		closeText: 'Fechar',
-		prevText: '&#x3c;Anterior',
-		nextText: 'Seguinte',
-		currentText: 'Hoje',
-		monthNames: ['Janeiro','Fevereiro','Mar&ccedil;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&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
-		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		weekHeader: 'Sem',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['pt']);
-});/* Romansh initialisation for the jQuery UI date picker plugin. */
-/* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */
-jQuery(function($){
-	$.datepicker.regional['rm'] = {
-		closeText: 'Serrar',
-		prevText: '&#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@walla.com)
- * and Ionut G. Stan (ionut.g.stan@gmail.com)
- */
-jQuery(function($){
-	$.datepicker.regional['ro'] = {
-		closeText: 'Închide',
-		prevText: '&laquo; Luna precedentă',
-		nextText: 'Luna următoare &raquo;',
-		currentText: 'Azi',
-		monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
-		'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
-		monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
-		'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
-		dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
-		dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
-		dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
-		weekHeader: 'Săpt',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ro']);
-});
-/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Andrew Stromnov (stromnov@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ru'] = {
-		closeText: 'Закрыть',
-		prevText: '&#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['ru']);
-});/* Slovak initialisation for the jQuery UI date picker plugin. */
-/* Written by Vojtech Rinik (vojto@hmm.sk). */
-jQuery(function($){
-	$.datepicker.regional['sk'] = {
-		closeText: 'Zavrieť',
-		prevText: '&#x3c;Predchádzajúci',
-		nextText: 'Nasledujúci&#x3e;',
-		currentText: 'Dnes',
-		monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
-		'Júl','August','September','Október','November','December'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
-		'Júl','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
-		dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
-		dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
-		weekHeader: 'Ty',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sk']);
-});
-/* Slovenian initialisation for the jQuery UI date picker plugin. */
-/* Written by Jaka Jancar (jaka@kubje.org). */
-/* c = &#x10D;, s = &#x161; z = &#x17E; C = &#x10C; S = &#x160; Z = &#x17D; */
-jQuery(function($){
-	$.datepicker.regional['sl'] = {
-		closeText: 'Zapri',
-		prevText: '&lt;Prej&#x161;nji',
-		nextText: 'Naslednji&gt;',
-		currentText: 'Trenutni',
-		monthNames: ['Januar','Februar','Marec','April','Maj','Junij',
-		'Julij','Avgust','September','Oktober','November','December'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Avg','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','&#x10C;etrtek','Petek','Sobota'],
-		dayNamesShort: ['Ned','Pon','Tor','Sre','&#x10C;et','Pet','Sob'],
-		dayNamesMin: ['Ne','Po','To','Sr','&#x10C;e','Pe','So'],
-		weekHeader: 'Teden',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sl']);
-});
-﻿/* Albanian initialisation for the jQuery UI date picker plugin. */
-/* Written by Flakron Bytyqi (flakron@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['sq'] = {
-		closeText: 'mbylle',
-		prevText: '&#x3c;mbrapa',
-		nextText: 'Përpara&#x3e;',
-		currentText: 'sot',
-		monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor',
-		'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'],
-		monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer',
-		'Kor','Gus','Sht','Tet','Nën','Dhj'],
-		dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'],
-		dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'],
-		dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'],
-		weekHeader: 'Ja',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sq']);
-});
-﻿/* Serbian i18n for the jQuery UI date picker plugin. */
-/* Written by Dejan Dimić. */
-jQuery(function($){
-	$.datepicker.regional['sr-SR'] = {
-		closeText: 'Zatvori',
-		prevText: '&#x3c;',
-		nextText: '&#x3e;',
-		currentText: 'Danas',
-		monthNames: ['Januar','Februar','Mart','April','Maj','Jun',
-		'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Avg','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'],
-		dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'],
-		dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
-		weekHeader: 'Sed',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sr-SR']);
-});
-﻿/* Serbian i18n for the jQuery UI date picker plugin. */
-/* Written by Dejan Dimić. */
-jQuery(function($){
-	$.datepicker.regional['sr'] = {
-		closeText: 'Затвори',
-		prevText: '&#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['sr']);
-});
-﻿/* Swedish initialisation for the jQuery UI date picker plugin. */
-/* Written by Anders Ekdahl ( anders@nomadiz.se). */
-jQuery(function($){
-    $.datepicker.regional['sv'] = {
-		closeText: 'Stäng',
-        prevText: '&laquo;Förra',
-		nextText: 'Nästa&raquo;',
-		currentText: 'Idag',
-        monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
-        'Juli','Augusti','September','Oktober','November','December'],
-        monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-        'Jul','Aug','Sep','Okt','Nov','Dec'],
-		dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
-		dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
-		dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
-		weekHeader: 'Ve',
-        dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['sv']);
-});
-﻿/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by S A Sureshkumar (saskumar@live.com). */
-jQuery(function($){
-	$.datepicker.regional['ta'] = {
-		closeText: 'மூடு',
-		prevText: 'முன்னையது',
-		nextText: 'அடுத்தது',
-		currentText: 'இன்று',
-		monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
-		'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
-		monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
-		'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
-		dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
-		dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
-		dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
-		weekHeader: 'Не',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ta']);
-});
-﻿/* Thai initialisation for the jQuery UI date picker plugin. */
-/* Written by pipo (pipo@sixhead.com). */
-jQuery(function($){
-	$.datepicker.regional['th'] = {
-		closeText: 'ปิด',
-		prevText: '&laquo;&nbsp;ย้อน',
-		nextText: 'ถัดไป&nbsp;&raquo;',
-		currentText: 'วันนี้',
-		monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
-		'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
-		monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
-		'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
-		dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
-		dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
-		dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['th']);
-});/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Abdurahmon Saidov (saidovab@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['tj'] = {
-		closeText: 'Идома',
-		prevText: '&#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@karalamalar.net). */
-jQuery(function($){
-	$.datepicker.regional['tr'] = {
-		closeText: 'kapat',
-		prevText: '&#x3c;geri',
-		nextText: 'ileri&#x3e',
-		currentText: 'bugün',
-		monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
-		'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
-		monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
-		'Tem','Ağu','Eyl','Eki','Kas','Ara'],
-		dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
-		dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
-		dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
-		weekHeader: 'Hf',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['tr']);
-});/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['uk'] = {
-		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['uk']);
-});﻿/* Vietnamese initialisation for the jQuery UI date picker plugin. */
-/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
-jQuery(function($){
-	$.datepicker.regional['vi'] = {
-		closeText: 'Đóng',
-		prevText: '&#x3c;Trước',
-		nextText: 'Tiếp&#x3e;',
-		currentText: 'Hôm nay',
-		monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
-		'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
-		monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
-		'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
-		dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
-		dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
-		dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
-		weekHeader: 'Tu',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['vi']);
-});
-/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by Cloudream (cloudream@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['zh-CN'] = {
-		closeText: '关闭',
-		prevText: '&#x3c;上月',
-		nextText: '下月&#x3e;',
-		currentText: '今天',
-		monthNames: ['一月','二月','三月','四月','五月','六月',
-		'七月','八月','九月','十月','十一月','十二月'],
-		monthNamesShort: ['一','二','三','四','五','六',
-		'七','八','九','十','十一','十二'],
-		dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
-		dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
-		dayNamesMin: ['日','一','二','三','四','五','六'],
-		weekHeader: '周',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['zh-CN']);
-});
-/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by SCCY (samuelcychan@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['zh-HK'] = {
-		closeText: '關閉',
-		prevText: '&#x3c;上月',
-		nextText: '下月&#x3e;',
-		currentText: '今天',
-		monthNames: ['一月','二月','三月','四月','五月','六月',
-		'七月','八月','九月','十月','十一月','十二月'],
-		monthNamesShort: ['一','二','三','四','五','六',
-		'七','八','九','十','十一','十二'],
-		dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
-		dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
-		dayNamesMin: ['日','一','二','三','四','五','六'],
-		weekHeader: '周',
-		dateFormat: 'dd-mm-yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['zh-HK']);
-});
-﻿/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by Ressol (ressol@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['zh-TW'] = {
-		closeText: '關閉',
-		prevText: '&#x3c;上月',
-		nextText: '下月&#x3e;',
-		currentText: '今天',
-		monthNames: ['一月','二月','三月','四月','五月','六月',
-		'七月','八月','九月','十月','十一月','十二月'],
-		monthNamesShort: ['一','二','三','四','五','六',
-		'七','八','九','十','十一','十二'],
-		dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
-		dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
-		dayNamesMin: ['日','一','二','三','四','五','六'],
-		weekHeader: '周',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['zh-TW']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-af.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-af.js
deleted file mode 100644
index 43fbf6c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-af.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Afrikaans initialisation for the jQuery UI date picker plugin. */
-/* Written by Renier Pretorius. */
-jQuery(function($){
-	$.datepicker.regional['af'] = {
-		closeText: 'Selekteer',
-		prevText: 'Vorige',
-		nextText: 'Volgende',
-		currentText: 'Vandag',
-		monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie',
-		'Julie','Augustus','September','Oktober','November','Desember'],
-		monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun',
-		'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'],
-		dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'],
-		dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'],
-		dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['af']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js
deleted file mode 100644
index e0e1685..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/
-/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */
-
-jQuery(function($){
-	$.datepicker.regional['ar-DZ'] = {
-		closeText: 'إغلاق',
-		prevText: '&#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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js
deleted file mode 100644
index cfa6632..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Arabic Translation for jQuery UI date picker plugin. */
-/* Khaled Alhourani -- me@khaledalhourani.com */
-/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */
-jQuery(function($){
-	$.datepicker.regional['ar'] = {
-		closeText: 'إغلاق',
-		prevText: '&#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']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-az.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-az.js
deleted file mode 100644
index b543405..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-az.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Jamil Najafov (necefov33@gmail.com). */
-jQuery(function($) {
-	$.datepicker.regional['az'] = {
-		closeText: 'Bağla',
-		prevText: '&#x3c;Geri',
-		nextText: 'İrəli&#x3e;',
-		currentText: 'Bugün',
-		monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun',
-		'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'],
-		monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun',
-		'İyul','Avq','Sen','Okt','Noy','Dek'],
-		dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'],
-		dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'],
-		dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'],
-		weekHeader: 'Hf',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['az']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bg.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bg.js
deleted file mode 100644
index b5113f7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bg.js
+++ /dev/null
@@ -1,24 +0,0 @@
-﻿/* Bulgarian initialisation for the jQuery UI date picker plugin. */
-/* Written by Stoyan Kyosev (http://svest.org). */
-jQuery(function($){
-    $.datepicker.regional['bg'] = {
-        closeText: 'затвори',
-        prevText: '&#x3c;назад',
-        nextText: 'напред&#x3e;',
-		nextBigText: '&#x3e;&#x3e;',
-        currentText: 'днес',
-        monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
-        'Юли','Август','Септември','Октомври','Ноември','Декември'],
-        monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
-        'Юли','Авг','Сеп','Окт','Нов','Дек'],
-        dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
-        dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
-        dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
-		weekHeader: 'Wk',
-        dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-        isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['bg']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bs.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bs.js
deleted file mode 100644
index 30ab826..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bs.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Bosnian i18n for the jQuery UI date picker plugin. */
-/* Written by Kenan Konjo. */
-jQuery(function($){
-	$.datepicker.regional['bs'] = {
-		closeText: 'Zatvori', 
-		prevText: '&#x3c;', 
-		nextText: '&#x3e;', 
-		currentText: 'Danas', 
-		monthNames: ['Januar','Februar','Mart','April','Maj','Juni',
-		'Juli','August','Septembar','Oktobar','Novembar','Decembar'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
-		dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
-		dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['bs']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ca.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ca.js
deleted file mode 100644
index b128e69..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ca.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Inicialització en català per a l'extenció 'calendar' per jQuery. */
-/* Writers: (joan.leon@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ca'] = {
-		closeText: 'Tancar',
-		prevText: '&#x3c;Ant',
-		nextText: 'Seg&#x3e;',
-		currentText: 'Avui',
-		monthNames: ['Gener','Febrer','Mar&ccedil;','Abril','Maig','Juny',
-		'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'],
-		monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun',
-		'Jul','Ago','Set','Oct','Nov','Des'],
-		dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'],
-		dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'],
-		dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ca']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-cs.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-cs.js
deleted file mode 100644
index c3c07ea..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-cs.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Czech initialisation for the jQuery UI date picker plugin. */
-/* Written by Tomas Muller (tomas@tomas-muller.net). */
-jQuery(function($){
-	$.datepicker.regional['cs'] = {
-		closeText: 'Zavřít',
-		prevText: '&#x3c;Dříve',
-		nextText: 'Později&#x3e;',
-		currentText: 'Nyní',
-		monthNames: ['leden','únor','březen','duben','květen','červen',
-        'červenec','srpen','září','říjen','listopad','prosinec'],
-		monthNamesShort: ['led','úno','bře','dub','kvě','čer',
-		'čvc','srp','zář','říj','lis','pro'],
-		dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'],
-		dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'],
-		dayNamesMin: ['ne','po','út','st','čt','pá','so'],
-		weekHeader: 'Týd',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['cs']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-da.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-da.js
deleted file mode 100644
index 4a99a58..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-da.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Danish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jan Christensen ( deletestuff@gmail.com). */
-jQuery(function($){
-    $.datepicker.regional['da'] = {
-		closeText: 'Luk',
-        prevText: '&#x3c;Forrige',
-		nextText: 'Næste&#x3e;',
-		currentText: 'Idag',
-        monthNames: ['Januar','Februar','Marts','April','Maj','Juni',
-        'Juli','August','September','Oktober','November','December'],
-        monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-        'Jul','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'],
-		dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'],
-		dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'],
-		weekHeader: 'Uge',
-        dateFormat: 'dd-mm-yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['da']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-de.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-de.js
deleted file mode 100644
index ac2d516..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-de.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* German initialisation for the jQuery UI date picker plugin. */
-/* Written by Milian Wolff (mail@milianw.de). */
-jQuery(function($){
-	$.datepicker.regional['de'] = {
-		closeText: 'schließen',
-		prevText: '&#x3c;zurück',
-		nextText: 'Vor&#x3e;',
-		currentText: 'heute',
-		monthNames: ['Januar','Februar','März','April','Mai','Juni',
-		'Juli','August','September','Oktober','November','Dezember'],
-		monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun',
-		'Jul','Aug','Sep','Okt','Nov','Dez'],
-		dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
-		dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'],
-		dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
-		weekHeader: 'Wo',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['de']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-el.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-el.js
deleted file mode 100644
index 9542769..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-el.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Greek (el) initialisation for the jQuery UI date picker plugin. */
-/* Written by Alex Cicovic (http://www.alexcicovic.com) */
-jQuery(function($){
-	$.datepicker.regional['el'] = {
-		closeText: 'Κλείσιμο',
-		prevText: 'Προηγούμενος',
-		nextText: 'Επόμενος',
-		currentText: 'Τρέχων Μήνας',
-		monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος',
-		'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'],
-		monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν',
-		'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'],
-		dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'],
-		dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'],
-		dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'],
-		weekHeader: 'Εβδ',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['el']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js
deleted file mode 100644
index c1a1020..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 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']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js
deleted file mode 100644
index aac7b61..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* English/UK initialisation for the jQuery UI date picker plugin. */
-/* Written by Stuart. */
-jQuery(function($){
-	$.datepicker.regional['en-GB'] = {
-		closeText: 'Done',
-		prevText: 'Prev',
-		nextText: 'Next',
-		currentText: 'Today',
-		monthNames: ['January','February','March','April','May','June',
-		'July','August','September','October','November','December'],
-		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
-		'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
-		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
-		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
-		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['en-GB']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js
deleted file mode 100644
index 7819df0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 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']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eo.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eo.js
deleted file mode 100644
index ba57156..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eo.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Esperanto initialisation for the jQuery UI date picker plugin. */
-/* Written by Olivier M. (olivierweb@ifrance.com). */
-jQuery(function($){
-	$.datepicker.regional['eo'] = {
-		closeText: 'Fermi',
-		prevText: '&lt;Anta',
-		nextText: 'Sekv&gt;',
-		currentText: 'Nuna',
-		monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio',
-		'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Aŭg','Sep','Okt','Nov','Dec'],
-		dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'],
-		dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'],
-		dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'],
-		weekHeader: 'Sb',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['eo']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-es.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-es.js
deleted file mode 100644
index a02133d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-es.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Inicialización en español para la extensión 'UI date picker' para jQuery. */
-/* Traducido por Vester (xvester@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['es'] = {
-		closeText: 'Cerrar',
-		prevText: '&#x3c;Ant',
-		nextText: 'Sig&#x3e;',
-		currentText: 'Hoy',
-		monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio',
-		'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'],
-		monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun',
-		'Jul','Ago','Sep','Oct','Nov','Dic'],
-		dayNames: ['Domingo','Lunes','Martes','Mi&eacute;rcoles','Jueves','Viernes','S&aacute;bado'],
-		dayNamesShort: ['Dom','Lun','Mar','Mi&eacute;','Juv','Vie','S&aacute;b'],
-		dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','S&aacute;'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['es']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-et.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-et.js
deleted file mode 100644
index f97311f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-et.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Estonian initialisation for the jQuery UI date picker plugin. */
-/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */
-jQuery(function($){
-	$.datepicker.regional['et'] = {
-		closeText: 'Sulge',
-		prevText: 'Eelnev',
-		nextText: 'Järgnev',
-		currentText: 'Täna',
-		monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni',
-		'Juuli','August','September','Oktoober','November','Detsember'],
-		monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni',
-		'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'],
-		dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'],
-		dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'],
-		dayNamesMin: ['P','E','T','K','N','R','L'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['et']);
-}); 
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eu.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eu.js
deleted file mode 100644
index 9ba6ee2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eu.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */
-/* Karrikas-ek itzulia (karrikas@karrikas.com) */
-jQuery(function($){
-	$.datepicker.regional['eu'] = {
-		closeText: 'Egina',
-		prevText: '&#x3c;Aur',
-		nextText: 'Hur&#x3e;',
-		currentText: 'Gaur',
-		monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina',
-		'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'],
-		monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka',
-		'Uzt','Abu','Ira','Urr','Aza','Abe'],
-		dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'],
-		dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'],
-		dayNamesMin: ['Ig','As','As','As','Os','Os','La'],
-		weekHeader: 'Wk',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['eu']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fa.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fa.js
deleted file mode 100644
index adb3709..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fa.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */
-/* Javad Mowlanezhad -- jmowla@gmail.com */
-/* Jalali calendar should supported soon! (Its implemented but I have to test it) */
-jQuery(function($) {
-	$.datepicker.regional['fa'] = {
-		closeText: 'بستن',
-		prevText: '&#x3c;قبلي',
-		nextText: 'بعدي&#x3e;',
-		currentText: 'امروز',
-		monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور',
-		'مهر','آبان','آذر','دي','بهمن','اسفند'],
-		monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
-		dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'],
-		dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'],
-		dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'],
-		weekHeader: 'هف',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 6,
-		isRTL: true,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fa']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fi.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fi.js
deleted file mode 100644
index e1f25fd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fi.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Finnish initialisation for the jQuery UI date picker plugin. */
-/* Written by Harri Kilpi� (harrikilpio@gmail.com). */
-jQuery(function($){
-    $.datepicker.regional['fi'] = {
-		closeText: 'Sulje',
-		prevText: '&laquo;Edellinen',
-		nextText: 'Seuraava&raquo;',
-		currentText: 'T&auml;n&auml;&auml;n',
-        monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kes&auml;kuu',
-        'Hein&auml;kuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'],
-        monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kes&auml;',
-        'Hein&auml;','Elo','Syys','Loka','Marras','Joulu'],
-		dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'],
-		dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'],
-		dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'],
-		weekHeader: 'Vk',
-        dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['fi']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fo.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fo.js
deleted file mode 100644
index c143622..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fo.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Faroese initialisation for the jQuery UI date picker plugin */
-/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */
-jQuery(function($){
-	$.datepicker.regional['fo'] = {
-		closeText: 'Lat aftur',
-		prevText: '&#x3c;Fyrra',
-		nextText: 'Næsta&#x3e;',
-		currentText: 'Í dag',
-		monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni',
-		'Juli','August','September','Oktober','November','Desember'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
-		'Jul','Aug','Sep','Okt','Nov','Des'],
-		dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'],
-		dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'],
-		dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'],
-		weekHeader: 'Vk',
-		dateFormat: 'dd-mm-yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fo']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js
deleted file mode 100644
index 38212d5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Swiss-French initialisation for the jQuery UI date picker plugin. */
-/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */
-jQuery(function($){
-	$.datepicker.regional['fr-CH'] = {
-		closeText: 'Fermer',
-		prevText: '&#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'],
-		dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
-		dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
-		dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fr-CH']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js
deleted file mode 100644
index 74ea1c2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js
+++ /dev/null
@@ -1,25 +0,0 @@
-﻿/* French initialisation for the jQuery UI date picker plugin. */
-/* Written by Keith Wood (kbwood{at}iinet.com.au),
-              Stéphane Nahmani (sholby@sholby.net),
-              Stéphane Raimbault <stephane.raimbault@gmail.com> */
-jQuery(function($){
-	$.datepicker.regional['fr'] = {
-		closeText: 'Fermer',
-		prevText: 'Précédent',
-		nextText: 'Suivant',
-		currentText: 'Aujourd\'hui',
-		monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin',
-		'Juillet','Août','Septembre','Octobre','Novembre','Décembre'],
-		monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin',
-		'Juil.','Août','Sept.','Oct.','Nov.','Déc.'],
-		dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
-		dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'],
-		dayNamesMin: ['D','L','M','M','J','V','S'],
-		weekHeader: 'Sem.',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['fr']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js
deleted file mode 100644
index 278403e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Galician localization for 'UI date picker' jQuery extension. */
-/* Translated by Jorge Barreiro <yortx.barry@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&eacute;rcores','Xoves','Venres','S&aacute;bado'],
-		dayNamesShort: ['Dom','Lun','Mar','M&eacute;r','Xov','Ven','S&aacute;b'],
-		dayNamesMin: ['Do','Lu','Ma','M&eacute;','Xo','Ve','S&aacute;'],
-		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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-he.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-he.js
deleted file mode 100644
index 3b3dc38..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-he.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Hebrew initialisation for the UI Datepicker extension. */
-/* Written by Amir Hardon (ahardon at gmail dot com). */
-jQuery(function($){
-	$.datepicker.regional['he'] = {
-		closeText: 'סגור',
-		prevText: '&#x3c;הקודם',
-		nextText: 'הבא&#x3e;',
-		currentText: 'היום',
-		monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני',
-		'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'],
-		monthNamesShort: ['1','2','3','4','5','6',
-		'7','8','9','10','11','12'],
-		dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'],
-		dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
-		dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: true,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['he']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hr.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hr.js
deleted file mode 100644
index 0285c1a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hr.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Croatian i18n for the jQuery UI date picker plugin. */
-/* Written by Vjekoslav Nesek. */
-jQuery(function($){
-	$.datepicker.regional['hr'] = {
-		closeText: 'Zatvori',
-		prevText: '&#x3c;',
-		nextText: '&#x3e;',
-		currentText: 'Danas',
-		monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj',
-		'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'],
-		monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip',
-		'Srp','Kol','Ruj','Lis','Stu','Pro'],
-		dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'],
-		dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'],
-		dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
-		weekHeader: 'Tje',
-		dateFormat: 'dd.mm.yy.',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['hr']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js
deleted file mode 100644
index 46e63f5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Hungarian initialisation for the jQuery UI date picker plugin. */
-/* Written by Istvan Karaszi (jquery@spam.raszi.hu). */
-jQuery(function($){
-	$.datepicker.regional['hu'] = {
-		closeText: 'bezárás',
-		prevText: '&laquo;&nbsp;vissza',
-		nextText: 'előre&nbsp;&raquo;',
-		currentText: 'ma',
-		monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június',
-		'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'],
-		monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún',
-		'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'],
-		dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'],
-		dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'],
-		dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'],
-		weekHeader: 'Hé',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['hu']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hy.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hy.js
deleted file mode 100644
index c6cc194..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hy.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/
-jQuery(function($){
-	$.datepicker.regional['hy'] = {
-		closeText: 'Փակել',
-		prevText: '&#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['hy']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-id.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-id.js
deleted file mode 100644
index c626fbb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-id.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Indonesian initialisation for the jQuery UI date picker plugin. */
-/* Written by Deden Fathurahman (dedenf@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['id'] = {
-		closeText: 'Tutup',
-		prevText: '&#x3c;mundur',
-		nextText: 'maju&#x3e;',
-		currentText: 'hari ini',
-		monthNames: ['Januari','Februari','Maret','April','Mei','Juni',
-		'Juli','Agustus','September','Oktober','Nopember','Desember'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun',
-		'Jul','Agus','Sep','Okt','Nop','Des'],
-		dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'],
-		dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'],
-		dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'],
-		weekHeader: 'Mg',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['id']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-is.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-is.js
deleted file mode 100644
index c53235a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-is.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Icelandic initialisation for the jQuery UI date picker plugin. */
-/* Written by Haukur H. Thorsson (haukur@eskill.is). */
-jQuery(function($){
-	$.datepicker.regional['is'] = {
-		closeText: 'Loka',
-		prevText: '&#x3c; Fyrri',
-		nextText: 'N&aelig;sti &#x3e;',
-		currentText: '&Iacute; dag',
-		monthNames: ['Jan&uacute;ar','Febr&uacute;ar','Mars','Apr&iacute;l','Ma&iacute','J&uacute;n&iacute;',
-		'J&uacute;l&iacute;','&Aacute;g&uacute;st','September','Okt&oacute;ber','N&oacute;vember','Desember'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Ma&iacute;','J&uacute;n',
-		'J&uacute;l','&Aacute;g&uacute;','Sep','Okt','N&oacute;v','Des'],
-		dayNames: ['Sunnudagur','M&aacute;nudagur','&THORN;ri&eth;judagur','Mi&eth;vikudagur','Fimmtudagur','F&ouml;studagur','Laugardagur'],
-		dayNamesShort: ['Sun','M&aacute;n','&THORN;ri','Mi&eth;','Fim','F&ouml;s','Lau'],
-		dayNamesMin: ['Su','M&aacute;','&THORN;r','Mi','Fi','F&ouml;','La'],
-		weekHeader: 'Vika',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['is']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-it.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-it.js
deleted file mode 100644
index 59da2df..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-it.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Italian initialisation for the jQuery UI date picker plugin. */
-/* Written by Antonello Pasella (antonello.pasella@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['it'] = {
-		closeText: 'Chiudi',
-		prevText: '&#x3c;Prec',
-		nextText: 'Succ&#x3e;',
-		currentText: 'Oggi',
-		monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno',
-			'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],
-		monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu',
-			'Lug','Ago','Set','Ott','Nov','Dic'],
-		dayNames: ['Domenica','Luned&#236','Marted&#236','Mercoled&#236','Gioved&#236','Venerd&#236','Sabato'],
-		dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'],
-		dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['it']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ja.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ja.js
deleted file mode 100644
index 79cd827..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ja.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Japanese initialisation for the jQuery UI date picker plugin. */
-/* Written by Kentaro SATO (kentaro@ranvis.com). */
-jQuery(function($){
-	$.datepicker.regional['ja'] = {
-		closeText: '閉じる',
-		prevText: '&#x3c;前',
-		nextText: '次&#x3e;',
-		currentText: '今日',
-		monthNames: ['1月','2月','3月','4月','5月','6月',
-		'7月','8月','9月','10月','11月','12月'],
-		monthNamesShort: ['1月','2月','3月','4月','5月','6月',
-		'7月','8月','9月','10月','11月','12月'],
-		dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'],
-		dayNamesShort: ['日','月','火','水','木','金','土'],
-		dayNamesMin: ['日','月','火','水','木','金','土'],
-		weekHeader: '週',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['ja']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ko.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ko.js
deleted file mode 100644
index 5b35316..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ko.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Korean initialisation for the jQuery calendar extension. */
-/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ko'] = {
-		closeText: '닫기',
-		prevText: '이전달',
-		nextText: '다음달',
-		currentText: '오늘',
-		monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
-		'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
-		monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
-		'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
-		dayNames: ['일','월','화','수','목','금','토'],
-		dayNamesShort: ['일','월','화','수','목','금','토'],
-		dayNamesMin: ['일','월','화','수','목','금','토'],
-		weekHeader: 'Wk',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: '년'};
-	$.datepicker.setDefaults($.datepicker.regional['ko']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js
deleted file mode 100644
index f1f897b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Dmitriy Karasyov (dmitriy.karasyov@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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lt.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lt.js
deleted file mode 100644
index 67d5119..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lt.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* @author Arturas Paleicikas <arturas@avalon.lt> */
-jQuery(function($){
-	$.datepicker.regional['lt'] = {
-		closeText: 'Uždaryti',
-		prevText: '&#x3c;Atgal',
-		nextText: 'Pirmyn&#x3e;',
-		currentText: 'Šiandien',
-		monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis',
-		'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'],
-		monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir',
-		'Lie','Rugp','Rugs','Spa','Lap','Gru'],
-		dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'],
-		dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'],
-		dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'],
-		weekHeader: 'Wk',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['lt']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lv.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lv.js
deleted file mode 100644
index 003934e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lv.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* @author Arturas Paleicikas <arturas.paleicikas@metasite.net> */
-jQuery(function($){
-	$.datepicker.regional['lv'] = {
-		closeText: 'Aizvērt',
-		prevText: 'Iepr',
-		nextText: 'Nāka',
-		currentText: 'Šodien',
-		monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs',
-		'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn',
-		'Jūl','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'],
-		dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'],
-		dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'],
-		weekHeader: 'Nav',
-		dateFormat: 'dd-mm-yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['lv']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js
deleted file mode 100644
index 753dba4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Saji Nediyanchath (saji89@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ml'] = {
-		closeText: 'ശരി',
-		prevText: 'മുന്നത്തെ',  
-		nextText: 'അടുത്തത് ',
-		currentText: 'ഇന്ന്',
-		monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍',
-		'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'],
-		monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍',
-		'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'],
-		dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
-		dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'],
-		dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'],
-		weekHeader: 'ആ',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ml']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ms.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ms.js
deleted file mode 100644
index e953ac0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ms.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Malaysian initialisation for the jQuery UI date picker plugin. */
-/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */
-jQuery(function($){
-	$.datepicker.regional['ms'] = {
-		closeText: 'Tutup',
-		prevText: '&#x3c;Sebelum',
-		nextText: 'Selepas&#x3e;',
-		currentText: 'hari ini',
-		monthNames: ['Januari','Februari','Mac','April','Mei','Jun',
-		'Julai','Ogos','September','Oktober','November','Disember'],
-		monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun',
-		'Jul','Ogo','Sep','Okt','Nov','Dis'],
-		dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'],
-		dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'],
-		dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'],
-		weekHeader: 'Mg',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ms']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-nl.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-nl.js
deleted file mode 100644
index 663d6bb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-nl.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Mathias Bynens <http://mathiasbynens.be/> */
-jQuery(function($){
-	$.datepicker.regional.nl = {
-		closeText: 'Sluiten',
-		prevText: '←',
-		nextText: '→',
-		currentText: 'Vandaag',
-		monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni',
-		'juli', 'augustus', 'september', 'oktober', 'november', 'december'],
-		monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun',
-		'jul', 'aug', 'sep', 'okt', 'nov', 'dec'],
-		dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'],
-		dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'],
-		dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional.nl);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-no.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-no.js
deleted file mode 100644
index 2507043..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-no.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Norwegian initialisation for the jQuery UI date picker plugin. */
-/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */
-
-jQuery(function($){
-  $.datepicker.regional['no'] = {
-    closeText: 'Lukk',
-    prevText: '&laquo;Forrige',
-    nextText: 'Neste&raquo;',
-    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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js
deleted file mode 100644
index 61fa29c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Polish initialisation for the jQuery UI date picker plugin. */
-/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['pl'] = {
-		closeText: 'Zamknij',
-		prevText: '&#x3c;Poprzedni',
-		nextText: 'Następny&#x3e;',
-		currentText: 'Dziś',
-		monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
-		'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
-		monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
-		'Lip','Sie','Wrz','Pa','Lis','Gru'],
-		dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
-		dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
-		dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
-		weekHeader: 'Tydz',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['pl']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
deleted file mode 100644
index 3cc8c79..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Brazilian initialisation for the jQuery UI date picker plugin. */
-/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['pt-BR'] = {
-		closeText: 'Fechar',
-		prevText: '&#x3c;Anterior',
-		nextText: 'Pr&oacute;ximo&#x3e;',
-		currentText: 'Hoje',
-		monthNames: ['Janeiro','Fevereiro','Mar&ccedil;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&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
-		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		weekHeader: 'Sm',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js
deleted file mode 100644
index f09f5ae..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/* 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&ccedil;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&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','S&aacute;bado'],
-		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','S&aacute;b'],
-		weekHeader: 'Sem',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['pt']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js
deleted file mode 100644
index cf03cd4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Romansh initialisation for the jQuery UI date picker plugin. */
-/* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */
-jQuery(function($){
-	$.datepicker.regional['rm'] = {
-		closeText: 'Serrar',
-		prevText: '&#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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ro.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ro.js
deleted file mode 100644
index 4fe95ae..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ro.js
+++ /dev/null
@@ -1,26 +0,0 @@
-﻿/* Romanian initialisation for the jQuery UI date picker plugin.
- *
- * Written by Edmond L. (ll_edmond@walla.com)
- * and Ionut G. Stan (ionut.g.stan@gmail.com)
- */
-jQuery(function($){
-	$.datepicker.regional['ro'] = {
-		closeText: 'Închide',
-		prevText: '&laquo; Luna precedentă',
-		nextText: 'Luna următoare &raquo;',
-		currentText: 'Azi',
-		monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie',
-		'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'],
-		monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun',
-		'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
-		dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'],
-		dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'],
-		dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'],
-		weekHeader: 'Săpt',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ro']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js
deleted file mode 100644
index 50a4613..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Andrew Stromnov (stromnov@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['ru'] = {
-		closeText: 'Закрыть',
-		prevText: '&#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['ru']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js
deleted file mode 100644
index 8a6771c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Slovak initialisation for the jQuery UI date picker plugin. */
-/* Written by Vojtech Rinik (vojto@hmm.sk). */
-jQuery(function($){
-	$.datepicker.regional['sk'] = {
-		closeText: 'Zavrieť',
-		prevText: '&#x3c;Predchádzajúci',
-		nextText: 'Nasledujúci&#x3e;',
-		currentText: 'Dnes',
-		monthNames: ['Január','Február','Marec','Apríl','Máj','Jún',
-		'Júl','August','September','Október','November','December'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún',
-		'Júl','Aug','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'],
-		dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'],
-		dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'],
-		weekHeader: 'Ty',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sk']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sl.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sl.js
deleted file mode 100644
index 5165501..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sl.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Slovenian initialisation for the jQuery UI date picker plugin. */
-/* Written by Jaka Jancar (jaka@kubje.org). */
-/* c = &#x10D;, s = &#x161; z = &#x17E; C = &#x10C; S = &#x160; Z = &#x17D; */
-jQuery(function($){
-	$.datepicker.regional['sl'] = {
-		closeText: 'Zapri',
-		prevText: '&lt;Prej&#x161;nji',
-		nextText: 'Naslednji&gt;',
-		currentText: 'Trenutni',
-		monthNames: ['Januar','Februar','Marec','April','Maj','Junij',
-		'Julij','Avgust','September','Oktober','November','December'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Avg','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','&#x10C;etrtek','Petek','Sobota'],
-		dayNamesShort: ['Ned','Pon','Tor','Sre','&#x10C;et','Pet','Sob'],
-		dayNamesMin: ['Ne','Po','To','Sr','&#x10C;e','Pe','So'],
-		weekHeader: 'Teden',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sl']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sq.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sq.js
deleted file mode 100644
index be84104..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sq.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Albanian initialisation for the jQuery UI date picker plugin. */
-/* Written by Flakron Bytyqi (flakron@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['sq'] = {
-		closeText: 'mbylle',
-		prevText: '&#x3c;mbrapa',
-		nextText: 'Përpara&#x3e;',
-		currentText: 'sot',
-		monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor',
-		'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'],
-		monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer',
-		'Kor','Gus','Sht','Tet','Nën','Dhj'],
-		dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'],
-		dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'],
-		dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'],
-		weekHeader: 'Ja',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sq']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr-SR.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr-SR.js
deleted file mode 100644
index 8f8ea5e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr-SR.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Serbian i18n for the jQuery UI date picker plugin. */
-/* Written by Dejan Dimić. */
-jQuery(function($){
-	$.datepicker.regional['sr-SR'] = {
-		closeText: 'Zatvori',
-		prevText: '&#x3c;',
-		nextText: '&#x3e;',
-		currentText: 'Danas',
-		monthNames: ['Januar','Februar','Mart','April','Maj','Jun',
-		'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'],
-		monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-		'Jul','Avg','Sep','Okt','Nov','Dec'],
-		dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'],
-		dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'],
-		dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'],
-		weekHeader: 'Sed',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['sr-SR']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr.js
deleted file mode 100644
index 49c9b4a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Serbian i18n for the jQuery UI date picker plugin. */
-/* Written by Dejan Dimić. */
-jQuery(function($){
-	$.datepicker.regional['sr'] = {
-		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['sr']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sv.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sv.js
deleted file mode 100644
index 8236b62..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sv.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Swedish initialisation for the jQuery UI date picker plugin. */
-/* Written by Anders Ekdahl ( anders@nomadiz.se). */
-jQuery(function($){
-    $.datepicker.regional['sv'] = {
-		closeText: 'Stäng',
-        prevText: '&laquo;Förra',
-		nextText: 'Nästa&raquo;',
-		currentText: 'Idag',
-        monthNames: ['Januari','Februari','Mars','April','Maj','Juni',
-        'Juli','Augusti','September','Oktober','November','December'],
-        monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun',
-        'Jul','Aug','Sep','Okt','Nov','Dec'],
-		dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'],
-		dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'],
-		dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'],
-		weekHeader: 'Ve',
-        dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-    $.datepicker.setDefaults($.datepicker.regional['sv']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ta.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ta.js
deleted file mode 100644
index 91116d3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ta.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by S A Sureshkumar (saskumar@live.com). */
-jQuery(function($){
-	$.datepicker.regional['ta'] = {
-		closeText: 'மூடு',
-		prevText: 'முன்னையது',
-		nextText: 'அடுத்தது',
-		currentText: 'இன்று',
-		monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி',
-		'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'],
-		monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி',
-		'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'],
-		dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'],
-		dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'],
-		dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'],
-		weekHeader: 'Не',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['ta']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-th.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-th.js
deleted file mode 100644
index c090c6b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-th.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Thai initialisation for the jQuery UI date picker plugin. */
-/* Written by pipo (pipo@sixhead.com). */
-jQuery(function($){
-	$.datepicker.regional['th'] = {
-		closeText: 'ปิด',
-		prevText: '&laquo;&nbsp;ย้อน',
-		nextText: 'ถัดไป&nbsp;&raquo;',
-		currentText: 'วันนี้',
-		monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน',
-		'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
-		monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.',
-		'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'],
-		dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'],
-		dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
-		dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'],
-		weekHeader: 'Wk',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['th']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js
deleted file mode 100644
index ed66239..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Tajiki (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Abdurahmon Saidov (saidovab@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['tj'] = {
-		closeText: 'Идома',
-		prevText: '&#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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tr.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tr.js
deleted file mode 100644
index dedfc7f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tr.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Turkish initialisation for the jQuery UI date picker plugin. */
-/* Written by Izzet Emre Erkan (kara@karalamalar.net). */
-jQuery(function($){
-	$.datepicker.regional['tr'] = {
-		closeText: 'kapat',
-		prevText: '&#x3c;geri',
-		nextText: 'ileri&#x3e',
-		currentText: 'bugün',
-		monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran',
-		'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'],
-		monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz',
-		'Tem','Ağu','Eyl','Eki','Kas','Ara'],
-		dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'],
-		dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
-		dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'],
-		weekHeader: 'Hf',
-		dateFormat: 'dd.mm.yy',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['tr']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-uk.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-uk.js
deleted file mode 100644
index 112b40e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-uk.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */
-/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['uk'] = {
-		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['uk']);
-});
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-vi.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-vi.js
deleted file mode 100644
index 9813a59..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-vi.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Vietnamese initialisation for the jQuery UI date picker plugin. */
-/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */
-jQuery(function($){
-	$.datepicker.regional['vi'] = {
-		closeText: 'Đóng',
-		prevText: '&#x3c;Trước',
-		nextText: 'Tiếp&#x3e;',
-		currentText: 'Hôm nay',
-		monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu',
-		'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'],
-		monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6',
-		'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'],
-		dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'],
-		dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
-		dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'],
-		weekHeader: 'Tu',
-		dateFormat: 'dd/mm/yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: false,
-		yearSuffix: ''};
-	$.datepicker.setDefaults($.datepicker.regional['vi']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-CN.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-CN.js
deleted file mode 100644
index 6c4883f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-CN.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by Cloudream (cloudream@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['zh-CN'] = {
-		closeText: '关闭',
-		prevText: '&#x3c;上月',
-		nextText: '下月&#x3e;',
-		currentText: '今天',
-		monthNames: ['一月','二月','三月','四月','五月','六月',
-		'七月','八月','九月','十月','十一月','十二月'],
-		monthNamesShort: ['一','二','三','四','五','六',
-		'七','八','九','十','十一','十二'],
-		dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
-		dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
-		dayNamesMin: ['日','一','二','三','四','五','六'],
-		weekHeader: '周',
-		dateFormat: 'yy-mm-dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['zh-CN']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-HK.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-HK.js
deleted file mode 100644
index 06c4c62..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-HK.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by SCCY (samuelcychan@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['zh-HK'] = {
-		closeText: '關閉',
-		prevText: '&#x3c;上月',
-		nextText: '下月&#x3e;',
-		currentText: '今天',
-		monthNames: ['一月','二月','三月','四月','五月','六月',
-		'七月','八月','九月','十月','十一月','十二月'],
-		monthNamesShort: ['一','二','三','四','五','六',
-		'七','八','九','十','十一','十二'],
-		dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
-		dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
-		dayNamesMin: ['日','一','二','三','四','五','六'],
-		weekHeader: '周',
-		dateFormat: 'dd-mm-yy',
-		firstDay: 0,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['zh-HK']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-TW.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-TW.js
deleted file mode 100644
index d211573..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-TW.js
+++ /dev/null
@@ -1,23 +0,0 @@
-﻿/* Chinese initialisation for the jQuery UI date picker plugin. */
-/* Written by Ressol (ressol@gmail.com). */
-jQuery(function($){
-	$.datepicker.regional['zh-TW'] = {
-		closeText: '關閉',
-		prevText: '&#x3c;上月',
-		nextText: '下月&#x3e;',
-		currentText: '今天',
-		monthNames: ['一月','二月','三月','四月','五月','六月',
-		'七月','八月','九月','十月','十一月','十二月'],
-		monthNamesShort: ['一','二','三','四','五','六',
-		'七','八','九','十','十一','十二'],
-		dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
-		dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
-		dayNamesMin: ['日','一','二','三','四','五','六'],
-		weekHeader: '周',
-		dateFormat: 'yy/mm/dd',
-		firstDay: 1,
-		isRTL: false,
-		showMonthAfterYear: true,
-		yearSuffix: '年'};
-	$.datepicker.setDefaults($.datepicker.regional['zh-TW']);
-});
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery-ui-1.8.11.custom.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery-ui-1.8.11.custom.js
deleted file mode 100644
index 41b4fd6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery-ui-1.8.11.custom.js
+++ /dev/null
@@ -1,11577 +0,0 @@
-/*!
- * jQuery UI 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function( $, undefined ) {
-
-// prevent duplicate loading
-// this is only a problem because we proxy existing functions
-// and we don't want to double proxy them
-$.ui = $.ui || {};
-if ( $.ui.version ) {
-	return;
-}
-
-$.extend( $.ui, {
-	version: "1.8.11",
-
-	keyCode: {
-		ALT: 18,
-		BACKSPACE: 8,
-		CAPS_LOCK: 20,
-		COMMA: 188,
-		COMMAND: 91,
-		COMMAND_LEFT: 91, // COMMAND
-		COMMAND_RIGHT: 93,
-		CONTROL: 17,
-		DELETE: 46,
-		DOWN: 40,
-		END: 35,
-		ENTER: 13,
-		ESCAPE: 27,
-		HOME: 36,
-		INSERT: 45,
-		LEFT: 37,
-		MENU: 93, // COMMAND_RIGHT
-		NUMPAD_ADD: 107,
-		NUMPAD_DECIMAL: 110,
-		NUMPAD_DIVIDE: 111,
-		NUMPAD_ENTER: 108,
-		NUMPAD_MULTIPLY: 106,
-		NUMPAD_SUBTRACT: 109,
-		PAGE_DOWN: 34,
-		PAGE_UP: 33,
-		PERIOD: 190,
-		RIGHT: 39,
-		SHIFT: 16,
-		SPACE: 32,
-		TAB: 9,
-		UP: 38,
-		WINDOWS: 91 // COMMAND
-	}
-});
-
-// plugins
-$.fn.extend({
-	_focus: $.fn.focus,
-	focus: function( delay, fn ) {
-		return typeof delay === "number" ?
-			this.each(function() {
-				var elem = this;
-				setTimeout(function() {
-					$( elem ).focus();
-					if ( fn ) {
-						fn.call( elem );
-					}
-				}, delay );
-			}) :
-			this._focus.apply( this, arguments );
-	},
-
-	scrollParent: function() {
-		var scrollParent;
-		if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
-			scrollParent = this.parents().filter(function() {
-				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		} else {
-			scrollParent = this.parents().filter(function() {
-				return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		}
-
-		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
-	},
-
-	zIndex: function( zIndex ) {
-		if ( zIndex !== undefined ) {
-			return this.css( "zIndex", zIndex );
-		}
-
-		if ( this.length ) {
-			var elem = $( this[ 0 ] ), position, value;
-			while ( elem.length && elem[ 0 ] !== document ) {
-				// Ignore z-index if position is set to a value where z-index is ignored by the browser
-				// This makes behavior of this function consistent across browsers
-				// WebKit always returns auto if the element is positioned
-				position = elem.css( "position" );
-				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
-					// IE returns 0 when zIndex is not specified
-					// other browsers return a string
-					// we ignore the case of nested elements with an explicit value of 0
-					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
-					value = parseInt( elem.css( "zIndex" ), 10 );
-					if ( !isNaN( value ) && value !== 0 ) {
-						return value;
-					}
-				}
-				elem = elem.parent();
-			}
-		}
-
-		return 0;
-	},
-
-	disableSelection: function() {
-		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
-			".ui-disableSelection", function( event ) {
-				event.preventDefault();
-			});
-	},
-
-	enableSelection: function() {
-		return this.unbind( ".ui-disableSelection" );
-	}
-});
-
-$.each( [ "Width", "Height" ], function( i, name ) {
-	var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
-		type = name.toLowerCase(),
-		orig = {
-			innerWidth: $.fn.innerWidth,
-			innerHeight: $.fn.innerHeight,
-			outerWidth: $.fn.outerWidth,
-			outerHeight: $.fn.outerHeight
-		};
-
-	function reduce( elem, size, border, margin ) {
-		$.each( side, function() {
-			size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
-			if ( border ) {
-				size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
-			}
-			if ( margin ) {
-				size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
-			}
-		});
-		return size;
-	}
-
-	$.fn[ "inner" + name ] = function( size ) {
-		if ( size === undefined ) {
-			return orig[ "inner" + name ].call( this );
-		}
-
-		return this.each(function() {
-			$( this ).css( type, reduce( this, size ) + "px" );
-		});
-	};
-
-	$.fn[ "outer" + name] = function( size, margin ) {
-		if ( typeof size !== "number" ) {
-			return orig[ "outer" + name ].call( this, size );
-		}
-
-		return this.each(function() {
-			$( this).css( type, reduce( this, size, true, margin ) + "px" );
-		});
-	};
-});
-
-// selectors
-function visible( element ) {
-	return !$( element ).parents().andSelf().filter(function() {
-		return $.curCSS( this, "visibility" ) === "hidden" ||
-			$.expr.filters.hidden( this );
-	}).length;
-}
-
-$.extend( $.expr[ ":" ], {
-	data: function( elem, i, match ) {
-		return !!$.data( elem, match[ 3 ] );
-	},
-
-	focusable: function( element ) {
-		var nodeName = element.nodeName.toLowerCase(),
-			tabIndex = $.attr( element, "tabindex" );
-		if ( "area" === nodeName ) {
-			var map = element.parentNode,
-				mapName = map.name,
-				img;
-			if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
-				return false;
-			}
-			img = $( "img[usemap=#" + mapName + "]" )[0];
-			return !!img && visible( img );
-		}
-		return ( /input|select|textarea|button|object/.test( nodeName )
-			? !element.disabled
-			: "a" == nodeName
-				? element.href || !isNaN( tabIndex )
-				: !isNaN( tabIndex ))
-			// the element and all of its ancestors must be visible
-			&& visible( element );
-	},
-
-	tabbable: function( element ) {
-		var tabIndex = $.attr( element, "tabindex" );
-		return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
-	}
-});
-
-// support
-$(function() {
-	var body = document.body,
-		div = body.appendChild( div = document.createElement( "div" ) );
-
-	$.extend( div.style, {
-		minHeight: "100px",
-		height: "auto",
-		padding: 0,
-		borderWidth: 0
-	});
-
-	$.support.minHeight = div.offsetHeight === 100;
-	$.support.selectstart = "onselectstart" in div;
-
-	// set display to none to avoid a layout bug in IE
-	// http://dev.jquery.com/ticket/4014
-	body.removeChild( div ).style.display = "none";
-});
-
-
-
-
-
-// deprecated
-$.extend( $.ui, {
-	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
-	plugin: {
-		add: function( module, option, set ) {
-			var proto = $.ui[ module ].prototype;
-			for ( var i in set ) {
-				proto.plugins[ i ] = proto.plugins[ i ] || [];
-				proto.plugins[ i ].push( [ option, set[ i ] ] );
-			}
-		},
-		call: function( instance, name, args ) {
-			var set = instance.plugins[ name ];
-			if ( !set || !instance.element[ 0 ].parentNode ) {
-				return;
-			}
-	
-			for ( var i = 0; i < set.length; i++ ) {
-				if ( instance.options[ set[ i ][ 0 ] ] ) {
-					set[ i ][ 1 ].apply( instance.element, args );
-				}
-			}
-		}
-	},
-	
-	// will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
-	contains: function( a, b ) {
-		return document.compareDocumentPosition ?
-			a.compareDocumentPosition( b ) & 16 :
-			a !== b && a.contains( b );
-	},
-	
-	// only used by resizable
-	hasScroll: function( el, a ) {
-	
-		//If overflow is hidden, the element might have extra content, but the user wants to hide it
-		if ( $( el ).css( "overflow" ) === "hidden") {
-			return false;
-		}
-	
-		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
-			has = false;
-	
-		if ( el[ scroll ] > 0 ) {
-			return true;
-		}
-	
-		// TODO: determine which cases actually cause this to happen
-		// if the element doesn't have the scroll set, see if it's possible to
-		// set the scroll
-		el[ scroll ] = 1;
-		has = ( el[ scroll ] > 0 );
-		el[ scroll ] = 0;
-		return has;
-	},
-	
-	// these are odd functions, fix the API or move into individual plugins
-	isOverAxis: function( x, reference, size ) {
-		//Determines when x coordinate is over "b" element axis
-		return ( x > reference ) && ( x < ( reference + size ) );
-	},
-	isOver: function( y, x, top, left, height, width ) {
-		//Determines when x, y coordinates is over "b" element
-		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
-	}
-});
-
-})( jQuery );
-/*!
- * jQuery UI Widget 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(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" );
-		}
-		_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 ],
-		fullName;
-	name = name.split( "." )[ 1 ];
-	fullName = namespace + "-" + name;
-
-	if ( !prototype ) {
-		prototype = base;
-		base = $.Widget;
-	}
-
-	// create selector for plugin
-	$.expr[ ":" ][ fullName ] = function( elem ) {
-		return !!$.data( elem, name );
-	};
-
-	$[ namespace ] = $[ namespace ] || {};
-	$[ namespace ][ name ] = function( options, element ) {
-		// allow instantiation without initializing for simple inheritance
-		if ( arguments.length ) {
-			this._createWidget( options, element );
-		}
-	};
-
-	var basePrototype = new base();
-	// we need to make the options hash a property directly on the new instance
-	// otherwise we'll modify the options hash on the prototype that we're
-	// inheriting from
-//	$.each( basePrototype, function( key, val ) {
-//		if ( $.isPlainObject(val) ) {
-//			basePrototype[ key ] = $.extend( {}, val );
-//		}
-//	});
-	basePrototype.options = $.extend( true, {}, basePrototype.options );
-	$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
-		namespace: namespace,
-		widgetName: name,
-		widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
-		widgetBaseClass: fullName
-	}, prototype );
-
-	$.widget.bridge( name, $[ namespace ][ name ] );
-};
-
-$.widget.bridge = function( name, object ) {
-	$.fn[ name ] = function( options ) {
-		var isMethodCall = typeof options === "string",
-			args = Array.prototype.slice.call( arguments, 1 ),
-			returnValue = this;
-
-		// allow multiple hashes to be passed on init
-		options = !isMethodCall && args.length ?
-			$.extend.apply( null, [ true, options ].concat(args) ) :
-			options;
-
-		// prevent calls to internal methods
-		if ( isMethodCall && options.charAt( 0 ) === "_" ) {
-			return returnValue;
-		}
-
-		if ( isMethodCall ) {
-			this.each(function() {
-				var instance = $.data( this, name ),
-					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;
-				}
-			});
-		} else {
-			this.each(function() {
-				var instance = $.data( this, name );
-				if ( instance ) {
-					instance.option( options || {} )._init();
-				} else {
-					$.data( this, name, new object( options, this ) );
-				}
-			});
-		}
-
-		return returnValue;
-	};
-};
-
-$.Widget = function( options, element ) {
-	// allow instantiation without initializing for simple inheritance
-	if ( arguments.length ) {
-		this._createWidget( options, element );
-	}
-};
-
-$.Widget.prototype = {
-	widgetName: "widget",
-	widgetEventPrefix: "",
-	options: {
-		disabled: false
-	},
-	_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
-		$.data( element, this.widgetName, this );
-		this.element = $( element );
-		this.options = $.extend( true, {},
-			this.options,
-			this._getCreateOptions(),
-			options );
-
-		var self = this;
-		this.element.bind( "remove." + this.widgetName, function() {
-			self.destroy();
-		});
-
-		this._create();
-		this._trigger( "create" );
-		this._init();
-	},
-	_getCreateOptions: function() {
-		return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
-	},
-	_create: function() {},
-	_init: function() {},
-
-	destroy: function() {
-		this.element
-			.unbind( "." + this.widgetName )
-			.removeData( this.widgetName );
-		this.widget()
-			.unbind( "." + this.widgetName )
-			.removeAttr( "aria-disabled" )
-			.removeClass(
-				this.widgetBaseClass + "-disabled " +
-				"ui-state-disabled" );
-	},
-
-	widget: function() {
-		return this.element;
-	},
-
-	option: function( key, value ) {
-		var options = key;
-
-		if ( arguments.length === 0 ) {
-			// don't return a reference to the internal hash
-			return $.extend( {}, this.options );
-		}
-
-		if  (typeof key === "string" ) {
-			if ( value === undefined ) {
-				return this.options[ key ];
-			}
-			options = {};
-			options[ key ] = value;
-		}
-
-		this._setOptions( options );
-
-		return this;
-	},
-	_setOptions: function( options ) {
-		var self = this;
-		$.each( options, function( key, value ) {
-			self._setOption( key, value );
-		});
-
-		return this;
-	},
-	_setOption: function( key, value ) {
-		this.options[ key ] = value;
-
-		if ( key === "disabled" ) {
-			this.widget()
-				[ value ? "addClass" : "removeClass"](
-					this.widgetBaseClass + "-disabled" + " " +
-					"ui-state-disabled" )
-				.attr( "aria-disabled", value );
-		}
-
-		return this;
-	},
-
-	enable: function() {
-		return this._setOption( "disabled", false );
-	},
-	disable: function() {
-		return this._setOption( "disabled", true );
-	},
-
-	_trigger: function( type, event, data ) {
-		var callback = this.options[ type ];
-
-		event = $.Event( event );
-		event.type = ( type === this.widgetEventPrefix ?
-			type :
-			this.widgetEventPrefix + type ).toLowerCase();
-		data = data || {};
-
-		// copy original event properties over to the new event
-		// this would happen if we could call $.event.fix instead of $.Event
-		// but we don't have a way to force an event to be fixed multiple times
-		if ( event.originalEvent ) {
-			for ( var i = $.event.props.length, prop; i; ) {
-				prop = $.event.props[ --i ];
-				event[ prop ] = event.originalEvent[ prop ];
-			}
-		}
-
-		this.element.trigger( event, data );
-
-		return !( $.isFunction(callback) &&
-			callback.call( this.element[0], event, data ) === false ||
-			event.isDefaultPrevented() );
-	}
-};
-
-})( jQuery );
-/*!
- * jQuery UI Mouse 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.mouse", {
-	options: {
-		cancel: ':input,option',
-		distance: 1,
-		delay: 0
-	},
-	_mouseInit: function() {
-		var self = this;
-
-		this.element
-			.bind('mousedown.'+this.widgetName, function(event) {
-				return self._mouseDown(event);
-			})
-			.bind('click.'+this.widgetName, function(event) {
-				if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
-				    $.removeData(event.target, self.widgetName + '.preventClickEvent');
-					event.stopImmediatePropagation();
-					return false;
-				}
-			});
-
-		this.started = false;
-	},
-
-	// TODO: make sure destroying one instance of mouse doesn't mess with
-	// other instances of mouse
-	_mouseDestroy: function() {
-		this.element.unbind('.'+this.widgetName);
-	},
-
-	_mouseDown: function(event) {
-		// don't let more than one widget handle mouseStart
-		// TODO: figure out why we have to use originalEvent
-		event.originalEvent = event.originalEvent || {};
-		if (event.originalEvent.mouseHandled) { return; }
-
-		// we may have missed mouseup (out of window)
-		(this._mouseStarted && this._mouseUp(event));
-
-		this._mouseDownEvent = event;
-
-		var self = this,
-			btnIsLeft = (event.which == 1),
-			elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
-		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
-			return true;
-		}
-
-		this.mouseDelayMet = !this.options.delay;
-		if (!this.mouseDelayMet) {
-			this._mouseDelayTimer = setTimeout(function() {
-				self.mouseDelayMet = true;
-			}, this.options.delay);
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted = (this._mouseStart(event) !== false);
-			if (!this._mouseStarted) {
-				event.preventDefault();
-				return true;
-			}
-		}
-
-		// Click event may never have fired (Gecko & Opera)
-		if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {
-			$.removeData(event.target, this.widgetName + '.preventClickEvent');
-		}
-
-		// these delegates are required to keep context
-		this._mouseMoveDelegate = function(event) {
-			return self._mouseMove(event);
-		};
-		this._mouseUpDelegate = function(event) {
-			return self._mouseUp(event);
-		};
-		$(document)
-			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		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 && !(document.documentMode >= 9) && !event.button) {
-			return this._mouseUp(event);
-		}
-
-		if (this._mouseStarted) {
-			this._mouseDrag(event);
-			return event.preventDefault();
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted =
-				(this._mouseStart(this._mouseDownEvent, event) !== false);
-			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
-		}
-
-		return !this._mouseStarted;
-	},
-
-	_mouseUp: function(event) {
-		$(document)
-			.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		if (this._mouseStarted) {
-			this._mouseStarted = false;
-
-			if (event.target == this._mouseDownEvent.target) {
-			    $.data(event.target, this.widgetName + '.preventClickEvent', true);
-			}
-
-			this._mouseStop(event);
-		}
-
-		return false;
-	},
-
-	_mouseDistanceMet: function(event) {
-		return (Math.max(
-				Math.abs(this._mouseDownEvent.pageX - event.pageX),
-				Math.abs(this._mouseDownEvent.pageY - event.pageY)
-			) >= this.options.distance
-		);
-	},
-
-	_mouseDelayMet: function(event) {
-		return this.mouseDelayMet;
-	},
-
-	// These are placeholder methods, to be overriden by extending plugin
-	_mouseStart: function(event) {},
-	_mouseDrag: function(event) {},
-	_mouseStop: function(event) {},
-	_mouseCapture: function(event) { return true; }
-});
-
-})(jQuery);
-/*
- * jQuery UI Position 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function( $, undefined ) {
-
-$.ui = $.ui || {};
-
-var horizontalPositions = /left|center|right/,
-	verticalPositions = /top|center|bottom/,
-	center = "center",
-	_position = $.fn.position,
-	_offset = $.fn.offset;
-
-$.fn.position = function( options ) {
-	if ( !options || !options.of ) {
-		return _position.apply( this, arguments );
-	}
-
-	// make a copy, we don't want to modify arguments
-	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 ( targetElem.nodeType === 9 ) {
-		targetWidth = target.width();
-		targetHeight = target.height();
-		basePosition = { top: 0, left: 0 };
-	// 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 ( targetElem.preventDefault ) {
-		// force left top to allow flipping
-		options.at = "left top";
-		targetWidth = targetHeight = 0;
-		basePosition = { top: options.of.pageY, left: options.of.pageX };
-	} else {
-		targetWidth = target.outerWidth();
-		targetHeight = target.outerHeight();
-		basePosition = target.offset();
-	}
-
-	// force my and at to have valid horizontal and veritcal positions
-	// if a value is missing or invalid, it will be converted to center 
-	$.each( [ "my", "at" ], function() {
-		var pos = ( options[this] || "" ).split( " " );
-		if ( pos.length === 1) {
-			pos = horizontalPositions.test( pos[0] ) ?
-				pos.concat( [center] ) :
-				verticalPositions.test( pos[0] ) ?
-					[ center ].concat( pos ) :
-					[ center, center ];
-		}
-		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
-		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
-		options[ this ] = pos;
-	});
-
-	// normalize collision option
-	if ( collision.length === 1 ) {
-		collision[ 1 ] = collision[ 0 ];
-	}
-
-	// normalize offset option
-	offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
-	if ( offset.length === 1 ) {
-		offset[ 1 ] = offset[ 0 ];
-	}
-	offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
-
-	if ( options.at[0] === "right" ) {
-		basePosition.left += targetWidth;
-	} else if ( options.at[0] === center ) {
-		basePosition.left += targetWidth / 2;
-	}
-
-	if ( options.at[1] === "bottom" ) {
-		basePosition.top += targetHeight;
-	} else if ( options.at[1] === center ) {
-		basePosition.top += targetHeight / 2;
-	}
-
-	basePosition.left += offset[ 0 ];
-	basePosition.top += offset[ 1 ];
-
-	return this.each(function() {
-		var elem = $( this ),
-			elemWidth = elem.outerWidth(),
-			elemHeight = elem.outerHeight(),
-			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] === center ) {
-			position.left -= elemWidth / 2;
-		}
-
-		if ( options.my[1] === "bottom" ) {
-			position.top -= elemHeight;
-		} 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, {
-					targetWidth: targetWidth,
-					targetHeight: targetHeight,
-					elemWidth: elemWidth,
-					elemHeight: elemHeight,
-					collisionPosition: collisionPosition,
-					collisionWidth: collisionWidth,
-					collisionHeight: collisionHeight,
-					offset: offset,
-					my: options.my,
-					at: options.at
-				});
-			}
-		});
-
-		if ( $.fn.bgiframe ) {
-			elem.bgiframe();
-		}
-		elem.offset( $.extend( position, { using: options.using } ) );
-	});
-};
-
-$.ui.position = {
-	fit: {
-		left: function( position, data ) {
-			var win = $( window ),
-				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 = 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 ) {
-				return;
-			}
-			var win = $( window ),
-				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 += data.collisionPosition.left < 0 ?
-				myOffset + atOffset + offset :
-				over > 0 ?
-					myOffset + atOffset + offset :
-					0;
-		},
-		top: function( position, data ) {
-			if ( data.at[1] === center ) {
-				return;
-			}
-			var win = $( window ),
-				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
-				myOffset = data.my[ 1 ] === "top" ?
-					-data.elemHeight :
-					data.my[ 1 ] === "bottom" ?
-						data.elemHeight :
-						0,
-				atOffset = data.at[ 1 ] === "top" ?
-					data.targetHeight :
-					-data.targetHeight,
-				offset = -2 * data.offset[ 1 ];
-			position.top += data.collisionPosition.top < 0 ?
-				myOffset + atOffset + offset :
-				over > 0 ?
-					myOffset + atOffset + offset :
-					0;
-		}
-	}
-};
-
-// offset setter from jQuery 1.4
-if ( !$.offset.setOffset ) {
-	$.offset.setOffset = function( elem, options ) {
-		// set position first, in-case top/left are set even on static elem
-		if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
-			elem.style.position = "relative";
-		}
-		var curElem   = $( elem ),
-			curOffset = curElem.offset(),
-			curTop    = parseInt( $.curCSS( elem, "top",  true ), 10 ) || 0,
-			curLeft   = parseInt( $.curCSS( elem, "left", true ), 10)  || 0,
-			props     = {
-				top:  (options.top  - curOffset.top)  + curTop,
-				left: (options.left - curOffset.left) + curLeft
-			};
-		
-		if ( 'using' in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	};
-
-	$.fn.offset = function( options ) {
-		var elem = this[ 0 ];
-		if ( !elem || !elem.ownerDocument ) { return null; }
-		if ( options ) { 
-			return this.each(function() {
-				$.offset.setOffset( this, options );
-			});
-		}
-		return _offset.call( this );
-	};
-}
-
-}( jQuery ));
-/*
- * jQuery UI Draggable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.draggable", $.ui.mouse, {
-	widgetEventPrefix: "drag",
-	options: {
-		addClasses: true,
-		appendTo: "parent",
-		axis: false,
-		connectToSortable: false,
-		containment: false,
-		cursor: "auto",
-		cursorAt: false,
-		grid: false,
-		handle: false,
-		helper: "original",
-		iframeFix: false,
-		opacity: false,
-		refreshPositions: false,
-		revert: false,
-		revertDuration: 500,
-		scope: "default",
-		scroll: true,
-		scrollSensitivity: 20,
-		scrollSpeed: 20,
-		snap: false,
-		snapMode: "both",
-		snapTolerance: 20,
-		stack: false,
-		zIndex: false
-	},
-	_create: function() {
-
-		if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
-			this.element[0].style.position = 'relative';
-
-		(this.options.addClasses && this.element.addClass("ui-draggable"));
-		(this.options.disabled && this.element.addClass("ui-draggable-disabled"));
-
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-		if(!this.element.data('draggable')) return;
-		this.element
-			.removeData("draggable")
-			.unbind(".draggable")
-			.removeClass("ui-draggable"
-				+ " ui-draggable-dragging"
-				+ " ui-draggable-disabled");
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_mouseCapture: function(event) {
-
-		var o = this.options;
-
-		// among others, prevent a drag on a resizable-handle
-		if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
-			return false;
-
-		//Quit if we're not on a valid handle
-		this.handle = this._getHandle(event);
-		if (!this.handle)
-			return false;
-
-		return true;
-
-	},
-
-	_mouseStart: function(event) {
-
-		var o = this.options;
-
-		//Create and append the visible helper
-		this.helper = this._createHelper(event);
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		//If ddmanager is used for droppables, set the global draggable
-		if($.ui.ddmanager)
-			$.ui.ddmanager.current = this;
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Store the helper's css position
-		this.cssPosition = this.helper.css("position");
-		this.scrollParent = this.helper.scrollParent();
-
-		//The element's absolute position on the page minus margins
-		this.offset = this.positionAbs = this.element.offset();
-		this.offset = {
-			top: this.offset.top - this.margins.top,
-			left: this.offset.left - this.margins.left
-		};
-
-		$.extend(this.offset, {
-			click: { //Where the click happened, relative to the element
-				left: event.pageX - this.offset.left,
-				top: event.pageY - this.offset.top
-			},
-			parent: this._getParentOffset(),
-			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
-		});
-
-		//Generate the original position
-		this.originalPosition = this.position = this._generatePosition(event);
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
-		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
-		//Set a containment if given in the options
-		if(o.containment)
-			this._setContainment();
-
-		//Trigger event + callbacks
-		if(this._trigger("start", event) === false) {
-			this._clear();
-			return false;
-		}
-
-		//Recache the helper size
-		this._cacheHelperProportions();
-
-		//Prepare the droppable offsets
-		if ($.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(this, event);
-
-		this.helper.addClass("ui-draggable-dragging");
-		this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-		return true;
-	},
-
-	_mouseDrag: function(event, noPropagation) {
-
-		//Compute the helpers position
-		this.position = this._generatePosition(event);
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		//Call plugins and callbacks and use the resulting position if something is returned
-		if (!noPropagation) {
-			var ui = this._uiHash();
-			if(this._trigger('drag', event, ui) === false) {
-				this._mouseUp({});
-				return false;
-			}
-			this.position = ui.position;
-		}
-
-		if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
-		if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
-		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-
-		//If we are using droppables, inform the manager about the drop
-		var dropped = false;
-		if ($.ui.ddmanager && !this.options.dropBehaviour)
-			dropped = $.ui.ddmanager.drop(this, event);
-
-		//if a drop comes from outside (a sortable)
-		if(this.dropped) {
-			dropped = this.dropped;
-			this.dropped = false;
-		}
-		
-		//if the original element is 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))) {
-			var self = this;
-			$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
-				if(self._trigger("stop", event) !== false) {
-					self._clear();
-				}
-			});
-		} else {
-			if(this._trigger("stop", event) !== false) {
-				this._clear();
-			}
-		}
-
-		return false;
-	},
-	
-	cancel: function() {
-		
-		if(this.helper.is(".ui-draggable-dragging")) {
-			this._mouseUp({});
-		} else {
-			this._clear();
-		}
-		
-		return this;
-		
-	},
-
-	_getHandle: function(event) {
-
-		var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
-		$(this.options.handle, this.element)
-			.find("*")
-			.andSelf()
-			.each(function() {
-				if(this == event.target) handle = true;
-			});
-
-		return handle;
-
-	},
-
-	_createHelper: function(event) {
-
-		var o = this.options;
-		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone() : this.element);
-
-		if(!helper.parents('body').length)
-			helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
-
-		if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
-			helper.css("position", "absolute");
-
-		return helper;
-
-	},
-
-	_adjustOffsetFromHelper: function(obj) {
-		if (typeof obj == 'string') {
-			obj = obj.split(' ');
-		}
-		if ($.isArray(obj)) {
-			obj = {left: +obj[0], top: +obj[1] || 0};
-		}
-		if ('left' in obj) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ('right' in obj) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ('top' in obj) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ('bottom' in obj) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_getParentOffset: function() {
-
-		//Get the offsetParent and cache its position
-		this.offsetParent = this.helper.offsetParent();
-		var po = this.offsetParent.offset();
-
-		// This is a special case where we need to modify a offset calculated on start, since the following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
-		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
-		if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
-		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
-			po = { top: 0, left: 0 };
-
-		return {
-			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
-			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-
-		if(this.cssPosition == "relative") {
-			var p = this.element.position();
-			return {
-				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
-				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
-			};
-		} else {
-			return { top: 0, left: 0 };
-		}
-
-	},
-
-	_cacheMargins: function() {
-		this.margins = {
-			left: (parseInt(this.element.css("marginLeft"),10) || 0),
-			top: (parseInt(this.element.css("marginTop"),10) || 0),
-			right: (parseInt(this.element.css("marginRight"),10) || 0),
-			bottom: (parseInt(this.element.css("marginBottom"),10) || 0)
-		};
-	},
-
-	_cacheHelperProportions: function() {
-		this.helperProportions = {
-			width: this.helper.outerWidth(),
-			height: this.helper.outerHeight()
-		};
-	},
-
-	_setContainment: function() {
-
-		var o = this.options;
-		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
-		if(o.containment == 'document' || o.containment == 'window') this.containment = [
-			(o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left,
-			(o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top,
-			(o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
-			(o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
-		];
-
-		if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
-			var ce = $(o.containment)[0]; if(!ce) return;
-			var co = $(o.containment).offset();
-			var over = ($(ce).css("overflow") != 'hidden');
-
-			this.containment = [
-				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;
-		}
-
-	},
-
-	_convertPositionTo: function(d, pos) {
-
-		if(!pos) pos = this.position;
-		var mod = d == "absolute" ? 1 : -1;
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		return {
-			top: (
-				pos.top																	// The absolute mouse position
-				+ this.offset.relative.top * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.top * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
-			),
-			left: (
-				pos.left																// The absolute mouse position
-				+ this.offset.relative.left * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.left * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
-			)
-		};
-
-	},
-
-	_generatePosition: function(event) {
-
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-		var pageX = event.pageX;
-		var pageY = event.pageY;
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
-			if(this.containment) {
-				if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
-				if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
-			}
-
-			if(o.grid) {
-				var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
-				pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
-				var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
-				pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
-			}
-
-		}
-
-		return {
-			top: (
-				pageY																// The absolute mouse position
-				- this.offset.click.top													// Click offset (relative to the element)
-				- this.offset.relative.top												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.top												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
-			),
-			left: (
-				pageX																// The absolute mouse position
-				- this.offset.click.left												// Click offset (relative to the element)
-				- this.offset.relative.left												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.left												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
-			)
-		};
-
-	},
-
-	_clear: function() {
-		this.helper.removeClass("ui-draggable-dragging");
-		if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
-		//if($.ui.ddmanager) $.ui.ddmanager.current = null;
-		this.helper = null;
-		this.cancelHelperRemoval = false;
-	},
-
-	// From now on bulk stuff - mainly helpers
-
-	_trigger: function(type, event, ui) {
-		ui = ui || this._uiHash();
-		$.ui.plugin.call(this, type, [event, ui]);
-		if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins
-		return $.Widget.prototype._trigger.call(this, type, event, ui);
-	},
-
-	plugins: {},
-
-	_uiHash: function(event) {
-		return {
-			helper: this.helper,
-			position: this.position,
-			originalPosition: this.originalPosition,
-			offset: this.positionAbs
-		};
-	}
-
-});
-
-$.extend($.ui.draggable, {
-	version: "1.8.11"
-});
-
-$.ui.plugin.add("draggable", "connectToSortable", {
-	start: function(event, ui) {
-
-		var inst = $(this).data("draggable"), o = inst.options,
-			uiSortable = $.extend({}, ui, { item: inst.element });
-		inst.sortables = [];
-		$(o.connectToSortable).each(function() {
-			var sortable = $.data(this, 'sortable');
-			if (sortable && !sortable.options.disabled) {
-				inst.sortables.push({
-					instance: sortable,
-					shouldRevert: sortable.options.revert
-				});
-				sortable.refreshPositions();	// Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page).
-				sortable._trigger("activate", event, uiSortable);
-			}
-		});
-
-	},
-	stop: function(event, ui) {
-
-		//If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
-		var inst = $(this).data("draggable"),
-			uiSortable = $.extend({}, ui, { item: inst.element });
-
-		$.each(inst.sortables, function() {
-			if(this.instance.isOver) {
-
-				this.instance.isOver = 0;
-
-				inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
-				this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
-
-				//The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'
-				if(this.shouldRevert) this.instance.options.revert = true;
-
-				//Trigger the stop of the sortable
-				this.instance._mouseStop(event);
-
-				this.instance.options.helper = this.instance.options._helper;
-
-				//If the helper has been the original item, restore properties in the sortable
-				if(inst.options.helper == 'original')
-					this.instance.currentItem.css({ top: 'auto', left: 'auto' });
-
-			} else {
-				this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
-				this.instance._trigger("deactivate", event, uiSortable);
-			}
-
-		});
-
-	},
-	drag: function(event, ui) {
-
-		var inst = $(this).data("draggable"), self = this;
-
-		var checkPos = function(o) {
-			var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
-			var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
-			var itemHeight = o.height, itemWidth = o.width;
-			var itemTop = o.top, itemLeft = o.left;
-
-			return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
-		};
-
-		$.each(inst.sortables, function(i) {
-			
-			//Copy over some variables to allow calling the sortable's native _intersectsWith
-			this.instance.positionAbs = inst.positionAbs;
-			this.instance.helperProportions = inst.helperProportions;
-			this.instance.offset.click = inst.offset.click;
-			
-			if(this.instance._intersectsWith(this.instance.containerCache)) {
-
-				//If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
-				if(!this.instance.isOver) {
-
-					this.instance.isOver = 1;
-					//Now we fake the start of dragging for the sortable instance,
-					//by cloning the list group item, appending it to the sortable and using it as inst.currentItem
-					//We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
-					this.instance.currentItem = $(self).clone().appendTo(this.instance.element).data("sortable-item", true);
-					this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
-					this.instance.options.helper = function() { return ui.helper[0]; };
-
-					event.target = this.instance.currentItem[0];
-					this.instance._mouseCapture(event, true);
-					this.instance._mouseStart(event, true, true);
-
-					//Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes
-					this.instance.offset.click.top = inst.offset.click.top;
-					this.instance.offset.click.left = inst.offset.click.left;
-					this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
-					this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
-
-					inst._trigger("toSortable", event);
-					inst.dropped = this.instance.element; //draggable revert needs that
-					//hack so receive/update callbacks work (mostly)
-					inst.currentItem = inst.element;
-					this.instance.fromOutside = inst;
-
-				}
-
-				//Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
-				if(this.instance.currentItem) this.instance._mouseDrag(event);
-
-			} else {
-
-				//If it doesn't intersect with the sortable, and it intersected before,
-				//we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
-				if(this.instance.isOver) {
-
-					this.instance.isOver = 0;
-					this.instance.cancelHelperRemoval = true;
-					
-					//Prevent reverting on this forced stop
-					this.instance.options.revert = false;
-					
-					// The out event needs to be triggered independently
-					this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-					
-					this.instance._mouseStop(event, true);
-					this.instance.options.helper = this.instance.options._helper;
-
-					//Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
-					this.instance.currentItem.remove();
-					if(this.instance.placeholder) this.instance.placeholder.remove();
-
-					inst._trigger("fromSortable", event);
-					inst.dropped = false; //draggable revert needs that
-				}
-
-			};
-
-		});
-
-	}
-});
-
-$.ui.plugin.add("draggable", "cursor", {
-	start: function(event, ui) {
-		var t = $('body'), o = $(this).data('draggable').options;
-		if (t.css("cursor")) o._cursor = t.css("cursor");
-		t.css("cursor", o.cursor);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		if (o._cursor) $('body').css("cursor", o._cursor);
-	}
-});
-
-$.ui.plugin.add("draggable", "iframeFix", {
-	start: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		$(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
-			$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
-			.css({
-				width: this.offsetWidth+"px", height: this.offsetHeight+"px",
-				position: "absolute", opacity: "0.001", zIndex: 1000
-			})
-			.css($(this).offset())
-			.appendTo("body");
-		});
-	},
-	stop: function(event, ui) {
-		$("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //Remove frame helpers
-	}
-});
-
-$.ui.plugin.add("draggable", "opacity", {
-	start: function(event, ui) {
-		var t = $(ui.helper), o = $(this).data('draggable').options;
-		if(t.css("opacity")) o._opacity = t.css("opacity");
-		t.css('opacity', o.opacity);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		if(o._opacity) $(ui.helper).css('opacity', o._opacity);
-	}
-});
-
-$.ui.plugin.add("draggable", "scroll", {
-	start: function(event, ui) {
-		var i = $(this).data("draggable");
-		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
-	},
-	drag: function(event, ui) {
-
-		var i = $(this).data("draggable"), o = i.options, scrolled = false;
-
-		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
-
-			if(!o.axis || o.axis != 'x') {
-				if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
-					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
-				else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)
-					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
-			}
-
-			if(!o.axis || o.axis != 'y') {
-				if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
-					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
-				else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)
-					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
-			}
-
-		} else {
-
-			if(!o.axis || o.axis != 'x') {
-				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
-				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
-			}
-
-			if(!o.axis || o.axis != 'y') {
-				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
-				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
-			}
-
-		}
-
-		if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(i, event);
-
-	}
-});
-
-$.ui.plugin.add("draggable", "snap", {
-	start: function(event, ui) {
-
-		var i = $(this).data("draggable"), o = i.options;
-		i.snapElements = [];
-
-		$(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {
-			var $t = $(this); var $o = $t.offset();
-			if(this != i.element[0]) i.snapElements.push({
-				item: this,
-				width: $t.outerWidth(), height: $t.outerHeight(),
-				top: $o.top, left: $o.left
-			});
-		});
-
-	},
-	drag: function(event, ui) {
-
-		var inst = $(this).data("draggable"), o = inst.options;
-		var d = o.snapTolerance;
-
-		var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
-			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
-
-		for (var i = inst.snapElements.length - 1; i >= 0; i--){
-
-			var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,
-				t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
-
-			//Yes, I know, this is insane ;)
-			if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {
-				if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
-				inst.snapElements[i].snapping = false;
-				continue;
-			}
-
-			if(o.snapMode != 'inner') {
-				var ts = Math.abs(t - y2) <= d;
-				var bs = Math.abs(b - y1) <= d;
-				var ls = Math.abs(l - x2) <= d;
-				var rs = Math.abs(r - x1) <= d;
-				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
-				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
-				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
-				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
-			}
-
-			var first = (ts || bs || ls || rs);
-
-			if(o.snapMode != 'outer') {
-				var ts = Math.abs(t - y1) <= d;
-				var bs = Math.abs(b - y2) <= d;
-				var ls = Math.abs(l - x1) <= d;
-				var rs = Math.abs(r - x2) <= d;
-				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
-				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
-				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
-				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
-			}
-
-			if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
-				(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
-			inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
-
-		};
-
-	}
-});
-
-$.ui.plugin.add("draggable", "stack", {
-	start: function(event, ui) {
-
-		var o = $(this).data("draggable").options;
-
-		var group = $.makeArray($(o.stack)).sort(function(a,b) {
-			return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
-		});
-		if (!group.length) { return; }
-		
-		var min = parseInt(group[0].style.zIndex) || 0;
-		$(group).each(function(i) {
-			this.style.zIndex = min + i;
-		});
-
-		this[0].style.zIndex = min + group.length;
-
-	}
-});
-
-$.ui.plugin.add("draggable", "zIndex", {
-	start: function(event, ui) {
-		var t = $(ui.helper), o = $(this).data("draggable").options;
-		if(t.css("zIndex")) o._zIndex = t.css("zIndex");
-		t.css('zIndex', o.zIndex);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data("draggable").options;
-		if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
-	}
-});
-
-})(jQuery);
-/*
- * jQuery UI Droppable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.droppable", {
-	widgetEventPrefix: "drop",
-	options: {
-		accept: '*',
-		activeClass: false,
-		addClasses: true,
-		greedy: false,
-		hoverClass: false,
-		scope: 'default',
-		tolerance: 'intersect'
-	},
-	_create: function() {
-
-		var o = this.options, accept = o.accept;
-		this.isover = 0; this.isout = 1;
-
-		this.accept = $.isFunction(accept) ? accept : function(d) {
-			return d.is(accept);
-		};
-
-		//Store the droppable's proportions
-		this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
-
-		// Add the reference and positions to the manager
-		$.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
-		$.ui.ddmanager.droppables[o.scope].push(this);
-
-		(o.addClasses && this.element.addClass("ui-droppable"));
-
-	},
-
-	destroy: function() {
-		var drop = $.ui.ddmanager.droppables[this.options.scope];
-		for ( var i = 0; i < drop.length; i++ )
-			if ( drop[i] == this )
-				drop.splice(i, 1);
-
-		this.element
-			.removeClass("ui-droppable ui-droppable-disabled")
-			.removeData("droppable")
-			.unbind(".droppable");
-
-		return this;
-	},
-
-	_setOption: function(key, value) {
-
-		if(key == 'accept') {
-			this.accept = $.isFunction(value) ? value : function(d) {
-				return d.is(value);
-			};
-		}
-		$.Widget.prototype._setOption.apply(this, arguments);
-	},
-
-	_activate: function(event) {
-		var draggable = $.ui.ddmanager.current;
-		if(this.options.activeClass) this.element.addClass(this.options.activeClass);
-		(draggable && this._trigger('activate', event, this.ui(draggable)));
-	},
-
-	_deactivate: function(event) {
-		var draggable = $.ui.ddmanager.current;
-		if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
-		(draggable && this._trigger('deactivate', event, this.ui(draggable)));
-	},
-
-	_over: function(event) {
-
-		var draggable = $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
-		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
-			this._trigger('over', event, this.ui(draggable));
-		}
-
-	},
-
-	_out: function(event) {
-
-		var draggable = $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
-		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
-			this._trigger('out', event, this.ui(draggable));
-		}
-
-	},
-
-	_drop: function(event,custom) {
-
-		var draggable = custom || $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element
-
-		var childrenIntersection = false;
-		this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
-			var inst = $.data(this, 'droppable');
-			if(
-				inst.options.greedy
-				&& !inst.options.disabled
-				&& inst.options.scope == draggable.options.scope
-				&& inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
-				&& $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
-			) { childrenIntersection = true; return false; }
-		});
-		if(childrenIntersection) return false;
-
-		if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
-			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
-			this._trigger('drop', event, this.ui(draggable));
-			return this.element;
-		}
-
-		return false;
-
-	},
-
-	ui: function(c) {
-		return {
-			draggable: (c.currentItem || c.element),
-			helper: c.helper,
-			position: c.position,
-			offset: c.positionAbs
-		};
-	}
-
-});
-
-$.extend($.ui.droppable, {
-	version: "1.8.11"
-});
-
-$.ui.intersect = function(draggable, droppable, toleranceMode) {
-
-	if (!droppable.offset) return false;
-
-	var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
-		y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
-	var l = droppable.offset.left, r = l + droppable.proportions.width,
-		t = droppable.offset.top, b = t + droppable.proportions.height;
-
-	switch (toleranceMode) {
-		case 'fit':
-			return (l <= x1 && x2 <= r
-				&& t <= y1 && y2 <= b);
-			break;
-		case 'intersect':
-			return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
-				&& x2 - (draggable.helperProportions.width / 2) < r // Left Half
-				&& t < y1 + (draggable.helperProportions.height / 2) // Bottom Half
-				&& y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
-			break;
-		case 'pointer':
-			var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),
-				draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),
-				isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
-			return isOver;
-			break;
-		case 'touch':
-			return (
-					(y1 >= t && y1 <= b) ||	// Top edge touching
-					(y2 >= t && y2 <= b) ||	// Bottom edge touching
-					(y1 < t && y2 > b)		// Surrounded vertically
-				) && (
-					(x1 >= l && x1 <= r) ||	// Left edge touching
-					(x2 >= l && x2 <= r) ||	// Right edge touching
-					(x1 < l && x2 > r)		// Surrounded horizontally
-				);
-			break;
-		default:
-			return false;
-			break;
-		}
-
-};
-
-/*
-	This manager tracks offsets of draggables and droppables
-*/
-$.ui.ddmanager = {
-	current: null,
-	droppables: { 'default': [] },
-	prepareOffsets: function(t, event) {
-
-		var m = $.ui.ddmanager.droppables[t.options.scope] || [];
-		var type = event ? event.type : null; // workaround for #2317
-		var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();
-
-		droppablesLoop: for (var i = 0; i < m.length; i++) {
-
-			if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue;	//No disabled and non-accepted
-			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 };
-
-		}
-
-	},
-	drop: function(draggable, event) {
-
-		var dropped = false;
-		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
-			if(!this.options) return;
-			if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
-				dropped = dropped || this._drop.call(this, event);
-
-			if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-				this.isout = 1; this.isover = 0;
-				this._deactivate.call(this, event);
-			}
-
-		});
-		return dropped;
-
-	},
-	drag: function(draggable, event) {
-
-		//If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
-		if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
-
-		//Run through all droppables and check their positions based on specific tolerance options
-		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
-			if(this.options.disabled || this.greedyChild || !this.visible) return;
-			var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
-
-			var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
-			if(!c) return;
-
-			var parentInstance;
-			if (this.options.greedy) {
-				var parent = this.element.parents(':data(droppable):eq(0)');
-				if (parent.length) {
-					parentInstance = $.data(parent[0], 'droppable');
-					parentInstance.greedyChild = (c == 'isover' ? 1 : 0);
-				}
-			}
-
-			// we just moved into a greedy child
-			if (parentInstance && c == 'isover') {
-				parentInstance['isover'] = 0;
-				parentInstance['isout'] = 1;
-				parentInstance._out.call(parentInstance, event);
-			}
-
-			this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;
-			this[c == "isover" ? "_over" : "_out"].call(this, event);
-
-			// we just moved out of a greedy child
-			if (parentInstance && c == 'isout') {
-				parentInstance['isout'] = 0;
-				parentInstance['isover'] = 1;
-				parentInstance._over.call(parentInstance, event);
-			}
-		});
-
-	}
-};
-
-})(jQuery);
-/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.resizable", $.ui.mouse, {
-	widgetEventPrefix: "resize",
-	options: {
-		alsoResize: false,
-		animate: false,
-		animateDuration: "slow",
-		animateEasing: "swing",
-		aspectRatio: false,
-		autoHide: false,
-		containment: false,
-		ghost: false,
-		grid: false,
-		handles: "e,s,se",
-		helper: false,
-		maxHeight: null,
-		maxWidth: null,
-		minHeight: 10,
-		minWidth: 10,
-		zIndex: 1000
-	},
-	_create: function() {
-
-		var self = this, o = this.options;
-		this.element.addClass("ui-resizable");
-
-		$.extend(this, {
-			_aspectRatio: !!(o.aspectRatio),
-			aspectRatio: o.aspectRatio,
-			originalElement: this.element,
-			_proportionallyResizeElements: [],
-			_helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null
-		});
-
-		//Wrap the element if it cannot hold child nodes
-		if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
-
-			//Opera fix for relative positioning
-			if (/relative/.test(this.element.css('position')) && $.browser.opera)
-				this.element.css({ position: 'relative', top: 'auto', left: 'auto' });
-
-			//Create a wrapper element and set the wrapper to the new current internal element
-			this.element.wrap(
-				$('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
-					position: this.element.css('position'),
-					width: this.element.outerWidth(),
-					height: this.element.outerHeight(),
-					top: this.element.css('top'),
-					left: this.element.css('left')
-				})
-			);
-
-			//Overwrite the original this.element
-			this.element = this.element.parent().data(
-				"resizable", this.element.data('resizable')
-			);
-
-			this.elementIsWrapper = true;
-
-			//Move margins to the wrapper
-			this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
-			this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});
-
-			//Prevent Safari textarea resize
-			this.originalResizeStyle = this.originalElement.css('resize');
-			this.originalElement.css('resize', 'none');
-
-			//Push the actual element to our proportionallyResize internal array
-			this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
-
-			// avoid IE jump (hard set the margin)
-			this.originalElement.css({ margin: this.originalElement.css('margin') });
-
-			// fix handlers offset
-			this._proportionallyResize();
-
-		}
-
-		this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });
-		if(this.handles.constructor == String) {
-
-			if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';
-			var n = this.handles.split(","); this.handles = {};
-
-			for(var i = 0; i < n.length; i++) {
-
-				var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;
-				var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');
-
-				// increase zIndex of sw, se, ne, nw axis
-				//TODO : this modifies original option
-				if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });
-
-				//TODO : What's going on here?
-				if ('se' == handle) {
-					axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
-				};
-
-				//Insert into internal handles object and append to element
-				this.handles[handle] = '.ui-resizable-'+handle;
-				this.element.append(axis);
-			}
-
-		}
-
-		this._renderAxis = function(target) {
-
-			target = target || this.element;
-
-			for(var i in this.handles) {
-
-				if(this.handles[i].constructor == String)
-					this.handles[i] = $(this.handles[i], this.element).show();
-
-				//Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
-				if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
-
-					var axis = $(this.handles[i], this.element), padWrapper = 0;
-
-					//Checking the correct pad and border
-					padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
-
-					//The padding type i have to apply...
-					var padPos = [ 'padding',
-						/ne|nw|n/.test(i) ? 'Top' :
-						/se|sw|s/.test(i) ? 'Bottom' :
-						/^e$/.test(i) ? 'Right' : 'Left' ].join("");
-
-					target.css(padPos, padWrapper);
-
-					this._proportionallyResize();
-
-				}
-
-				//TODO: What's that good for? There's not anything to be executed left
-				if(!$(this.handles[i]).length)
-					continue;
-
-			}
-		};
-
-		//TODO: make renderAxis a prototype function
-		this._renderAxis(this.element);
-
-		this._handles = $('.ui-resizable-handle', this.element)
-			.disableSelection();
-
-		//Matching axis name
-		this._handles.mouseover(function() {
-			if (!self.resizing) {
-				if (this.className)
-					var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
-				//Axis, default = se
-				self.axis = axis && axis[1] ? axis[1] : 'se';
-			}
-		});
-
-		//If we want to auto hide the elements
-		if (o.autoHide) {
-			this._handles.hide();
-			$(this.element)
-				.addClass("ui-resizable-autohide")
-				.hover(function() {
-					$(this).removeClass("ui-resizable-autohide");
-					self._handles.show();
-				},
-				function(){
-					if (!self.resizing) {
-						$(this).addClass("ui-resizable-autohide");
-						self._handles.hide();
-					}
-				});
-		}
-
-		//Initialize the mouse interaction
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-
-		this._mouseDestroy();
-
-		var _destroy = function(exp) {
-			$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
-				.removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
-		};
-
-		//TODO: Unwrap at same DOM position
-		if (this.elementIsWrapper) {
-			_destroy(this.element);
-			var wrapper = this.element;
-			wrapper.after(
-				this.originalElement.css({
-					position: wrapper.css('position'),
-					width: wrapper.outerWidth(),
-					height: wrapper.outerHeight(),
-					top: wrapper.css('top'),
-					left: wrapper.css('left')
-				})
-			).remove();
-		}
-
-		this.originalElement.css('resize', this.originalResizeStyle);
-		_destroy(this.originalElement);
-
-		return this;
-	},
-
-	_mouseCapture: function(event) {
-		var handle = false;
-		for (var i in this.handles) {
-			if ($(this.handles[i])[0] == event.target) {
-				handle = true;
-			}
-		}
-
-		return !this.options.disabled && handle;
-	},
-
-	_mouseStart: function(event) {
-
-		var o = this.options, iniPos = this.element.position(), el = this.element;
-
-		this.resizing = true;
-		this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
-
-		// bugfix for http://dev.jquery.com/ticket/1749
-		if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
-			el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
-		}
-
-		//Opera fixing relative position
-		if ($.browser.opera && (/relative/).test(el.css('position')))
-			el.css({ position: 'relative', top: 'auto', left: 'auto' });
-
-		this._renderProxy();
-
-		var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
-
-		if (o.containment) {
-			curleft += $(o.containment).scrollLeft() || 0;
-			curtop += $(o.containment).scrollTop() || 0;
-		}
-
-		//Store needed variables
-		this.offset = this.helper.offset();
-		this.position = { left: curleft, top: curtop };
-		this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
-		this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
-		this.originalPosition = { left: curleft, top: curtop };
-		this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
-		this.originalMousePosition = { left: event.pageX, top: event.pageY };
-
-		//Aspect Ratio
-		this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
-
-	    var cursor = $('.ui-resizable-' + this.axis).css('cursor');
-	    $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);
-
-		el.addClass("ui-resizable-resizing");
-		this._propagate("start", event);
-		return true;
-	},
-
-	_mouseDrag: function(event) {
-
-		//Increase performance, avoid regex
-		var el = this.helper, o = this.options, props = {},
-			self = this, smp = this.originalMousePosition, a = this.axis;
-
-		var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;
-		var trigger = this._change[a];
-		if (!trigger) return false;
-
-		// Calculate the attrs that will be change
-		var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
-
-		if (this._aspectRatio || event.shiftKey)
-			data = this._updateRatio(data, event);
-
-		data = this._respectSize(data, event);
-
-		// plugins callbacks need to be called first
-		this._propagate("resize", event);
-
-		el.css({
-			top: this.position.top + "px", left: this.position.left + "px",
-			width: this.size.width + "px", height: this.size.height + "px"
-		});
-
-		if (!this._helper && this._proportionallyResizeElements.length)
-			this._proportionallyResize();
-
-		this._updateCache(data);
-
-		// calling the user callback at the end
-		this._trigger('resize', event, this.ui());
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-
-		this.resizing = false;
-		var o = this.options, self = this;
-
-		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;
-
-			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;
-
-			if (!o.animate)
-				this.element.css($.extend(s, { top: top, left: left }));
-
-			self.helper.height(self.size.height);
-			self.helper.width(self.size.width);
-
-			if (this._helper && !o.animate) this._proportionallyResize();
-		}
-
-		$('body').css('cursor', 'auto');
-
-		this.element.removeClass("ui-resizable-resizing");
-
-		this._propagate("stop", event);
-
-		if (this._helper) this.helper.remove();
-		return false;
-
-	},
-
-	_updateCache: function(data) {
-		var o = this.options;
-		this.offset = this.helper.offset();
-		if (isNumber(data.left)) this.position.left = data.left;
-		if (isNumber(data.top)) this.position.top = data.top;
-		if (isNumber(data.height)) this.size.height = data.height;
-		if (isNumber(data.width)) this.size.width = data.width;
-	},
-
-	_updateRatio: function(data, event) {
-
-		var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
-
-		if (data.height) data.width = (csize.height * this.aspectRatio);
-		else if (data.width) data.height = (csize.width / this.aspectRatio);
-
-		if (a == 'sw') {
-			data.left = cpos.left + (csize.width - data.width);
-			data.top = null;
-		}
-		if (a == 'nw') {
-			data.top = cpos.top + (csize.height - data.height);
-			data.left = cpos.left + (csize.width - data.width);
-		}
-
-		return data;
-	},
-
-	_respectSize: function(data, event) {
-
-		var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
-				ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
-					isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
-
-		if (isminw) data.width = o.minWidth;
-		if (isminh) data.height = o.minHeight;
-		if (ismaxw) data.width = o.maxWidth;
-		if (ismaxh) data.height = o.maxHeight;
-
-		var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
-		var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
-
-		if (isminw && cw) data.left = dw - o.minWidth;
-		if (ismaxw && cw) data.left = dw - o.maxWidth;
-		if (isminh && ch)	data.top = dh - o.minHeight;
-		if (ismaxh && ch)	data.top = dh - o.maxHeight;
-
-		// fixing jump error on top/left - bug #2330
-		var isNotwh = !data.width && !data.height;
-		if (isNotwh && !data.left && data.top) data.top = null;
-		else if (isNotwh && !data.top && data.left) data.left = null;
-
-		return data;
-	},
-
-	_proportionallyResize: function() {
-
-		var o = this.options;
-		if (!this._proportionallyResizeElements.length) return;
-		var element = this.helper || this.element;
-
-		for (var i=0; i < this._proportionallyResizeElements.length; i++) {
-
-			var prel = this._proportionallyResizeElements[i];
-
-			if (!this.borderDif) {
-				var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],
-					p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
-
-				this.borderDif = $.map(b, function(v, i) {
-					var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;
-					return border + padding;
-				});
-			}
-
-			if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))
-				continue;
-
-			prel.css({
-				height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
-				width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
-			});
-
-		};
-
-	},
-
-	_renderProxy: function() {
-
-		var el = this.element, o = this.options;
-		this.elementOffset = el.offset();
-
-		if(this._helper) {
-
-			this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
-
-			// fix ie6 offset TODO: This seems broken
-			var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),
-			pxyoffset = ( ie6 ? 2 : -1 );
-
-			this.helper.addClass(this._helper).css({
-				width: this.element.outerWidth() + pxyoffset,
-				height: this.element.outerHeight() + pxyoffset,
-				position: 'absolute',
-				left: this.elementOffset.left - ie6offset +'px',
-				top: this.elementOffset.top - ie6offset +'px',
-				zIndex: ++o.zIndex //TODO: Don't modify option
-			});
-
-			this.helper
-				.appendTo("body")
-				.disableSelection();
-
-		} else {
-			this.helper = this.element;
-		}
-
-	},
-
-	_change: {
-		e: function(event, dx, dy) {
-			return { width: this.originalSize.width + dx };
-		},
-		w: function(event, dx, dy) {
-			var o = this.options, cs = this.originalSize, sp = this.originalPosition;
-			return { left: sp.left + dx, width: cs.width - dx };
-		},
-		n: function(event, dx, dy) {
-			var o = this.options, cs = this.originalSize, sp = this.originalPosition;
-			return { top: sp.top + dy, height: cs.height - dy };
-		},
-		s: function(event, dx, dy) {
-			return { height: this.originalSize.height + dy };
-		},
-		se: function(event, dx, dy) {
-			return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
-		},
-		sw: function(event, dx, dy) {
-			return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
-		},
-		ne: function(event, dx, dy) {
-			return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
-		},
-		nw: function(event, dx, dy) {
-			return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
-		}
-	},
-
-	_propagate: function(n, event) {
-		$.ui.plugin.call(this, n, [event, this.ui()]);
-		(n != "resize" && this._trigger(n, event, this.ui()));
-	},
-
-	plugins: {},
-
-	ui: function() {
-		return {
-			originalElement: this.originalElement,
-			element: this.element,
-			helper: this.helper,
-			position: this.position,
-			size: this.size,
-			originalSize: this.originalSize,
-			originalPosition: this.originalPosition
-		};
-	}
-
-});
-
-$.extend($.ui.resizable, {
-	version: "1.8.11"
-});
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add("resizable", "alsoResize", {
-
-	start: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		var _store = function (exp) {
-			$(exp).each(function() {
-				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) { _store(exp); }); }
-		}else{
-			_store(o.alsoResize);
-		}
-	},
-
-	resize: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
-
-		var delta = {
-			height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,
-			top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
-		},
-
-		_alsoResize = function (exp, c) {
-			$(exp).each(function() {
-				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, function (i, prop) {
-					var sum = (start[prop]||0) + (delta[prop]||0);
-					if (sum && sum >= 0)
-						style[prop] = sum || null;
-				});
-
-				// Opera fixing relative position
-				if ($.browser.opera && /relative/.test(el.css('position'))) {
-					self._revertToRelativePosition = true;
-					el.css({ position: 'absolute', top: 'auto', left: 'auto' });
-				}
-
-				el.css(style);
-			});
-		};
-
-		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-			$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
-		}else{
-			_alsoResize(o.alsoResize);
-		}
-	},
-
-	stop: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		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;
-			if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-				$.each(o.alsoResize, function (exp) { _reset(exp); });
-			}else{
-				_reset(o.alsoResize);
-			}
-		}
-
-		$(this).removeData("resizable-alsoresize");
-	}
-});
-
-$.ui.plugin.add("resizable", "animate", {
-
-	stop: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		var pr = self._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;
-
-		var style = { width: (self.size.width - soffsetw), height: (self.size.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;
-
-		self.element.animate(
-			$.extend(style, top && left ? { top: top, left: left } : {}), {
-				duration: o.animateDuration,
-				easing: o.animateEasing,
-				step: function() {
-
-					var data = {
-						width: parseInt(self.element.css('width'), 10),
-						height: parseInt(self.element.css('height'), 10),
-						top: parseInt(self.element.css('top'), 10),
-						left: parseInt(self.element.css('left'), 10)
-					};
-
-					if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
-
-					// propagating resize, and updating values for each animation step
-					self._updateCache(data);
-					self._propagate("resize", event);
-
-				}
-			}
-		);
-	}
-
-});
-
-$.ui.plugin.add("resizable", "containment", {
-
-	start: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options, el = self.element;
-		var oc = o.containment,	ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
-		if (!ce) return;
-
-		self.containerElement = $(ce);
-
-		if (/document/.test(oc) || oc == document) {
-			self.containerOffset = { left: 0, top: 0 };
-			self.containerPosition = { left: 0, top: 0 };
-
-			self.parentData = {
-				element: $(document), left: 0, top: 0,
-				width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
-			};
-		}
-
-		// i'm a node, so compute top, left, right, bottom
-		else {
-			var element = $(ce), p = [];
-			$([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });
-
-			self.containerOffset = element.offset();
-			self.containerPosition = element.position();
-			self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
-
-			var co = self.containerOffset, ch = self.containerSize.height,	cw = self.containerSize.width,
-						width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
-
-			self.parentData = {
-				element: ce, left: co.left, top: co.top, width: width, height: height
-			};
-		}
-	},
-
-	resize: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options,
-				ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,
-				pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;
-
-		if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;
-
-		if (cp.left < (self._helper ? co.left : 0)) {
-			self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));
-			if (pRatio) self.size.height = self.size.width / o.aspectRatio;
-			self.position.left = o.helper ? co.left : 0;
-		}
-
-		if (cp.top < (self._helper ? co.top : 0)) {
-			self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);
-			if (pRatio) self.size.width = self.size.height * o.aspectRatio;
-			self.position.top = self._helper ? co.top : 0;
-		}
-
-		self.offset.left = self.parentData.left+self.position.left;
-		self.offset.top = self.parentData.top+self.position.top;
-
-		var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),
-					hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );
-
-		var isParent = self.containerElement.get(0) == self.element.parent().get(0),
-		    isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));
-
-		if(isParent && isOffsetRelative) woset -= self.parentData.left;
-
-		if (woset + self.size.width >= self.parentData.width) {
-			self.size.width = self.parentData.width - woset;
-			if (pRatio) self.size.height = self.size.width / self.aspectRatio;
-		}
-
-		if (hoset + self.size.height >= self.parentData.height) {
-			self.size.height = self.parentData.height - hoset;
-			if (pRatio) self.size.width = self.size.height * self.aspectRatio;
-		}
-	},
-
-	stop: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options, cp = self.position,
-				co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;
-
-		var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;
-
-		if (self._helper && !o.animate && (/relative/).test(ce.css('position')))
-			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
-		if (self._helper && !o.animate && (/static/).test(ce.css('position')))
-			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
-	}
-});
-
-$.ui.plugin.add("resizable", "ghost", {
-
-	start: function(event, ui) {
-
-		var self = $(this).data("resizable"), o = self.options, cs = self.size;
-
-		self.ghost = self.originalElement.clone();
-		self.ghost
-			.css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
-			.addClass('ui-resizable-ghost')
-			.addClass(typeof o.ghost == 'string' ? o.ghost : '');
-
-		self.ghost.appendTo(self.helper);
-
-	},
-
-	resize: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options;
-		if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });
-	},
-
-	stop: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options;
-		if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));
-	}
-
-});
-
-$.ui.plugin.add("resizable", "grid", {
-
-	resize: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;
-		o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
-		var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);
-
-		if (/^(se|s|e)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-		}
-		else if (/^(ne)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.top = op.top - oy;
-		}
-		else if (/^(sw)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.left = op.left - ox;
-		}
-		else {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.top = op.top - oy;
-			self.position.left = op.left - ox;
-		}
-	}
-
-});
-
-var num = function(v) {
-	return parseInt(v, 10) || 0;
-};
-
-var isNumber = function(value) {
-	return !isNaN(parseInt(value, 10));
-};
-
-})(jQuery);
-/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.selectable", $.ui.mouse, {
-	options: {
-		appendTo: 'body',
-		autoRefresh: true,
-		distance: 0,
-		filter: '*',
-		tolerance: 'touch'
-	},
-	_create: function() {
-		var self = this;
-
-		this.element.addClass("ui-selectable");
-
-		this.dragged = false;
-
-		// cache selectee children based on filter
-		var selectees;
-		this.refresh = function() {
-			selectees = $(self.options.filter, self.element[0]);
-			selectees.each(function() {
-				var $this = $(this);
-				var pos = $this.offset();
-				$.data(this, "selectable-item", {
-					element: this,
-					$element: $this,
-					left: pos.left,
-					top: pos.top,
-					right: pos.left + $this.outerWidth(),
-					bottom: pos.top + $this.outerHeight(),
-					startselected: false,
-					selected: $this.hasClass('ui-selected'),
-					selecting: $this.hasClass('ui-selecting'),
-					unselecting: $this.hasClass('ui-unselecting')
-				});
-			});
-		};
-		this.refresh();
-
-		this.selectees = selectees.addClass("ui-selectee");
-
-		this._mouseInit();
-
-		this.helper = $("<div class='ui-selectable-helper'></div>");
-	},
-
-	destroy: function() {
-		this.selectees
-			.removeClass("ui-selectee")
-			.removeData("selectable-item");
-		this.element
-			.removeClass("ui-selectable ui-selectable-disabled")
-			.removeData("selectable")
-			.unbind(".selectable");
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_mouseStart: function(event) {
-		var self = this;
-
-		this.opos = [event.pageX, event.pageY];
-
-		if (this.options.disabled)
-			return;
-
-		var options = this.options;
-
-		this.selectees = $(options.filter, this.element[0]);
-
-		this._trigger("start", event);
-
-		$(options.appendTo).append(this.helper);
-		// position helper (lasso)
-		this.helper.css({
-			"left": event.clientX,
-			"top": event.clientY,
-			"width": 0,
-			"height": 0
-		});
-
-		if (options.autoRefresh) {
-			this.refresh();
-		}
-
-		this.selectees.filter('.ui-selected').each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.startselected = true;
-			if (!event.metaKey) {
-				selectee.$element.removeClass('ui-selected');
-				selectee.selected = false;
-				selectee.$element.addClass('ui-unselecting');
-				selectee.unselecting = true;
-				// selectable UNSELECTING callback
-				self._trigger("unselecting", event, {
-					unselecting: selectee.element
-				});
-			}
-		});
-
-		$(event.target).parents().andSelf().each(function() {
-			var selectee = $.data(this, "selectable-item");
-			if (selectee) {
-				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;
-			}
-		});
-
-	},
-
-	_mouseDrag: function(event) {
-		var self = this;
-		this.dragged = true;
-
-		if (this.options.disabled)
-			return;
-
-		var options = this.options;
-
-		var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
-		if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
-		if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
-		this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
-
-		this.selectees.each(function() {
-			var selectee = $.data(this, "selectable-item");
-			//prevent helper from being selected if appendTo: selectable
-			if (!selectee || selectee.element == self.element[0])
-				return;
-			var hit = false;
-			if (options.tolerance == 'touch') {
-				hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
-			} else if (options.tolerance == 'fit') {
-				hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
-			}
-
-			if (hit) {
-				// SELECT
-				if (selectee.selected) {
-					selectee.$element.removeClass('ui-selected');
-					selectee.selected = false;
-				}
-				if (selectee.unselecting) {
-					selectee.$element.removeClass('ui-unselecting');
-					selectee.unselecting = false;
-				}
-				if (!selectee.selecting) {
-					selectee.$element.addClass('ui-selecting');
-					selectee.selecting = true;
-					// selectable SELECTING callback
-					self._trigger("selecting", event, {
-						selecting: selectee.element
-					});
-				}
-			} else {
-				// UNSELECT
-				if (selectee.selecting) {
-					if (event.metaKey && selectee.startselected) {
-						selectee.$element.removeClass('ui-selecting');
-						selectee.selecting = false;
-						selectee.$element.addClass('ui-selected');
-						selectee.selected = true;
-					} else {
-						selectee.$element.removeClass('ui-selecting');
-						selectee.selecting = false;
-						if (selectee.startselected) {
-							selectee.$element.addClass('ui-unselecting');
-							selectee.unselecting = true;
-						}
-						// selectable UNSELECTING callback
-						self._trigger("unselecting", event, {
-							unselecting: selectee.element
-						});
-					}
-				}
-				if (selectee.selected) {
-					if (!event.metaKey && !selectee.startselected) {
-						selectee.$element.removeClass('ui-selected');
-						selectee.selected = false;
-
-						selectee.$element.addClass('ui-unselecting');
-						selectee.unselecting = true;
-						// selectable UNSELECTING callback
-						self._trigger("unselecting", event, {
-							unselecting: selectee.element
-						});
-					}
-				}
-			}
-		});
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-		var self = this;
-
-		this.dragged = false;
-
-		var options = this.options;
-
-		$('.ui-unselecting', this.element[0]).each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.$element.removeClass('ui-unselecting');
-			selectee.unselecting = false;
-			selectee.startselected = false;
-			self._trigger("unselected", event, {
-				unselected: selectee.element
-			});
-		});
-		$('.ui-selecting', this.element[0]).each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
-			selectee.selecting = false;
-			selectee.selected = true;
-			selectee.startselected = true;
-			self._trigger("selected", event, {
-				selected: selectee.element
-			});
-		});
-		this._trigger("stop", event);
-
-		this.helper.remove();
-
-		return false;
-	}
-
-});
-
-$.extend($.ui.selectable, {
-	version: "1.8.11"
-});
-
-})(jQuery);
-/*
- * jQuery UI Sortable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.sortable", $.ui.mouse, {
-	widgetEventPrefix: "sort",
-	options: {
-		appendTo: "parent",
-		axis: false,
-		connectWith: false,
-		containment: false,
-		cursor: 'auto',
-		cursorAt: false,
-		dropOnEmpty: true,
-		forcePlaceholderSize: false,
-		forceHelperSize: false,
-		grid: false,
-		handle: false,
-		helper: "original",
-		items: '> *',
-		opacity: false,
-		placeholder: false,
-		revert: false,
-		scroll: true,
-		scrollSensitivity: 20,
-		scrollSpeed: 20,
-		scope: "default",
-		tolerance: "intersect",
-		zIndex: 1000
-	},
-	_create: function() {
-
-		var o = this.options;
-		this.containerCache = {};
-		this.element.addClass("ui-sortable");
-
-		//Get the items
-		this.refresh();
-
-		//Let's determine if the items are being displayed horizontally
-		this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;
-
-		//Let's determine the parent's offset
-		this.offset = this.element.offset();
-
-		//Initialize mouse events for interaction
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass("ui-sortable ui-sortable-disabled")
-			.removeData("sortable")
-			.unbind(".sortable");
-		this._mouseDestroy();
-
-		for ( var i = this.items.length - 1; i >= 0; i-- )
-			this.items[i].item.removeData("sortable-item");
-
-		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) {
-			return false;
-		}
-
-		if(this.options.disabled || this.options.type == 'static') return false;
-
-		//We have to refresh the items data once first
-		this._refreshItems(event);
-
-		//Find out if the clicked node (or one of its parents) is a actual item in this.items
-		var currentItem = null, self = this, nodes = $(event.target).parents().each(function() {
-			if($.data(this, 'sortable-item') == self) {
-				currentItem = $(this);
-				return false;
-			}
-		});
-		if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target);
-
-		if(!currentItem) return false;
-		if(this.options.handle && !overrideHandle) {
-			var validHandle = false;
-
-			$(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; });
-			if(!validHandle) return false;
-		}
-
-		this.currentItem = currentItem;
-		this._removeCurrentsFromItems();
-		return true;
-
-	},
-
-	_mouseStart: function(event, overrideHandle, noActivation) {
-
-		var o = this.options, self = this;
-		this.currentContainer = this;
-
-		//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
-		this.refreshPositions();
-
-		//Create and append the visible helper
-		this.helper = this._createHelper(event);
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Get the next scrolling parent
-		this.scrollParent = this.helper.scrollParent();
-
-		//The element's absolute position on the page minus margins
-		this.offset = this.currentItem.offset();
-		this.offset = {
-			top: this.offset.top - this.margins.top,
-			left: this.offset.left - this.margins.left
-		};
-
-		// Only after we got the offset, we can change the helper's position to absolute
-		// TODO: Still need to figure out a way to make relative sorting possible
-		this.helper.css("position", "absolute");
-		this.cssPosition = this.helper.css("position");
-
-		$.extend(this.offset, {
-			click: { //Where the click happened, relative to the element
-				left: event.pageX - this.offset.left,
-				top: event.pageY - this.offset.top
-			},
-			parent: this._getParentOffset(),
-			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
-		});
-
-		//Generate the original position
-		this.originalPosition = this._generatePosition(event);
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
-		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
-		//Cache the former DOM position
-		this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
-
-		//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
-		if(this.helper[0] != this.currentItem[0]) {
-			this.currentItem.hide();
-		}
-
-		//Create the placeholder
-		this._createPlaceholder();
-
-		//Set a containment if given in the options
-		if(o.containment)
-			this._setContainment();
-
-		if(o.cursor) { // cursor option
-			if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");
-			$('body').css("cursor", o.cursor);
-		}
-
-		if(o.opacity) { // opacity option
-			if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");
-			this.helper.css("opacity", o.opacity);
-		}
-
-		if(o.zIndex) { // zIndex option
-			if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");
-			this.helper.css("zIndex", o.zIndex);
-		}
-
-		//Prepare scrolling
-		if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
-			this.overflowOffset = this.scrollParent.offset();
-
-		//Call callbacks
-		this._trigger("start", event, this._uiHash());
-
-		//Recache the helper size
-		if(!this._preserveHelperProportions)
-			this._cacheHelperProportions();
-
-
-		//Post 'activate' events to possible containers
-		if(!noActivation) {
-			 for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); }
-		}
-
-		//Prepare possible droppables
-		if($.ui.ddmanager)
-			$.ui.ddmanager.current = this;
-
-		if ($.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(this, event);
-
-		this.dragging = true;
-
-		this.helper.addClass("ui-sortable-helper");
-		this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-		return true;
-
-	},
-
-	_mouseDrag: function(event) {
-
-		//Compute the helpers position
-		this.position = this._generatePosition(event);
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		if (!this.lastPositionAbs) {
-			this.lastPositionAbs = this.positionAbs;
-		}
-
-		//Do scrolling
-		if(this.options.scroll) {
-			var o = this.options, scrolled = false;
-			if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
-
-				if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
-					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
-				else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)
-					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
-
-				if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
-					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
-				else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)
-					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
-
-			} else {
-
-				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
-				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
-
-				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
-				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
-
-			}
-
-			if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
-				$.ui.ddmanager.prepareOffsets(this, event);
-		}
-
-		//Regenerate the absolute position used for position checks
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		//Set the helper position
-		if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
-		if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
-
-		//Rearrange
-		for (var i = this.items.length - 1; i >= 0; i--) {
-
-			//Cache variables and intersection, continue if no intersection
-			var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
-			if (!intersection) continue;
-
-			if(itemElement != this.currentItem[0] //cannot intersect with itself
-				&&	this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
-				&&	!$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
-				&& (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)
-				//&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
-			) {
-
-				this.direction = intersection == 1 ? "down" : "up";
-
-				if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
-					this._rearrange(event, item);
-				} else {
-					break;
-				}
-
-				this._trigger("change", event, this._uiHash());
-				break;
-			}
-		}
-
-		//Post events to containers
-		this._contactContainers(event);
-
-		//Interconnect with droppables
-		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
-		//Call callbacks
-		this._trigger('sort', event, this._uiHash());
-
-		this.lastPositionAbs = this.positionAbs;
-		return false;
-
-	},
-
-	_mouseStop: function(event, noPropagation) {
-
-		if(!event) return;
-
-		//If we are using droppables, inform the manager about the drop
-		if ($.ui.ddmanager && !this.options.dropBehaviour)
-			$.ui.ddmanager.drop(this, event);
-
-		if(this.options.revert) {
-			var self = this;
-			var cur = self.placeholder.offset();
-
-			self.reverting = true;
-
-			$(this.helper).animate({
-				left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
-				top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
-			}, parseInt(this.options.revert, 10) || 500, function() {
-				self._clear(event);
-			});
-		} else {
-			this._clear(event, noPropagation);
-		}
-
-		return false;
-
-	},
-
-	cancel: function() {
-
-		var self = this;
-
-		if(this.dragging) {
-
-			this._mouseUp({ target: null });
-
-			if(this.options.helper == "original")
-				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
-			else
-				this.currentItem.show();
-
-			//Post deactivating events to containers
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				this.containers[i]._trigger("deactivate", null, self._uiHash(this));
-				if(this.containers[i].containerCache.over) {
-					this.containers[i]._trigger("out", null, self._uiHash(this));
-					this.containers[i].containerCache.over = 0;
-				}
-			}
-
-		}
-
-		if (this.placeholder) {
-			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
-			if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-			if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove();
-
-			$.extend(this, {
-				helper: null,
-				dragging: false,
-				reverting: false,
-				_noFinalSort: null
-			});
-
-			if(this.domPosition.prev) {
-				$(this.domPosition.prev).after(this.currentItem);
-			} else {
-				$(this.domPosition.parent).prepend(this.currentItem);
-			}
-		}
-
-		return this;
-
-	},
-
-	serialize: function(o) {
-
-		var items = this._getItemsAsjQuery(o && o.connected);
-		var str = []; o = o || {};
-
-		$(items).each(function() {
-			var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
-			if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2]));
-		});
-
-		if(!str.length && o.key) {
-			str.push(o.key + '=');
-		}
-
-		return str.join('&');
-
-	},
-
-	toArray: function(o) {
-
-		var items = this._getItemsAsjQuery(o && o.connected);
-		var ret = []; o = o || {};
-
-		items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
-		return ret;
-
-	},
-
-	/* Be careful with the following core functions */
-	_intersectsWith: function(item) {
-
-		var x1 = this.positionAbs.left,
-			x2 = x1 + this.helperProportions.width,
-			y1 = this.positionAbs.top,
-			y2 = y1 + this.helperProportions.height;
-
-		var l = item.left,
-			r = l + item.width,
-			t = item.top,
-			b = t + item.height;
-
-		var dyClick = this.offset.click.top,
-			dxClick = this.offset.click.left;
-
-		var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
-
-		if(	   this.options.tolerance == "pointer"
-			|| this.options.forcePointerForContainers
-			|| (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])
-		) {
-			return isOverElement;
-		} else {
-
-			return (l < x1 + (this.helperProportions.width / 2) // Right Half
-				&& x2 - (this.helperProportions.width / 2) < r // Left Half
-				&& t < y1 + (this.helperProportions.height / 2) // Bottom Half
-				&& y2 - (this.helperProportions.height / 2) < b ); // Top Half
-
-		}
-	},
-
-	_intersectsWithPointer: function(item) {
-
-		var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
-			isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
-			isOverElement = isOverElementHeight && isOverElementWidth,
-			verticalDirection = this._getDragVerticalDirection(),
-			horizontalDirection = this._getDragHorizontalDirection();
-
-		if (!isOverElement)
-			return false;
-
-		return this.floating ?
-			( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 )
-			: ( verticalDirection && (verticalDirection == "down" ? 2 : 1) );
-
-	},
-
-	_intersectsWithSides: function(item) {
-
-		var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
-			isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
-			verticalDirection = this._getDragVerticalDirection(),
-			horizontalDirection = this._getDragHorizontalDirection();
-
-		if (this.floating && horizontalDirection) {
-			return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
-		} else {
-			return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
-		}
-
-	},
-
-	_getDragVerticalDirection: function() {
-		var delta = this.positionAbs.top - this.lastPositionAbs.top;
-		return delta != 0 && (delta > 0 ? "down" : "up");
-	},
-
-	_getDragHorizontalDirection: function() {
-		var delta = this.positionAbs.left - this.lastPositionAbs.left;
-		return delta != 0 && (delta > 0 ? "right" : "left");
-	},
-
-	refresh: function(event) {
-		this._refreshItems(event);
-		this.refreshPositions();
-		return this;
-	},
-
-	_connectWith: function() {
-		var options = this.options;
-		return options.connectWith.constructor == String
-			? [options.connectWith]
-			: options.connectWith;
-	},
-	
-	_getItemsAsjQuery: function(connected) {
-
-		var self = this;
-		var items = [];
-		var queries = [];
-		var connectWith = this._connectWith();
-
-		if(connectWith && connected) {
-			for (var i = connectWith.length - 1; i >= 0; i--){
-				var cur = $(connectWith[i]);
-				for (var j = cur.length - 1; j >= 0; j--){
-					var inst = $.data(cur[j], 'sortable');
-					if(inst && inst != this && !inst.options.disabled) {
-						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
-					}
-				};
-			};
-		}
-
-		queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
-
-		for (var i = queries.length - 1; i >= 0; i--){
-			queries[i][0].each(function() {
-				items.push(this);
-			});
-		};
-
-		return $(items);
-
-	},
-
-	_removeCurrentsFromItems: function() {
-
-		var list = this.currentItem.find(":data(sortable-item)");
-
-		for (var i=0; i < this.items.length; i++) {
-
-			for (var j=0; j < list.length; j++) {
-				if(list[j] == this.items[i].item[0])
-					this.items.splice(i,1);
-			};
-
-		};
-
-	},
-
-	_refreshItems: function(event) {
-
-		this.items = [];
-		this.containers = [this];
-		var items = this.items;
-		var self = this;
-		var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
-		var connectWith = this._connectWith();
-
-		if(connectWith) {
-			for (var i = connectWith.length - 1; i >= 0; i--){
-				var cur = $(connectWith[i]);
-				for (var j = cur.length - 1; j >= 0; j--){
-					var inst = $.data(cur[j], 'sortable');
-					if(inst && inst != this && !inst.options.disabled) {
-						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
-						this.containers.push(inst);
-					}
-				};
-			};
-		}
-
-		for (var i = queries.length - 1; i >= 0; i--) {
-			var targetData = queries[i][1];
-			var _queries = queries[i][0];
-
-			for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {
-				var item = $(_queries[j]);
-
-				item.data('sortable-item', targetData); // Data for target checking (mouse manager)
-
-				items.push({
-					item: item,
-					instance: targetData,
-					width: 0, height: 0,
-					left: 0, top: 0
-				});
-			};
-		};
-
-	},
-
-	refreshPositions: function(fast) {
-
-		//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
-		if(this.offsetParent && this.helper) {
-			this.offset.parent = this._getParentOffset();
-		}
-
-		for (var i = this.items.length - 1; i >= 0; i--){
-			var item = this.items[i];
-
-			var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
-
-			if (!fast) {
-				item.width = t.outerWidth();
-				item.height = t.outerHeight();
-			}
-
-			var p = t.offset();
-			item.left = p.left;
-			item.top = p.top;
-		};
-
-		if(this.options.custom && this.options.custom.refreshContainers) {
-			this.options.custom.refreshContainers.call(this);
-		} else {
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				var p = this.containers[i].element.offset();
-				this.containers[i].containerCache.left = p.left;
-				this.containers[i].containerCache.top = p.top;
-				this.containers[i].containerCache.width	= this.containers[i].element.outerWidth();
-				this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
-			};
-		}
-
-		return this;
-	},
-
-	_createPlaceholder: function(that) {
-
-		var self = that || this, o = self.options;
-
-		if(!o.placeholder || o.placeholder.constructor == String) {
-			var className = o.placeholder;
-			o.placeholder = {
-				element: function() {
-
-					var el = $(document.createElement(self.currentItem[0].nodeName))
-						.addClass(className || self.currentItem[0].className+" ui-sortable-placeholder")
-						.removeClass("ui-sortable-helper")[0];
-
-					if(!className)
-						el.style.visibility = "hidden";
-
-					return el;
-				},
-				update: function(container, p) {
-
-					// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
-					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
-					if(className && !o.forcePlaceholderSize) return;
-
-					//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
-					if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); };
-					if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); };
-				}
-			};
-		}
-
-		//Create the placeholder
-		self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));
-
-		//Append it after the actual current item
-		self.currentItem.after(self.placeholder);
-
-		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
-		o.placeholder.update(self, self.placeholder);
-
-	},
-
-	_contactContainers: function(event) {
-		
-		// get innermost container that intersects with item 
-		var innermostContainer = null, innermostIndex = null;		
-		
-		
-		for (var i = this.containers.length - 1; i >= 0; i--){
-
-			// never consider a container that's located within the item itself 
-			if($.ui.contains(this.currentItem[0], this.containers[i].element[0]))
-				continue;
-
-			if(this._intersectsWith(this.containers[i].containerCache)) {
-
-				// if we've already found a container and it's more "inner" than this, then continue 
-				if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0]))
-					continue;
-
-				innermostContainer = this.containers[i]; 
-				innermostIndex = i;
-					
-			} else {
-				// container doesn't intersect. trigger "out" event if necessary 
-				if(this.containers[i].containerCache.over) {
-					this.containers[i]._trigger("out", event, this._uiHash(this));
-					this.containers[i].containerCache.over = 0;
-				}
-			}
-
-		}
-		
-		// if no intersecting containers found, return 
-		if(!innermostContainer) return; 
-
-		// move the item into the container if it's not there already
-		if(this.containers.length === 1) {
-			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
-			this.containers[innermostIndex].containerCache.over = 1;
-		} else if(this.currentContainer != this.containers[innermostIndex]) { 
-
-			//When entering a new container, we will find the item with the least distance and append our item near it 
-			var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; 
-			for (var j = this.items.length - 1; j >= 0; j--) { 
-				if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; 
-				var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; 
-				if(Math.abs(cur - base) < dist) { 
-					dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; 
-				} 
-			} 
-
-			if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled 
-				return; 
-
-			this.currentContainer = this.containers[innermostIndex]; 
-			itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); 
-			this._trigger("change", event, this._uiHash()); 
-			this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); 
-
-			//Update the placeholder 
-			this.options.placeholder.update(this.currentContainer, this.placeholder); 
-		
-			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); 
-			this.containers[innermostIndex].containerCache.over = 1;
-		} 
-	
-		
-	},
-
-	_createHelper: function(event) {
-
-		var o = this.options;
-		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
-
-		if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already
-			$(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
-
-		if(helper[0] == this.currentItem[0])
-			this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
-
-		if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());
-		if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());
-
-		return helper;
-
-	},
-
-	_adjustOffsetFromHelper: function(obj) {
-		if (typeof obj == 'string') {
-			obj = obj.split(' ');
-		}
-		if ($.isArray(obj)) {
-			obj = {left: +obj[0], top: +obj[1] || 0};
-		}
-		if ('left' in obj) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ('right' in obj) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ('top' in obj) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ('bottom' in obj) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_getParentOffset: function() {
-
-
-		//Get the offsetParent and cache its position
-		this.offsetParent = this.helper.offsetParent();
-		var po = this.offsetParent.offset();
-
-		// This is a special case where we need to modify a offset calculated on start, since the following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
-		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
-		if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
-		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
-			po = { top: 0, left: 0 };
-
-		return {
-			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
-			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-
-		if(this.cssPosition == "relative") {
-			var p = this.currentItem.position();
-			return {
-				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
-				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
-			};
-		} else {
-			return { top: 0, left: 0 };
-		}
-
-	},
-
-	_cacheMargins: function() {
-		this.margins = {
-			left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
-			top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
-		};
-	},
-
-	_cacheHelperProportions: function() {
-		this.helperProportions = {
-			width: this.helper.outerWidth(),
-			height: this.helper.outerHeight()
-		};
-	},
-
-	_setContainment: function() {
-
-		var o = this.options;
-		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
-		if(o.containment == 'document' || o.containment == 'window') this.containment = [
-			0 - this.offset.relative.left - this.offset.parent.left,
-			0 - this.offset.relative.top - this.offset.parent.top,
-			$(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
-			($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
-		];
-
-		if(!(/^(document|window|parent)$/).test(o.containment)) {
-			var ce = $(o.containment)[0];
-			var co = $(o.containment).offset();
-			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
-			];
-		}
-
-	},
-
-	_convertPositionTo: function(d, pos) {
-
-		if(!pos) pos = this.position;
-		var mod = d == "absolute" ? 1 : -1;
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		return {
-			top: (
-				pos.top																	// The absolute mouse position
-				+ this.offset.relative.top * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.top * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
-			),
-			left: (
-				pos.left																// The absolute mouse position
-				+ this.offset.relative.left * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.left * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
-			)
-		};
-
-	},
-
-	_generatePosition: function(event) {
-
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		// This is another very weird special case that only happens for relative elements:
-		// 1. If the css position is relative
-		// 2. and the scroll parent is the document or similar to the offset parent
-		// we have to refresh the relative offset during the scroll so there are no jumps
-		if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
-			this.offset.relative = this._getRelativeOffset();
-		}
-
-		var pageX = event.pageX;
-		var pageY = event.pageY;
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
-			if(this.containment) {
-				if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
-				if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
-			}
-
-			if(o.grid) {
-				var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
-				pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
-				var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
-				pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
-			}
-
-		}
-
-		return {
-			top: (
-				pageY																// The absolute mouse position
-				- this.offset.click.top													// Click offset (relative to the element)
-				- this.offset.relative.top												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.top												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
-			),
-			left: (
-				pageX																// The absolute mouse position
-				- this.offset.click.left												// Click offset (relative to the element)
-				- this.offset.relative.left												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.left												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
-			)
-		};
-
-	},
-
-	_rearrange: function(event, i, a, hardRefresh) {
-
-		a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
-
-		//Various things done here to improve the performance:
-		// 1. we create a setTimeout, that calls refreshPositions
-		// 2. on the instance, we have a counter variable, that get's higher after every append
-		// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
-		// 4. this lets only the last addition to the timeout stack through
-		this.counter = this.counter ? ++this.counter : 1;
-		var self = this, counter = this.counter;
-
-		window.setTimeout(function() {
-			if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
-		},0);
-
-	},
-
-	_clear: function(event, noPropagation) {
-
-		this.reverting = false;
-		// We delay all events that have to be triggered to after the point where the placeholder has been removed and
-		// everything else normalized again
-		var delayedTriggers = [], self = this;
-
-		// We first have to update the dom position of the actual currentItem
-		// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
-		if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem);
-		this._noFinalSort = null;
-
-		if(this.helper[0] == this.currentItem[0]) {
-			for(var i in this._storedCSS) {
-				if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';
-			}
-			this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
-		} else {
-			this.currentItem.show();
-		}
-
-		if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
-		if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
-		if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element
-			if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) {
-					delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-					delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this));  }; }).call(this, this.containers[i]));
-				}
-			};
-		};
-
-		//Post events to containers
-		for (var i = this.containers.length - 1; i >= 0; i--){
-			if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-			if(this.containers[i].containerCache.over) {
-				delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-				this.containers[i].containerCache.over = 0;
-			}
-		}
-
-		//Do what was originally in plugins
-		if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor
-		if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity
-		if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index
-
-		this.dragging = false;
-		if(this.cancelHelperRemoval) {
-			if(!noPropagation) {
-				this._trigger("beforeStop", event, this._uiHash());
-				for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
-				this._trigger("stop", event, this._uiHash());
-			}
-			return false;
-		}
-
-		if(!noPropagation) this._trigger("beforeStop", event, this._uiHash());
-
-		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
-		this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-
-		if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;
-
-		if(!noPropagation) {
-			for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
-			this._trigger("stop", event, this._uiHash());
-		}
-
-		this.fromOutside = false;
-		return true;
-
-	},
-
-	_trigger: function() {
-		if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
-			this.cancel();
-		}
-	},
-
-	_uiHash: function(inst) {
-		var self = inst || this;
-		return {
-			helper: self.helper,
-			placeholder: self.placeholder || $([]),
-			position: self.position,
-			originalPosition: self.originalPosition,
-			offset: self.positionAbs,
-			item: self.currentItem,
-			sender: inst ? inst.element : null
-		};
-	}
-
-});
-
-$.extend($.ui.sortable, {
-	version: "1.8.11"
-});
-
-})(jQuery);
-/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget( "ui.accordion", {
-	options: {
-		active: 0,
-		animated: "slide",
-		autoHeight: true,
-		clearStyle: false,
-		collapsible: false,
-		event: "click",
-		fillSpace: false,
-		header: "> li > :first-child,> :not(li):even",
-		icons: {
-			header: "ui-icon-triangle-1-e",
-			headerSelected: "ui-icon-triangle-1-s"
-		},
-		navigation: false,
-		navigationFilter: function() {
-			return this.href.toLowerCase() === location.href.toLowerCase();
-		}
-	},
-
-	_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" );
-			});
-
-		self.headers.next()
-			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
-
-		if ( options.navigation ) {
-			var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
-			if ( current.length ) {
-				var header = current.closest( ".ui-accordion-header" );
-				if ( header.length ) {
-					// anchor within header
-					self.active = header;
-				} else {
-					// anchor within content
-					self.active = current.closest( ".ui-accordion-content" ).prev();
-				}
-			}
-		}
-
-		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" );
-
-		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" );
-
-		self.headers
-			.not( self.active || "" )
-			.attr({
-				"aria-expanded": "false",
-				"aria-selected": "false",
-				tabIndex: -1
-			})
-			.next()
-				.hide();
-
-		// make sure at least one header is in the tab order
-		if ( !self.active.length ) {
-			self.headers.eq( 0 ).attr( "tabIndex", 0 );
-		} else {
-			self.active
-				.attr({
-					"aria-expanded": "true",
-					"aria-selected": "true",
-					tabIndex: 0
-				});
-		}
-
-		// only need links in tab order for Safari
-		if ( !$.browser.safari ) {
-			self.headers.find( "a" ).attr( "tabIndex", -1 );
-		}
-
-		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 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" );
-	},
-
-	destroy: function() {
-		var options = this.options;
-
-		this.element
-			.removeClass( "ui-accordion ui-widget ui-helper-reset" )
-			.removeAttr( "role" );
-
-		this.headers
-			.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 ui-accordion-disabled ui-state-disabled" );
-		if ( options.autoHeight || options.fillHeight ) {
-			contents.css( "height", "" );
-		}
-
-		return $.Widget.prototype.destroy.call( this );
-	},
-
-	_setOption: function( key, value ) {
-		$.Widget.prototype._setOption.apply( this, arguments );
-			
-		if ( key == "active" ) {
-			this.activate( value );
-		}
-		if ( key == "icons" ) {
-			this._destroyIcons();
-			if ( value ) {
-				this._createIcons();
-			}
-		}
-		// #5332 - opacity doesn't cascade to positioned elements in IE
-		// so we need to add the disabled class to the headers and panels
-		if ( key == "disabled" ) {
-			this.headers.add(this.headers.next())
-				[ value ? "addClass" : "removeClass" ](
-					"ui-accordion-disabled ui-state-disabled" );
-		}
-	},
-
-	_keydown: function( event ) {
-		if ( this.options.disabled || event.altKey || event.ctrlKey ) {
-			return;
-		}
-
-		var keyCode = $.ui.keyCode,
-			length = this.headers.length,
-			currentIndex = this.headers.index( event.target ),
-			toFocus = false;
-
-		switch ( event.keyCode ) {
-			case keyCode.RIGHT:
-			case keyCode.DOWN:
-				toFocus = this.headers[ ( currentIndex + 1 ) % length ];
-				break;
-			case keyCode.LEFT:
-			case keyCode.UP:
-				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
-				break;
-			case keyCode.SPACE:
-			case keyCode.ENTER:
-				this._clickHandler( { target: event.target }, event.target );
-				event.preventDefault();
-		}
-
-		if ( toFocus ) {
-			$( event.target ).attr( "tabIndex", -1 );
-			$( toFocus ).attr( "tabIndex", 0 );
-			toFocus.focus();
-			return false;
-		}
-
-		return true;
-	},
-
-	resize: function() {
-		var options = this.options,
-			maxHeight;
-
-		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 );
-			}
-
-			this.headers.each(function() {
-				maxHeight -= $( this ).outerHeight( true );
-			});
-
-			this.headers.next()
-				.each(function() {
-					$( this ).height( Math.max( 0, maxHeight -
-						$( this ).innerHeight() + $( this ).height() ) );
-				})
-				.css( "overflow", "auto" );
-		} else if ( options.autoHeight ) {
-			maxHeight = 0;
-			this.headers.next()
-				.each(function() {
-					maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
-				})
-				.height( maxHeight );
-		}
-
-		return this;
-	},
-
-	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 );
-
-		return this;
-	},
-
-	_findActive: function( selector ) {
-		return selector
-			? typeof selector === "number"
-				? this.headers.filter( ":eq(" + selector + ")" )
-				: this.headers.not( this.headers.not( selector ) )
-			: selector === false
-				? $( [] )
-				: this.headers.filter( ":eq(0)" );
-	},
-
-	// 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 ( !options.collapsible ) {
-				return;
-			}
-			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: options,
-					newHeader: $( [] ),
-					oldHeader: options.active,
-					newContent: $( [] ),
-					oldContent: toHide
-				},
-				toShow = ( this.active = $( [] ) );
-			this._toggle( toShow, toHide, data );
-			return;
-		}
-
-		// get the click target
-		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?
-		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 || ( !options.collapsible && clickedIsActive ) ) {
-			return;
-		}
-
-		// find elements to show and hide
-		var active = this.active,
-			toShow = clicked.next(),
-			toHide = this.active.next(),
-			data = {
-				options: options,
-				newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
-				oldHeader: this.active,
-				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 );
-
-		// 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 self = this,
-			options = self.options;
-
-		self.toShow = toShow;
-		self.toHide = toHide;
-		self.data = data;
-
-		var complete = function() {
-			if ( !self ) {
-				return;
-			}
-			return self._completed.apply( self, arguments );
-		};
-
-		// trigger changestart event
-		self._trigger( "changestart", null, self.data );
-
-		// count elements to animate
-		self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
-		if ( options.animated ) {
-			var animOptions = {};
-
-			if ( options.collapsible && clickedIsActive ) {
-				animOptions = {
-					toShow: $( [] ),
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: options.autoHeight || options.fillSpace
-				};
-			} else {
-				animOptions = {
-					toShow: toShow,
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: options.autoHeight || options.fillSpace
-				};
-			}
-
-			if ( !options.proxied ) {
-				options.proxied = options.animated;
-			}
-
-			if ( !options.proxiedDuration ) {
-				options.proxiedDuration = options.duration;
-			}
-
-			options.animated = $.isFunction( options.proxied ) ?
-				options.proxied( animOptions ) :
-				options.proxied;
-
-			options.duration = $.isFunction( options.proxiedDuration ) ?
-				options.proxiedDuration( animOptions ) :
-				options.proxiedDuration;
-
-			var animations = $.ui.accordion.animations,
-				duration = options.duration,
-				easing = options.animated;
-
-			if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
-				easing = "slide";
-			}
-			if ( !animations[ easing ] ) {
-				animations[ easing ] = function( options ) {
-					this.slide( options, {
-						easing: easing,
-						duration: duration || 700
-					});
-				};
-			}
-
-			animations[ easing ]( animOptions );
-		} else {
-			if ( options.collapsible && clickedIsActive ) {
-				toShow.toggle();
-			} else {
-				toHide.hide();
-				toShow.show();
-			}
-
-			complete( true );
-		}
-
-		// TODO assert that the blur and focus triggers are really necessary, remove otherwise
-		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 ) {
-		this.running = cancel ? 0 : --this.running;
-		if ( this.running ) {
-			return;
-		}
-
-		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" );
-		// 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 );
-	}
-});
-
-$.extend( $.ui.accordion, {
-	version: "1.8.11",
-	animations: {
-		slide: function( options, additions ) {
-			options = $.extend({
-				easing: "swing",
-				duration: 300
-			}, options, additions );
-			if ( !options.toHide.size() ) {
-				options.toShow.animate({
-					height: "show",
-					paddingTop: "show",
-					paddingBottom: "show"
-				}, options );
-				return;
-			}
-			if ( !options.toShow.size() ) {
-				options.toHide.animate({
-					height: "hide",
-					paddingTop: "hide",
-					paddingBottom: "hide"
-				}, options );
-				return;
-			}
-			var overflow = options.toShow.css( "overflow" ),
-				percentDone = 0,
-				showProps = {},
-				hideProps = {},
-				fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
-				originalWidth;
-			// 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"
-				};
-			});
-			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" ) {
-						percentDone = ( settings.end - settings.start === 0 ) ? 0 :
-							( settings.now - settings.start ) / ( settings.end - settings.start );
-					}
-
-					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({
-						width: originalWidth,
-						overflow: overflow
-					});
-					options.complete();
-				}
-			});
-		},
-		bounceslide: function( options ) {
-			this.slide( options, {
-				easing: options.down ? "easeOutBounce" : "swing",
-				duration: options.down ? 1000 : 200
-			});
-		}
-	}
-});
-
-})( jQuery );
-/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(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,
-		position: {
-			my: "left top",
-			at: "left bottom",
-			collision: "none"
-		},
-		source: null
-	},
-
-	pending: 0,
-
-	_create: function() {
-		var self = this,
-			doc = this.element[ 0 ].ownerDocument,
-			suppressKeyPress;
-
-		this.element
-			.addClass( "ui-autocomplete-input" )
-			.attr( "autocomplete", "off" )
-			// TODO verify these actually work as intended
-			.attr({
-				role: "textbox",
-				"aria-autocomplete": "list",
-				"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:
-					self._move( "previousPage", event );
-					break;
-				case keyCode.PAGE_DOWN:
-					self._move( "nextPage", event );
-					break;
-				case keyCode.UP:
-					self._move( "previous", event );
-					// prevent moving cursor to beginning of text field in some browsers
-					event.preventDefault();
-					break;
-				case keyCode.DOWN:
-					self._move( "next", event );
-					// prevent moving cursor to end of text field in some browsers
-					event.preventDefault();
-					break;
-				case keyCode.ENTER:
-				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
-				case keyCode.TAB:
-					if ( !self.menu.active ) {
-						return;
-					}
-					self.menu.select( event );
-					break;
-				case keyCode.ESCAPE:
-					self.element.val( self.term );
-					self.close( event );
-					break;
-				default:
-					// keypress is triggered before the input value is changed
-					clearTimeout( self.searching );
-					self.searching = setTimeout(function() {
-						// 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
-				self.closing = setTimeout(function() {
-					self.close( event );
-					self._change( event );
-				}, 150 );
-			});
-		this._initSource();
-		this.response = function() {
-			return self._response.apply( self, arguments );
-		};
-		this.menu = $( "<ul></ul>" )
-			.addClass( "ui-autocomplete" )
-			.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", 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" ),
-						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 ) {
-					// 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 );
-					}
-				}
-			})
-			.zIndex( this.element.zIndex() + 1 )
-			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
-			.css({ top: 0, left: 0 })
-			.hide()
-			.data( "menu" );
-		if ( $.fn.bgiframe ) {
-			 this.menu.element.bgiframe();
-		}
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-autocomplete-input" )
-			.removeAttr( "autocomplete" )
-			.removeAttr( "role" )
-			.removeAttr( "aria-autocomplete" )
-			.removeAttr( "aria-haspopup" );
-		this.menu.element.remove();
-		$.Widget.prototype.destroy.call( this );
-	},
-
-	_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 self = this,
-			array,
-			url;
-		if ( $.isArray(this.options.source) ) {
-			array = this.options.source;
-			this.source = function( request, response ) {
-				response( $.ui.autocomplete.filter(array, request.term) );
-			};
-		} else if ( typeof this.options.source === "string" ) {
-			url = this.options.source;
-			this.source = function( 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;
-		}
-	},
-
-	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", event ) === false ) {
-			return;
-		}
-
-		return this._search( value );
-	},
-
-	_search: function( value ) {
-		this.pending++;
-		this.element.addClass( "ui-autocomplete-loading" );
-
-		this.source( { term: value }, this.response );
-	},
-
-	_response: function( content ) {
-		if ( !this.options.disabled && content && content.length ) {
-			content = this._normalize( content );
-			this._suggest( content );
-			this._trigger( "open" );
-		} else {
-			this.close();
-		}
-		this.pending--;
-		if ( !this.pending ) {
-			this.element.removeClass( "ui-autocomplete-loading" );
-		}
-	},
-
-	close: function( event ) {
-		clearTimeout( this.closing );
-		if ( this.menu.element.is(":visible") ) {
-			this.menu.element.hide();
-			this.menu.deactivate();
-			this._trigger( "close", event );
-		}
-	},
-	
-	_change: function( event ) {
-		if ( this.previous !== this.element.val() ) {
-			this._trigger( "change", event, { item: this.selectedItem } );
-		}
-	},
-
-	_normalize: function( items ) {
-		// assume all items have the right format when the first item is complete
-		if ( items.length && items[0].label && items[0].value ) {
-			return items;
-		}
-		return $.map( items, function(item) {
-			if ( typeof item === "string" ) {
-				return {
-					label: item,
-					value: item
-				};
-			}
-			return $.extend({
-				label: item.label || item.value,
-				value: item.value || item.label
-			}, item );
-		});
-	},
-
-	_suggest: function( items ) {
-		var ul = this.menu.element
-			.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();
-
-		// 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 ) {
-			self._renderItem( ul, item );
-		});
-	},
-
-	_renderItem: function( ul, item) {
-		return $( "<li></li>" )
-			.data( "item.autocomplete", item )
-			.append( $( "<a></a>" ).text( item.label ) )
-			.appendTo( ul );
-	},
-
-	_move: function( direction, event ) {
-		if ( !this.menu.element.is(":visible") ) {
-			this.search( null, event );
-			return;
-		}
-		if ( this.menu.first() && /^previous/.test(direction) ||
-				this.menu.last() && /^next/.test(direction) ) {
-			this.element.val( this.term );
-			this.menu.deactivate();
-			return;
-		}
-		this.menu[ direction ]( event );
-	},
-
-	widget: function() {
-		return this.menu.element;
-	}
-});
-
-$.extend( $.ui.autocomplete, {
-	escapeRegex: function( value ) {
-		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 );
-		});
-	}
-});
-
-}( jQuery ));
-
-/*
- * jQuery UI Menu (not officially released)
- * 
- * This widget isn't yet finished and the API is subject to change. We plan to finish
- * 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 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
- *
- * Depends:
- *	jquery.ui.core.js
- *  jquery.ui.widget.js
- */
-(function($) {
-
-$.widget("ui.menu", {
-	_create: function() {
-		var self = this;
-		this.element
-			.addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
-			.attr({
-				role: "listbox",
-				"aria-activedescendant": "ui-active-menuitem"
-			})
-			.click(function( event ) {
-				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
-					return;
-				}
-				// temporary
-				event.preventDefault();
-				self.select( event );
-			});
-		this.refresh();
-	},
-	
-	refresh: function() {
-		var self = this;
-
-		// don't refresh list items that are already adapted
-		var items = this.element.children("li:not(.ui-menu-item):has(a)")
-			.addClass("ui-menu-item")
-			.attr("role", "menuitem");
-		
-		items.children("a")
-			.addClass("ui-corner-all")
-			.attr("tabindex", -1)
-			// mouseenter doesn't work with event delegation
-			.mouseenter(function( event ) {
-				self.activate( event, $(this).parent() );
-			})
-			.mouseleave(function() {
-				self.deactivate();
-			});
-	},
-
-	activate: function( event, item ) {
-		this.deactivate();
-		if (this.hasScroll()) {
-			var offset = item.offset().top - this.element.offset().top,
-				scroll = this.element.attr("scrollTop"),
-				elementHeight = this.element.height();
-			if (offset < 0) {
-				this.element.attr("scrollTop", scroll + offset);
-			} else if (offset >= elementHeight) {
-				this.element.attr("scrollTop", scroll + offset - elementHeight + item.height());
-			}
-		}
-		this.active = item.eq(0)
-			.children("a")
-				.addClass("ui-state-hover")
-				.attr("id", "ui-active-menuitem")
-			.end();
-		this._trigger("focus", event, { item: item });
-	},
-
-	deactivate: function() {
-		if (!this.active) { return; }
-
-		this.active.children("a")
-			.removeClass("ui-state-hover")
-			.removeAttr("id");
-		this._trigger("blur");
-		this.active = null;
-	},
-
-	next: function(event) {
-		this.move("next", ".ui-menu-item:first", event);
-	},
-
-	previous: function(event) {
-		this.move("prev", ".ui-menu-item:last", event);
-	},
-
-	first: function() {
-		return this.active && !this.active.prevAll(".ui-menu-item").length;
-	},
-
-	last: function() {
-		return this.active && !this.active.nextAll(".ui-menu-item").length;
-	},
-
-	move: function(direction, edge, event) {
-		if (!this.active) {
-			this.activate(event, this.element.children(edge));
-			return;
-		}
-		var next = this.active[direction + "All"](".ui-menu-item").eq(0);
-		if (next.length) {
-			this.activate(event, next);
-		} else {
-			this.activate(event, this.element.children(edge));
-		}
-	},
-
-	// TODO merge with previousPage
-	nextPage: function(event) {
-		if (this.hasScroll()) {
-			// TODO merge with no-scroll-else
-			if (!this.active || this.last()) {
-				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(".ui-menu-item").filter(function() {
-					var close = $(this).offset().top - base - height + $(this).height();
-					// TODO improve approximation
-					return close < 10 && close > -10;
-				});
-
-			// TODO try to catch this earlier when scrollTop indicates the last page anyway
-			if (!result.length) {
-				result = this.element.children(".ui-menu-item:last");
-			}
-			this.activate(event, result);
-		} else {
-			this.activate(event, this.element.children(".ui-menu-item")
-				.filter(!this.active || this.last() ? ":first" : ":last"));
-		}
-	},
-
-	// TODO merge with nextPage
-	previousPage: function(event) {
-		if (this.hasScroll()) {
-			// TODO merge with no-scroll-else
-			if (!this.active || this.first()) {
-				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(".ui-menu-item").filter(function() {
-					var close = $(this).offset().top - base + height - $(this).height();
-					// TODO improve approximation
-					return close < 10 && close > -10;
-				});
-
-			// TODO try to catch this earlier when scrollTop indicates the last page anyway
-			if (!result.length) {
-				result = this.element.children(".ui-menu-item:first");
-			}
-			this.activate(event, result);
-		} else {
-			this.activate(event, this.element.children(".ui-menu-item")
-				.filter(!this.active || this.first() ? ":last" : ":first"));
-		}
-	},
-
-	hasScroll: function() {
-		return this.element.height() < this.element.attr("scrollHeight");
-	},
-
-	select: function( event ) {
-		this._trigger("selected", event, { item: this.active });
-	}
-});
-
-}(jQuery));
-/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var lastActive,
-	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
-	stateClasses = "ui-state-hover ui-state-active ",
-	typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
-	formResetHandler = function( event ) {
-		$( ":ui-button", event.target.form ).each(function() {
-			var inst = $( this ).data( "button" );
-			setTimeout(function() {
-				inst.refresh();
-			}, 1 );
-		});
-	},
-	radioGroup = function( radio ) {
-		var name = radio.name,
-			form = radio.form,
-			radios = $( [] );
-		if ( name ) {
-			if ( form ) {
-				radios = $( form ).find( "[name='" + name + "']" );
-			} else {
-				radios = $( "[name='" + name + "']", radio.ownerDocument )
-					.filter(function() {
-						return !this.form;
-					});
-			}
-		}
-		return radios;
-	};
-
-$.widget( "ui.button", {
-	options: {
-		disabled: null,
-		text: true,
-		label: null,
-		icons: {
-			primary: null,
-			secondary: null
-		}
-	},
-	_create: function() {
-		this.element.closest( "form" )
-			.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" );
-
-		var self = this,
-			options = this.options,
-			toggleButton = this.type === "checkbox" || this.type === "radio",
-			hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ),
-			focusClass = "ui-state-focus";
-
-		if ( options.label === null ) {
-			options.label = this.buttonElement.html();
-		}
-
-		if ( this.element.is( ":disabled" ) ) {
-			options.disabled = true;
-		}
-
-		this.buttonElement
-			.addClass( baseClasses )
-			.attr( "role", "button" )
-			.bind( "mouseenter.button", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).addClass( "ui-state-hover" );
-				if ( this === lastActive ) {
-					$( this ).addClass( "ui-state-active" );
-				}
-			})
-			.bind( "mouseleave.button", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).removeClass( hoverClass );
-			})
-			.bind( "focus.button", function() {
-				// no need to check disabled, focus won't be triggered anyway
-				$( this ).addClass( focusClass );
-			})
-			.bind( "blur.button", function() {
-				$( this ).removeClass( focusClass );
-			});
-
-		if ( toggleButton ) {
-			this.element.bind( "change.button", function() {
-				self.refresh();
-			});
-		}
-
-		if ( this.type === "checkbox" ) {
-			this.buttonElement.bind( "click.button", function() {
-				if ( options.disabled ) {
-					return false;
-				}
-				$( this ).toggleClass( "ui-state-active" );
-				self.buttonElement.attr( "aria-pressed", self.element[0].checked );
-			});
-		} else if ( this.type === "radio" ) {
-			this.buttonElement.bind( "click.button", function() {
-				if ( options.disabled ) {
-					return false;
-				}
-				$( this ).addClass( "ui-state-active" );
-				self.buttonElement.attr( "aria-pressed", true );
-
-				var radio = self.element[ 0 ];
-				radioGroup( radio )
-					.not( radio )
-					.map(function() {
-						return $( this ).button( "widget" )[ 0 ];
-					})
-					.removeClass( "ui-state-active" )
-					.attr( "aria-pressed", false );
-			});
-		} else {
-			this.buttonElement
-				.bind( "mousedown.button", function() {
-					if ( options.disabled ) {
-						return false;
-					}
-					$( this ).addClass( "ui-state-active" );
-					lastActive = this;
-					$( document ).one( "mouseup", function() {
-						lastActive = null;
-					});
-				})
-				.bind( "mouseup.button", function() {
-					if ( options.disabled ) {
-						return false;
-					}
-					$( this ).removeClass( "ui-state-active" );
-				})
-				.bind( "keydown.button", function(event) {
-					if ( options.disabled ) {
-						return false;
-					}
-					if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {
-						$( this ).addClass( "ui-state-active" );
-					}
-				})
-				.bind( "keyup.button", function() {
-					$( this ).removeClass( "ui-state-active" );
-				});
-
-			if ( this.buttonElement.is("a") ) {
-				this.buttonElement.keyup(function(event) {
-					if ( event.keyCode === $.ui.keyCode.SPACE ) {
-						// TODO pass through original event correctly (just as 2nd argument doesn't work)
-						$( this ).click();
-					}
-				});
-			}
-		}
-
-		// TODO: pull out $.Widget's handling for the disabled option into
-		// $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
-		// be overridden by individual plugins
-		this._setOption( "disabled", options.disabled );
-	},
-
-	_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 {
-					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
-			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" );
-			if ( checked ) {
-				this.buttonElement.addClass( "ui-state-active" );
-			}
-			this.buttonElement.attr( "aria-pressed", checked );
-		} else {
-			this.buttonElement = this.element;
-		}
-	},
-
-	widget: function() {
-		return this.buttonElement;
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-helper-hidden-accessible" );
-		this.buttonElement
-			.removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
-			.removeAttr( "role" )
-			.removeAttr( "aria-pressed" )
-			.html( this.buttonElement.find(".ui-button-text").html() );
-
-		if ( !this.hasTitle ) {
-			this.buttonElement.removeAttr( "title" );
-		}
-
-		$.Widget.prototype.destroy.call( this );
-	},
-
-	_setOption: function( key, value ) {
-		$.Widget.prototype._setOption.apply( this, arguments );
-		if ( key === "disabled" ) {
-			if ( value ) {
-				this.element.attr( "disabled", true );
-			} else {
-				this.element.removeAttr( "disabled" );
-			}
-		}
-		this._resetButton();
-	},
-
-	refresh: function() {
-		var isDisabled = this.element.is( ":disabled" );
-		if ( isDisabled !== this.options.disabled ) {
-			this._setOption( "disabled", isDisabled );
-		}
-		if ( this.type === "radio" ) {
-			radioGroup( this.element[0] ).each(function() {
-				if ( $( this ).is( ":checked" ) ) {
-					$( this ).button( "widget" )
-						.addClass( "ui-state-active" )
-						.attr( "aria-pressed", true );
-				} else {
-					$( this ).button( "widget" )
-						.removeClass( "ui-state-active" )
-						.attr( "aria-pressed", false );
-				}
-			});
-		} else if ( this.type === "checkbox" ) {
-			if ( this.element.is( ":checked" ) ) {
-				this.buttonElement
-					.addClass( "ui-state-active" )
-					.attr( "aria-pressed", true );
-			} else {
-				this.buttonElement
-					.removeClass( "ui-state-active" )
-					.attr( "aria-pressed", false );
-			}
-		}
-	},
-
-	_resetButton: function() {
-		if ( this.type === "input" ) {
-			if ( this.options.label ) {
-				this.element.val( this.options.label );
-			}
-			return;
-		}
-		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,
-			buttonClasses = [];  
-
-		if ( icons.primary || icons.secondary ) {
-			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 ) {
-				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
-
-				if ( !this.hasTitle ) {
-					buttonElement.attr( "title", buttonText );
-				}
-			}
-		} else {
-			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" );
-	},
-	
-	_init: function() {
-		this.refresh();
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "disabled" ) {
-			this.buttons.button( "option", key, value );
-		}
-
-		$.Widget.prototype._setOption.apply( this, arguments );
-	},
-	
-	refresh: function() {
-		this.buttons = this.element.find( this.options.items )
-			.filter( ":ui-button" )
-				.button( "refresh" )
-			.end()
-			.not( ":ui-button" )
-				.button()
-			.end()
-			.map(function() {
-				return $( this ).button( "widget" )[ 0 ];
-			})
-				.removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
-				.filter( ":first" )
-					.addClass( "ui-corner-left" )
-				.end()
-				.filter( ":last" )
-					.addClass( "ui-corner-right" )
-				.end()
-			.end();
-	},
-
-	destroy: function() {
-		this.element.removeClass( "ui-buttonset" );
-		this.buttons
-			.map(function() {
-				return $( this ).button( "widget" )[ 0 ];
-			})
-				.removeClass( "ui-corner-left ui-corner-right" )
-			.end()
-			.button( "destroy" );
-
-		$.Widget.prototype.destroy.call( this );
-	}
-});
-
-}( jQuery ) );
-/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function( $, undefined ) {
-
-var uiDialogClasses =
-		'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
-	};
-
-$.widget("ui.dialog", {
-	options: {
-		autoOpen: true,
-		buttons: {},
-		closeOnEscape: true,
-		closeText: 'close',
-		dialogClass: '',
-		draggable: true,
-		hide: null,
-		height: 'auto',
-		maxHeight: false,
-		maxWidth: false,
-		minHeight: 150,
-		minWidth: 150,
-		modal: false,
-		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,
-		title: '',
-		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 || '&#160;',
-			titleId = $.ui.dialog.getTitleId(self.element),
-
-			uiDialog = (self.uiDialog = $('<div></div>'))
-				.appendTo(document.body)
-				.hide()
-				.addClass(uiDialogClasses + options.dialogClass)
-				.css({
-					zIndex: options.zIndex
-				})
-				// setting tabIndex makes the div focusable
-				// setting outline to 0 prevents a border on focus in Mozilla
-				.attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
-					if (options.closeOnEscape && event.keyCode &&
-						event.keyCode === $.ui.keyCode.ESCAPE) {
-						
-						self.close(event);
-						event.preventDefault();
-					}
-				})
-				.attr({
-					role: 'dialog',
-					'aria-labelledby': titleId
-				})
-				.mousedown(function(event) {
-					self.moveToTop(false, event);
-				}),
-
-			uiDialogContent = self.element
-				.show()
-				.removeAttr('title')
-				.addClass(
-					'ui-dialog-content ' +
-					'ui-widget-content')
-				.appendTo(uiDialog),
-
-			uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
-				.addClass(
-					'ui-dialog-titlebar ' +
-					'ui-widget-header ' +
-					'ui-corner-all ' +
-					'ui-helper-clearfix'
-				)
-				.prependTo(uiDialog),
-
-			uiDialogTitlebarClose = $('<a href="#"></a>')
-				.addClass(
-					'ui-dialog-titlebar-close ' +
-					'ui-corner-all'
-				)
-				.attr('role', 'button')
-				.hover(
-					function() {
-						uiDialogTitlebarClose.addClass('ui-state-hover');
-					},
-					function() {
-						uiDialogTitlebarClose.removeClass('ui-state-hover');
-					}
-				)
-				.focus(function() {
-					uiDialogTitlebarClose.addClass('ui-state-focus');
-				})
-				.blur(function() {
-					uiDialogTitlebarClose.removeClass('ui-state-focus');
-				})
-				.click(function(event) {
-					self.close(event);
-					return false;
-				})
-				.appendTo(uiDialogTitlebar),
-
-			uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
-				.addClass(
-					'ui-icon ' +
-					'ui-icon-closethick'
-				)
-				.text(options.closeText)
-				.appendTo(uiDialogTitlebarClose),
-
-			uiDialogTitle = $('<span></span>')
-				.addClass('ui-dialog-title')
-				.attr('id', titleId)
-				.html(title)
-				.prependTo(uiDialogTitlebar);
-
-		//handling of deprecated beforeclose (vs beforeClose) option
-		//Ticket #4669 http://dev.jqueryui.com/ticket/4669
-		//TODO: remove in 1.9pre
-		if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
-			options.beforeClose = options.beforeclose;
-		}
-
-		uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
-
-		if (options.draggable && $.fn.draggable) {
-			self._makeDraggable();
-		}
-		if (options.resizable && $.fn.resizable) {
-			self._makeResizable();
-		}
-
-		self._createButtons(options.buttons);
-		self._isOpen = false;
-
-		if ($.fn.bgiframe) {
-			uiDialog.bgiframe();
-		}
-	},
-
-	_init: function() {
-		if ( this.options.autoOpen ) {
-			this.open();
-		}
-	},
-
-	destroy: function() {
-		var self = this;
-		
-		if (self.overlay) {
-			self.overlay.destroy();
-		}
-		self.uiDialog.hide();
-		self.element
-			.unbind('.dialog')
-			.removeData('dialog')
-			.removeClass('ui-dialog-content ui-widget-content')
-			.hide().appendTo('body');
-		self.uiDialog.remove();
-
-		if (self.originalTitle) {
-			self.element.attr('title', self.originalTitle);
-		}
-
-		return self;
-	},
-
-	widget: function() {
-		return this.uiDialog;
-	},
-
-	close: function(event) {
-		var self = this,
-			maxZ, thisZ;
-		
-		if (false === self._trigger('beforeClose', event)) {
-			return;
-		}
-
-		if (self.overlay) {
-			self.overlay.destroy();
-		}
-		self.uiDialog.unbind('keypress.ui-dialog');
-
-		self._isOpen = false;
-
-		if (self.options.hide) {
-			self.uiDialog.hide(self.options.hide, function() {
-				self._trigger('close', event);
-			});
-		} else {
-			self.uiDialog.hide();
-			self._trigger('close', event);
-		}
-
-		$.ui.dialog.overlay.resize();
-
-		// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
-		if (self.options.modal) {
-			maxZ = 0;
-			$('.ui-dialog').each(function() {
-				if (this !== self.uiDialog[0]) {
-					thisZ = $(this).css('z-index');
-					if(!isNaN(thisZ)) {
-						maxZ = Math.max(maxZ, thisZ);
-					}
-				}
-			});
-			$.ui.dialog.maxZ = maxZ;
-		}
-
-		return self;
-	},
-
-	isOpen: function() {
-		return this._isOpen;
-	},
-
-	// the force parameter allows us to move modal dialogs to their correct
-	// position on open
-	moveToTop: function(force, event) {
-		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;
-		}
-		if (self.overlay) {
-			$.ui.dialog.maxZ += 1;
-			self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
-		}
-
-		//Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
-		//  http://ui.jquery.com/bugs/ticket/3193
-		saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
-		$.ui.dialog.maxZ += 1;
-		self.uiDialog.css('z-index', $.ui.dialog.maxZ);
-		self.element.attr(saveScroll);
-		self._trigger('focus', event);
-
-		return self;
-	},
-
-	open: function() {
-		if (this._isOpen) { return; }
-
-		var self = this,
-			options = self.options,
-			uiDialog = self.uiDialog;
-
-		self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
-		self._size();
-		self._position(options.position);
-		uiDialog.show(options.show);
-		self.moveToTop(true);
-
-		// prevent tabbing out of modal dialogs
-		if (options.modal) {
-			uiDialog.bind('keypress.ui-dialog', function(event) {
-				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;
-				} else if (event.target === first[0] && event.shiftKey) {
-					last.focus(1);
-					return false;
-				}
-			});
-		}
-
-		// 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
-		$(self.element.find(':tabbable').get().concat(
-			uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
-				uiDialog.get()))).eq(0).focus();
-
-		self._isOpen = true;
-		self._trigger('open');
-
-		return self;
-	},
-
-	_createButtons: function(buttons) {
-		var self = this,
-			hasButtons = false,
-			uiDialogButtonPane = $('<div></div>')
-				.addClass(
-					'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();
-
-		if (typeof buttons === 'object' && buttons !== null) {
-			$.each(buttons, function() {
-				return !(hasButtons = true);
-			});
-		}
-		if (hasButtons) {
-			$.each(buttons, function(name, props) {
-				props = $.isFunction( props ) ?
-					{ click: props, text: name } :
-					props;
-				var button = $('<button type="button"></button>')
-					.attr( props, true )
-					.unbind('click')
-					.click(function() {
-						props.click.apply(self.element[0], arguments);
-					})
-					.appendTo(uiButtonSet);
-				if ($.fn.button) {
-					button.button();
-				}
-			});
-			uiDialogButtonPane.appendTo(self.uiDialog);
-		}
-	},
-
-	_makeDraggable: function() {
-		var self = this,
-			options = self.options,
-			doc = $(document),
-			heightBeforeDrag;
-
-		function filteredUi(ui) {
-			return {
-				position: ui.position,
-				offset: ui.offset
-			};
-		}
-
-		self.uiDialog.draggable({
-			cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
-			handle: '.ui-dialog-titlebar',
-			containment: 'document',
-			start: function(event, ui) {
-				heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
-				$(this).height($(this).height()).addClass("ui-dialog-dragging");
-				self._trigger('dragStart', event, filteredUi(ui));
-			},
-			drag: function(event, ui) {
-				self._trigger('drag', event, filteredUi(ui));
-			},
-			stop: function(event, ui) {
-				options.position = [ui.position.left - doc.scrollLeft(),
-					ui.position.top - doc.scrollTop()];
-				$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
-				self._trigger('dragStop', event, filteredUi(ui));
-				$.ui.dialog.overlay.resize();
-			}
-		});
-	},
-
-	_makeResizable: function(handles) {
-		handles = (handles === undefined ? this.options.resizable : handles);
-		var self = this,
-			options = self.options,
-			// .ui-resizable has position: relative defined in the stylesheet
-			// but dialogs have to use absolute or fixed positioning
-			position = self.uiDialog.css('position'),
-			resizeHandles = (typeof handles === 'string' ?
-				handles	:
-				'n,e,s,w,se,sw,ne,nw'
-			);
-
-		function filteredUi(ui) {
-			return {
-				originalPosition: ui.originalPosition,
-				originalSize: ui.originalSize,
-				position: ui.position,
-				size: ui.size
-			};
-		}
-
-		self.uiDialog.resizable({
-			cancel: '.ui-dialog-content',
-			containment: 'document',
-			alsoResize: self.element,
-			maxWidth: options.maxWidth,
-			maxHeight: options.maxHeight,
-			minWidth: options.minWidth,
-			minHeight: self._minHeight(),
-			handles: resizeHandles,
-			start: function(event, ui) {
-				$(this).addClass("ui-dialog-resizing");
-				self._trigger('resizeStart', event, filteredUi(ui));
-			},
-			resize: function(event, ui) {
-				self._trigger('resize', event, filteredUi(ui));
-			},
-			stop: function(event, ui) {
-				$(this).removeClass("ui-dialog-resizing");
-				options.height = $(this).height();
-				options.width = $(this).width();
-				self._trigger('resizeStop', event, filteredUi(ui));
-				$.ui.dialog.overlay.resize();
-			}
-		})
-		.css('position', position)
-		.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
-	},
-
-	_minHeight: function() {
-		var options = this.options;
-
-		if (options.height === 'auto') {
-			return options.minHeight;
-		} else {
-			return Math.min(options.minHeight, options.height);
-		}
-	},
-
-	_position: function(position) {
-		var myAt = [],
-			offset = [0, 0],
-			isVisible;
-
-		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(' ');
-
-			if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
-				myAt = position.split ? position.split(' ') : [position[0], position[1]];
-				if (myAt.length === 1) {
-					myAt[1] = myAt[0];
-				}
-
-				$.each(['left', 'top'], function(i, offsetPosition) {
-					if (+myAt[i] === myAt[i]) {
-						offset[i] = myAt[i];
-						myAt[i] = offsetPosition;
-					}
-				});
-
-				position = {
-					my: myAt.join(" "),
-					at: myAt.join(" "),
-					offset: offset.join(" ")
-				};
-			} 
-
-			position = $.extend({}, $.ui.dialog.prototype.options.position, position);
-		} else {
-			position = $.ui.dialog.prototype.options.position;
-		}
-
-		// need to show the dialog to get the actual offset in the position plugin
-		isVisible = this.uiDialog.is(':visible');
-		if (!isVisible) {
-			this.uiDialog.show();
-		}
-		this.uiDialog
-			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
-			.css({ top: 0, left: 0 })
-			.position($.extend({ of: window }, position));
-		if (!isVisible) {
-			this.uiDialog.hide();
-		}
-	},
-
-	_setOptions: function( options ) {
-		var self = this,
-			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
-			//TODO: remove in 1.9pre
-			case "beforeclose":
-				key = "beforeClose";
-				break;
-			case "buttons":
-				self._createButtons(value);
-				break;
-			case "closeText":
-				// ensure that we always pass a string
-				self.uiDialogTitlebarCloseText.text("" + value);
-				break;
-			case "dialogClass":
-				uiDialog
-					.removeClass(self.options.dialogClass)
-					.addClass(uiDialogClasses + value);
-				break;
-			case "disabled":
-				if (value) {
-					uiDialog.addClass('ui-dialog-disabled');
-				} else {
-					uiDialog.removeClass('ui-dialog-disabled');
-				}
-				break;
-			case "draggable":
-				var isDraggable = uiDialog.is( ":data(draggable)" );
-				if ( isDraggable && !value ) {
-					uiDialog.draggable( "destroy" );
-				}
-				
-				if ( !isDraggable && value ) {
-					self._makeDraggable();
-				}
-				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');
-				}
-
-				// currently resizable, changing handles
-				if (isResizable && typeof value === 'string') {
-					uiDialog.resizable('option', 'handles', value);
-				}
-
-				// currently non-resizable, becoming resizable
-				if (!isResizable && value !== false) {
-					self._makeResizable(value);
-				}
-				break;
-			case "title":
-				// convert whatever was passed in o a string, for html() to not throw up
-				$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
-				break;
-		}
-
-		$.Widget.prototype._setOption.apply(self, arguments);
-	},
-
-	_size: function() {
-		/* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
-		 * divs will both have width and height set, so we need to reset them
-		 */
-		var options = this.options,
-			nonContentHeight,
-			minContentHeight,
-			isVisible = this.uiDialog.is( ":visible" );
-
-		// reset content sizing
-		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
-		nonContentHeight = this.uiDialog.css({
-				height: 'auto',
-				width: options.width
-			})
-			.height();
-		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());
-		}
-	}
-});
-
-$.extend($.ui.dialog, {
-	version: "1.8.11",
-
-	uuid: 0,
-	maxZ: 0,
-
-	getTitleId: function($el) {
-		var id = $el.attr('id');
-		if (!id) {
-			this.uuid += 1;
-			id = this.uuid;
-		}
-		return 'ui-dialog-title-' + id;
-	},
-
-	overlay: function(dialog) {
-		this.$el = $.ui.dialog.overlay.create(dialog);
-	}
-});
-
-$.extend($.ui.dialog.overlay, {
-	instances: [],
-	// reuse old instances due to IE memory leak with alpha transparency (see #5185)
-	oldInstances: [],
-	maxZ: 0,
-	events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
-		function(event) { return event + '.dialog-overlay'; }).join(' '),
-	create: function(dialog) {
-		if (this.instances.length === 0) {
-			// prevent use of anchors and inputs
-			// we use a setTimeout in case the overlay is created from an
-			// event that we're going to be cancelling (see #2804)
-			setTimeout(function() {
-				// handle $(el).dialog().dialog('close') (see #4065)
-				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
-						// 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);
-
-			// allow closing by pressing the escape key
-			$(document).bind('keydown.dialog-overlay', function(event) {
-				if (dialog.options.closeOnEscape && event.keyCode &&
-					event.keyCode === $.ui.keyCode.ESCAPE) {
-					
-					dialog.close(event);
-					event.preventDefault();
-				}
-			});
-
-			// handle window resize
-			$(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
-		}
-
-		var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
-			.appendTo(document.body)
-			.css({
-				width: this.width(),
-				height: this.height()
-			});
-
-		if ($.fn.bgiframe) {
-			$el.bgiframe();
-		}
-
-		this.instances.push($el);
-		return $el;
-	},
-
-	destroy: function($el) {
-		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');
-		}
-
-		$el.remove();
-		
-		// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
-		var maxZ = 0;
-		$.each(this.instances, function() {
-			maxZ = Math.max(maxZ, this.css('z-index'));
-		});
-		this.maxZ = maxZ;
-	},
-
-	height: function() {
-		var scrollHeight,
-			offsetHeight;
-		// handle IE 6
-		if ($.browser.msie && $.browser.version < 7) {
-			scrollHeight = Math.max(
-				document.documentElement.scrollHeight,
-				document.body.scrollHeight
-			);
-			offsetHeight = Math.max(
-				document.documentElement.offsetHeight,
-				document.body.offsetHeight
-			);
-
-			if (scrollHeight < offsetHeight) {
-				return $(window).height() + 'px';
-			} else {
-				return scrollHeight + 'px';
-			}
-		// handle "good" browsers
-		} else {
-			return $(document).height() + 'px';
-		}
-	},
-
-	width: function() {
-		var scrollWidth,
-			offsetWidth;
-		// handle IE 6
-		if ($.browser.msie && $.browser.version < 7) {
-			scrollWidth = Math.max(
-				document.documentElement.scrollWidth,
-				document.body.scrollWidth
-			);
-			offsetWidth = Math.max(
-				document.documentElement.offsetWidth,
-				document.body.offsetWidth
-			);
-
-			if (scrollWidth < offsetWidth) {
-				return $(window).width() + 'px';
-			} else {
-				return scrollWidth + 'px';
-			}
-		// handle "good" browsers
-		} else {
-			return $(document).width() + 'px';
-		}
-	},
-
-	resize: function() {
-		/* If the dialog is draggable and the user drags it past the
-		 * right edge of the window, the document becomes wider so we
-		 * need to stretch the overlay. If the user then drags the
-		 * dialog back to the left, the document will become narrower,
-		 * so we need to shrink the overlay to the appropriate size.
-		 * This is handled by shrinking the overlay before setting it
-		 * to the full document size.
-		 */
-		var $overlays = $([]);
-		$.each($.ui.dialog.overlay.instances, function() {
-			$overlays = $overlays.add(this);
-		});
-
-		$overlays.css({
-			width: 0,
-			height: 0
-		}).css({
-			width: $.ui.dialog.overlay.width(),
-			height: $.ui.dialog.overlay.height()
-		});
-	}
-});
-
-$.extend($.ui.dialog.overlay.prototype, {
-	destroy: function() {
-		$.ui.dialog.overlay.destroy(this.$el);
-	}
-});
-
-}(jQuery));
-/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-// number of pages in a slider
-// (how many times can you page up/down to go through the whole range)
-var numPages = 5;
-
-$.widget( "ui.slider", $.ui.mouse, {
-
-	widgetEventPrefix: "slide",
-
-	options: {
-		animate: false,
-		distance: 0,
-		max: 100,
-		min: 0,
-		orientation: "horizontal",
-		range: false,
-		step: 1,
-		value: 0,
-		values: null
-	},
-
-	_create: function() {
-		var self = this,
-			o = this.options;
-
-		this._keySliding = false;
-		this._mouseSliding = false;
-		this._animateOff = true;
-		this._handleIndex = null;
-		this._detectOrientation();
-		this._mouseInit();
-
-		this.element
-			.addClass( "ui-slider" +
-				" ui-slider-" + this.orientation +
-				" ui-widget" +
-				" ui-widget-content" +
-				" ui-corner-all" );
-		
-		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] ];
-				}
-			} else {
-				this.range = $( "<div></div>" );
-			}
-
-			this.range
-				.appendTo( this.element )
-				.addClass( "ui-slider-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" );
-		}
-
-		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" );
-			}
-		}
-
-		this.handles = $( ".ui-slider-handle", this.element )
-			.addClass( "ui-state-default" +
-				" ui-corner-all" );
-
-		this.handle = this.handles.eq( 0 );
-
-		this.handles.add( this.range ).filter( "a" )
-			.click(function( event ) {
-				event.preventDefault();
-			})
-			.hover(function() {
-				if ( !o.disabled ) {
-					$( this ).addClass( "ui-state-hover" );
-				}
-			}, function() {
-				$( this ).removeClass( "ui-state-hover" );
-			})
-			.focus(function() {
-				if ( !o.disabled ) {
-					$( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
-					$( this ).addClass( "ui-state-focus" );
-				} else {
-					$( this ).blur();
-				}
-			})
-			.blur(function() {
-				$( this ).removeClass( "ui-state-focus" );
-			});
-
-		this.handles.each(function( i ) {
-			$( this ).data( "index.ui-slider-handle", i );
-		});
-
-		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" );
-
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_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(),
-			height: this.element.outerHeight()
-		};
-		this.elementOffset = this.element.offset();
-
-		position = { x: event.pageX, y: event.pageY };
-		normValue = this._normValueFromMouse( position );
-		distance = this._valueMax() - this._valueMin() + 1;
-		self = this;
-		this.handles.each(function( i ) {
-			var thisDistance = Math.abs( normValue - self.values(i) );
-			if ( distance > thisDistance ) {
-				distance = thisDistance;
-				closestHandle = $( this );
-				index = i;
-			}
-		});
-
-		// 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 ) {
-			index += 1;
-			closestHandle = $( this.handles[index] );
-		}
-
-		allowed = this._start( event, index );
-		if ( allowed === false ) {
-			return false;
-		}
-		this._mouseSliding = true;
-
-		self._handleIndex = index;
-
-		closestHandle
-			.addClass( "ui-state-active" )
-			.focus();
-		
-		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)
-		};
-
-		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
-			this._slide( event, index, normValue );
-		}
-		this._animateOff = true;
-		return true;
-	},
-
-	_mouseStart: function( event ) {
-		return true;
-	},
-
-	_mouseDrag: function( event ) {
-		var position = { x: event.pageX, y: event.pageY },
-			normValue = this._normValueFromMouse( position );
-		
-		this._slide( event, this._handleIndex, normValue );
-
-		return false;
-	},
-
-	_mouseStop: function( event ) {
-		this.handles.removeClass( "ui-state-active" );
-		this._mouseSliding = false;
-
-		this._stop( event, this._handleIndex );
-		this._change( event, this._handleIndex );
-
-		this._handleIndex = null;
-		this._clickOffset = null;
-		this._animateOff = false;
-
-		return false;
-	},
-	
-	_detectOrientation: function() {
-		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
-	},
-
-	_normValueFromMouse: function( position ) {
-		var pixelTotal,
-			pixelMouse,
-			percentMouse,
-			valueTotal,
-			valueMouse;
-
-		if ( this.orientation === "horizontal" ) {
-			pixelTotal = this.elementSize.width;
-			pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
-		} else {
-			pixelTotal = this.elementSize.height;
-			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
-		}
-
-		percentMouse = ( pixelMouse / pixelTotal );
-		if ( percentMouse > 1 ) {
-			percentMouse = 1;
-		}
-		if ( percentMouse < 0 ) {
-			percentMouse = 0;
-		}
-		if ( this.orientation === "vertical" ) {
-			percentMouse = 1 - percentMouse;
-		}
-
-		valueTotal = this._valueMax() - this._valueMin();
-		valueMouse = this._valueMin() + percentMouse * valueTotal;
-
-		return this._trimAlignValue( valueMouse );
-	},
-
-	_start: function( event, index ) {
-		var uiHash = {
-			handle: this.handles[ index ],
-			value: this.value()
-		};
-		if ( this.options.values && this.options.values.length ) {
-			uiHash.value = this.values( index );
-			uiHash.values = this.values();
-		}
-		return this._trigger( "start", event, uiHash );
-	},
-
-	_slide: function( event, index, newVal ) {
-		var otherVal,
-			newValues,
-			allowed;
-
-		if ( this.options.values && this.options.values.length ) {
-			otherVal = this.values( index ? 0 : 1 );
-
-			if ( ( this.options.values.length === 2 && this.options.range === true ) && 
-					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
-				) {
-				newVal = otherVal;
-			}
-
-			if ( newVal !== this.values( index ) ) {
-				newValues = this.values();
-				newValues[ index ] = newVal;
-				// A slide can be canceled by returning false from the slide callback
-				allowed = this._trigger( "slide", event, {
-					handle: this.handles[ index ],
-					value: newVal,
-					values: newValues
-				} );
-				otherVal = this.values( index ? 0 : 1 );
-				if ( allowed !== false ) {
-					this.values( index, newVal, true );
-				}
-			}
-		} else {
-			if ( newVal !== this.value() ) {
-				// A slide can be canceled by returning false from the slide callback
-				allowed = this._trigger( "slide", event, {
-					handle: this.handles[ index ],
-					value: newVal
-				} );
-				if ( allowed !== false ) {
-					this.value( newVal );
-				}
-			}
-		}
-	},
-
-	_stop: function( event, index ) {
-		var uiHash = {
-			handle: this.handles[ index ],
-			value: this.value()
-		};
-		if ( this.options.values && this.options.values.length ) {
-			uiHash.value = this.values( index );
-			uiHash.values = this.values();
-		}
-
-		this._trigger( "stop", event, uiHash );
-	},
-
-	_change: function( event, index ) {
-		if ( !this._keySliding && !this._mouseSliding ) {
-			var uiHash = {
-				handle: this.handles[ index ],
-				value: this.value()
-			};
-			if ( this.options.values && this.options.values.length ) {
-				uiHash.value = this.values( index );
-				uiHash.values = this.values();
-			}
-
-			this._trigger( "change", event, uiHash );
-		}
-	},
-
-	value: function( newValue ) {
-		if ( arguments.length ) {
-			this.options.value = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, 0 );
-		}
-
-		return this._value();
-	},
-
-	values: function( index, newValue ) {
-		var vals,
-			newValues,
-			i;
-
-		if ( arguments.length > 1 ) {
-			this.options.values[ index ] = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, index );
-		}
-
-		if ( arguments.length ) {
-			if ( $.isArray( arguments[ 0 ] ) ) {
-				vals = this.options.values;
-				newValues = arguments[ 0 ];
-				for ( i = 0; i < vals.length; i += 1 ) {
-					vals[ i ] = this._trimAlignValue( newValues[ i ] );
-					this._change( null, i );
-				}
-				this._refreshValue();
-			} else {
-				if ( this.options.values && this.options.values.length ) {
-					return this._values( index );
-				} else {
-					return this.value();
-				}
-			}
-		} else {
-			return this._values();
-		}
-	},
-
-	_setOption: function( key, value ) {
-		var i,
-			valsLength = 0;
-
-		if ( $.isArray( this.options.values ) ) {
-			valsLength = this.options.values.length;
-		}
-
-		$.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" );
-				} else {
-					this.handles.removeAttr( "disabled" );
-					this.element.removeClass( "ui-disabled" );
-				}
-				break;
-			case "orientation":
-				this._detectOrientation();
-				this.element
-					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
-					.addClass( "ui-slider-" + this.orientation );
-				this._refreshValue();
-				break;
-			case "value":
-				this._animateOff = true;
-				this._refreshValue();
-				this._change( null, 0 );
-				this._animateOff = false;
-				break;
-			case "values":
-				this._animateOff = true;
-				this._refreshValue();
-				for ( i = 0; i < valsLength; i += 1 ) {
-					this._change( null, i );
-				}
-				this._animateOff = false;
-				break;
-		}
-	},
-
-	//internal value getter
-	// _value() returns value trimmed by min and max, aligned by step
-	_value: function() {
-		var val = this.options.value;
-		val = this._trimAlignValue( val );
-
-		return val;
-	},
-
-	//internal values getter
-	// _values() returns array of values trimmed by min and max, aligned by step
-	// _values( index ) returns single value trimmed by min and max, aligned by step
-	_values: function( index ) {
-		var val,
-			vals,
-			i;
-
-		if ( arguments.length ) {
-			val = this.options.values[ index ];
-			val = this._trimAlignValue( val );
-
-			return val;
-		} else {
-			// .slice() creates a copy of the array
-			// this copy gets trimmed by min and max and then returned
-			vals = this.options.values.slice();
-			for ( i = 0; i < vals.length; i+= 1) {
-				vals[ i ] = this._trimAlignValue( vals[ i ] );
-			}
-
-			return vals;
-		}
-	},
-	
-	// returns the step-aligned value that val is closest to, between (inclusive) min and max
-	_trimAlignValue: function( val ) {
-		if ( val <= this._valueMin() ) {
-			return this._valueMin();
-		}
-		if ( val >= this._valueMax() ) {
-			return this._valueMax();
-		}
-		var step = ( this.options.step > 0 ) ? this.options.step : 1,
-			valModStep = (val - this._valueMin()) % step;
-			alignValue = val - valModStep;
-
-		if ( Math.abs(valModStep) * 2 >= step ) {
-			alignValue += ( valModStep > 0 ) ? step : ( -step );
-		}
-
-		// Since JavaScript has problems with large floats, round
-		// the final value to 5 digits after the decimal point (see #4124)
-		return parseFloat( alignValue.toFixed(5) );
-	},
-
-	_valueMin: function() {
-		return this.options.min;
-	},
-
-	_valueMax: function() {
-		return this.options.max;
-	},
-	
-	_refreshValue: function() {
-		var 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 {
-						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 {
-			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.11"
-});
-
-}(jQuery));
-/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var tabId = 0,
-	listId = 0;
-
-function getNextTabId() {
-	return ++tabId;
-}
-
-function getNextListId() {
-	return ++listId;
-}
-
-$.widget( "ui.tabs", {
-	options: {
-		add: null,
-		ajaxOptions: null,
-		cache: false,
-		cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
-		collapsible: false,
-		disable: null,
-		disabled: [],
-		enable: null,
-		event: "click",
-		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
-		idPrefix: "ui-tabs-",
-		load: null,
-		panelTemplate: "<div></div>",
-		remove: null,
-		select: null,
-		show: null,
-		spinner: "<em>Loading&#8230;</em>",
-		tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
-	},
-
-	_create: function() {
-		this._tabify( true );
-	},
-
-	_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._tabify();
-		}
-	},
-
-	_tabId: function( a ) {
-		return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
-			this.options.idPrefix + getNextTabId();
-	},
-
-	_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-" + getNextListId() );
-		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
-	},
-
-	_ui: function( tab, panel ) {
-		return {
-			tab: tab,
-			panel: panel,
-			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)" )
-				.each(function() {
-					var el = $( this );
-					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
-				});
-	},
-
-	_tabify: function( init ) {
-		var self = this,
-			o = this.options,
-			fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
-
-		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 ) ) {
-				href = a.hash;
-				a.href = href;
-			}
-
-			// inline tab
-			if ( fragmentId.test( href ) ) {
-				self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
-			// remote tab
-			// 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( /#.*$/, "" ) );
-
-				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 );
-			// invalid tab href
-			} else {
-				o.disabled.push( i );
-			}
-		});
-
-		// initialization from scratch
-		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" );
-
-			// 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 ) {
-							o.selected = i;
-							return false;
-						}
-					});
-				}
-				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" ) );
-				}
-				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;
-
-			// 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 );
-			}
-
-			// highlight selected tab
-			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.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );
-				});
-
-				this.load( o.selected );
-			}
-
-			// clean up to avoid memory leaks in certain versions of IE 6
-			// 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" ) );
-		}
-
-		// update 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 );
-		}
-
-		// disable tabs
-		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" );
-		}
-
-		// remove all handlers before, tabify may run on existing tabs after add or option change
-		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 );
-				}
-			};
-			var removeState = function( state, el ) {
-				el.removeClass( "ui-state-" + state );
-			};
-			this.lis.bind( "mouseover.tabs" , function() {
-				addState( "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( "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 {
-				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" );
-			}
-		}
-
-		// 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 ] ) );
-					});
-			}
-			: 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" );
-				});
-			}
-			: 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 = $(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.panels.filter( ":animated" ).length ||
-				self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
-				this.blur();
-				return false;
-			}
-
-			o.selected = self.anchors.index( this );
-
-			self.abort();
-
-			// if tab may be closed
-			if ( o.collapsible ) {
-				if ( $li.hasClass( "ui-tabs-selected" ) ) {
-					o.selected = -1;
-
-					if ( o.cookie ) {
-						self._cookie( o.selected, o.cookie );
-					}
-
-					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 );
-					}
-
-					self.element.queue( "tabs", function() {
-						showTab( el, $show );
-					});
-
-					// 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 );
-			}
-
-			// show new tab
-			if ( $show.length ) {
-				if ( $hide.length ) {
-					self.element.queue( "tabs", function() {
-						hideTab( el, $hide );
-					});
-				}
-				self.element.queue( "tabs", function() {
-					showTab( el, $show );
-				});
-
-				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 ) {
-				this.blur();
-			}
-		});
-
-		// disable click in any case
-		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.anchors.each(function() {
-			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" );
-			});
-		});
-
-		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 );
-		}
-
-		return this;
-	},
-
-	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 ] );
-
-		$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 = 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 ] );
-		}
-
-		o.disabled = $.map( o.disabled, function( n, i ) {
-			return n >= index ? ++n : n;
-		});
-
-		this._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 ] ) );
-			});
-
-			this.load( 0 );
-		}
-
-		this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		return this;
-	},
-
-	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 ) );
-		}
-
-		o.disabled = $.map(
-			$.grep( o.disabled, function(n, i) {
-				return n != index;
-			}),
-			function( n, i ) {
-				return n >= index ? --n : n;
-			});
-
-		this._tabify();
-
-		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
-		return this;
-	},
-
-	enable: function( index ) {
-		index = this._getIndex( index );
-		var o = this.options;
-		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._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		return this;
-	},
-
-	disable: function( index ) {
-		index = this._getIndex( index );
-		var self = this, o = this.options;
-		// cannot disable already selected tab
-		if ( index != o.selected ) {
-			this.lis.eq( index ).addClass( "ui-state-disabled" );
-
-			o.disabled.push( index );
-			o.disabled.sort();
-
-			this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		}
-
-		return this;
-	},
-
-	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" );
-		return this;
-	},
-
-	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" );
-			return;
-		}
-
-		// load remote from here on
-		this.lis.eq( index ).addClass( "ui-state-processing" );
-
-		if ( o.spinner ) {
-			var span = $( "span", a );
-			span.data( "label.tabs", span.html() ).html( o.spinner );
-		}
-
-		this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
-			url: url,
-			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 );
-				}
-
-				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
-				try {
-					o.ajaxOptions.success( r, s );
-				}
-				catch ( e ) {}
-			},
-			error: function( xhr, s, e ) {
-				// take care of tab labels
-				self._cleanup();
-
-				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 );
-				}
-				catch ( e ) {}
-			}
-		} ) );
-
-		// last, so that load event is fired before show...
-		self.element.dequeue( "tabs" );
-
-		return this;
-	},
-
-	abort: function() {
-		// stop possibly running animations
-		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 ) );
-
-		// terminate pending requests from other tabs
-		if ( this.xhr ) {
-			this.xhr.abort();
-			delete this.xhr;
-		}
-
-		// take care of tab labels
-		this._cleanup();
-		return this;
-	},
-
-	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.11"
-});
-
-/*
- * Tabs Extensions
- */
-
-/*
- * Rotate
- */
-$.extend( $.ui.tabs.prototype, {
-	rotation: null,
-	rotate: function( ms, continuing ) {
-		var self = this,
-			o = this.options;
-
-		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 );
-			
-			if ( e ) {
-				e.stopPropagation();
-			}
-		});
-
-		var stop = self._unrotate || ( self._unrotate = !continuing
-			? function(e) {
-				if (e.clientX) { // in case of a true click
-					self.rotate(null);
-				}
-			}
-			: function( e ) {
-				t = o.selected;
-				rotate();
-			});
-
-		// start rotation
-		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 );
-			delete this._rotate;
-			delete this._unrotate;
-		}
-
-		return this;
-	}
-});
-
-})( jQuery );
-/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function( $, undefined ) {
-
-$.extend($.ui, { datepicker: { version: "1.8.11" } });
-
-var PROP_NAME = 'datepicker';
-var dpuuid = new Date().getTime();
-
-/* Date picker manager.
-   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
-   Settings for (groups of) date pickers are maintained in an instance object,
-   allowing multiple different settings on the same page. */
-
-function Datepicker() {
-	this.debug = false; // Change this to true to start debugging
-	this._curInst = null; // The current instance in use
-	this._keyEvent = false; // If the last event was a key event
-	this._disabledInputs = []; // List of date picker inputs that have been disabled
-	this._datepickerShowing = false; // True if the popup picker is showing , false if not
-	this._inDialog = false; // True if showing within a "dialog", false if not
-	this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
-	this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
-	this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
-	this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
-	this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
-	this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
-	this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
-	this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
-	this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
-	this.regional = []; // Available regional settings, indexed by language code
-	this.regional[''] = { // Default regional settings
-		closeText: 'Done', // Display text for close link
-		prevText: 'Prev', // Display text for previous month link
-		nextText: 'Next', // Display text for next month link
-		currentText: 'Today', // Display text for current month link
-		monthNames: ['January','February','March','April','May','June',
-			'July','August','September','October','November','December'], // Names of months for drop-down and formatting
-		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
-		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
-		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
-		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
-		weekHeader: 'Wk', // Column header for week of the year
-		dateFormat: 'mm/dd/yy', // See format options on parseDate
-		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
-		isRTL: false, // True if right-to-left language, false if left-to-right
-		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
-		yearSuffix: '' // Additional text to append to the year in the month headers
-	};
-	this._defaults = { // Global defaults for all the date picker instances
-		showOn: 'focus', // 'focus' for popup on focus,
-			// 'button' for trigger button, or 'both' for either
-		showAnim: 'fadeIn', // Name of jQuery animation for popup
-		showOptions: {}, // Options for enhanced animations
-		defaultDate: null, // Used when field is blank: actual date,
-			// +/-number for offset from today, null for today
-		appendText: '', // Display text following the input box, e.g. showing the format
-		buttonText: '...', // Text for trigger button
-		buttonImage: '', // URL for trigger button image
-		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
-		hideIfNoPrevNext: false, // True to hide next/previous month links
-			// if not applicable, false to just disable them
-		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
-		gotoCurrent: false, // True if today link goes back to current selection instead
-		changeMonth: false, // True if month can be selected directly, false if only prev/next
-		changeYear: false, // True if year can be selected directly, false if only prev/next
-		yearRange: 'c-10:c+10', // Range of years to display in drop-down,
-			// either relative to today's year (-nn:+nn), relative to currently displayed year
-			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
-		showOtherMonths: false, // True to show dates in other months, false to leave blank
-		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
-		showWeek: false, // True to show week of the year, false to not show it
-		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
-			// takes a Date and returns the number of the week for it
-		shortYearCutoff: '+10', // Short year values < this are in the current century,
-			// > this are in the previous century,
-			// string value starting with '+' for current year + value
-		minDate: null, // The earliest selectable date, or null for no limit
-		maxDate: null, // The latest selectable date, or null for no limit
-		duration: 'fast', // Duration of display/closure
-		beforeShowDay: null, // Function that takes a date and returns an array with
-			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
-			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
-		beforeShow: null, // Function that takes an input field and
-			// returns a set of custom settings for the date picker
-		onSelect: null, // Define a callback function when a date is selected
-		onChangeMonthYear: null, // Define a callback function when the month or year is changed
-		onClose: null, // Define a callback function when the datepicker is closed
-		numberOfMonths: 1, // Number of months to show at a time
-		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
-		stepMonths: 1, // Number of months to step back/forward
-		stepBigMonths: 12, // Number of months to step back/forward for the big links
-		altField: '', // Selector for an alternate field to store selected dates into
-		altFormat: '', // The date format to use for the alternate field
-		constrainInput: true, // The input is constrained by the current date format
-		showButtonPanel: false, // True to show button panel, false to not show it
-		autoSize: false // True to size the input for the date format, false to leave as is
-	};
-	$.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"></div>');
-}
-
-$.extend(Datepicker.prototype, {
-	/* Class name added to elements to indicate already configured with a date picker. */
-	markerClassName: 'hasDatepicker',
-
-	/* Debug logging (if enabled). */
-	log: function () {
-		if (this.debug)
-			console.log.apply('', arguments);
-	},
-	
-	// TODO rename to "widget" when switching to widget factory
-	_widgetDatepicker: function() {
-		return this.dpDiv;
-	},
-
-	/* Override the default settings for all instances of the date picker.
-	   @param  settings  object - the new settings to use as defaults (anonymous object)
-	   @return the manager object */
-	setDefaults: function(settings) {
-		extendRemove(this._defaults, settings || {});
-		return this;
-	},
-
-	/* Attach the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span
-	   @param  settings  object - the new settings to use for this date picker instance (anonymous) */
-	_attachDatepicker: function(target, settings) {
-		// check for settings on the control itself - in namespace 'date:'
-		var inlineSettings = null;
-		for (var attrName in this._defaults) {
-			var attrValue = target.getAttribute('date:' + attrName);
-			if (attrValue) {
-				inlineSettings = inlineSettings || {};
-				try {
-					inlineSettings[attrName] = eval(attrValue);
-				} catch (err) {
-					inlineSettings[attrName] = attrValue;
-				}
-			}
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		var inline = (nodeName == 'div' || nodeName == 'span');
-		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') {
-			this._connectDatepicker(target, inst);
-		} else if (inline) {
-			this._inlineDatepicker(target, inst);
-		}
-	},
-
-	/* Create a new instance object. */
-	_newInst: function(target, inline) {
-		var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
-		return {id: id, input: target, // associated target
-			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
-			drawMonth: 0, drawYear: 0, // month being drawn
-			inline: inline, // is datepicker inline or not
-			dpDiv: (!inline ? this.dpDiv : // presentation div
-			$('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))};
-	},
-
-	/* Attach the date picker to an input field. */
-	_connectDatepicker: function(target, inst) {
-		var input = $(target);
-		inst.append = $([]);
-		inst.trigger = $([]);
-		if (input.hasClass(this.markerClassName))
-			return;
-		this._attachments(input, inst);
-		input.addClass(this.markerClassName).keydown(this._doKeyDown).
-			keypress(this._doKeyPress).keyup(this._doKeyUp).
-			bind("setData.datepicker", function(event, key, value) {
-				inst.settings[key] = value;
-			}).bind("getData.datepicker", function(event, key) {
-				return this._get(inst, key);
-			});
-		this._autoSize(inst);
-		$.data(target, PROP_NAME, inst);
-	},
-
-	/* Make attachments based on settings. */
-	_attachments: function(input, inst) {
-		var appendText = this._get(inst, 'appendText');
-		var isRTL = this._get(inst, 'isRTL');
-		if (inst.append)
-			inst.append.remove();
-		if (appendText) {
-			inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
-			input[isRTL ? 'before' : 'after'](inst.append);
-		}
-		input.unbind('focus', this._showDatepicker);
-		if (inst.trigger)
-			inst.trigger.remove();
-		var showOn = this._get(inst, 'showOn');
-		if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
-			input.focus(this._showDatepicker);
-		if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
-			var buttonText = this._get(inst, 'buttonText');
-			var buttonImage = this._get(inst, 'buttonImage');
-			inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
-				$('<img/>').addClass(this._triggerClass).
-					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
-				$('<button type="button"></button>').addClass(this._triggerClass).
-					html(buttonImage == '' ? buttonText : $('<img/>').attr(
-					{ src:buttonImage, alt:buttonText, title:buttonText })));
-			input[isRTL ? 'before' : 'after'](inst.trigger);
-			inst.trigger.click(function() {
-				if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
-					$.datepicker._hideDatepicker();
-				else
-					$.datepicker._showDatepicker(input[0]);
-				return false;
-			});
-		}
-	},
-
-	/* Apply the maximum length for the date format. */
-	_autoSize: function(inst) {
-		if (this._get(inst, 'autoSize') && !inst.inline) {
-			var date = new Date(2009, 12 - 1, 20); // Ensure double digits
-			var dateFormat = this._get(inst, 'dateFormat');
-			if (dateFormat.match(/[DM]/)) {
-				var findMax = function(names) {
-					var max = 0;
-					var maxI = 0;
-					for (var i = 0; i < names.length; i++) {
-						if (names[i].length > max) {
-							max = names[i].length;
-							maxI = i;
-						}
-					}
-					return maxI;
-				};
-				date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
-					'monthNames' : 'monthNamesShort'))));
-				date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
-					'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
-			}
-			inst.input.attr('size', this._formatDate(inst, date).length);
-		}
-	},
-
-	/* Attach an inline date picker to a div. */
-	_inlineDatepicker: function(target, inst) {
-		var divSpan = $(target);
-		if (divSpan.hasClass(this.markerClassName))
-			return;
-		divSpan.addClass(this.markerClassName).append(inst.dpDiv).
-			bind("setData.datepicker", function(event, key, value){
-				inst.settings[key] = value;
-			}).bind("getData.datepicker", function(event, key){
-				return this._get(inst, key);
-			});
-		$.data(target, PROP_NAME, inst);
-		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.
-	   @param  input     element - ignored
-	   @param  date      string or Date - the initial date to display
-	   @param  onSelect  function - the function to call when a date is selected
-	   @param  settings  object - update the dialog date picker instance's settings (anonymous object)
-	   @param  pos       int[2] - coordinates for the dialog's position within the screen or
-	                     event - with x/y coordinates or
-	                     leave empty for default (screen centre)
-	   @return the manager object */
-	_dialogDatepicker: function(input, date, onSelect, settings, pos) {
-		var inst = this._dialogInst; // internal instance
-		if (!inst) {
-			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);
-			$('body').append(this._dialogInput);
-			inst = this._dialogInst = this._newInst(this._dialogInput, false);
-			inst.settings = {};
-			$.data(this._dialogInput[0], PROP_NAME, inst);
-		}
-		extendRemove(inst.settings, settings || {});
-		date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
-		this._dialogInput.val(date);
-
-		this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
-		if (!this._pos) {
-			var browserWidth = document.documentElement.clientWidth;
-			var browserHeight = document.documentElement.clientHeight;
-			var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
-			var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
-			this._pos = // should use actual width/height below
-				[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
-		}
-
-		// move input on screen for focus, but hidden behind dialog
-		this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
-		inst.settings.onSelect = onSelect;
-		this._inDialog = true;
-		this.dpDiv.addClass(this._dialogClass);
-		this._showDatepicker(this._dialogInput[0]);
-		if ($.blockUI)
-			$.blockUI(this.dpDiv);
-		$.data(this._dialogInput[0], PROP_NAME, inst);
-		return this;
-	},
-
-	/* Detach a datepicker from its control.
-	   @param  target    element - the target input field or division or span */
-	_destroyDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		$.removeData(target, PROP_NAME);
-		if (nodeName == 'input') {
-			inst.append.remove();
-			inst.trigger.remove();
-			$target.removeClass(this.markerClassName).
-				unbind('focus', this._showDatepicker).
-				unbind('keydown', this._doKeyDown).
-				unbind('keypress', this._doKeyPress).
-				unbind('keyup', this._doKeyUp);
-		} else if (nodeName == 'div' || nodeName == 'span')
-			$target.removeClass(this.markerClassName).empty();
-	},
-
-	/* Enable the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span */
-	_enableDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		if (nodeName == 'input') {
-			target.disabled = false;
-			inst.trigger.filter('button').
-				each(function() { this.disabled = false; }).end().
-				filter('img').css({opacity: '1.0', cursor: ''});
-		}
-		else if (nodeName == 'div' || nodeName == 'span') {
-			var inline = $target.children('.' + this._inlineClass);
-			inline.children().removeClass('ui-state-disabled');
-		}
-		this._disabledInputs = $.map(this._disabledInputs,
-			function(value) { return (value == target ? null : value); }); // delete entry
-	},
-
-	/* Disable the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span */
-	_disableDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		if (nodeName == 'input') {
-			target.disabled = true;
-			inst.trigger.filter('button').
-				each(function() { this.disabled = true; }).end().
-				filter('img').css({opacity: '0.5', cursor: 'default'});
-		}
-		else if (nodeName == 'div' || nodeName == 'span') {
-			var inline = $target.children('.' + this._inlineClass);
-			inline.children().addClass('ui-state-disabled');
-		}
-		this._disabledInputs = $.map(this._disabledInputs,
-			function(value) { return (value == target ? null : value); }); // delete entry
-		this._disabledInputs[this._disabledInputs.length] = target;
-	},
-
-	/* Is the first field in a jQuery collection disabled as a datepicker?
-	   @param  target    element - the target input field or division or span
-	   @return boolean - true if disabled, false if enabled */
-	_isDisabledDatepicker: function(target) {
-		if (!target) {
-			return false;
-		}
-		for (var i = 0; i < this._disabledInputs.length; i++) {
-			if (this._disabledInputs[i] == target)
-				return true;
-		}
-		return false;
-	},
-
-	/* Retrieve the instance data for the target control.
-	   @param  target  element - the target input field or division or span
-	   @return  object - the associated instance data
-	   @throws  error if a jQuery problem getting data */
-	_getInst: function(target) {
-		try {
-			return $.data(target, PROP_NAME);
-		}
-		catch (err) {
-			throw 'Missing instance data for this datepicker';
-		}
-	},
-
-	/* Update or retrieve the settings for a date picker attached to an input field or division.
-	   @param  target  element - the target input field or division or span
-	   @param  name    object - the new settings to update or
-	                   string - the name of the setting to change or retrieve,
-	                   when retrieving also 'all' for all instance settings or
-	                   'defaults' for all global defaults
-	   @param  value   any - the new value for the setting
-	                   (omit if above is an object or to retrieve a value) */
-	_optionDatepicker: function(target, name, value) {
-		var inst = this._getInst(target);
-		if (arguments.length == 2 && typeof name == 'string') {
-			return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
-				(inst ? (name == 'all' ? $.extend({}, inst.settings) :
-				this._get(inst, name)) : null));
-		}
-		var settings = name || {};
-		if (typeof name == 'string') {
-			settings = {};
-			settings[name] = value;
-		}
-		if (inst) {
-			if (this._curInst == inst) {
-				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);
-			this._updateDatepicker(inst);
-		}
-	},
-
-	// change method deprecated
-	_changeDatepicker: function(target, name, value) {
-		this._optionDatepicker(target, name, value);
-	},
-
-	/* Redraw the date picker attached to an input field or division.
-	   @param  target  element - the target input field or division or span */
-	_refreshDatepicker: function(target) {
-		var inst = this._getInst(target);
-		if (inst) {
-			this._updateDatepicker(inst);
-		}
-	},
-
-	/* Set the dates for a jQuery selection.
-	   @param  target   element - the target input field or division or span
-	   @param  date     Date - the new date */
-	_setDateDatepicker: function(target, date) {
-		var inst = this._getInst(target);
-		if (inst) {
-			this._setDate(inst, date);
-			this._updateDatepicker(inst);
-			this._updateAlternate(inst);
-		}
-	},
-
-	/* Get the date(s) for the first entry in a jQuery selection.
-	   @param  target     element - the target input field or division or span
-	   @param  noDefault  boolean - true if no default date is to be used
-	   @return Date - the current date */
-	_getDateDatepicker: function(target, noDefault) {
-		var inst = this._getInst(target);
-		if (inst && !inst.inline)
-			this._setDateFromField(inst, noDefault);
-		return (inst ? this._getDate(inst) : null);
-	},
-
-	/* Handle keystrokes. */
-	_doKeyDown: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		var handled = true;
-		var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
-		inst._keyEvent = true;
-		if ($.datepicker._datepickerShowing)
-			switch (event.keyCode) {
-				case 9: $.datepicker._hideDatepicker();
-						handled = false;
-						break; // hide on tab out
-				case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
-									$.datepicker._currentClass + ')', inst.dpDiv);
-						if (sel[0])
-							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
-						else
-							$.datepicker._hideDatepicker();
-						return false; // don't submit the form
-						break; // select the value on enter
-				case 27: $.datepicker._hideDatepicker();
-						break; // hide on escape
-				case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-							-$.datepicker._get(inst, 'stepBigMonths') :
-							-$.datepicker._get(inst, 'stepMonths')), 'M');
-						break; // previous month/year on page up/+ ctrl
-				case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-							+$.datepicker._get(inst, 'stepBigMonths') :
-							+$.datepicker._get(inst, 'stepMonths')), 'M');
-						break; // next month/year on page down/+ ctrl
-				case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
-						handled = event.ctrlKey || event.metaKey;
-						break; // clear on ctrl or command +end
-				case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
-						handled = event.ctrlKey || event.metaKey;
-						break; // current on ctrl or command +home
-				case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
-						handled = event.ctrlKey || event.metaKey;
-						// -1 day on ctrl or command +left
-						if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-									-$.datepicker._get(inst, 'stepBigMonths') :
-									-$.datepicker._get(inst, 'stepMonths')), 'M');
-						// next month/year on alt +left on Mac
-						break;
-				case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
-						handled = event.ctrlKey || event.metaKey;
-						break; // -1 week on ctrl or command +up
-				case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
-						handled = event.ctrlKey || event.metaKey;
-						// +1 day on ctrl or command +right
-						if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-									+$.datepicker._get(inst, 'stepBigMonths') :
-									+$.datepicker._get(inst, 'stepMonths')), 'M');
-						// next month/year on alt +right
-						break;
-				case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
-						handled = event.ctrlKey || event.metaKey;
-						break; // +1 week on ctrl or command +down
-				default: handled = false;
-			}
-		else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
-			$.datepicker._showDatepicker(this);
-		else {
-			handled = false;
-		}
-		if (handled) {
-			event.preventDefault();
-			event.stopPropagation();
-		}
-	},
-
-	/* Filter entered characters - based on date format. */
-	_doKeyPress: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		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 || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
-		}
-	},
-
-	/* Synchronise manual entry and field/alternate field. */
-	_doKeyUp: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		if (inst.input.val() != inst.lastVal) {
-			try {
-				var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
-					(inst.input ? inst.input.val() : null),
-					$.datepicker._getFormatConfig(inst));
-				if (date) { // only if valid
-					$.datepicker._setDateFromField(inst);
-					$.datepicker._updateAlternate(inst);
-					$.datepicker._updateDatepicker(inst);
-				}
-			}
-			catch (event) {
-				$.datepicker.log(event);
-			}
-		}
-		return true;
-	},
-
-	/* Pop-up the date picker for a given input field.
-	   @param  input  element - the input field attached to the date picker or
-	                  event - if triggered by focus */
-	_showDatepicker: function(input) {
-		input = input.target || input;
-		if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
-			input = $('input', input.parentNode)[0];
-		if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
-			return;
-		var inst = $.datepicker._getInst(input);
-		if ($.datepicker._curInst && $.datepicker._curInst != inst) {
-			$.datepicker._curInst.dpDiv.stop(true, true);
-		}
-		var beforeShow = $.datepicker._get(inst, 'beforeShow');
-		extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
-		inst.lastVal = null;
-		$.datepicker._lastInput = input;
-		$.datepicker._setDateFromField(inst);
-		if ($.datepicker._inDialog) // hide cursor
-			input.value = '';
-		if (!$.datepicker._pos) { // position below input
-			$.datepicker._pos = $.datepicker._findPos(input);
-			$.datepicker._pos[1] += input.offsetHeight; // add the height
-		}
-		var isFixed = false;
-		$(input).parents().each(function() {
-			isFixed |= $(this).css('position') == 'fixed';
-			return !isFixed;
-		});
-		if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
-			$.datepicker._pos[0] -= document.documentElement.scrollLeft;
-			$.datepicker._pos[1] -= document.documentElement.scrollTop;
-		}
-		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);
-		// fix width for dynamic number of date pickers
-		// and adjust position before showing
-		offset = $.datepicker._checkOffset(inst, offset, isFixed);
-		inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
-			'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
-			left: offset.left + 'px', top: offset.top + 'px'});
-		if (!inst.inline) {
-			var showAnim = $.datepicker._get(inst, 'showAnim');
-			var duration = $.datepicker._get(inst, 'duration');
-			var postProcess = function() {
-				$.datepicker._datepickerShowing = true;
-				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])
-				inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
-			else
-				inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
-			if (!showAnim || !duration)
-				postProcess();
-			if (inst.input.is(':visible') && !inst.input.is(':disabled'))
-				inst.input.focus();
-			$.datepicker._curInst = inst;
-		}
-	},
-
-	/* Generate the date picker content. */
-	_updateDatepicker: function(inst) {
-		var self = this;
-		var borders = $.datepicker._getBorders(inst.dpDiv);
-		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');
-					if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
-				})
-				.bind('mouseover', function(){
-					if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) {
-						$(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
-						$(this).addClass('ui-state-hover');
-						if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
-						if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
-					}
-				})
-			.end()
-			.find('.' + this._dayOverClass + ' a')
-				.trigger('mouseover')
-			.end();
-		var numMonths = this._getNumberOfMonths(inst);
-		var cols = numMonths[1];
-		var width = 17;
-		if (cols > 1)
-			inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
-		else
-			inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
-		inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
-			'Class']('ui-datepicker-multi');
-		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
-			'Class']('ui-datepicker-rtl');
-		if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
-				// #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.
-	   @param  elem  (jQuery object) the element of interest
-	   @return  (number[2]) the left and top borders */
-	_getBorders: function(elem) {
-		var convert = function(value) {
-			return {thin: 1, medium: 2, thick: 3}[value] || value;
-		};
-		return [parseFloat(convert(elem.css('border-left-width'))),
-			parseFloat(convert(elem.css('border-top-width')))];
-	},
-
-	/* Check positioning to remain on screen. */
-	_checkOffset: function(inst, offset, isFixed) {
-		var dpWidth = inst.dpDiv.outerWidth();
-		var dpHeight = inst.dpDiv.outerHeight();
-		var inputWidth = inst.input ? inst.input.outerWidth() : 0;
-		var inputHeight = inst.input ? inst.input.outerHeight() : 0;
-		var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
-		var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
-
-		offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
-		offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
-		offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
-
-		// now check if datepicker is showing outside window viewport - move to a better place if so.
-		offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
-			Math.abs(offset.left + dpWidth - viewWidth) : 0);
-		offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
-			Math.abs(dpHeight + inputHeight) : 0);
-
-		return offset;
-	},
-
-	/* Find an object's position on the screen. */
-	_findPos: function(obj) {
-		var inst = this._getInst(obj);
-		var isRTL = this._get(inst, 'isRTL');
-        while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
-            obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
-        }
-        var position = $(obj).offset();
-	    return [position.left, position.top];
-	},
-
-	/* Hide the date picker from view.
-	   @param  input  element - the input field attached to the date picker */
-	_hideDatepicker: function(input) {
-		var inst = this._curInst;
-		if (!inst || (input && inst != $.data(input, PROP_NAME)))
-			return;
-		if (this._datepickerShowing) {
-			var showAnim = this._get(inst, 'showAnim');
-			var duration = this._get(inst, 'duration');
-			var postProcess = function() {
-				$.datepicker._tidyDialog(inst);
-				this._curInst = null;
-			};
-			if ($.effects && $.effects[showAnim])
-				inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
-			else
-				inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
-					(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
-			if (!showAnim)
-				postProcess();
-			var onClose = this._get(inst, 'onClose');
-			if (onClose)
-				onClose.apply((inst.input ? inst.input[0] : null),
-					[(inst.input ? inst.input.val() : ''), inst]);  // trigger custom callback
-			this._datepickerShowing = false;
-			this._lastInput = null;
-			if (this._inDialog) {
-				this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
-				if ($.blockUI) {
-					$.unblockUI();
-					$('body').append(this.dpDiv);
-				}
-			}
-			this._inDialog = false;
-		}
-	},
-
-	/* Tidy up after a dialog display. */
-	_tidyDialog: function(inst) {
-		inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
-	},
-
-	/* Close date picker if clicked elsewhere. */
-	_checkExternalClick: function(event) {
-		if (!$.datepicker._curInst)
-			return;
-		var $target = $(event.target);
-		if ($target[0].id != $.datepicker._mainDivId &&
-				$target.parents('#' + $.datepicker._mainDivId).length == 0 &&
-				!$target.hasClass($.datepicker.markerClassName) &&
-				!$target.hasClass($.datepicker._triggerClass) &&
-				$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
-			$.datepicker._hideDatepicker();
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustDate: function(id, offset, period) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (this._isDisabledDatepicker(target[0])) {
-			return;
-		}
-		this._adjustInstDate(inst, offset +
-			(period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
-			period);
-		this._updateDatepicker(inst);
-	},
-
-	/* Action for current link. */
-	_gotoToday: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
-			inst.selectedDay = inst.currentDay;
-			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
-			inst.drawYear = inst.selectedYear = inst.currentYear;
-		}
-		else {
-			var date = new Date();
-			inst.selectedDay = date.getDate();
-			inst.drawMonth = inst.selectedMonth = date.getMonth();
-			inst.drawYear = inst.selectedYear = date.getFullYear();
-		}
-		this._notifyChange(inst);
-		this._adjustDate(target);
-	},
-
-	/* Action for selecting a new month/year. */
-	_selectMonthYear: function(id, select, period) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		inst._selectingMonthYear = false;
-		inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
-		inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
-			parseInt(select.options[select.selectedIndex].value,10);
-		this._notifyChange(inst);
-		this._adjustDate(target);
-	},
-
-	/* Restore input focus after not changing month/year. */
-	_clickMonthYear: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (inst.input && inst._selectingMonthYear) {
-			setTimeout(function() {
-				inst.input.focus();
-			}, 0);
-		}
-		inst._selectingMonthYear = !inst._selectingMonthYear;
-	},
-
-	/* Action for selecting a day. */
-	_selectDay: function(id, month, year, td) {
-		var target = $(id);
-		if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
-			return;
-		}
-		var inst = this._getInst(target[0]);
-		inst.selectedDay = inst.currentDay = $('a', td).html();
-		inst.selectedMonth = inst.currentMonth = month;
-		inst.selectedYear = inst.currentYear = year;
-		this._selectDate(id, this._formatDate(inst,
-			inst.currentDay, inst.currentMonth, inst.currentYear));
-	},
-
-	/* Erase the input field and hide the date picker. */
-	_clearDate: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		this._selectDate(target, '');
-	},
-
-	/* Update the input field with the selected date. */
-	_selectDate: function(id, dateStr) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
-		if (inst.input)
-			inst.input.val(dateStr);
-		this._updateAlternate(inst);
-		var onSelect = this._get(inst, 'onSelect');
-		if (onSelect)
-			onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);  // trigger custom callback
-		else if (inst.input)
-			inst.input.trigger('change'); // fire the change event
-		if (inst.inline)
-			this._updateDatepicker(inst);
-		else {
-			this._hideDatepicker();
-			this._lastInput = inst.input[0];
-			if (typeof(inst.input[0]) != 'object')
-				inst.input.focus(); // restore focus
-			this._lastInput = null;
-		}
-	},
-
-	/* Update any alternate field to synchronise with the main field. */
-	_updateAlternate: function(inst) {
-		var altField = this._get(inst, 'altField');
-		if (altField) { // update alternate field too
-			var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
-			var date = this._getDate(inst);
-			var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
-			$(altField).each(function() { $(this).val(dateStr); });
-		}
-	},
-
-	/* Set as beforeShowDay function to prevent selection of weekends.
-	   @param  date  Date - the date to customise
-	   @return [boolean, string] - is this date selectable?, what is its CSS class? */
-	noWeekends: function(date) {
-		var day = date.getDay();
-		return [(day > 0 && day < 6), ''];
-	},
-
-	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
-	   @param  date  Date - the date to get the week for
-	   @return  number - the number of the week within the year that contains this date */
-	iso8601Week: function(date) {
-		var checkDate = new Date(date.getTime());
-		// Find Thursday of this week starting on Monday
-		checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
-		var time = checkDate.getTime();
-		checkDate.setMonth(0); // Compare with Jan 1
-		checkDate.setDate(1);
-		return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
-	},
-
-	/* Parse a string value into a date object.
-	   See formatDate below for the possible formats.
-
-	   @param  format    string - the expected format of the date
-	   @param  value     string - the date in the above format
-	   @param  settings  Object - attributes include:
-	                     shortYearCutoff  number - the cutoff year for determining the century (optional)
-	                     dayNamesShort    string[7] - abbreviated names of the days from Sunday (optional)
-	                     dayNames         string[7] - names of the days from Sunday (optional)
-	                     monthNamesShort  string[12] - abbreviated names of the months (optional)
-	                     monthNames       string[12] - names of the months (optional)
-	   @return  Date - the extracted date value or null if value is blank */
-	parseDate: function (format, value, settings) {
-		if (format == null || value == null)
-			throw 'Invalid arguments';
-		value = (typeof value == 'object' ? value.toString() : value + '');
-		if (value == '')
-			return null;
-		var 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;
-		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
-		var year = -1;
-		var month = -1;
-		var day = -1;
-		var doy = -1;
-		var literal = false;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		// Extract a number from the string value
-		var getNumber = function(match) {
-			var isDoubled = lookAhead(match);
-			var size = (match == '@' ? 14 : (match == '!' ? 20 :
-				(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
-			var digits = new RegExp('^\\d{1,' + size + '}');
-			var num = value.substring(iValue).match(digits);
-			if (!num)
-				throw 'Missing number at position ' + iValue;
-			iValue += num[0].length;
-			return parseInt(num[0], 10);
-		};
-		// Extract a name from the string value and convert to an index
-		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).toLowerCase() == names[i].toLowerCase()) {
-					iValue += names[i].length;
-					return i + 1;
-				}
-			}
-			throw 'Unknown name at position ' + iValue;
-		};
-		// Confirm that a literal character matches the string value
-		var checkLiteral = function() {
-			if (value.charAt(iValue) != format.charAt(iFormat))
-				throw 'Unexpected literal at position ' + iValue;
-			iValue++;
-		};
-		var iValue = 0;
-		for (var iFormat = 0; iFormat < format.length; iFormat++) {
-			if (literal)
-				if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-					literal = false;
-				else
-					checkLiteral();
-			else
-				switch (format.charAt(iFormat)) {
-					case 'd':
-						day = getNumber('d');
-						break;
-					case 'D':
-						getName('D', dayNamesShort, dayNames);
-						break;
-					case 'o':
-						doy = getNumber('o');
-						break;
-					case 'm':
-						month = getNumber('m');
-						break;
-					case 'M':
-						month = getName('M', monthNamesShort, monthNames);
-						break;
-					case 'y':
-						year = getNumber('y');
-						break;
-					case '@':
-						var date = new Date(getNumber('@'));
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case '!':
-						var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case "'":
-						if (lookAhead("'"))
-							checkLiteral();
-						else
-							literal = true;
-						break;
-					default:
-						checkLiteral();
-				}
-		}
-		if (year == -1)
-			year = new Date().getFullYear();
-		else if (year < 100)
-			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
-				(year <= shortYearCutoff ? 0 : -100);
-		if (doy > -1) {
-			month = 1;
-			day = doy;
-			do {
-				var dim = this._getDaysInMonth(year, month - 1);
-				if (day <= dim)
-					break;
-				month++;
-				day -= dim;
-			} while (true);
-		}
-		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/*
-		return date;
-	},
-
-	/* Standard date formats. */
-	ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
-	COOKIE: 'D, dd M yy',
-	ISO_8601: 'yy-mm-dd',
-	RFC_822: 'D, d M y',
-	RFC_850: 'DD, dd-M-y',
-	RFC_1036: 'D, d M y',
-	RFC_1123: 'D, d M yy',
-	RFC_2822: 'D, d M yy',
-	RSS: 'D, d M y', // RFC 822
-	TICKS: '!',
-	TIMESTAMP: '@',
-	W3C: 'yy-mm-dd', // ISO 8601
-
-	_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
-		Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
-
-	/* Format a date object into a string value.
-	   The format can be combinations of the following:
-	   d  - day of month (no leading zero)
-	   dd - day of month (two digit)
-	   o  - day of year (no leading zeros)
-	   oo - day of year (three digit)
-	   D  - day name short
-	   DD - day name long
-	   m  - month of year (no leading zero)
-	   mm - month of year (two digit)
-	   M  - month name short
-	   MM - month name long
-	   y  - year (two digit)
-	   yy - year (four digit)
-	   @ - Unix timestamp (ms since 01/01/1970)
-	   ! - Windows ticks (100ns since 01/01/0001)
-	   '...' - literal text
-	   '' - single quote
-
-	   @param  format    string - the desired format of the date
-	   @param  date      Date - the date value to format
-	   @param  settings  Object - attributes include:
-	                     dayNamesShort    string[7] - abbreviated names of the days from Sunday (optional)
-	                     dayNames         string[7] - names of the days from Sunday (optional)
-	                     monthNamesShort  string[12] - abbreviated names of the months (optional)
-	                     monthNames       string[12] - names of the months (optional)
-	   @return  string - the date in the above format */
-	formatDate: function (format, date, settings) {
-		if (!date)
-			return '';
-		var 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;
-		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		// Format a number, with leading zero if necessary
-		var formatNumber = function(match, value, len) {
-			var num = '' + value;
-			if (lookAhead(match))
-				while (num.length < len)
-					num = '0' + num;
-			return num;
-		};
-		// Format a name, short or long as requested
-		var formatName = function(match, value, shortNames, longNames) {
-			return (lookAhead(match) ? longNames[value] : shortNames[value]);
-		};
-		var output = '';
-		var literal = false;
-		if (date)
-			for (var iFormat = 0; iFormat < format.length; iFormat++) {
-				if (literal)
-					if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-						literal = false;
-					else
-						output += format.charAt(iFormat);
-				else
-					switch (format.charAt(iFormat)) {
-						case 'd':
-							output += formatNumber('d', date.getDate(), 2);
-							break;
-						case 'D':
-							output += formatName('D', date.getDay(), dayNamesShort, dayNames);
-							break;
-						case 'o':
-							output += formatNumber('o',
-								(date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3);
-							break;
-						case 'm':
-							output += formatNumber('m', date.getMonth() + 1, 2);
-							break;
-						case 'M':
-							output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
-							break;
-						case 'y':
-							output += (lookAhead('y') ? date.getFullYear() :
-								(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
-							break;
-						case '@':
-							output += date.getTime();
-							break;
-						case '!':
-							output += date.getTime() * 10000 + this._ticksTo1970;
-							break;
-						case "'":
-							if (lookAhead("'"))
-								output += "'";
-							else
-								literal = true;
-							break;
-						default:
-							output += format.charAt(iFormat);
-					}
-			}
-		return output;
-	},
-
-	/* Extract all possible characters from the date format. */
-	_possibleChars: function (format) {
-		var chars = '';
-		var literal = false;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		for (var iFormat = 0; iFormat < format.length; iFormat++)
-			if (literal)
-				if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-					literal = false;
-				else
-					chars += format.charAt(iFormat);
-			else
-				switch (format.charAt(iFormat)) {
-					case 'd': case 'm': case 'y': case '@':
-						chars += '0123456789';
-						break;
-					case 'D': case 'M':
-						return null; // Accept anything
-					case "'":
-						if (lookAhead("'"))
-							chars += "'";
-						else
-							literal = true;
-						break;
-					default:
-						chars += format.charAt(iFormat);
-				}
-		return chars;
-	},
-
-	/* Get a setting value, defaulting if necessary. */
-	_get: function(inst, name) {
-		return inst.settings[name] !== undefined ?
-			inst.settings[name] : this._defaults[name];
-	},
-
-	/* Parse existing date and initialise date picker. */
-	_setDateFromField: function(inst, noDefault) {
-		if (inst.input.val() == inst.lastVal) {
-			return;
-		}
-		var dateFormat = this._get(inst, 'dateFormat');
-		var dates = inst.lastVal = inst.input ? inst.input.val() : null;
-		var date, defaultDate;
-		date = defaultDate = this._getDefaultDate(inst);
-		var settings = this._getFormatConfig(inst);
-		try {
-			date = this.parseDate(dateFormat, dates, settings) || defaultDate;
-		} catch (event) {
-			this.log(event);
-			dates = (noDefault ? '' : dates);
-		}
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		inst.currentDay = (dates ? date.getDate() : 0);
-		inst.currentMonth = (dates ? date.getMonth() : 0);
-		inst.currentYear = (dates ? date.getFullYear() : 0);
-		this._adjustInstDate(inst);
-	},
-
-	/* Retrieve the default date shown on opening. */
-	_getDefaultDate: function(inst) {
-		return this._restrictMinMax(inst,
-			this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
-	},
-
-	/* A date may be specified as an exact value or a relative one. */
-	_determineDate: function(inst, date, defaultDate) {
-		var offsetNumeric = function(offset) {
-			var date = new Date();
-			date.setDate(date.getDate() + offset);
-			return date;
-		};
-		var offsetString = function(offset) {
-			try {
-				return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
-					offset, $.datepicker._getFormatConfig(inst));
-			}
-			catch (e) {
-				// Ignore
-			}
-			var date = (offset.toLowerCase().match(/^c/) ?
-				$.datepicker._getDate(inst) : null) || new Date();
-			var year = date.getFullYear();
-			var month = date.getMonth();
-			var day = date.getDate();
-			var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
-			var matches = pattern.exec(offset);
-			while (matches) {
-				switch (matches[2] || 'd') {
-					case 'd' : case 'D' :
-						day += parseInt(matches[1],10); break;
-					case 'w' : case 'W' :
-						day += parseInt(matches[1],10) * 7; break;
-					case 'm' : case 'M' :
-						month += parseInt(matches[1],10);
-						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
-						break;
-					case 'y': case 'Y' :
-						year += parseInt(matches[1],10);
-						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
-						break;
-				}
-				matches = pattern.exec(offset);
-			}
-			return new Date(year, month, day);
-		};
-		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(newDate);
-	},
-
-	/* Handle switch to/from daylight saving.
-	   Hours may be non-zero on daylight saving cut-over:
-	   > 12 when midnight changeover, but then cannot generate
-	   midnight datetime, so jump to 1AM, otherwise reset.
-	   @param  date  (Date) the date to check
-	   @return  (Date) the corrected date */
-	_daylightSavingAdjust: function(date) {
-		if (!date) return null;
-		date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
-		return date;
-	},
-
-	/* Set the date(s) directly. */
-	_setDate: function(inst, date, noChange) {
-		var clear = !date;
-		var origMonth = inst.selectedMonth;
-		var origYear = inst.selectedYear;
-		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);
-		if (inst.input) {
-			inst.input.val(clear ? '' : this._formatDate(inst));
-		}
-	},
-
-	/* Retrieve the date(s) directly. */
-	_getDate: function(inst) {
-		var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
-			this._daylightSavingAdjust(new Date(
-			inst.currentYear, inst.currentMonth, inst.currentDay)));
-			return startDate;
-	},
-
-	/* Generate the HTML for the current state of the date picker. */
-	_generateHTML: function(inst) {
-		var today = new Date();
-		today = this._daylightSavingAdjust(
-			new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
-		var isRTL = this._get(inst, 'isRTL');
-		var showButtonPanel = this._get(inst, 'showButtonPanel');
-		var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
-		var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
-		var numMonths = this._getNumberOfMonths(inst);
-		var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
-		var stepMonths = this._get(inst, 'stepMonths');
-		var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
-		var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
-			new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		var drawMonth = inst.drawMonth - showCurrentAtPos;
-		var drawYear = inst.drawYear;
-		if (drawMonth < 0) {
-			drawMonth += 12;
-			drawYear--;
-		}
-		if (maxDate) {
-			var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
-				maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
-			maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
-			while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
-				drawMonth--;
-				if (drawMonth < 0) {
-					drawMonth = 11;
-					drawYear--;
-				}
-			}
-		}
-		inst.drawMonth = drawMonth;
-		inst.drawYear = drawYear;
-		var prevText = this._get(inst, 'prevText');
-		prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
-			this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
-			this._getFormatConfig(inst)));
-		var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
-			'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
-			' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
-			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
-		var nextText = this._get(inst, 'nextText');
-		nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
-			this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
-			this._getFormatConfig(inst)));
-		var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
-			'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
-			' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
-			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
-		var currentText = this._get(inst, 'currentText');
-		var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
-		currentText = (!navigationAsDateFormat ? currentText :
-			this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
-		var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
-		var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
-			(this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._gotoToday(\'#' + inst.id + '\');"' +
-			'>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
-		var firstDay = parseInt(this._get(inst, 'firstDay'),10);
-		firstDay = (isNaN(firstDay) ? 0 : firstDay);
-		var showWeek = this._get(inst, 'showWeek');
-		var dayNames = this._get(inst, 'dayNames');
-		var dayNamesShort = this._get(inst, 'dayNamesShort');
-		var dayNamesMin = this._get(inst, 'dayNamesMin');
-		var monthNames = this._get(inst, 'monthNames');
-		var monthNamesShort = this._get(inst, 'monthNamesShort');
-		var beforeShowDay = this._get(inst, 'beforeShowDay');
-		var showOtherMonths = this._get(inst, 'showOtherMonths');
-		var selectOtherMonths = this._get(inst, 'selectOtherMonths');
-		var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
-		var defaultDate = this._getDefaultDate(inst);
-		var html = '';
-		for (var row = 0; row < numMonths[0]; row++) {
-			var group = '';
-			for (var col = 0; col < numMonths[1]; col++) {
-				var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
-				var cornerClass = ' ui-corner-all';
-				var calender = '';
-				if (isMultiMonth) {
-					calender += '<div class="ui-datepicker-group';
-					if (numMonths[1] > 1)
-						switch (col) {
-							case 0: calender += ' ui-datepicker-group-first';
-								cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
-							case numMonths[1]-1: calender += ' ui-datepicker-group-last';
-								cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
-							default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
-						}
-					calender += '">';
-				}
-				calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
-					(/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
-					(/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
-					this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
-					row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
-					'</div><table class="ui-datepicker-calendar"><thead>' +
-					'<tr>';
-				var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
-				for (var dow = 0; dow < 7; dow++) { // days of the week
-					var day = (dow + firstDay) % 7;
-					thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
-						'<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
-				}
-				calender += thead + '</tr></thead><tbody>';
-				var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
-				if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
-					inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
-				var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
-				var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
-				var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
-				for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
-					calender += '<tr>';
-					var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
-						this._get(inst, 'calculateWeek')(printDate) + '</td>');
-					for (var dow = 0; dow < 7; dow++) { // create date picker days
-						var daySettings = (beforeShowDay ?
-							beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
-						var otherMonth = (printDate.getMonth() != drawMonth);
-						var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
-							(minDate && printDate < minDate) || (maxDate && printDate > maxDate);
-						tbody += '<td class="' +
-							((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
-							(otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
-							((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
-							(defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
-							// or defaultDate is current printedDate and defaultDate is selectedDate
-							' ' + this._dayOverClass : '') + // highlight selected day
-							(unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') +  // highlight unselectable days
-							(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
-							(printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
-							(printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
-							((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
-							(unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
-							inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
-							(otherMonth && !showOtherMonths ? '&#xa0;' : // display for other months
-							(unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
-							(printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
-							(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
-							(otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
-							'" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
-						printDate.setDate(printDate.getDate() + 1);
-						printDate = this._daylightSavingAdjust(printDate);
-					}
-					calender += tbody + '</tr>';
-				}
-				drawMonth++;
-				if (drawMonth > 11) {
-					drawMonth = 0;
-					drawYear++;
-				}
-				calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
-							((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
-				group += calender;
-			}
-			html += group;
-		}
-		html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
-			'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
-		inst._keyEvent = false;
-		return html;
-	},
-
-	/* Generate the month and year header. */
-	_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
-			secondary, monthNames, monthNamesShort) {
-		var changeMonth = this._get(inst, 'changeMonth');
-		var changeYear = this._get(inst, 'changeYear');
-		var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
-		var html = '<div class="ui-datepicker-title">';
-		var monthHtml = '';
-		// month selection
-		if (secondary || !changeMonth)
-			monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
-		else {
-			var inMinYear = (minDate && minDate.getFullYear() == drawYear);
-			var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
-			monthHtml += '<select class="ui-datepicker-month" ' +
-				'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
-				'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
-			 	'>';
-			for (var month = 0; month < 12; month++) {
-				if ((!inMinYear || month >= minDate.getMonth()) &&
-						(!inMaxYear || month <= maxDate.getMonth()))
-					monthHtml += '<option value="' + month + '"' +
-						(month == drawMonth ? ' selected="selected"' : '') +
-						'>' + monthNamesShort[month] + '</option>';
-			}
-			monthHtml += '</select>';
-		}
-		if (!showMonthAfterYear)
-			html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
-		// year selection
-		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 += this._get(inst, 'yearSuffix');
-		if (showMonthAfterYear)
-			html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
-		html += '</div>'; // Close datepicker_header
-		return html;
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustInstDate: function(inst, offset, period) {
-		var year = inst.drawYear + (period == 'Y' ? offset : 0);
-		var month = inst.drawMonth + (period == 'M' ? offset : 0);
-		var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
-			(period == 'D' ? offset : 0);
-		var date = this._restrictMinMax(inst,
-			this._daylightSavingAdjust(new Date(year, month, day)));
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		if (period == 'M' || period == 'Y')
-			this._notifyChange(inst);
-	},
-
-	/* Ensure a date is within any min/max bounds. */
-	_restrictMinMax: function(inst, date) {
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		var newDate = (minDate && date < minDate ? minDate : date);
-		newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
-		return newDate;
-	},
-
-	/* Notify change of month/year. */
-	_notifyChange: function(inst) {
-		var onChange = this._get(inst, 'onChangeMonthYear');
-		if (onChange)
-			onChange.apply((inst.input ? inst.input[0] : null),
-				[inst.selectedYear, inst.selectedMonth + 1, inst]);
-	},
-
-	/* Determine the number of months to show. */
-	_getNumberOfMonths: function(inst) {
-		var numMonths = this._get(inst, 'numberOfMonths');
-		return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
-	},
-
-	/* Determine the current maximum date - ensure no time components are set. */
-	_getMinMaxDate: function(inst, minMax) {
-		return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
-	},
-
-	/* Find the number of days in a given month. */
-	_getDaysInMonth: function(year, month) {
-		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
-	},
-
-	/* Find the day of the week of the first of a month. */
-	_getFirstDayOfMonth: function(year, month) {
-		return new Date(year, month, 1).getDay();
-	},
-
-	/* Determines if we should allow a "next/prev" month display change. */
-	_canAdjustMonth: function(inst, offset, curYear, curMonth) {
-		var numMonths = this._getNumberOfMonths(inst);
-		var date = this._daylightSavingAdjust(new Date(curYear,
-			curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
-		if (offset < 0)
-			date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
-		return this._isInRange(inst, date);
-	},
-
-	/* Is the given date in the accepted range? */
-	_isInRange: function(inst, date) {
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		return ((!minDate || date.getTime() >= minDate.getTime()) &&
-			(!maxDate || date.getTime() <= maxDate.getTime()));
-	},
-
-	/* Provide the configuration settings for formatting/parsing. */
-	_getFormatConfig: function(inst) {
-		var shortYearCutoff = this._get(inst, 'shortYearCutoff');
-		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
-			new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
-		return {shortYearCutoff: shortYearCutoff,
-			dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
-			monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
-	},
-
-	/* Format the given date for display. */
-	_formatDate: function(inst, day, month, year) {
-		if (!day) {
-			inst.currentDay = inst.selectedDay;
-			inst.currentMonth = inst.selectedMonth;
-			inst.currentYear = inst.selectedYear;
-		}
-		var date = (day ? (typeof day == 'object' ? day :
-			this._daylightSavingAdjust(new Date(year, month, day))) :
-			this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
-		return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
-	}
-});
-
-/* jQuery extend now ignores nulls! */
-function extendRemove(target, props) {
-	$.extend(target, props);
-	for (var name in props)
-		if (props[name] == null || props[name] == undefined)
-			target[name] = props[name];
-	return target;
-};
-
-/* Determine whether an object is an array. */
-function isArray(a) {
-	return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
-		(a.constructor && a.constructor.toString().match(/\Array\(\)/))));
-};
-
-/* Invoke the datepicker functionality.
-   @param  options  string - a command, optionally followed by additional parameters or
-                    Object - settings for attaching new datepicker functionality
-   @return  jQuery object */
-$.fn.datepicker = function(options){
-	
-	/* Verify an empty collection wasn't passed - Fixes #6976 */
-	if ( !this.length ) {
-		return this;
-	}
-	
-	/* Initialise the date picker. */
-	if (!$.datepicker.initialized) {
-		$(document).mousedown($.datepicker._checkExternalClick).
-			find('body').append($.datepicker.dpDiv);
-		$.datepicker.initialized = true;
-	}
-
-	var otherArgs = Array.prototype.slice.call(arguments, 1);
-	if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
-		return $.datepicker['_' + options + 'Datepicker'].
-			apply($.datepicker, [this[0]].concat(otherArgs));
-	if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
-		return $.datepicker['_' + options + 'Datepicker'].
-			apply($.datepicker, [this[0]].concat(otherArgs));
-	return this.each(function() {
-		typeof options == 'string' ?
-			$.datepicker['_' + options + 'Datepicker'].
-				apply($.datepicker, [this].concat(otherArgs)) :
-			$.datepicker._attachDatepicker(this, options);
-	});
-};
-
-$.datepicker = new Datepicker(); // singleton instance
-$.datepicker.initialized = false;
-$.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.8.11";
-
-// Workaround for #4055
-// Add another global to avoid noConflict issues with inline event handlers
-window['DP_jQuery_' + dpuuid] = $;
-
-})(jQuery);
-/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget( "ui.progressbar", {
-	options: {
-		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.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();
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
-			.removeAttr( "role" )
-			.removeAttr( "aria-valuemin" )
-			.removeAttr( "aria-valuemax" )
-			.removeAttr( "aria-valuenow" );
-
-		this.valueDiv.remove();
-
-		$.Widget.prototype.destroy.apply( this, arguments );
-	},
-
-	value: function( newValue ) {
-		if ( newValue === undefined ) {
-			return this._value();
-		}
-
-		this._setOption( "value", newValue );
-		return this;
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "value" ) {
-			this.options.value = value;
-			this._refreshValue();
-			if ( this._value() === this.options.max ) {
-				this._trigger( "complete" );
-			}
-		}
-
-		$.Widget.prototype._setOption.apply( this, arguments );
-	},
-
-	_value: function() {
-		var val = this.options.value;
-		// normalize invalid value
-		if ( typeof val !== "number" ) {
-			val = 0;
-		}
-		return Math.min( this.options.max, Math.max( this.min, val ) );
-	},
-
-	_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
-			.toggleClass( "ui-corner-right", value === this.options.max )
-			.width( percentage.toFixed(0) + "%" );
-		this.element.attr( "aria-valuenow", value );
-	}
-});
-
-$.extend( $.ui.progressbar, {
-	version: "1.8.11"
-});
-
-})( jQuery );
-/*
- * jQuery UI Effects 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-;jQuery.effects || (function($, undefined) {
-
-$.effects = {};
-
-
-
-/******************************************************************************/
-/****************************** COLOR ANIMATIONS ******************************/
-/******************************************************************************/
-
-// override the animation for color styles
-$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
-	'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
-function(i, attr) {
-	$.fx.step[attr] = function(fx) {
-		if (!fx.colorInit) {
-			fx.start = getColor(fx.elem, attr);
-			fx.end = getRGB(fx.end);
-			fx.colorInit = true;
-		}
-
-		fx.elem.style[attr] = 'rgb(' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';
-	};
-});
-
-// Color Conversion functions from highlightFade
-// By Blair Mitchelmore
-// http://jquery.offput.ca/highlightFade/
-
-// Parse strings looking for color tuples [255,255,255]
-function getRGB(color) {
-		var result;
-
-		// Check if we're already dealing with an array of colors
-		if ( color && color.constructor == Array && color.length == 3 )
-				return color;
-
-		// Look for rgb(num,num,num)
-		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
-				return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
-
-		// Look for rgb(num%,num%,num%)
-		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
-				return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
-
-		// Look for #a0b1c2
-		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
-				return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
-
-		// Look for #fff
-		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
-				return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
-
-		// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
-		if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
-				return colors['transparent'];
-
-		// Otherwise, we're most likely dealing with a named color
-		return colors[$.trim(color).toLowerCase()];
-}
-
-function getColor(elem, attr) {
-		var color;
-
-		do {
-				color = $.curCSS(elem, attr);
-
-				// Keep going until we find an element that has color, or we hit the body
-				if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
-						break;
-
-				attr = "backgroundColor";
-		} while ( elem = elem.parentNode );
-
-		return getRGB(color);
-};
-
-// Some named colors to work with
-// From Interface by Stefan Petre
-// http://interface.eyecon.ro/
-
-var colors = {
-	aqua:[0,255,255],
-	azure:[240,255,255],
-	beige:[245,245,220],
-	black:[0,0,0],
-	blue:[0,0,255],
-	brown:[165,42,42],
-	cyan:[0,255,255],
-	darkblue:[0,0,139],
-	darkcyan:[0,139,139],
-	darkgrey:[169,169,169],
-	darkgreen:[0,100,0],
-	darkkhaki:[189,183,107],
-	darkmagenta:[139,0,139],
-	darkolivegreen:[85,107,47],
-	darkorange:[255,140,0],
-	darkorchid:[153,50,204],
-	darkred:[139,0,0],
-	darksalmon:[233,150,122],
-	darkviolet:[148,0,211],
-	fuchsia:[255,0,255],
-	gold:[255,215,0],
-	green:[0,128,0],
-	indigo:[75,0,130],
-	khaki:[240,230,140],
-	lightblue:[173,216,230],
-	lightcyan:[224,255,255],
-	lightgreen:[144,238,144],
-	lightgrey:[211,211,211],
-	lightpink:[255,182,193],
-	lightyellow:[255,255,224],
-	lime:[0,255,0],
-	magenta:[255,0,255],
-	maroon:[128,0,0],
-	navy:[0,0,128],
-	olive:[128,128,0],
-	orange:[255,165,0],
-	pink:[255,192,203],
-	purple:[128,0,128],
-	violet:[128,0,128],
-	red:[255,0,0],
-	silver:[192,192,192],
-	white:[255,255,255],
-	yellow:[255,255,0],
-	transparent: [255,255,255]
-};
-
-
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-
-var classAnimationActions = ['add', 'remove', 'toggle'],
-	shorthandStyles = {
-		border: 1,
-		borderBottom: 1,
-		borderColor: 1,
-		borderLeft: 1,
-		borderRight: 1,
-		borderTop: 1,
-		borderWidth: 1,
-		margin: 1,
-		padding: 1
-	};
-
-function getElementStyles() {
-	var style = document.defaultView
-			? document.defaultView.getComputedStyle(this, null)
-			: this.currentStyle,
-		newStyle = {},
-		key,
-		camelCase;
-
-	// webkit enumerates style porperties
-	if (style && style.length && style[0] && style[style[0]]) {
-		var len = style.length;
-		while (len--) {
-			key = style[len];
-			if (typeof style[key] == 'string') {
-				camelCase = key.replace(/\-(\w)/g, function(all, letter){
-					return letter.toUpperCase();
-				});
-				newStyle[camelCase] = style[key];
-			}
-		}
-	} else {
-		for (key in style) {
-			if (typeof style[key] === 'string') {
-				newStyle[key] = style[key];
-			}
-		}
-	}
-	
-	return newStyle;
-}
-
-function filterStyles(styles) {
-	var name, value;
-	for (name in styles) {
-		value = styles[name];
-		if (
-			// ignore null and undefined values
-			value == null ||
-			// ignore functions (when does this occur?)
-			$.isFunction(value) ||
-			// shorthand styles that need to be expanded
-			name in shorthandStyles ||
-			// ignore scrollbars (break in IE)
-			(/scrollbar/).test(name) ||
-
-			// only colors or values that can be converted to numbers
-			(!(/color/i).test(name) && isNaN(parseFloat(value)))
-		) {
-			delete styles[name];
-		}
-	}
-	
-	return styles;
-}
-
-function styleDifference(oldStyle, newStyle) {
-	var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459
-		name;
-
-	for (name in newStyle) {
-		if (oldStyle[name] != newStyle[name]) {
-			diff[name] = newStyle[name];
-		}
-	}
-
-	return diff;
-}
-
-$.effects.animateClass = function(value, duration, easing, callback) {
-	if ($.isFunction(easing)) {
-		callback = easing;
-		easing = null;
-	}
-
-	return this.queue('fx', function() {
-		var that = $(this),
-			originalStyleAttr = that.attr('style') || ' ',
-			originalStyle = filterStyles(getElementStyles.call(this)),
-			newStyle,
-			className = that.attr('className');
-
-		$.each(classAnimationActions, function(i, action) {
-			if (value[action]) {
-				that[action + 'Class'](value[action]);
-			}
-		});
-		newStyle = filterStyles(getElementStyles.call(this));
-		that.attr('className', className);
-
-		that.animate(styleDifference(originalStyle, newStyle), duration, easing, function() {
-			$.each(classAnimationActions, function(i, action) {
-				if (value[action]) { that[action + 'Class'](value[action]); }
-			});
-			// work around bug in IE by clearing the cssText before setting it
-			if (typeof that.attr('style') == 'object') {
-				that.attr('style').cssText = '';
-				that.attr('style').cssText = originalStyleAttr;
-			} else {
-				that.attr('style', originalStyleAttr);
-			}
-			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);
-	});
-};
-
-$.fn.extend({
-	_addClass: $.fn.addClass,
-	addClass: function(classNames, speed, easing, callback) {
-		return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
-	},
-
-	_removeClass: $.fn.removeClass,
-	removeClass: function(classNames,speed,easing,callback) {
-		return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
-	},
-
-	_toggleClass: $.fn.toggleClass,
-	toggleClass: function(classNames, force, speed, easing, callback) {
-		if ( typeof force == "boolean" || force === undefined ) {
-			if ( !speed ) {
-				// without speed parameter;
-				return this._toggleClass(classNames, force);
-			} else {
-				return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);
-			}
-		} else {
-			// without switch parameter;
-			return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);
-		}
-	},
-
-	switchClass: function(remove,add,speed,easing,callback) {
-		return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-$.extend($.effects, {
-	version: "1.8.11",
-
-	// Saves a set of properties in a data storage
-	save: function(element, set) {
-		for(var i=0; i < set.length; i++) {
-			if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);
-		}
-	},
-
-	// Restores a set of previously saved properties from a data storage
-	restore: function(element, set) {
-		for(var i=0; i < set.length; i++) {
-			if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));
-		}
-	},
-
-	setMode: function(el, mode) {
-		if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
-		return mode;
-	},
-
-	getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
-		// this should be a little more flexible in the future to handle a string & hash
-		var y, x;
-		switch (origin[0]) {
-			case 'top': y = 0; break;
-			case 'middle': y = 0.5; break;
-			case 'bottom': y = 1; break;
-			default: y = origin[0] / original.height;
-		};
-		switch (origin[1]) {
-			case 'left': x = 0; break;
-			case 'center': x = 0.5; break;
-			case 'right': x = 1; break;
-			default: x = origin[1] / original.width;
-		};
-		return {x: x, y: y};
-	},
-
-	// Wraps the element around a wrapper that copies position properties
-	createWrapper: function(element) {
-
-		// if the element is already wrapped, return it
-		if (element.parent().is('.ui-effects-wrapper')) {
-			return element.parent();
-		}
-
-		// wrap the element
-		var props = {
-				width: element.outerWidth(true),
-				height: element.outerHeight(true),
-				'float': element.css('float')
-			},
-			wrapper = $('<div></div>')
-				.addClass('ui-effects-wrapper')
-				.css({
-					fontSize: '100%',
-					background: 'transparent',
-					border: 'none',
-					margin: 0,
-					padding: 0
-				});
-
-		element.wrap(wrapper);
-		wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
-
-		// transfer positioning properties to the wrapper
-		if (element.css('position') == 'static') {
-			wrapper.css({ position: 'relative' });
-			element.css({ position: 'relative' });
-		} else {
-			$.extend(props, {
-				position: element.css('position'),
-				zIndex: element.css('z-index')
-			});
-			$.each(['top', 'left', 'bottom', 'right'], function(i, pos) {
-				props[pos] = element.css(pos);
-				if (isNaN(parseInt(props[pos], 10))) {
-					props[pos] = 'auto';
-				}
-			});
-			element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
-		}
-
-		return wrapper.css(props).show();
-	},
-
-	removeWrapper: function(element) {
-		if (element.parent().is('.ui-effects-wrapper'))
-			return element.parent().replaceWith(element);
-		return element;
-	},
-
-	setTransition: function(element, list, factor, value) {
-		value = value || {};
-		$.each(list, function(i, x){
-			unit = element.cssUnit(x);
-			if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];
-		});
-		return value;
-	}
-});
-
-
-function _normalizeArguments(effect, options, speed, callback) {
-	// shift params for method overloading
-	if (typeof effect == 'object') {
-		callback = options;
-		speed = null;
-		options = effect;
-		effect = options.effect;
-	}
-	if ($.isFunction(options)) {
-		callback = options;
-		speed = null;
-		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 : 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 take actual parameters instead of a hash
-			args2 = {
-				options: args[1],
-				duration: args[2],
-				callback: args[3]
-			},
-			mode = args2.options.mode,
-			effectMethod = $.effects[effect];
-		
-		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 ( standardSpeed( speed ) ) {
-			return this._show.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'show';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	_hide: $.fn.hide,
-	hide: function(speed) {
-		if ( standardSpeed( speed ) ) {
-			return this._hide.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'hide';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	// jQuery core overloads toggle and creates _toggle
-	__toggle: $.fn.toggle,
-	toggle: function(speed) {
-		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
-			return this.__toggle.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'toggle';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	// helper functions
-	cssUnit: function(key) {
-		var style = this.css(key), val = [];
-		$.each( ['em','px','%','pt'], function(i, unit){
-			if(style.indexOf(unit) > 0)
-				val = [parseFloat(style), unit];
-		});
-		return val;
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- *
- * Open source under the BSD License.
- *
- * Copyright 2008 George McGinley Smith
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-$.easing.jswing = $.easing.swing;
-
-$.extend($.easing,
-{
-	def: 'easeOutQuad',
-	swing: function (x, t, b, c, d) {
-		//alert($.easing.default);
-		return $.easing[$.easing.def](x, t, b, c, d);
-	},
-	easeInQuad: function (x, t, b, c, d) {
-		return c*(t/=d)*t + b;
-	},
-	easeOutQuad: function (x, t, b, c, d) {
-		return -c *(t/=d)*(t-2) + b;
-	},
-	easeInOutQuad: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t + b;
-		return -c/2 * ((--t)*(t-2) - 1) + b;
-	},
-	easeInCubic: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t + b;
-	},
-	easeOutCubic: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t + 1) + b;
-	},
-	easeInOutCubic: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t + b;
-		return c/2*((t-=2)*t*t + 2) + b;
-	},
-	easeInQuart: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t + b;
-	},
-	easeOutQuart: function (x, t, b, c, d) {
-		return -c * ((t=t/d-1)*t*t*t - 1) + b;
-	},
-	easeInOutQuart: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
-		return -c/2 * ((t-=2)*t*t*t - 2) + b;
-	},
-	easeInQuint: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t*t + b;
-	},
-	easeOutQuint: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t*t*t + 1) + b;
-	},
-	easeInOutQuint: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
-		return c/2*((t-=2)*t*t*t*t + 2) + b;
-	},
-	easeInSine: function (x, t, b, c, d) {
-		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
-	},
-	easeOutSine: function (x, t, b, c, d) {
-		return c * Math.sin(t/d * (Math.PI/2)) + b;
-	},
-	easeInOutSine: function (x, t, b, c, d) {
-		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
-	},
-	easeInExpo: function (x, t, b, c, d) {
-		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
-	},
-	easeOutExpo: function (x, t, b, c, d) {
-		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
-	},
-	easeInOutExpo: function (x, t, b, c, d) {
-		if (t==0) return b;
-		if (t==d) return b+c;
-		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
-		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
-	},
-	easeInCirc: function (x, t, b, c, d) {
-		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
-	},
-	easeOutCirc: function (x, t, b, c, d) {
-		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
-	},
-	easeInOutCirc: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
-		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
-	},
-	easeInElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-	},
-	easeOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
-	},
-	easeInOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
-	},
-	easeInBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*(t/=d)*t*((s+1)*t - s) + b;
-	},
-	easeOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
-	},
-	easeInOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
-		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
-	},
-	easeInBounce: function (x, t, b, c, d) {
-		return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
-	},
-	easeOutBounce: function (x, t, b, c, d) {
-		if ((t/=d) < (1/2.75)) {
-			return c*(7.5625*t*t) + b;
-		} else if (t < (2/2.75)) {
-			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
-		} else if (t < (2.5/2.75)) {
-			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
-		} else {
-			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
-		}
-	},
-	easeInOutBounce: function (x, t, b, c, d) {
-		if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
-		return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
-	}
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- *
- * Open source under the BSD License.
- *
- * Copyright 2001 Robert Penner
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-})(jQuery);
-/*
- * jQuery UI Effects Blind 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.blind = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'vertical'; // Default direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var ref = (direction == 'vertical') ? 'height' : 'width';
-		var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();
-		if(mode == 'show') wrapper.css(ref, 0); // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref] = mode == 'show' ? distance : 0;
-
-		// Animate
-		wrapper.animate(animation, o.duration, o.options.easing, function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Bounce 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.bounce = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var direction = o.options.direction || 'up'; // Default direction
-		var distance = o.options.distance || 20; // Default distance
-		var times = o.options.times || 5; // Default # of times
-		var speed = o.duration || 250; // Default speed per bounce
-		if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		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}) / 3 : el.outerWidth({margin:true}) / 3);
-		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
-		if (mode == 'hide') distance = distance / (times * 2);
-		if (mode != 'hide') times--;
-
-		// Animate
-		if (mode == 'show') { // Show Bounce
-			var animation = {opacity: 1};
-			animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation, speed / 2, o.options.easing);
-			distance = distance / 2;
-			times--;
-		};
-		for (var i = 0; i < times; i++) { // Bounces
-			var animation1 = {}, animation2 = {};
-			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
-			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);
-			distance = (mode == 'hide') ? distance * 2 : distance / 2;
-		};
-		if (mode == 'hide') { // Last Bounce
-			var animation = {opacity: 0};
-			animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;
-			el.animate(animation, speed / 2, o.options.easing, function(){
-				el.hide(); // Hide
-				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-				if(o.callback) o.callback.apply(this, arguments); // Callback
-			});
-		} else {
-			var animation1 = {}, animation2 = {};
-			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
-			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){
-				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-				if(o.callback) o.callback.apply(this, arguments); // Callback
-			});
-		};
-		el.queue('fx', function() { el.dequeue(); });
-		el.dequeue();
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Clip 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.clip = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right','height','width'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'vertical'; // Default direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var animate = el[0].tagName == 'IMG' ? wrapper : el;
-		var ref = {
-			size: (direction == 'vertical') ? 'height' : 'width',
-			position: (direction == 'vertical') ? 'top' : 'left'
-		};
-		var distance = (direction == 'vertical') ? animate.height() : animate.width();
-		if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref.size] = mode == 'show' ? distance : 0;
-		animation[ref.position] = mode == 'show' ? 0 : distance / 2;
-
-		// Animate
-		animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Drop 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.drop = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right','opacity'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default Direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		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}) / 2 : el.outerWidth({margin:true}) / 2);
-		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
-
-		// Animation
-		var animation = {opacity: mode == 'show' ? 1 : 0};
-		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
-		// Animate
-		el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Explode 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.explode = function(o) {
-
-	return this.queue(function() {
-
-	var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
-	var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
-
-	o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
-	var el = $(this).show().css('visibility', 'hidden');
-	var offset = el.offset();
-
-	//Substract the margins - not fixing the problem yet.
-	offset.top -= parseInt(el.css("marginTop"),10) || 0;
-	offset.left -= parseInt(el.css("marginLeft"),10) || 0;
-
-	var width = el.outerWidth(true);
-	var height = el.outerHeight(true);
-
-	for(var i=0;i<rows;i++) { // =
-		for(var j=0;j<cells;j++) { // ||
-			el
-				.clone()
-				.appendTo('body')
-				.wrap('<div></div>')
-				.css({
-					position: 'absolute',
-					visibility: 'visible',
-					left: -j*(width/cells),
-					top: -i*(height/rows)
-				})
-				.parent()
-				.addClass('ui-effects-explode')
-				.css({
-					position: 'absolute',
-					overflow: 'hidden',
-					width: width/cells,
-					height: height/rows,
-					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),
-					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),
-					opacity: o.options.mode == 'show' ? 0 : 1
-				}).animate({
-					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),
-					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),
-					opacity: o.options.mode == 'show' ? 1 : 0
-				}, o.duration || 500);
-		}
-	}
-
-	// Set a timeout, to call the callback approx. when the other animations have finished
-	setTimeout(function() {
-
-		o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();
-				if(o.callback) o.callback.apply(el[0]); // Callback
-				el.dequeue();
-
-				$('div.ui-effects-explode').remove();
-
-	}, o.duration || 500);
-
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Fade 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.fold = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var size = o.options.size || 15; // Default fold size
-		var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value
-		var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2;
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var widthFirst = ((mode == 'show') != horizFirst);
-		var ref = widthFirst ? ['width', 'height'] : ['height', 'width'];
-		var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];
-		var percent = /([0-9]+)%/.exec(size);
-		if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1];
-		if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift
-
-		// Animation
-		var animation1 = {}, animation2 = {};
-		animation1[ref[0]] = mode == 'show' ? distance[0] : size;
-		animation2[ref[1]] = mode == 'show' ? distance[1] : 0;
-
-		// Animate
-		wrapper.animate(animation1, duration, o.options.easing)
-		.animate(animation2, duration, o.options.easing, function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Highlight 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.highlight = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			props = ['backgroundImage', 'backgroundColor', 'opacity'],
-			mode = $.effects.setMode(elem, o.options.mode || 'show'),
-			animation = {
-				backgroundColor: elem.css('backgroundColor')
-			};
-
-		if (mode == 'hide') {
-			animation.opacity = 0;
-		}
-
-		$.effects.save(elem, props);
-		elem
-			.show()
-			.css({
-				backgroundImage: 'none',
-				backgroundColor: o.options.color || '#ffff99'
-			})
-			.animate(animation, {
-				queue: false,
-				duration: o.duration,
-				easing: o.options.easing,
-				complete: function() {
-					(mode == 'hide' && elem.hide());
-					$.effects.restore(elem, props);
-					(mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
-					(o.callback && o.callback.apply(this, arguments));
-					elem.dequeue();
-				}
-			});
-	});
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Pulsate 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.pulsate = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			mode = $.effects.setMode(elem, o.options.mode || 'show');
-			times = ((o.options.times || 5) * 2) - 1;
-			duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2,
-			isVisible = elem.is(':visible'),
-			animateTo = 0;
-
-		if (!isVisible) {
-			elem.css('opacity', 0).show();
-			animateTo = 1;
-		}
-
-		if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) {
-			times--;
-		}
-
-		for (var i = 0; i < times; i++) {
-			elem.animate({ opacity: animateTo }, duration, o.options.easing);
-			animateTo = (animateTo + 1) % 2;
-		}
-
-		elem.animate({ opacity: animateTo }, duration, o.options.easing, function() {
-			if (animateTo == 0) {
-				elem.hide();
-			}
-			(o.callback && o.callback.apply(this, arguments));
-		});
-
-		elem
-			.queue('fx', function() { elem.dequeue(); })
-			.dequeue();
-	});
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Scale 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.puff = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			mode = $.effects.setMode(elem, o.options.mode || 'hide'),
-			percent = parseInt(o.options.percent, 10) || 150,
-			factor = percent / 100,
-			original = { height: elem.height(), width: elem.width() };
-
-		$.extend(o.options, {
-			fade: true,
-			mode: mode,
-			percent: mode == 'hide' ? percent : 100,
-			from: mode == 'hide'
-				? original
-				: {
-					height: original.height * factor,
-					width: original.width * factor
-				}
-		});
-
-		elem.effect('scale', o.options, o.duration, o.callback);
-		elem.dequeue();
-	});
-};
-
-$.effects.scale = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this);
-
-		// Set options
-		var options = $.extend(true, {}, o.options);
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent
-		var direction = o.options.direction || 'both'; // Set default axis
-		var origin = o.options.origin; // The origin of the scaling
-		if (mode != 'effect') { // Set default origin and restore for show/hide
-			options.origin = origin || ['middle','center'];
-			options.restore = true;
-		}
-		var original = {height: el.height(), width: el.width()}; // Save original
-		el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state
-
-		// Adjust
-		var factor = { // Set scaling factor
-			y: direction != 'horizontal' ? (percent / 100) : 1,
-			x: direction != 'vertical' ? (percent / 100) : 1
-		};
-		el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state
-
-		if (o.options.fade) { // Fade option to support puff
-			if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;};
-			if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;};
-		};
-
-		// Animation
-		options.from = el.from; options.to = el.to; options.mode = mode;
-
-		// Animate
-		el.effect('size', options, o.duration, o.callback);
-		el.dequeue();
-	});
-
-};
-
-$.effects.size = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		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'];
-		var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var restore = o.options.restore || false; // Default restore
-		var scale = o.options.scale || 'both'; // Default scale mode
-		var origin = o.options.origin; // The origin of the sizing
-		var original = {height: el.height(), width: el.width()}; // Save original
-		el.from = o.options.from || original; // Default from state
-		el.to = o.options.to || original; // Default to state
-		// Adjust
-		if (origin) { // Calculate baseline shifts
-			var baseline = $.effects.getBaseline(origin, original);
-			el.from.top = (original.height - el.from.height) * baseline.y;
-			el.from.left = (original.width - el.from.width) * baseline.x;
-			el.to.top = (original.height - el.to.height) * baseline.y;
-			el.to.left = (original.width - el.to.width) * baseline.x;
-		};
-		var factor = { // Set scaling factor
-			from: {y: el.from.height / original.height, x: el.from.width / original.width},
-			to: {y: el.to.height / original.height, x: el.to.width / original.width}
-		};
-		if (scale == 'box' || scale == 'both') { // Scale the css box
-			if (factor.from.y != factor.to.y) { // Vertical props scaling
-				props = props.concat(vProps);
-				el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
-				el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
-			};
-			if (factor.from.x != factor.to.x) { // Horizontal props scaling
-				props = props.concat(hProps);
-				el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);
-				el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);
-			};
-		};
-		if (scale == 'content' || scale == 'both') { // Scale the content
-			if (factor.from.y != factor.to.y) { // Vertical props scaling
-				props = props.concat(cProps);
-				el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);
-				el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);
-			};
-		};
-		$.effects.save(el, restore ? props : props1); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		el.css('overflow','hidden').css(el.from); // Shift
-
-		// Animate
-		if (scale == 'content' || scale == 'both') { // Scale the children
-			vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size
-			hProps = hProps.concat(['marginLeft','marginRight']); // Add margins
-			props2 = props.concat(vProps).concat(hProps); // Concat
-			el.find("*[width]").each(function(){
-				child = $(this);
-				if (restore) $.effects.save(child, props2);
-				var c_original = {height: child.height(), width: child.width()}; // Save original
-				child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x};
-				child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x};
-				if (factor.from.y != factor.to.y) { // Vertical props scaling
-					child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);
-					child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);
-				};
-				if (factor.from.x != factor.to.x) { // Horizontal props scaling
-					child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
-					child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
-				};
-				child.css(child.from); // Shift children
-				child.animate(child.to, o.duration, o.options.easing, function(){
-					if (restore) $.effects.restore(child, props2); // Restore children
-				}); // Animate children
-			});
-		};
-
-		// Animate
-		el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if (el.to.opacity === 0) {
-				el.css('opacity', el.from.opacity);
-			}
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Shake 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.shake = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default direction
-		var distance = o.options.distance || 20; // Default distance
-		var times = o.options.times || 3; // Default # of times
-		var speed = o.duration || o.options.duration || 140; // Default speed per shake
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
-		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
-
-		// Animation
-		var animation = {}, animation1 = {}, animation2 = {};
-		animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;
-		animation1[ref] = (motion == 'pos' ? '+=' : '-=')  + distance * 2;
-		animation2[ref] = (motion == 'pos' ? '-=' : '+=')  + distance * 2;
-
-		// Animate
-		el.animate(animation, speed, o.options.easing);
-		for (var i = 1; i < times; i++) { // Shakes
-			el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);
-		};
-		el.animate(animation1, speed, o.options.easing).
-		animate(animation, speed / 2, o.options.easing, function(){ // Last shake
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-		});
-		el.queue('fx', function() { el.dequeue(); });
-		el.dequeue();
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Slide 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.slide = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default Direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		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' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
-		// Animate
-		el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
-/*
- * jQuery UI Effects Transfer 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.transfer = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			target = $(o.options.to),
-			endPosition = target.offset(),
-			animation = {
-				top: endPosition.top,
-				left: endPosition.left,
-				height: target.innerHeight(),
-				width: target.innerWidth()
-			},
-			startPosition = elem.offset(),
-			transfer = $('<div class="ui-effects-transfer"></div>')
-				.appendTo(document.body)
-				.addClass(o.options.className)
-				.css({
-					top: startPosition.top,
-					left: startPosition.left,
-					height: elem.innerHeight(),
-					width: elem.innerWidth(),
-					position: 'absolute'
-				})
-				.animate(animation, o.duration, o.options.easing, function() {
-					transfer.remove();
-					(o.callback && o.callback.apply(elem[0], arguments));
-					elem.dequeue();
-				});
-	});
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.blind.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.blind.js
deleted file mode 100644
index 6e1f174..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.blind.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * jQuery UI Effects Blind 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.blind = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'vertical'; // Default direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var ref = (direction == 'vertical') ? 'height' : 'width';
-		var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width();
-		if(mode == 'show') wrapper.css(ref, 0); // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref] = mode == 'show' ? distance : 0;
-
-		// Animate
-		wrapper.animate(animation, o.duration, o.options.easing, function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		});
-
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.bounce.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.bounce.js
deleted file mode 100644
index 5648494..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.bounce.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * jQuery UI Effects Bounce 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.bounce = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var direction = o.options.direction || 'up'; // Default direction
-		var distance = o.options.distance || 20; // Default distance
-		var times = o.options.times || 5; // Default # of times
-		var speed = o.duration || 250; // Default speed per bounce
-		if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		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}) / 3 : el.outerWidth({margin:true}) / 3);
-		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
-		if (mode == 'hide') distance = distance / (times * 2);
-		if (mode != 'hide') times--;
-
-		// Animate
-		if (mode == 'show') { // Show Bounce
-			var animation = {opacity: 1};
-			animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation, speed / 2, o.options.easing);
-			distance = distance / 2;
-			times--;
-		};
-		for (var i = 0; i < times; i++) { // Bounces
-			var animation1 = {}, animation2 = {};
-			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
-			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing);
-			distance = (mode == 'hide') ? distance * 2 : distance / 2;
-		};
-		if (mode == 'hide') { // Last Bounce
-			var animation = {opacity: 0};
-			animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;
-			el.animate(animation, speed / 2, o.options.easing, function(){
-				el.hide(); // Hide
-				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-				if(o.callback) o.callback.apply(this, arguments); // Callback
-			});
-		} else {
-			var animation1 = {}, animation2 = {};
-			animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance;
-			animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance;
-			el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){
-				$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-				if(o.callback) o.callback.apply(this, arguments); // Callback
-			});
-		};
-		el.queue('fx', function() { el.dequeue(); });
-		el.dequeue();
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.clip.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.clip.js
deleted file mode 100644
index 0f86d09..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.clip.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * jQuery UI Effects Clip 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.clip = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right','height','width'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'vertical'; // Default direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var animate = el[0].tagName == 'IMG' ? wrapper : el;
-		var ref = {
-			size: (direction == 'vertical') ? 'height' : 'width',
-			position: (direction == 'vertical') ? 'top' : 'left'
-		};
-		var distance = (direction == 'vertical') ? animate.height() : animate.width();
-		if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref.size] = mode == 'show' ? distance : 0;
-		animation[ref.position] = mode == 'show' ? 0 : distance / 2;
-
-		// Animate
-		animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.core.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.core.js
deleted file mode 100644
index 072305b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.core.js
+++ /dev/null
@@ -1,747 +0,0 @@
-/*
- * jQuery UI Effects 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-;jQuery.effects || (function($, undefined) {
-
-$.effects = {};
-
-
-
-/******************************************************************************/
-/****************************** COLOR ANIMATIONS ******************************/
-/******************************************************************************/
-
-// override the animation for color styles
-$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor',
-	'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'],
-function(i, attr) {
-	$.fx.step[attr] = function(fx) {
-		if (!fx.colorInit) {
-			fx.start = getColor(fx.elem, attr);
-			fx.end = getRGB(fx.end);
-			fx.colorInit = true;
-		}
-
-		fx.elem.style[attr] = 'rgb(' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' +
-			Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')';
-	};
-});
-
-// Color Conversion functions from highlightFade
-// By Blair Mitchelmore
-// http://jquery.offput.ca/highlightFade/
-
-// Parse strings looking for color tuples [255,255,255]
-function getRGB(color) {
-		var result;
-
-		// Check if we're already dealing with an array of colors
-		if ( color && color.constructor == Array && color.length == 3 )
-				return color;
-
-		// Look for rgb(num,num,num)
-		if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
-				return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)];
-
-		// Look for rgb(num%,num%,num%)
-		if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
-				return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
-
-		// Look for #a0b1c2
-		if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
-				return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
-
-		// Look for #fff
-		if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
-				return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
-
-		// Look for rgba(0, 0, 0, 0) == transparent in Safari 3
-		if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
-				return colors['transparent'];
-
-		// Otherwise, we're most likely dealing with a named color
-		return colors[$.trim(color).toLowerCase()];
-}
-
-function getColor(elem, attr) {
-		var color;
-
-		do {
-				color = $.curCSS(elem, attr);
-
-				// Keep going until we find an element that has color, or we hit the body
-				if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") )
-						break;
-
-				attr = "backgroundColor";
-		} while ( elem = elem.parentNode );
-
-		return getRGB(color);
-};
-
-// Some named colors to work with
-// From Interface by Stefan Petre
-// http://interface.eyecon.ro/
-
-var colors = {
-	aqua:[0,255,255],
-	azure:[240,255,255],
-	beige:[245,245,220],
-	black:[0,0,0],
-	blue:[0,0,255],
-	brown:[165,42,42],
-	cyan:[0,255,255],
-	darkblue:[0,0,139],
-	darkcyan:[0,139,139],
-	darkgrey:[169,169,169],
-	darkgreen:[0,100,0],
-	darkkhaki:[189,183,107],
-	darkmagenta:[139,0,139],
-	darkolivegreen:[85,107,47],
-	darkorange:[255,140,0],
-	darkorchid:[153,50,204],
-	darkred:[139,0,0],
-	darksalmon:[233,150,122],
-	darkviolet:[148,0,211],
-	fuchsia:[255,0,255],
-	gold:[255,215,0],
-	green:[0,128,0],
-	indigo:[75,0,130],
-	khaki:[240,230,140],
-	lightblue:[173,216,230],
-	lightcyan:[224,255,255],
-	lightgreen:[144,238,144],
-	lightgrey:[211,211,211],
-	lightpink:[255,182,193],
-	lightyellow:[255,255,224],
-	lime:[0,255,0],
-	magenta:[255,0,255],
-	maroon:[128,0,0],
-	navy:[0,0,128],
-	olive:[128,128,0],
-	orange:[255,165,0],
-	pink:[255,192,203],
-	purple:[128,0,128],
-	violet:[128,0,128],
-	red:[255,0,0],
-	silver:[192,192,192],
-	white:[255,255,255],
-	yellow:[255,255,0],
-	transparent: [255,255,255]
-};
-
-
-
-/******************************************************************************/
-/****************************** CLASS ANIMATIONS ******************************/
-/******************************************************************************/
-
-var classAnimationActions = ['add', 'remove', 'toggle'],
-	shorthandStyles = {
-		border: 1,
-		borderBottom: 1,
-		borderColor: 1,
-		borderLeft: 1,
-		borderRight: 1,
-		borderTop: 1,
-		borderWidth: 1,
-		margin: 1,
-		padding: 1
-	};
-
-function getElementStyles() {
-	var style = document.defaultView
-			? document.defaultView.getComputedStyle(this, null)
-			: this.currentStyle,
-		newStyle = {},
-		key,
-		camelCase;
-
-	// webkit enumerates style porperties
-	if (style && style.length && style[0] && style[style[0]]) {
-		var len = style.length;
-		while (len--) {
-			key = style[len];
-			if (typeof style[key] == 'string') {
-				camelCase = key.replace(/\-(\w)/g, function(all, letter){
-					return letter.toUpperCase();
-				});
-				newStyle[camelCase] = style[key];
-			}
-		}
-	} else {
-		for (key in style) {
-			if (typeof style[key] === 'string') {
-				newStyle[key] = style[key];
-			}
-		}
-	}
-	
-	return newStyle;
-}
-
-function filterStyles(styles) {
-	var name, value;
-	for (name in styles) {
-		value = styles[name];
-		if (
-			// ignore null and undefined values
-			value == null ||
-			// ignore functions (when does this occur?)
-			$.isFunction(value) ||
-			// shorthand styles that need to be expanded
-			name in shorthandStyles ||
-			// ignore scrollbars (break in IE)
-			(/scrollbar/).test(name) ||
-
-			// only colors or values that can be converted to numbers
-			(!(/color/i).test(name) && isNaN(parseFloat(value)))
-		) {
-			delete styles[name];
-		}
-	}
-	
-	return styles;
-}
-
-function styleDifference(oldStyle, newStyle) {
-	var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459
-		name;
-
-	for (name in newStyle) {
-		if (oldStyle[name] != newStyle[name]) {
-			diff[name] = newStyle[name];
-		}
-	}
-
-	return diff;
-}
-
-$.effects.animateClass = function(value, duration, easing, callback) {
-	if ($.isFunction(easing)) {
-		callback = easing;
-		easing = null;
-	}
-
-	return this.queue('fx', function() {
-		var that = $(this),
-			originalStyleAttr = that.attr('style') || ' ',
-			originalStyle = filterStyles(getElementStyles.call(this)),
-			newStyle,
-			className = that.attr('className');
-
-		$.each(classAnimationActions, function(i, action) {
-			if (value[action]) {
-				that[action + 'Class'](value[action]);
-			}
-		});
-		newStyle = filterStyles(getElementStyles.call(this));
-		that.attr('className', className);
-
-		that.animate(styleDifference(originalStyle, newStyle), duration, easing, function() {
-			$.each(classAnimationActions, function(i, action) {
-				if (value[action]) { that[action + 'Class'](value[action]); }
-			});
-			// work around bug in IE by clearing the cssText before setting it
-			if (typeof that.attr('style') == 'object') {
-				that.attr('style').cssText = '';
-				that.attr('style').cssText = originalStyleAttr;
-			} else {
-				that.attr('style', originalStyleAttr);
-			}
-			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);
-	});
-};
-
-$.fn.extend({
-	_addClass: $.fn.addClass,
-	addClass: function(classNames, speed, easing, callback) {
-		return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames);
-	},
-
-	_removeClass: $.fn.removeClass,
-	removeClass: function(classNames,speed,easing,callback) {
-		return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames);
-	},
-
-	_toggleClass: $.fn.toggleClass,
-	toggleClass: function(classNames, force, speed, easing, callback) {
-		if ( typeof force == "boolean" || force === undefined ) {
-			if ( !speed ) {
-				// without speed parameter;
-				return this._toggleClass(classNames, force);
-			} else {
-				return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]);
-			}
-		} else {
-			// without switch parameter;
-			return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]);
-		}
-	},
-
-	switchClass: function(remove,add,speed,easing,callback) {
-		return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]);
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EFFECTS **********************************/
-/******************************************************************************/
-
-$.extend($.effects, {
-	version: "1.8.11",
-
-	// Saves a set of properties in a data storage
-	save: function(element, set) {
-		for(var i=0; i < set.length; i++) {
-			if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]);
-		}
-	},
-
-	// Restores a set of previously saved properties from a data storage
-	restore: function(element, set) {
-		for(var i=0; i < set.length; i++) {
-			if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i]));
-		}
-	},
-
-	setMode: function(el, mode) {
-		if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle
-		return mode;
-	},
-
-	getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value
-		// this should be a little more flexible in the future to handle a string & hash
-		var y, x;
-		switch (origin[0]) {
-			case 'top': y = 0; break;
-			case 'middle': y = 0.5; break;
-			case 'bottom': y = 1; break;
-			default: y = origin[0] / original.height;
-		};
-		switch (origin[1]) {
-			case 'left': x = 0; break;
-			case 'center': x = 0.5; break;
-			case 'right': x = 1; break;
-			default: x = origin[1] / original.width;
-		};
-		return {x: x, y: y};
-	},
-
-	// Wraps the element around a wrapper that copies position properties
-	createWrapper: function(element) {
-
-		// if the element is already wrapped, return it
-		if (element.parent().is('.ui-effects-wrapper')) {
-			return element.parent();
-		}
-
-		// wrap the element
-		var props = {
-				width: element.outerWidth(true),
-				height: element.outerHeight(true),
-				'float': element.css('float')
-			},
-			wrapper = $('<div></div>')
-				.addClass('ui-effects-wrapper')
-				.css({
-					fontSize: '100%',
-					background: 'transparent',
-					border: 'none',
-					margin: 0,
-					padding: 0
-				});
-
-		element.wrap(wrapper);
-		wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element
-
-		// transfer positioning properties to the wrapper
-		if (element.css('position') == 'static') {
-			wrapper.css({ position: 'relative' });
-			element.css({ position: 'relative' });
-		} else {
-			$.extend(props, {
-				position: element.css('position'),
-				zIndex: element.css('z-index')
-			});
-			$.each(['top', 'left', 'bottom', 'right'], function(i, pos) {
-				props[pos] = element.css(pos);
-				if (isNaN(parseInt(props[pos], 10))) {
-					props[pos] = 'auto';
-				}
-			});
-			element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' });
-		}
-
-		return wrapper.css(props).show();
-	},
-
-	removeWrapper: function(element) {
-		if (element.parent().is('.ui-effects-wrapper'))
-			return element.parent().replaceWith(element);
-		return element;
-	},
-
-	setTransition: function(element, list, factor, value) {
-		value = value || {};
-		$.each(list, function(i, x){
-			unit = element.cssUnit(x);
-			if (unit[0] > 0) value[x] = unit[0] * factor + unit[1];
-		});
-		return value;
-	}
-});
-
-
-function _normalizeArguments(effect, options, speed, callback) {
-	// shift params for method overloading
-	if (typeof effect == 'object') {
-		callback = options;
-		speed = null;
-		options = effect;
-		effect = options.effect;
-	}
-	if ($.isFunction(options)) {
-		callback = options;
-		speed = null;
-		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 : 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 take actual parameters instead of a hash
-			args2 = {
-				options: args[1],
-				duration: args[2],
-				callback: args[3]
-			},
-			mode = args2.options.mode,
-			effectMethod = $.effects[effect];
-		
-		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 ( standardSpeed( speed ) ) {
-			return this._show.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'show';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	_hide: $.fn.hide,
-	hide: function(speed) {
-		if ( standardSpeed( speed ) ) {
-			return this._hide.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'hide';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	// jQuery core overloads toggle and creates _toggle
-	__toggle: $.fn.toggle,
-	toggle: function(speed) {
-		if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) {
-			return this.__toggle.apply(this, arguments);
-		} else {
-			var args = _normalizeArguments.apply(this, arguments);
-			args[1].mode = 'toggle';
-			return this.effect.apply(this, args);
-		}
-	},
-
-	// helper functions
-	cssUnit: function(key) {
-		var style = this.css(key), val = [];
-		$.each( ['em','px','%','pt'], function(i, unit){
-			if(style.indexOf(unit) > 0)
-				val = [parseFloat(style), unit];
-		});
-		return val;
-	}
-});
-
-
-
-/******************************************************************************/
-/*********************************** EASING ***********************************/
-/******************************************************************************/
-
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- *
- * Open source under the BSD License.
- *
- * Copyright 2008 George McGinley Smith
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-$.easing.jswing = $.easing.swing;
-
-$.extend($.easing,
-{
-	def: 'easeOutQuad',
-	swing: function (x, t, b, c, d) {
-		//alert($.easing.default);
-		return $.easing[$.easing.def](x, t, b, c, d);
-	},
-	easeInQuad: function (x, t, b, c, d) {
-		return c*(t/=d)*t + b;
-	},
-	easeOutQuad: function (x, t, b, c, d) {
-		return -c *(t/=d)*(t-2) + b;
-	},
-	easeInOutQuad: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t + b;
-		return -c/2 * ((--t)*(t-2) - 1) + b;
-	},
-	easeInCubic: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t + b;
-	},
-	easeOutCubic: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t + 1) + b;
-	},
-	easeInOutCubic: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t + b;
-		return c/2*((t-=2)*t*t + 2) + b;
-	},
-	easeInQuart: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t + b;
-	},
-	easeOutQuart: function (x, t, b, c, d) {
-		return -c * ((t=t/d-1)*t*t*t - 1) + b;
-	},
-	easeInOutQuart: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
-		return -c/2 * ((t-=2)*t*t*t - 2) + b;
-	},
-	easeInQuint: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t*t + b;
-	},
-	easeOutQuint: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t*t*t + 1) + b;
-	},
-	easeInOutQuint: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
-		return c/2*((t-=2)*t*t*t*t + 2) + b;
-	},
-	easeInSine: function (x, t, b, c, d) {
-		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
-	},
-	easeOutSine: function (x, t, b, c, d) {
-		return c * Math.sin(t/d * (Math.PI/2)) + b;
-	},
-	easeInOutSine: function (x, t, b, c, d) {
-		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
-	},
-	easeInExpo: function (x, t, b, c, d) {
-		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
-	},
-	easeOutExpo: function (x, t, b, c, d) {
-		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
-	},
-	easeInOutExpo: function (x, t, b, c, d) {
-		if (t==0) return b;
-		if (t==d) return b+c;
-		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
-		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
-	},
-	easeInCirc: function (x, t, b, c, d) {
-		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
-	},
-	easeOutCirc: function (x, t, b, c, d) {
-		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
-	},
-	easeInOutCirc: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
-		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
-	},
-	easeInElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-	},
-	easeOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
-	},
-	easeInOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
-	},
-	easeInBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*(t/=d)*t*((s+1)*t - s) + b;
-	},
-	easeOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
-	},
-	easeInOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
-		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
-	},
-	easeInBounce: function (x, t, b, c, d) {
-		return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b;
-	},
-	easeOutBounce: function (x, t, b, c, d) {
-		if ((t/=d) < (1/2.75)) {
-			return c*(7.5625*t*t) + b;
-		} else if (t < (2/2.75)) {
-			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
-		} else if (t < (2.5/2.75)) {
-			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
-		} else {
-			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
-		}
-	},
-	easeInOutBounce: function (x, t, b, c, d) {
-		if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
-		return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
-	}
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- *
- * Open source under the BSD License.
- *
- * Copyright 2001 Robert Penner
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list
- * of conditions and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * Neither the name of the author nor the names of contributors may be used to endorse
- * or promote products derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- * OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.drop.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.drop.js
deleted file mode 100644
index c61cc34..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.drop.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * jQuery UI Effects Drop 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.drop = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right','opacity'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default Direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		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}) / 2 : el.outerWidth({margin:true}) / 2);
-		if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift
-
-		// Animation
-		var animation = {opacity: mode == 'show' ? 1 : 0};
-		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
-		// Animate
-		el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.explode.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.explode.js
deleted file mode 100644
index 785a6bb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.explode.js
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * jQuery UI Effects Explode 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.explode = function(o) {
-
-	return this.queue(function() {
-
-	var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
-	var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
-
-	o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
-	var el = $(this).show().css('visibility', 'hidden');
-	var offset = el.offset();
-
-	//Substract the margins - not fixing the problem yet.
-	offset.top -= parseInt(el.css("marginTop"),10) || 0;
-	offset.left -= parseInt(el.css("marginLeft"),10) || 0;
-
-	var width = el.outerWidth(true);
-	var height = el.outerHeight(true);
-
-	for(var i=0;i<rows;i++) { // =
-		for(var j=0;j<cells;j++) { // ||
-			el
-				.clone()
-				.appendTo('body')
-				.wrap('<div></div>')
-				.css({
-					position: 'absolute',
-					visibility: 'visible',
-					left: -j*(width/cells),
-					top: -i*(height/rows)
-				})
-				.parent()
-				.addClass('ui-effects-explode')
-				.css({
-					position: 'absolute',
-					overflow: 'hidden',
-					width: width/cells,
-					height: height/rows,
-					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),
-					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),
-					opacity: o.options.mode == 'show' ? 0 : 1
-				}).animate({
-					left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),
-					top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),
-					opacity: o.options.mode == 'show' ? 1 : 0
-				}, o.duration || 500);
-		}
-	}
-
-	// Set a timeout, to call the callback approx. when the other animations have finished
-	setTimeout(function() {
-
-		o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();
-				if(o.callback) o.callback.apply(el[0]); // Callback
-				el.dequeue();
-
-				$('div.ui-effects-explode').remove();
-
-	}, o.duration || 500);
-
-
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fade.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fade.js
deleted file mode 100644
index e873659..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fade.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * jQuery UI Effects Fade 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/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/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fold.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fold.js
deleted file mode 100644
index 4858b14..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fold.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * jQuery UI Effects Fold 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.fold = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode
-		var size = o.options.size || 15; // Default fold size
-		var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value
-		var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2;
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		var widthFirst = ((mode == 'show') != horizFirst);
-		var ref = widthFirst ? ['width', 'height'] : ['height', 'width'];
-		var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()];
-		var percent = /([0-9]+)%/.exec(size);
-		if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1];
-		if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift
-
-		// Animation
-		var animation1 = {}, animation2 = {};
-		animation1[ref[0]] = mode == 'show' ? distance[0] : size;
-		animation2[ref[1]] = mode == 'show' ? distance[1] : 0;
-
-		// Animate
-		wrapper.animate(animation1, duration, o.options.easing)
-		.animate(animation2, duration, o.options.easing, function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(el[0], arguments); // Callback
-			el.dequeue();
-		});
-
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.highlight.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.highlight.js
deleted file mode 100644
index 5552492..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.highlight.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * jQuery UI Effects Highlight 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.highlight = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			props = ['backgroundImage', 'backgroundColor', 'opacity'],
-			mode = $.effects.setMode(elem, o.options.mode || 'show'),
-			animation = {
-				backgroundColor: elem.css('backgroundColor')
-			};
-
-		if (mode == 'hide') {
-			animation.opacity = 0;
-		}
-
-		$.effects.save(elem, props);
-		elem
-			.show()
-			.css({
-				backgroundImage: 'none',
-				backgroundColor: o.options.color || '#ffff99'
-			})
-			.animate(animation, {
-				queue: false,
-				duration: o.duration,
-				easing: o.options.easing,
-				complete: function() {
-					(mode == 'hide' && elem.hide());
-					$.effects.restore(elem, props);
-					(mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter'));
-					(o.callback && o.callback.apply(this, arguments));
-					elem.dequeue();
-				}
-			});
-	});
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.pulsate.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.pulsate.js
deleted file mode 100644
index 8a025e7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.pulsate.js
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * jQuery UI Effects Pulsate 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.pulsate = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			mode = $.effects.setMode(elem, o.options.mode || 'show');
-			times = ((o.options.times || 5) * 2) - 1;
-			duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2,
-			isVisible = elem.is(':visible'),
-			animateTo = 0;
-
-		if (!isVisible) {
-			elem.css('opacity', 0).show();
-			animateTo = 1;
-		}
-
-		if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) {
-			times--;
-		}
-
-		for (var i = 0; i < times; i++) {
-			elem.animate({ opacity: animateTo }, duration, o.options.easing);
-			animateTo = (animateTo + 1) % 2;
-		}
-
-		elem.animate({ opacity: animateTo }, duration, o.options.easing, function() {
-			if (animateTo == 0) {
-				elem.hide();
-			}
-			(o.callback && o.callback.apply(this, arguments));
-		});
-
-		elem
-			.queue('fx', function() { elem.dequeue(); })
-			.dequeue();
-	});
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.scale.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.scale.js
deleted file mode 100644
index 45023f2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.scale.js
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
- * jQuery UI Effects Scale 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.puff = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			mode = $.effects.setMode(elem, o.options.mode || 'hide'),
-			percent = parseInt(o.options.percent, 10) || 150,
-			factor = percent / 100,
-			original = { height: elem.height(), width: elem.width() };
-
-		$.extend(o.options, {
-			fade: true,
-			mode: mode,
-			percent: mode == 'hide' ? percent : 100,
-			from: mode == 'hide'
-				? original
-				: {
-					height: original.height * factor,
-					width: original.width * factor
-				}
-		});
-
-		elem.effect('scale', o.options, o.duration, o.callback);
-		elem.dequeue();
-	});
-};
-
-$.effects.scale = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this);
-
-		// Set options
-		var options = $.extend(true, {}, o.options);
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent
-		var direction = o.options.direction || 'both'; // Set default axis
-		var origin = o.options.origin; // The origin of the scaling
-		if (mode != 'effect') { // Set default origin and restore for show/hide
-			options.origin = origin || ['middle','center'];
-			options.restore = true;
-		}
-		var original = {height: el.height(), width: el.width()}; // Save original
-		el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state
-
-		// Adjust
-		var factor = { // Set scaling factor
-			y: direction != 'horizontal' ? (percent / 100) : 1,
-			x: direction != 'vertical' ? (percent / 100) : 1
-		};
-		el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state
-
-		if (o.options.fade) { // Fade option to support puff
-			if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;};
-			if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;};
-		};
-
-		// Animation
-		options.from = el.from; options.to = el.to; options.mode = mode;
-
-		// Animate
-		el.effect('size', options, o.duration, o.callback);
-		el.dequeue();
-	});
-
-};
-
-$.effects.size = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		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'];
-		var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var restore = o.options.restore || false; // Default restore
-		var scale = o.options.scale || 'both'; // Default scale mode
-		var origin = o.options.origin; // The origin of the sizing
-		var original = {height: el.height(), width: el.width()}; // Save original
-		el.from = o.options.from || original; // Default from state
-		el.to = o.options.to || original; // Default to state
-		// Adjust
-		if (origin) { // Calculate baseline shifts
-			var baseline = $.effects.getBaseline(origin, original);
-			el.from.top = (original.height - el.from.height) * baseline.y;
-			el.from.left = (original.width - el.from.width) * baseline.x;
-			el.to.top = (original.height - el.to.height) * baseline.y;
-			el.to.left = (original.width - el.to.width) * baseline.x;
-		};
-		var factor = { // Set scaling factor
-			from: {y: el.from.height / original.height, x: el.from.width / original.width},
-			to: {y: el.to.height / original.height, x: el.to.width / original.width}
-		};
-		if (scale == 'box' || scale == 'both') { // Scale the css box
-			if (factor.from.y != factor.to.y) { // Vertical props scaling
-				props = props.concat(vProps);
-				el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from);
-				el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to);
-			};
-			if (factor.from.x != factor.to.x) { // Horizontal props scaling
-				props = props.concat(hProps);
-				el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from);
-				el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to);
-			};
-		};
-		if (scale == 'content' || scale == 'both') { // Scale the content
-			if (factor.from.y != factor.to.y) { // Vertical props scaling
-				props = props.concat(cProps);
-				el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from);
-				el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to);
-			};
-		};
-		$.effects.save(el, restore ? props : props1); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		el.css('overflow','hidden').css(el.from); // Shift
-
-		// Animate
-		if (scale == 'content' || scale == 'both') { // Scale the children
-			vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size
-			hProps = hProps.concat(['marginLeft','marginRight']); // Add margins
-			props2 = props.concat(vProps).concat(hProps); // Concat
-			el.find("*[width]").each(function(){
-				child = $(this);
-				if (restore) $.effects.save(child, props2);
-				var c_original = {height: child.height(), width: child.width()}; // Save original
-				child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x};
-				child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x};
-				if (factor.from.y != factor.to.y) { // Vertical props scaling
-					child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from);
-					child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to);
-				};
-				if (factor.from.x != factor.to.x) { // Horizontal props scaling
-					child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from);
-					child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to);
-				};
-				child.css(child.from); // Shift children
-				child.animate(child.to, o.duration, o.options.easing, function(){
-					if (restore) $.effects.restore(child, props2); // Restore children
-				}); // Animate children
-			});
-		};
-
-		// Animate
-		el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if (el.to.opacity === 0) {
-				el.css('opacity', el.from.opacity);
-			}
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.shake.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.shake.js
deleted file mode 100644
index d5599dd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.shake.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * jQuery UI Effects Shake 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.shake = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default direction
-		var distance = o.options.distance || 20; // Default distance
-		var times = o.options.times || 3; // Default # of times
-		var speed = o.duration || o.options.duration || 140; // Default speed per shake
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el); // Create Wrapper
-		var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left';
-		var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg';
-
-		// Animation
-		var animation = {}, animation1 = {}, animation2 = {};
-		animation[ref] = (motion == 'pos' ? '-=' : '+=')  + distance;
-		animation1[ref] = (motion == 'pos' ? '+=' : '-=')  + distance * 2;
-		animation2[ref] = (motion == 'pos' ? '-=' : '+=')  + distance * 2;
-
-		// Animate
-		el.animate(animation, speed, o.options.easing);
-		for (var i = 1; i < times; i++) { // Shakes
-			el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing);
-		};
-		el.animate(animation1, speed, o.options.easing).
-		animate(animation, speed / 2, o.options.easing, function(){ // Last shake
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-		});
-		el.queue('fx', function() { el.dequeue(); });
-		el.dequeue();
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.slide.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.slide.js
deleted file mode 100644
index 9118377..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.slide.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * jQuery UI Effects Slide 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.slide = function(o) {
-
-	return this.queue(function() {
-
-		// Create element
-		var el = $(this), props = ['position','top','bottom','left','right'];
-
-		// Set options
-		var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode
-		var direction = o.options.direction || 'left'; // Default Direction
-
-		// Adjust
-		$.effects.save(el, props); el.show(); // Save & Show
-		$.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper
-		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' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift
-
-		// Animation
-		var animation = {};
-		animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance;
-
-		// Animate
-		el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() {
-			if(mode == 'hide') el.hide(); // Hide
-			$.effects.restore(el, props); $.effects.removeWrapper(el); // Restore
-			if(o.callback) o.callback.apply(this, arguments); // Callback
-			el.dequeue();
-		}});
-
-	});
-
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.transfer.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.transfer.js
deleted file mode 100644
index 4a5bdf6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.transfer.js
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * jQuery UI Effects Transfer 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function( $, undefined ) {
-
-$.effects.transfer = function(o) {
-	return this.queue(function() {
-		var elem = $(this),
-			target = $(o.options.to),
-			endPosition = target.offset(),
-			animation = {
-				top: endPosition.top,
-				left: endPosition.left,
-				height: target.innerHeight(),
-				width: target.innerWidth()
-			},
-			startPosition = elem.offset(),
-			transfer = $('<div class="ui-effects-transfer"></div>')
-				.appendTo(document.body)
-				.addClass(o.options.className)
-				.css({
-					top: startPosition.top,
-					left: startPosition.left,
-					height: elem.innerHeight(),
-					width: elem.innerWidth(),
-					position: 'absolute'
-				})
-				.animate(animation, o.duration, o.options.easing, function() {
-					transfer.remove();
-					(o.callback && o.callback.apply(elem[0], arguments));
-					elem.dequeue();
-				});
-	});
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.accordion.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.accordion.js
deleted file mode 100644
index 898160a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.accordion.js
+++ /dev/null
@@ -1,611 +0,0 @@
-/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget( "ui.accordion", {
-	options: {
-		active: 0,
-		animated: "slide",
-		autoHeight: true,
-		clearStyle: false,
-		collapsible: false,
-		event: "click",
-		fillSpace: false,
-		header: "> li > :first-child,> :not(li):even",
-		icons: {
-			header: "ui-icon-triangle-1-e",
-			headerSelected: "ui-icon-triangle-1-s"
-		},
-		navigation: false,
-		navigationFilter: function() {
-			return this.href.toLowerCase() === location.href.toLowerCase();
-		}
-	},
-
-	_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" );
-			});
-
-		self.headers.next()
-			.addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" );
-
-		if ( options.navigation ) {
-			var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 );
-			if ( current.length ) {
-				var header = current.closest( ".ui-accordion-header" );
-				if ( header.length ) {
-					// anchor within header
-					self.active = header;
-				} else {
-					// anchor within content
-					self.active = current.closest( ".ui-accordion-content" ).prev();
-				}
-			}
-		}
-
-		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" );
-
-		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" );
-
-		self.headers
-			.not( self.active || "" )
-			.attr({
-				"aria-expanded": "false",
-				"aria-selected": "false",
-				tabIndex: -1
-			})
-			.next()
-				.hide();
-
-		// make sure at least one header is in the tab order
-		if ( !self.active.length ) {
-			self.headers.eq( 0 ).attr( "tabIndex", 0 );
-		} else {
-			self.active
-				.attr({
-					"aria-expanded": "true",
-					"aria-selected": "true",
-					tabIndex: 0
-				});
-		}
-
-		// only need links in tab order for Safari
-		if ( !$.browser.safari ) {
-			self.headers.find( "a" ).attr( "tabIndex", -1 );
-		}
-
-		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 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" );
-	},
-
-	destroy: function() {
-		var options = this.options;
-
-		this.element
-			.removeClass( "ui-accordion ui-widget ui-helper-reset" )
-			.removeAttr( "role" );
-
-		this.headers
-			.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 ui-accordion-disabled ui-state-disabled" );
-		if ( options.autoHeight || options.fillHeight ) {
-			contents.css( "height", "" );
-		}
-
-		return $.Widget.prototype.destroy.call( this );
-	},
-
-	_setOption: function( key, value ) {
-		$.Widget.prototype._setOption.apply( this, arguments );
-			
-		if ( key == "active" ) {
-			this.activate( value );
-		}
-		if ( key == "icons" ) {
-			this._destroyIcons();
-			if ( value ) {
-				this._createIcons();
-			}
-		}
-		// #5332 - opacity doesn't cascade to positioned elements in IE
-		// so we need to add the disabled class to the headers and panels
-		if ( key == "disabled" ) {
-			this.headers.add(this.headers.next())
-				[ value ? "addClass" : "removeClass" ](
-					"ui-accordion-disabled ui-state-disabled" );
-		}
-	},
-
-	_keydown: function( event ) {
-		if ( this.options.disabled || event.altKey || event.ctrlKey ) {
-			return;
-		}
-
-		var keyCode = $.ui.keyCode,
-			length = this.headers.length,
-			currentIndex = this.headers.index( event.target ),
-			toFocus = false;
-
-		switch ( event.keyCode ) {
-			case keyCode.RIGHT:
-			case keyCode.DOWN:
-				toFocus = this.headers[ ( currentIndex + 1 ) % length ];
-				break;
-			case keyCode.LEFT:
-			case keyCode.UP:
-				toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
-				break;
-			case keyCode.SPACE:
-			case keyCode.ENTER:
-				this._clickHandler( { target: event.target }, event.target );
-				event.preventDefault();
-		}
-
-		if ( toFocus ) {
-			$( event.target ).attr( "tabIndex", -1 );
-			$( toFocus ).attr( "tabIndex", 0 );
-			toFocus.focus();
-			return false;
-		}
-
-		return true;
-	},
-
-	resize: function() {
-		var options = this.options,
-			maxHeight;
-
-		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 );
-			}
-
-			this.headers.each(function() {
-				maxHeight -= $( this ).outerHeight( true );
-			});
-
-			this.headers.next()
-				.each(function() {
-					$( this ).height( Math.max( 0, maxHeight -
-						$( this ).innerHeight() + $( this ).height() ) );
-				})
-				.css( "overflow", "auto" );
-		} else if ( options.autoHeight ) {
-			maxHeight = 0;
-			this.headers.next()
-				.each(function() {
-					maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() );
-				})
-				.height( maxHeight );
-		}
-
-		return this;
-	},
-
-	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 );
-
-		return this;
-	},
-
-	_findActive: function( selector ) {
-		return selector
-			? typeof selector === "number"
-				? this.headers.filter( ":eq(" + selector + ")" )
-				: this.headers.not( this.headers.not( selector ) )
-			: selector === false
-				? $( [] )
-				: this.headers.filter( ":eq(0)" );
-	},
-
-	// 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 ( !options.collapsible ) {
-				return;
-			}
-			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: options,
-					newHeader: $( [] ),
-					oldHeader: options.active,
-					newContent: $( [] ),
-					oldContent: toHide
-				},
-				toShow = ( this.active = $( [] ) );
-			this._toggle( toShow, toHide, data );
-			return;
-		}
-
-		// get the click target
-		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?
-		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 || ( !options.collapsible && clickedIsActive ) ) {
-			return;
-		}
-
-		// find elements to show and hide
-		var active = this.active,
-			toShow = clicked.next(),
-			toHide = this.active.next(),
-			data = {
-				options: options,
-				newHeader: clickedIsActive && options.collapsible ? $([]) : clicked,
-				oldHeader: this.active,
-				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 );
-
-		// 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 self = this,
-			options = self.options;
-
-		self.toShow = toShow;
-		self.toHide = toHide;
-		self.data = data;
-
-		var complete = function() {
-			if ( !self ) {
-				return;
-			}
-			return self._completed.apply( self, arguments );
-		};
-
-		// trigger changestart event
-		self._trigger( "changestart", null, self.data );
-
-		// count elements to animate
-		self.running = toHide.size() === 0 ? toShow.size() : toHide.size();
-
-		if ( options.animated ) {
-			var animOptions = {};
-
-			if ( options.collapsible && clickedIsActive ) {
-				animOptions = {
-					toShow: $( [] ),
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: options.autoHeight || options.fillSpace
-				};
-			} else {
-				animOptions = {
-					toShow: toShow,
-					toHide: toHide,
-					complete: complete,
-					down: down,
-					autoHeight: options.autoHeight || options.fillSpace
-				};
-			}
-
-			if ( !options.proxied ) {
-				options.proxied = options.animated;
-			}
-
-			if ( !options.proxiedDuration ) {
-				options.proxiedDuration = options.duration;
-			}
-
-			options.animated = $.isFunction( options.proxied ) ?
-				options.proxied( animOptions ) :
-				options.proxied;
-
-			options.duration = $.isFunction( options.proxiedDuration ) ?
-				options.proxiedDuration( animOptions ) :
-				options.proxiedDuration;
-
-			var animations = $.ui.accordion.animations,
-				duration = options.duration,
-				easing = options.animated;
-
-			if ( easing && !animations[ easing ] && !$.easing[ easing ] ) {
-				easing = "slide";
-			}
-			if ( !animations[ easing ] ) {
-				animations[ easing ] = function( options ) {
-					this.slide( options, {
-						easing: easing,
-						duration: duration || 700
-					});
-				};
-			}
-
-			animations[ easing ]( animOptions );
-		} else {
-			if ( options.collapsible && clickedIsActive ) {
-				toShow.toggle();
-			} else {
-				toHide.hide();
-				toShow.show();
-			}
-
-			complete( true );
-		}
-
-		// TODO assert that the blur and focus triggers are really necessary, remove otherwise
-		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 ) {
-		this.running = cancel ? 0 : --this.running;
-		if ( this.running ) {
-			return;
-		}
-
-		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" );
-		// 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 );
-	}
-});
-
-$.extend( $.ui.accordion, {
-	version: "1.8.11",
-	animations: {
-		slide: function( options, additions ) {
-			options = $.extend({
-				easing: "swing",
-				duration: 300
-			}, options, additions );
-			if ( !options.toHide.size() ) {
-				options.toShow.animate({
-					height: "show",
-					paddingTop: "show",
-					paddingBottom: "show"
-				}, options );
-				return;
-			}
-			if ( !options.toShow.size() ) {
-				options.toHide.animate({
-					height: "hide",
-					paddingTop: "hide",
-					paddingBottom: "hide"
-				}, options );
-				return;
-			}
-			var overflow = options.toShow.css( "overflow" ),
-				percentDone = 0,
-				showProps = {},
-				hideProps = {},
-				fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
-				originalWidth;
-			// 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"
-				};
-			});
-			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" ) {
-						percentDone = ( settings.end - settings.start === 0 ) ? 0 :
-							( settings.now - settings.start ) / ( settings.end - settings.start );
-					}
-
-					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({
-						width: originalWidth,
-						overflow: overflow
-					});
-					options.complete();
-				}
-			});
-		},
-		bounceslide: function( options ) {
-			this.slide( options, {
-				easing: options.down ? "easeOutBounce" : "swing",
-				duration: options.down ? 1000 : 200
-			});
-		}
-	}
-});
-
-})( jQuery );
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.autocomplete.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.autocomplete.js
deleted file mode 100644
index 9342483..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.autocomplete.js
+++ /dev/null
@@ -1,612 +0,0 @@
-/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(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,
-		position: {
-			my: "left top",
-			at: "left bottom",
-			collision: "none"
-		},
-		source: null
-	},
-
-	pending: 0,
-
-	_create: function() {
-		var self = this,
-			doc = this.element[ 0 ].ownerDocument,
-			suppressKeyPress;
-
-		this.element
-			.addClass( "ui-autocomplete-input" )
-			.attr( "autocomplete", "off" )
-			// TODO verify these actually work as intended
-			.attr({
-				role: "textbox",
-				"aria-autocomplete": "list",
-				"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:
-					self._move( "previousPage", event );
-					break;
-				case keyCode.PAGE_DOWN:
-					self._move( "nextPage", event );
-					break;
-				case keyCode.UP:
-					self._move( "previous", event );
-					// prevent moving cursor to beginning of text field in some browsers
-					event.preventDefault();
-					break;
-				case keyCode.DOWN:
-					self._move( "next", event );
-					// prevent moving cursor to end of text field in some browsers
-					event.preventDefault();
-					break;
-				case keyCode.ENTER:
-				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
-				case keyCode.TAB:
-					if ( !self.menu.active ) {
-						return;
-					}
-					self.menu.select( event );
-					break;
-				case keyCode.ESCAPE:
-					self.element.val( self.term );
-					self.close( event );
-					break;
-				default:
-					// keypress is triggered before the input value is changed
-					clearTimeout( self.searching );
-					self.searching = setTimeout(function() {
-						// 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
-				self.closing = setTimeout(function() {
-					self.close( event );
-					self._change( event );
-				}, 150 );
-			});
-		this._initSource();
-		this.response = function() {
-			return self._response.apply( self, arguments );
-		};
-		this.menu = $( "<ul></ul>" )
-			.addClass( "ui-autocomplete" )
-			.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", 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" ),
-						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 ) {
-					// 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 );
-					}
-				}
-			})
-			.zIndex( this.element.zIndex() + 1 )
-			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
-			.css({ top: 0, left: 0 })
-			.hide()
-			.data( "menu" );
-		if ( $.fn.bgiframe ) {
-			 this.menu.element.bgiframe();
-		}
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-autocomplete-input" )
-			.removeAttr( "autocomplete" )
-			.removeAttr( "role" )
-			.removeAttr( "aria-autocomplete" )
-			.removeAttr( "aria-haspopup" );
-		this.menu.element.remove();
-		$.Widget.prototype.destroy.call( this );
-	},
-
-	_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 self = this,
-			array,
-			url;
-		if ( $.isArray(this.options.source) ) {
-			array = this.options.source;
-			this.source = function( request, response ) {
-				response( $.ui.autocomplete.filter(array, request.term) );
-			};
-		} else if ( typeof this.options.source === "string" ) {
-			url = this.options.source;
-			this.source = function( 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;
-		}
-	},
-
-	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", event ) === false ) {
-			return;
-		}
-
-		return this._search( value );
-	},
-
-	_search: function( value ) {
-		this.pending++;
-		this.element.addClass( "ui-autocomplete-loading" );
-
-		this.source( { term: value }, this.response );
-	},
-
-	_response: function( content ) {
-		if ( !this.options.disabled && content && content.length ) {
-			content = this._normalize( content );
-			this._suggest( content );
-			this._trigger( "open" );
-		} else {
-			this.close();
-		}
-		this.pending--;
-		if ( !this.pending ) {
-			this.element.removeClass( "ui-autocomplete-loading" );
-		}
-	},
-
-	close: function( event ) {
-		clearTimeout( this.closing );
-		if ( this.menu.element.is(":visible") ) {
-			this.menu.element.hide();
-			this.menu.deactivate();
-			this._trigger( "close", event );
-		}
-	},
-	
-	_change: function( event ) {
-		if ( this.previous !== this.element.val() ) {
-			this._trigger( "change", event, { item: this.selectedItem } );
-		}
-	},
-
-	_normalize: function( items ) {
-		// assume all items have the right format when the first item is complete
-		if ( items.length && items[0].label && items[0].value ) {
-			return items;
-		}
-		return $.map( items, function(item) {
-			if ( typeof item === "string" ) {
-				return {
-					label: item,
-					value: item
-				};
-			}
-			return $.extend({
-				label: item.label || item.value,
-				value: item.value || item.label
-			}, item );
-		});
-	},
-
-	_suggest: function( items ) {
-		var ul = this.menu.element
-			.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();
-
-		// 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 ) {
-			self._renderItem( ul, item );
-		});
-	},
-
-	_renderItem: function( ul, item) {
-		return $( "<li></li>" )
-			.data( "item.autocomplete", item )
-			.append( $( "<a></a>" ).text( item.label ) )
-			.appendTo( ul );
-	},
-
-	_move: function( direction, event ) {
-		if ( !this.menu.element.is(":visible") ) {
-			this.search( null, event );
-			return;
-		}
-		if ( this.menu.first() && /^previous/.test(direction) ||
-				this.menu.last() && /^next/.test(direction) ) {
-			this.element.val( this.term );
-			this.menu.deactivate();
-			return;
-		}
-		this.menu[ direction ]( event );
-	},
-
-	widget: function() {
-		return this.menu.element;
-	}
-});
-
-$.extend( $.ui.autocomplete, {
-	escapeRegex: function( value ) {
-		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 );
-		});
-	}
-});
-
-}( jQuery ));
-
-/*
- * jQuery UI Menu (not officially released)
- * 
- * This widget isn't yet finished and the API is subject to change. We plan to finish
- * 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 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
- *
- * Depends:
- *	jquery.ui.core.js
- *  jquery.ui.widget.js
- */
-(function($) {
-
-$.widget("ui.menu", {
-	_create: function() {
-		var self = this;
-		this.element
-			.addClass("ui-menu ui-widget ui-widget-content ui-corner-all")
-			.attr({
-				role: "listbox",
-				"aria-activedescendant": "ui-active-menuitem"
-			})
-			.click(function( event ) {
-				if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
-					return;
-				}
-				// temporary
-				event.preventDefault();
-				self.select( event );
-			});
-		this.refresh();
-	},
-	
-	refresh: function() {
-		var self = this;
-
-		// don't refresh list items that are already adapted
-		var items = this.element.children("li:not(.ui-menu-item):has(a)")
-			.addClass("ui-menu-item")
-			.attr("role", "menuitem");
-		
-		items.children("a")
-			.addClass("ui-corner-all")
-			.attr("tabindex", -1)
-			// mouseenter doesn't work with event delegation
-			.mouseenter(function( event ) {
-				self.activate( event, $(this).parent() );
-			})
-			.mouseleave(function() {
-				self.deactivate();
-			});
-	},
-
-	activate: function( event, item ) {
-		this.deactivate();
-		if (this.hasScroll()) {
-			var offset = item.offset().top - this.element.offset().top,
-				scroll = this.element.attr("scrollTop"),
-				elementHeight = this.element.height();
-			if (offset < 0) {
-				this.element.attr("scrollTop", scroll + offset);
-			} else if (offset >= elementHeight) {
-				this.element.attr("scrollTop", scroll + offset - elementHeight + item.height());
-			}
-		}
-		this.active = item.eq(0)
-			.children("a")
-				.addClass("ui-state-hover")
-				.attr("id", "ui-active-menuitem")
-			.end();
-		this._trigger("focus", event, { item: item });
-	},
-
-	deactivate: function() {
-		if (!this.active) { return; }
-
-		this.active.children("a")
-			.removeClass("ui-state-hover")
-			.removeAttr("id");
-		this._trigger("blur");
-		this.active = null;
-	},
-
-	next: function(event) {
-		this.move("next", ".ui-menu-item:first", event);
-	},
-
-	previous: function(event) {
-		this.move("prev", ".ui-menu-item:last", event);
-	},
-
-	first: function() {
-		return this.active && !this.active.prevAll(".ui-menu-item").length;
-	},
-
-	last: function() {
-		return this.active && !this.active.nextAll(".ui-menu-item").length;
-	},
-
-	move: function(direction, edge, event) {
-		if (!this.active) {
-			this.activate(event, this.element.children(edge));
-			return;
-		}
-		var next = this.active[direction + "All"](".ui-menu-item").eq(0);
-		if (next.length) {
-			this.activate(event, next);
-		} else {
-			this.activate(event, this.element.children(edge));
-		}
-	},
-
-	// TODO merge with previousPage
-	nextPage: function(event) {
-		if (this.hasScroll()) {
-			// TODO merge with no-scroll-else
-			if (!this.active || this.last()) {
-				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(".ui-menu-item").filter(function() {
-					var close = $(this).offset().top - base - height + $(this).height();
-					// TODO improve approximation
-					return close < 10 && close > -10;
-				});
-
-			// TODO try to catch this earlier when scrollTop indicates the last page anyway
-			if (!result.length) {
-				result = this.element.children(".ui-menu-item:last");
-			}
-			this.activate(event, result);
-		} else {
-			this.activate(event, this.element.children(".ui-menu-item")
-				.filter(!this.active || this.last() ? ":first" : ":last"));
-		}
-	},
-
-	// TODO merge with nextPage
-	previousPage: function(event) {
-		if (this.hasScroll()) {
-			// TODO merge with no-scroll-else
-			if (!this.active || this.first()) {
-				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(".ui-menu-item").filter(function() {
-					var close = $(this).offset().top - base + height - $(this).height();
-					// TODO improve approximation
-					return close < 10 && close > -10;
-				});
-
-			// TODO try to catch this earlier when scrollTop indicates the last page anyway
-			if (!result.length) {
-				result = this.element.children(".ui-menu-item:first");
-			}
-			this.activate(event, result);
-		} else {
-			this.activate(event, this.element.children(".ui-menu-item")
-				.filter(!this.active || this.first() ? ":last" : ":first"));
-		}
-	},
-
-	hasScroll: function() {
-		return this.element.height() < this.element.attr("scrollHeight");
-	},
-
-	select: function( event ) {
-		this._trigger("selected", event, { item: this.active });
-	}
-});
-
-}(jQuery));
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.button.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.button.js
deleted file mode 100644
index 9a70a01..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.button.js
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var lastActive,
-	baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
-	stateClasses = "ui-state-hover ui-state-active ",
-	typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
-	formResetHandler = function( event ) {
-		$( ":ui-button", event.target.form ).each(function() {
-			var inst = $( this ).data( "button" );
-			setTimeout(function() {
-				inst.refresh();
-			}, 1 );
-		});
-	},
-	radioGroup = function( radio ) {
-		var name = radio.name,
-			form = radio.form,
-			radios = $( [] );
-		if ( name ) {
-			if ( form ) {
-				radios = $( form ).find( "[name='" + name + "']" );
-			} else {
-				radios = $( "[name='" + name + "']", radio.ownerDocument )
-					.filter(function() {
-						return !this.form;
-					});
-			}
-		}
-		return radios;
-	};
-
-$.widget( "ui.button", {
-	options: {
-		disabled: null,
-		text: true,
-		label: null,
-		icons: {
-			primary: null,
-			secondary: null
-		}
-	},
-	_create: function() {
-		this.element.closest( "form" )
-			.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" );
-
-		var self = this,
-			options = this.options,
-			toggleButton = this.type === "checkbox" || this.type === "radio",
-			hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ),
-			focusClass = "ui-state-focus";
-
-		if ( options.label === null ) {
-			options.label = this.buttonElement.html();
-		}
-
-		if ( this.element.is( ":disabled" ) ) {
-			options.disabled = true;
-		}
-
-		this.buttonElement
-			.addClass( baseClasses )
-			.attr( "role", "button" )
-			.bind( "mouseenter.button", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).addClass( "ui-state-hover" );
-				if ( this === lastActive ) {
-					$( this ).addClass( "ui-state-active" );
-				}
-			})
-			.bind( "mouseleave.button", function() {
-				if ( options.disabled ) {
-					return;
-				}
-				$( this ).removeClass( hoverClass );
-			})
-			.bind( "focus.button", function() {
-				// no need to check disabled, focus won't be triggered anyway
-				$( this ).addClass( focusClass );
-			})
-			.bind( "blur.button", function() {
-				$( this ).removeClass( focusClass );
-			});
-
-		if ( toggleButton ) {
-			this.element.bind( "change.button", function() {
-				self.refresh();
-			});
-		}
-
-		if ( this.type === "checkbox" ) {
-			this.buttonElement.bind( "click.button", function() {
-				if ( options.disabled ) {
-					return false;
-				}
-				$( this ).toggleClass( "ui-state-active" );
-				self.buttonElement.attr( "aria-pressed", self.element[0].checked );
-			});
-		} else if ( this.type === "radio" ) {
-			this.buttonElement.bind( "click.button", function() {
-				if ( options.disabled ) {
-					return false;
-				}
-				$( this ).addClass( "ui-state-active" );
-				self.buttonElement.attr( "aria-pressed", true );
-
-				var radio = self.element[ 0 ];
-				radioGroup( radio )
-					.not( radio )
-					.map(function() {
-						return $( this ).button( "widget" )[ 0 ];
-					})
-					.removeClass( "ui-state-active" )
-					.attr( "aria-pressed", false );
-			});
-		} else {
-			this.buttonElement
-				.bind( "mousedown.button", function() {
-					if ( options.disabled ) {
-						return false;
-					}
-					$( this ).addClass( "ui-state-active" );
-					lastActive = this;
-					$( document ).one( "mouseup", function() {
-						lastActive = null;
-					});
-				})
-				.bind( "mouseup.button", function() {
-					if ( options.disabled ) {
-						return false;
-					}
-					$( this ).removeClass( "ui-state-active" );
-				})
-				.bind( "keydown.button", function(event) {
-					if ( options.disabled ) {
-						return false;
-					}
-					if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) {
-						$( this ).addClass( "ui-state-active" );
-					}
-				})
-				.bind( "keyup.button", function() {
-					$( this ).removeClass( "ui-state-active" );
-				});
-
-			if ( this.buttonElement.is("a") ) {
-				this.buttonElement.keyup(function(event) {
-					if ( event.keyCode === $.ui.keyCode.SPACE ) {
-						// TODO pass through original event correctly (just as 2nd argument doesn't work)
-						$( this ).click();
-					}
-				});
-			}
-		}
-
-		// TODO: pull out $.Widget's handling for the disabled option into
-		// $.Widget.prototype._setOptionDisabled so it's easy to proxy and can
-		// be overridden by individual plugins
-		this._setOption( "disabled", options.disabled );
-	},
-
-	_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 {
-					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
-			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" );
-			if ( checked ) {
-				this.buttonElement.addClass( "ui-state-active" );
-			}
-			this.buttonElement.attr( "aria-pressed", checked );
-		} else {
-			this.buttonElement = this.element;
-		}
-	},
-
-	widget: function() {
-		return this.buttonElement;
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-helper-hidden-accessible" );
-		this.buttonElement
-			.removeClass( baseClasses + " " + stateClasses + " " + typeClasses )
-			.removeAttr( "role" )
-			.removeAttr( "aria-pressed" )
-			.html( this.buttonElement.find(".ui-button-text").html() );
-
-		if ( !this.hasTitle ) {
-			this.buttonElement.removeAttr( "title" );
-		}
-
-		$.Widget.prototype.destroy.call( this );
-	},
-
-	_setOption: function( key, value ) {
-		$.Widget.prototype._setOption.apply( this, arguments );
-		if ( key === "disabled" ) {
-			if ( value ) {
-				this.element.attr( "disabled", true );
-			} else {
-				this.element.removeAttr( "disabled" );
-			}
-		}
-		this._resetButton();
-	},
-
-	refresh: function() {
-		var isDisabled = this.element.is( ":disabled" );
-		if ( isDisabled !== this.options.disabled ) {
-			this._setOption( "disabled", isDisabled );
-		}
-		if ( this.type === "radio" ) {
-			radioGroup( this.element[0] ).each(function() {
-				if ( $( this ).is( ":checked" ) ) {
-					$( this ).button( "widget" )
-						.addClass( "ui-state-active" )
-						.attr( "aria-pressed", true );
-				} else {
-					$( this ).button( "widget" )
-						.removeClass( "ui-state-active" )
-						.attr( "aria-pressed", false );
-				}
-			});
-		} else if ( this.type === "checkbox" ) {
-			if ( this.element.is( ":checked" ) ) {
-				this.buttonElement
-					.addClass( "ui-state-active" )
-					.attr( "aria-pressed", true );
-			} else {
-				this.buttonElement
-					.removeClass( "ui-state-active" )
-					.attr( "aria-pressed", false );
-			}
-		}
-	},
-
-	_resetButton: function() {
-		if ( this.type === "input" ) {
-			if ( this.options.label ) {
-				this.element.val( this.options.label );
-			}
-			return;
-		}
-		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,
-			buttonClasses = [];  
-
-		if ( icons.primary || icons.secondary ) {
-			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 ) {
-				buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" );
-
-				if ( !this.hasTitle ) {
-					buttonElement.attr( "title", buttonText );
-				}
-			}
-		} else {
-			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" );
-	},
-	
-	_init: function() {
-		this.refresh();
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "disabled" ) {
-			this.buttons.button( "option", key, value );
-		}
-
-		$.Widget.prototype._setOption.apply( this, arguments );
-	},
-	
-	refresh: function() {
-		this.buttons = this.element.find( this.options.items )
-			.filter( ":ui-button" )
-				.button( "refresh" )
-			.end()
-			.not( ":ui-button" )
-				.button()
-			.end()
-			.map(function() {
-				return $( this ).button( "widget" )[ 0 ];
-			})
-				.removeClass( "ui-corner-all ui-corner-left ui-corner-right" )
-				.filter( ":first" )
-					.addClass( "ui-corner-left" )
-				.end()
-				.filter( ":last" )
-					.addClass( "ui-corner-right" )
-				.end()
-			.end();
-	},
-
-	destroy: function() {
-		this.element.removeClass( "ui-buttonset" );
-		this.buttons
-			.map(function() {
-				return $( this ).button( "widget" )[ 0 ];
-			})
-				.removeClass( "ui-corner-left ui-corner-right" )
-			.end()
-			.button( "destroy" );
-
-		$.Widget.prototype.destroy.call( this );
-	}
-});
-
-}( jQuery ) );
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.core.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.core.js
deleted file mode 100644
index 4589a47..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.core.js
+++ /dev/null
@@ -1,308 +0,0 @@
-/*!
- * jQuery UI 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function( $, undefined ) {
-
-// prevent duplicate loading
-// this is only a problem because we proxy existing functions
-// and we don't want to double proxy them
-$.ui = $.ui || {};
-if ( $.ui.version ) {
-	return;
-}
-
-$.extend( $.ui, {
-	version: "1.8.11",
-
-	keyCode: {
-		ALT: 18,
-		BACKSPACE: 8,
-		CAPS_LOCK: 20,
-		COMMA: 188,
-		COMMAND: 91,
-		COMMAND_LEFT: 91, // COMMAND
-		COMMAND_RIGHT: 93,
-		CONTROL: 17,
-		DELETE: 46,
-		DOWN: 40,
-		END: 35,
-		ENTER: 13,
-		ESCAPE: 27,
-		HOME: 36,
-		INSERT: 45,
-		LEFT: 37,
-		MENU: 93, // COMMAND_RIGHT
-		NUMPAD_ADD: 107,
-		NUMPAD_DECIMAL: 110,
-		NUMPAD_DIVIDE: 111,
-		NUMPAD_ENTER: 108,
-		NUMPAD_MULTIPLY: 106,
-		NUMPAD_SUBTRACT: 109,
-		PAGE_DOWN: 34,
-		PAGE_UP: 33,
-		PERIOD: 190,
-		RIGHT: 39,
-		SHIFT: 16,
-		SPACE: 32,
-		TAB: 9,
-		UP: 38,
-		WINDOWS: 91 // COMMAND
-	}
-});
-
-// plugins
-$.fn.extend({
-	_focus: $.fn.focus,
-	focus: function( delay, fn ) {
-		return typeof delay === "number" ?
-			this.each(function() {
-				var elem = this;
-				setTimeout(function() {
-					$( elem ).focus();
-					if ( fn ) {
-						fn.call( elem );
-					}
-				}, delay );
-			}) :
-			this._focus.apply( this, arguments );
-	},
-
-	scrollParent: function() {
-		var scrollParent;
-		if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) {
-			scrollParent = this.parents().filter(function() {
-				return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		} else {
-			scrollParent = this.parents().filter(function() {
-				return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1));
-			}).eq(0);
-		}
-
-		return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent;
-	},
-
-	zIndex: function( zIndex ) {
-		if ( zIndex !== undefined ) {
-			return this.css( "zIndex", zIndex );
-		}
-
-		if ( this.length ) {
-			var elem = $( this[ 0 ] ), position, value;
-			while ( elem.length && elem[ 0 ] !== document ) {
-				// Ignore z-index if position is set to a value where z-index is ignored by the browser
-				// This makes behavior of this function consistent across browsers
-				// WebKit always returns auto if the element is positioned
-				position = elem.css( "position" );
-				if ( position === "absolute" || position === "relative" || position === "fixed" ) {
-					// IE returns 0 when zIndex is not specified
-					// other browsers return a string
-					// we ignore the case of nested elements with an explicit value of 0
-					// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
-					value = parseInt( elem.css( "zIndex" ), 10 );
-					if ( !isNaN( value ) && value !== 0 ) {
-						return value;
-					}
-				}
-				elem = elem.parent();
-			}
-		}
-
-		return 0;
-	},
-
-	disableSelection: function() {
-		return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) +
-			".ui-disableSelection", function( event ) {
-				event.preventDefault();
-			});
-	},
-
-	enableSelection: function() {
-		return this.unbind( ".ui-disableSelection" );
-	}
-});
-
-$.each( [ "Width", "Height" ], function( i, name ) {
-	var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ],
-		type = name.toLowerCase(),
-		orig = {
-			innerWidth: $.fn.innerWidth,
-			innerHeight: $.fn.innerHeight,
-			outerWidth: $.fn.outerWidth,
-			outerHeight: $.fn.outerHeight
-		};
-
-	function reduce( elem, size, border, margin ) {
-		$.each( side, function() {
-			size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0;
-			if ( border ) {
-				size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0;
-			}
-			if ( margin ) {
-				size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0;
-			}
-		});
-		return size;
-	}
-
-	$.fn[ "inner" + name ] = function( size ) {
-		if ( size === undefined ) {
-			return orig[ "inner" + name ].call( this );
-		}
-
-		return this.each(function() {
-			$( this ).css( type, reduce( this, size ) + "px" );
-		});
-	};
-
-	$.fn[ "outer" + name] = function( size, margin ) {
-		if ( typeof size !== "number" ) {
-			return orig[ "outer" + name ].call( this, size );
-		}
-
-		return this.each(function() {
-			$( this).css( type, reduce( this, size, true, margin ) + "px" );
-		});
-	};
-});
-
-// selectors
-function visible( element ) {
-	return !$( element ).parents().andSelf().filter(function() {
-		return $.curCSS( this, "visibility" ) === "hidden" ||
-			$.expr.filters.hidden( this );
-	}).length;
-}
-
-$.extend( $.expr[ ":" ], {
-	data: function( elem, i, match ) {
-		return !!$.data( elem, match[ 3 ] );
-	},
-
-	focusable: function( element ) {
-		var nodeName = element.nodeName.toLowerCase(),
-			tabIndex = $.attr( element, "tabindex" );
-		if ( "area" === nodeName ) {
-			var map = element.parentNode,
-				mapName = map.name,
-				img;
-			if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) {
-				return false;
-			}
-			img = $( "img[usemap=#" + mapName + "]" )[0];
-			return !!img && visible( img );
-		}
-		return ( /input|select|textarea|button|object/.test( nodeName )
-			? !element.disabled
-			: "a" == nodeName
-				? element.href || !isNaN( tabIndex )
-				: !isNaN( tabIndex ))
-			// the element and all of its ancestors must be visible
-			&& visible( element );
-	},
-
-	tabbable: function( element ) {
-		var tabIndex = $.attr( element, "tabindex" );
-		return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" );
-	}
-});
-
-// support
-$(function() {
-	var body = document.body,
-		div = body.appendChild( div = document.createElement( "div" ) );
-
-	$.extend( div.style, {
-		minHeight: "100px",
-		height: "auto",
-		padding: 0,
-		borderWidth: 0
-	});
-
-	$.support.minHeight = div.offsetHeight === 100;
-	$.support.selectstart = "onselectstart" in div;
-
-	// set display to none to avoid a layout bug in IE
-	// http://dev.jquery.com/ticket/4014
-	body.removeChild( div ).style.display = "none";
-});
-
-
-
-
-
-// deprecated
-$.extend( $.ui, {
-	// $.ui.plugin is deprecated.  Use the proxy pattern instead.
-	plugin: {
-		add: function( module, option, set ) {
-			var proto = $.ui[ module ].prototype;
-			for ( var i in set ) {
-				proto.plugins[ i ] = proto.plugins[ i ] || [];
-				proto.plugins[ i ].push( [ option, set[ i ] ] );
-			}
-		},
-		call: function( instance, name, args ) {
-			var set = instance.plugins[ name ];
-			if ( !set || !instance.element[ 0 ].parentNode ) {
-				return;
-			}
-	
-			for ( var i = 0; i < set.length; i++ ) {
-				if ( instance.options[ set[ i ][ 0 ] ] ) {
-					set[ i ][ 1 ].apply( instance.element, args );
-				}
-			}
-		}
-	},
-	
-	// will be deprecated when we switch to jQuery 1.4 - use jQuery.contains()
-	contains: function( a, b ) {
-		return document.compareDocumentPosition ?
-			a.compareDocumentPosition( b ) & 16 :
-			a !== b && a.contains( b );
-	},
-	
-	// only used by resizable
-	hasScroll: function( el, a ) {
-	
-		//If overflow is hidden, the element might have extra content, but the user wants to hide it
-		if ( $( el ).css( "overflow" ) === "hidden") {
-			return false;
-		}
-	
-		var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
-			has = false;
-	
-		if ( el[ scroll ] > 0 ) {
-			return true;
-		}
-	
-		// TODO: determine which cases actually cause this to happen
-		// if the element doesn't have the scroll set, see if it's possible to
-		// set the scroll
-		el[ scroll ] = 1;
-		has = ( el[ scroll ] > 0 );
-		el[ scroll ] = 0;
-		return has;
-	},
-	
-	// these are odd functions, fix the API or move into individual plugins
-	isOverAxis: function( x, reference, size ) {
-		//Determines when x coordinate is over "b" element axis
-		return ( x > reference ) && ( x < ( reference + size ) );
-	},
-	isOver: function( y, x, top, left, height, width ) {
-		//Determines when x, y coordinates is over "b" element
-		return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width );
-	}
-});
-
-})( jQuery );
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.datepicker.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.datepicker.js
deleted file mode 100644
index 06d481e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.datepicker.js
+++ /dev/null
@@ -1,1773 +0,0 @@
-/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function( $, undefined ) {
-
-$.extend($.ui, { datepicker: { version: "1.8.11" } });
-
-var PROP_NAME = 'datepicker';
-var dpuuid = new Date().getTime();
-
-/* Date picker manager.
-   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
-   Settings for (groups of) date pickers are maintained in an instance object,
-   allowing multiple different settings on the same page. */
-
-function Datepicker() {
-	this.debug = false; // Change this to true to start debugging
-	this._curInst = null; // The current instance in use
-	this._keyEvent = false; // If the last event was a key event
-	this._disabledInputs = []; // List of date picker inputs that have been disabled
-	this._datepickerShowing = false; // True if the popup picker is showing , false if not
-	this._inDialog = false; // True if showing within a "dialog", false if not
-	this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division
-	this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class
-	this._appendClass = 'ui-datepicker-append'; // The name of the append marker class
-	this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class
-	this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class
-	this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class
-	this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class
-	this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class
-	this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class
-	this.regional = []; // Available regional settings, indexed by language code
-	this.regional[''] = { // Default regional settings
-		closeText: 'Done', // Display text for close link
-		prevText: 'Prev', // Display text for previous month link
-		nextText: 'Next', // Display text for next month link
-		currentText: 'Today', // Display text for current month link
-		monthNames: ['January','February','March','April','May','June',
-			'July','August','September','October','November','December'], // Names of months for drop-down and formatting
-		monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
-		dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
-		dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
-		dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday
-		weekHeader: 'Wk', // Column header for week of the year
-		dateFormat: 'mm/dd/yy', // See format options on parseDate
-		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
-		isRTL: false, // True if right-to-left language, false if left-to-right
-		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
-		yearSuffix: '' // Additional text to append to the year in the month headers
-	};
-	this._defaults = { // Global defaults for all the date picker instances
-		showOn: 'focus', // 'focus' for popup on focus,
-			// 'button' for trigger button, or 'both' for either
-		showAnim: 'fadeIn', // Name of jQuery animation for popup
-		showOptions: {}, // Options for enhanced animations
-		defaultDate: null, // Used when field is blank: actual date,
-			// +/-number for offset from today, null for today
-		appendText: '', // Display text following the input box, e.g. showing the format
-		buttonText: '...', // Text for trigger button
-		buttonImage: '', // URL for trigger button image
-		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
-		hideIfNoPrevNext: false, // True to hide next/previous month links
-			// if not applicable, false to just disable them
-		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
-		gotoCurrent: false, // True if today link goes back to current selection instead
-		changeMonth: false, // True if month can be selected directly, false if only prev/next
-		changeYear: false, // True if year can be selected directly, false if only prev/next
-		yearRange: 'c-10:c+10', // Range of years to display in drop-down,
-			// either relative to today's year (-nn:+nn), relative to currently displayed year
-			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
-		showOtherMonths: false, // True to show dates in other months, false to leave blank
-		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
-		showWeek: false, // True to show week of the year, false to not show it
-		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
-			// takes a Date and returns the number of the week for it
-		shortYearCutoff: '+10', // Short year values < this are in the current century,
-			// > this are in the previous century,
-			// string value starting with '+' for current year + value
-		minDate: null, // The earliest selectable date, or null for no limit
-		maxDate: null, // The latest selectable date, or null for no limit
-		duration: 'fast', // Duration of display/closure
-		beforeShowDay: null, // Function that takes a date and returns an array with
-			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '',
-			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
-		beforeShow: null, // Function that takes an input field and
-			// returns a set of custom settings for the date picker
-		onSelect: null, // Define a callback function when a date is selected
-		onChangeMonthYear: null, // Define a callback function when the month or year is changed
-		onClose: null, // Define a callback function when the datepicker is closed
-		numberOfMonths: 1, // Number of months to show at a time
-		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
-		stepMonths: 1, // Number of months to step back/forward
-		stepBigMonths: 12, // Number of months to step back/forward for the big links
-		altField: '', // Selector for an alternate field to store selected dates into
-		altFormat: '', // The date format to use for the alternate field
-		constrainInput: true, // The input is constrained by the current date format
-		showButtonPanel: false, // True to show button panel, false to not show it
-		autoSize: false // True to size the input for the date format, false to leave as is
-	};
-	$.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"></div>');
-}
-
-$.extend(Datepicker.prototype, {
-	/* Class name added to elements to indicate already configured with a date picker. */
-	markerClassName: 'hasDatepicker',
-
-	/* Debug logging (if enabled). */
-	log: function () {
-		if (this.debug)
-			console.log.apply('', arguments);
-	},
-	
-	// TODO rename to "widget" when switching to widget factory
-	_widgetDatepicker: function() {
-		return this.dpDiv;
-	},
-
-	/* Override the default settings for all instances of the date picker.
-	   @param  settings  object - the new settings to use as defaults (anonymous object)
-	   @return the manager object */
-	setDefaults: function(settings) {
-		extendRemove(this._defaults, settings || {});
-		return this;
-	},
-
-	/* Attach the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span
-	   @param  settings  object - the new settings to use for this date picker instance (anonymous) */
-	_attachDatepicker: function(target, settings) {
-		// check for settings on the control itself - in namespace 'date:'
-		var inlineSettings = null;
-		for (var attrName in this._defaults) {
-			var attrValue = target.getAttribute('date:' + attrName);
-			if (attrValue) {
-				inlineSettings = inlineSettings || {};
-				try {
-					inlineSettings[attrName] = eval(attrValue);
-				} catch (err) {
-					inlineSettings[attrName] = attrValue;
-				}
-			}
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		var inline = (nodeName == 'div' || nodeName == 'span');
-		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') {
-			this._connectDatepicker(target, inst);
-		} else if (inline) {
-			this._inlineDatepicker(target, inst);
-		}
-	},
-
-	/* Create a new instance object. */
-	_newInst: function(target, inline) {
-		var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars
-		return {id: id, input: target, // associated target
-			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
-			drawMonth: 0, drawYear: 0, // month being drawn
-			inline: inline, // is datepicker inline or not
-			dpDiv: (!inline ? this.dpDiv : // presentation div
-			$('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))};
-	},
-
-	/* Attach the date picker to an input field. */
-	_connectDatepicker: function(target, inst) {
-		var input = $(target);
-		inst.append = $([]);
-		inst.trigger = $([]);
-		if (input.hasClass(this.markerClassName))
-			return;
-		this._attachments(input, inst);
-		input.addClass(this.markerClassName).keydown(this._doKeyDown).
-			keypress(this._doKeyPress).keyup(this._doKeyUp).
-			bind("setData.datepicker", function(event, key, value) {
-				inst.settings[key] = value;
-			}).bind("getData.datepicker", function(event, key) {
-				return this._get(inst, key);
-			});
-		this._autoSize(inst);
-		$.data(target, PROP_NAME, inst);
-	},
-
-	/* Make attachments based on settings. */
-	_attachments: function(input, inst) {
-		var appendText = this._get(inst, 'appendText');
-		var isRTL = this._get(inst, 'isRTL');
-		if (inst.append)
-			inst.append.remove();
-		if (appendText) {
-			inst.append = $('<span class="' + this._appendClass + '">' + appendText + '</span>');
-			input[isRTL ? 'before' : 'after'](inst.append);
-		}
-		input.unbind('focus', this._showDatepicker);
-		if (inst.trigger)
-			inst.trigger.remove();
-		var showOn = this._get(inst, 'showOn');
-		if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field
-			input.focus(this._showDatepicker);
-		if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked
-			var buttonText = this._get(inst, 'buttonText');
-			var buttonImage = this._get(inst, 'buttonImage');
-			inst.trigger = $(this._get(inst, 'buttonImageOnly') ?
-				$('<img/>').addClass(this._triggerClass).
-					attr({ src: buttonImage, alt: buttonText, title: buttonText }) :
-				$('<button type="button"></button>').addClass(this._triggerClass).
-					html(buttonImage == '' ? buttonText : $('<img/>').attr(
-					{ src:buttonImage, alt:buttonText, title:buttonText })));
-			input[isRTL ? 'before' : 'after'](inst.trigger);
-			inst.trigger.click(function() {
-				if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0])
-					$.datepicker._hideDatepicker();
-				else
-					$.datepicker._showDatepicker(input[0]);
-				return false;
-			});
-		}
-	},
-
-	/* Apply the maximum length for the date format. */
-	_autoSize: function(inst) {
-		if (this._get(inst, 'autoSize') && !inst.inline) {
-			var date = new Date(2009, 12 - 1, 20); // Ensure double digits
-			var dateFormat = this._get(inst, 'dateFormat');
-			if (dateFormat.match(/[DM]/)) {
-				var findMax = function(names) {
-					var max = 0;
-					var maxI = 0;
-					for (var i = 0; i < names.length; i++) {
-						if (names[i].length > max) {
-							max = names[i].length;
-							maxI = i;
-						}
-					}
-					return maxI;
-				};
-				date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ?
-					'monthNames' : 'monthNamesShort'))));
-				date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ?
-					'dayNames' : 'dayNamesShort'))) + 20 - date.getDay());
-			}
-			inst.input.attr('size', this._formatDate(inst, date).length);
-		}
-	},
-
-	/* Attach an inline date picker to a div. */
-	_inlineDatepicker: function(target, inst) {
-		var divSpan = $(target);
-		if (divSpan.hasClass(this.markerClassName))
-			return;
-		divSpan.addClass(this.markerClassName).append(inst.dpDiv).
-			bind("setData.datepicker", function(event, key, value){
-				inst.settings[key] = value;
-			}).bind("getData.datepicker", function(event, key){
-				return this._get(inst, key);
-			});
-		$.data(target, PROP_NAME, inst);
-		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.
-	   @param  input     element - ignored
-	   @param  date      string or Date - the initial date to display
-	   @param  onSelect  function - the function to call when a date is selected
-	   @param  settings  object - update the dialog date picker instance's settings (anonymous object)
-	   @param  pos       int[2] - coordinates for the dialog's position within the screen or
-	                     event - with x/y coordinates or
-	                     leave empty for default (screen centre)
-	   @return the manager object */
-	_dialogDatepicker: function(input, date, onSelect, settings, pos) {
-		var inst = this._dialogInst; // internal instance
-		if (!inst) {
-			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);
-			$('body').append(this._dialogInput);
-			inst = this._dialogInst = this._newInst(this._dialogInput, false);
-			inst.settings = {};
-			$.data(this._dialogInput[0], PROP_NAME, inst);
-		}
-		extendRemove(inst.settings, settings || {});
-		date = (date && date.constructor == Date ? this._formatDate(inst, date) : date);
-		this._dialogInput.val(date);
-
-		this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
-		if (!this._pos) {
-			var browserWidth = document.documentElement.clientWidth;
-			var browserHeight = document.documentElement.clientHeight;
-			var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
-			var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
-			this._pos = // should use actual width/height below
-				[(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY];
-		}
-
-		// move input on screen for focus, but hidden behind dialog
-		this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px');
-		inst.settings.onSelect = onSelect;
-		this._inDialog = true;
-		this.dpDiv.addClass(this._dialogClass);
-		this._showDatepicker(this._dialogInput[0]);
-		if ($.blockUI)
-			$.blockUI(this.dpDiv);
-		$.data(this._dialogInput[0], PROP_NAME, inst);
-		return this;
-	},
-
-	/* Detach a datepicker from its control.
-	   @param  target    element - the target input field or division or span */
-	_destroyDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		$.removeData(target, PROP_NAME);
-		if (nodeName == 'input') {
-			inst.append.remove();
-			inst.trigger.remove();
-			$target.removeClass(this.markerClassName).
-				unbind('focus', this._showDatepicker).
-				unbind('keydown', this._doKeyDown).
-				unbind('keypress', this._doKeyPress).
-				unbind('keyup', this._doKeyUp);
-		} else if (nodeName == 'div' || nodeName == 'span')
-			$target.removeClass(this.markerClassName).empty();
-	},
-
-	/* Enable the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span */
-	_enableDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		if (nodeName == 'input') {
-			target.disabled = false;
-			inst.trigger.filter('button').
-				each(function() { this.disabled = false; }).end().
-				filter('img').css({opacity: '1.0', cursor: ''});
-		}
-		else if (nodeName == 'div' || nodeName == 'span') {
-			var inline = $target.children('.' + this._inlineClass);
-			inline.children().removeClass('ui-state-disabled');
-		}
-		this._disabledInputs = $.map(this._disabledInputs,
-			function(value) { return (value == target ? null : value); }); // delete entry
-	},
-
-	/* Disable the date picker to a jQuery selection.
-	   @param  target    element - the target input field or division or span */
-	_disableDatepicker: function(target) {
-		var $target = $(target);
-		var inst = $.data(target, PROP_NAME);
-		if (!$target.hasClass(this.markerClassName)) {
-			return;
-		}
-		var nodeName = target.nodeName.toLowerCase();
-		if (nodeName == 'input') {
-			target.disabled = true;
-			inst.trigger.filter('button').
-				each(function() { this.disabled = true; }).end().
-				filter('img').css({opacity: '0.5', cursor: 'default'});
-		}
-		else if (nodeName == 'div' || nodeName == 'span') {
-			var inline = $target.children('.' + this._inlineClass);
-			inline.children().addClass('ui-state-disabled');
-		}
-		this._disabledInputs = $.map(this._disabledInputs,
-			function(value) { return (value == target ? null : value); }); // delete entry
-		this._disabledInputs[this._disabledInputs.length] = target;
-	},
-
-	/* Is the first field in a jQuery collection disabled as a datepicker?
-	   @param  target    element - the target input field or division or span
-	   @return boolean - true if disabled, false if enabled */
-	_isDisabledDatepicker: function(target) {
-		if (!target) {
-			return false;
-		}
-		for (var i = 0; i < this._disabledInputs.length; i++) {
-			if (this._disabledInputs[i] == target)
-				return true;
-		}
-		return false;
-	},
-
-	/* Retrieve the instance data for the target control.
-	   @param  target  element - the target input field or division or span
-	   @return  object - the associated instance data
-	   @throws  error if a jQuery problem getting data */
-	_getInst: function(target) {
-		try {
-			return $.data(target, PROP_NAME);
-		}
-		catch (err) {
-			throw 'Missing instance data for this datepicker';
-		}
-	},
-
-	/* Update or retrieve the settings for a date picker attached to an input field or division.
-	   @param  target  element - the target input field or division or span
-	   @param  name    object - the new settings to update or
-	                   string - the name of the setting to change or retrieve,
-	                   when retrieving also 'all' for all instance settings or
-	                   'defaults' for all global defaults
-	   @param  value   any - the new value for the setting
-	                   (omit if above is an object or to retrieve a value) */
-	_optionDatepicker: function(target, name, value) {
-		var inst = this._getInst(target);
-		if (arguments.length == 2 && typeof name == 'string') {
-			return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) :
-				(inst ? (name == 'all' ? $.extend({}, inst.settings) :
-				this._get(inst, name)) : null));
-		}
-		var settings = name || {};
-		if (typeof name == 'string') {
-			settings = {};
-			settings[name] = value;
-		}
-		if (inst) {
-			if (this._curInst == inst) {
-				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);
-			this._updateDatepicker(inst);
-		}
-	},
-
-	// change method deprecated
-	_changeDatepicker: function(target, name, value) {
-		this._optionDatepicker(target, name, value);
-	},
-
-	/* Redraw the date picker attached to an input field or division.
-	   @param  target  element - the target input field or division or span */
-	_refreshDatepicker: function(target) {
-		var inst = this._getInst(target);
-		if (inst) {
-			this._updateDatepicker(inst);
-		}
-	},
-
-	/* Set the dates for a jQuery selection.
-	   @param  target   element - the target input field or division or span
-	   @param  date     Date - the new date */
-	_setDateDatepicker: function(target, date) {
-		var inst = this._getInst(target);
-		if (inst) {
-			this._setDate(inst, date);
-			this._updateDatepicker(inst);
-			this._updateAlternate(inst);
-		}
-	},
-
-	/* Get the date(s) for the first entry in a jQuery selection.
-	   @param  target     element - the target input field or division or span
-	   @param  noDefault  boolean - true if no default date is to be used
-	   @return Date - the current date */
-	_getDateDatepicker: function(target, noDefault) {
-		var inst = this._getInst(target);
-		if (inst && !inst.inline)
-			this._setDateFromField(inst, noDefault);
-		return (inst ? this._getDate(inst) : null);
-	},
-
-	/* Handle keystrokes. */
-	_doKeyDown: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		var handled = true;
-		var isRTL = inst.dpDiv.is('.ui-datepicker-rtl');
-		inst._keyEvent = true;
-		if ($.datepicker._datepickerShowing)
-			switch (event.keyCode) {
-				case 9: $.datepicker._hideDatepicker();
-						handled = false;
-						break; // hide on tab out
-				case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + 
-									$.datepicker._currentClass + ')', inst.dpDiv);
-						if (sel[0])
-							$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
-						else
-							$.datepicker._hideDatepicker();
-						return false; // don't submit the form
-						break; // select the value on enter
-				case 27: $.datepicker._hideDatepicker();
-						break; // hide on escape
-				case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-							-$.datepicker._get(inst, 'stepBigMonths') :
-							-$.datepicker._get(inst, 'stepMonths')), 'M');
-						break; // previous month/year on page up/+ ctrl
-				case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-							+$.datepicker._get(inst, 'stepBigMonths') :
-							+$.datepicker._get(inst, 'stepMonths')), 'M');
-						break; // next month/year on page down/+ ctrl
-				case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target);
-						handled = event.ctrlKey || event.metaKey;
-						break; // clear on ctrl or command +end
-				case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target);
-						handled = event.ctrlKey || event.metaKey;
-						break; // current on ctrl or command +home
-				case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D');
-						handled = event.ctrlKey || event.metaKey;
-						// -1 day on ctrl or command +left
-						if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-									-$.datepicker._get(inst, 'stepBigMonths') :
-									-$.datepicker._get(inst, 'stepMonths')), 'M');
-						// next month/year on alt +left on Mac
-						break;
-				case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D');
-						handled = event.ctrlKey || event.metaKey;
-						break; // -1 week on ctrl or command +up
-				case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D');
-						handled = event.ctrlKey || event.metaKey;
-						// +1 day on ctrl or command +right
-						if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ?
-									+$.datepicker._get(inst, 'stepBigMonths') :
-									+$.datepicker._get(inst, 'stepMonths')), 'M');
-						// next month/year on alt +right
-						break;
-				case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D');
-						handled = event.ctrlKey || event.metaKey;
-						break; // +1 week on ctrl or command +down
-				default: handled = false;
-			}
-		else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home
-			$.datepicker._showDatepicker(this);
-		else {
-			handled = false;
-		}
-		if (handled) {
-			event.preventDefault();
-			event.stopPropagation();
-		}
-	},
-
-	/* Filter entered characters - based on date format. */
-	_doKeyPress: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		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 || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1);
-		}
-	},
-
-	/* Synchronise manual entry and field/alternate field. */
-	_doKeyUp: function(event) {
-		var inst = $.datepicker._getInst(event.target);
-		if (inst.input.val() != inst.lastVal) {
-			try {
-				var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
-					(inst.input ? inst.input.val() : null),
-					$.datepicker._getFormatConfig(inst));
-				if (date) { // only if valid
-					$.datepicker._setDateFromField(inst);
-					$.datepicker._updateAlternate(inst);
-					$.datepicker._updateDatepicker(inst);
-				}
-			}
-			catch (event) {
-				$.datepicker.log(event);
-			}
-		}
-		return true;
-	},
-
-	/* Pop-up the date picker for a given input field.
-	   @param  input  element - the input field attached to the date picker or
-	                  event - if triggered by focus */
-	_showDatepicker: function(input) {
-		input = input.target || input;
-		if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger
-			input = $('input', input.parentNode)[0];
-		if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here
-			return;
-		var inst = $.datepicker._getInst(input);
-		if ($.datepicker._curInst && $.datepicker._curInst != inst) {
-			$.datepicker._curInst.dpDiv.stop(true, true);
-		}
-		var beforeShow = $.datepicker._get(inst, 'beforeShow');
-		extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {}));
-		inst.lastVal = null;
-		$.datepicker._lastInput = input;
-		$.datepicker._setDateFromField(inst);
-		if ($.datepicker._inDialog) // hide cursor
-			input.value = '';
-		if (!$.datepicker._pos) { // position below input
-			$.datepicker._pos = $.datepicker._findPos(input);
-			$.datepicker._pos[1] += input.offsetHeight; // add the height
-		}
-		var isFixed = false;
-		$(input).parents().each(function() {
-			isFixed |= $(this).css('position') == 'fixed';
-			return !isFixed;
-		});
-		if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
-			$.datepicker._pos[0] -= document.documentElement.scrollLeft;
-			$.datepicker._pos[1] -= document.documentElement.scrollTop;
-		}
-		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);
-		// fix width for dynamic number of date pickers
-		// and adjust position before showing
-		offset = $.datepicker._checkOffset(inst, offset, isFixed);
-		inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ?
-			'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none',
-			left: offset.left + 'px', top: offset.top + 'px'});
-		if (!inst.inline) {
-			var showAnim = $.datepicker._get(inst, 'showAnim');
-			var duration = $.datepicker._get(inst, 'duration');
-			var postProcess = function() {
-				$.datepicker._datepickerShowing = true;
-				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])
-				inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
-			else
-				inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess);
-			if (!showAnim || !duration)
-				postProcess();
-			if (inst.input.is(':visible') && !inst.input.is(':disabled'))
-				inst.input.focus();
-			$.datepicker._curInst = inst;
-		}
-	},
-
-	/* Generate the date picker content. */
-	_updateDatepicker: function(inst) {
-		var self = this;
-		var borders = $.datepicker._getBorders(inst.dpDiv);
-		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');
-					if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover');
-				})
-				.bind('mouseover', function(){
-					if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) {
-						$(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover');
-						$(this).addClass('ui-state-hover');
-						if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover');
-						if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover');
-					}
-				})
-			.end()
-			.find('.' + this._dayOverClass + ' a')
-				.trigger('mouseover')
-			.end();
-		var numMonths = this._getNumberOfMonths(inst);
-		var cols = numMonths[1];
-		var width = 17;
-		if (cols > 1)
-			inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em');
-		else
-			inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width('');
-		inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') +
-			'Class']('ui-datepicker-multi');
-		inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') +
-			'Class']('ui-datepicker-rtl');
-		if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input &&
-				// #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.
-	   @param  elem  (jQuery object) the element of interest
-	   @return  (number[2]) the left and top borders */
-	_getBorders: function(elem) {
-		var convert = function(value) {
-			return {thin: 1, medium: 2, thick: 3}[value] || value;
-		};
-		return [parseFloat(convert(elem.css('border-left-width'))),
-			parseFloat(convert(elem.css('border-top-width')))];
-	},
-
-	/* Check positioning to remain on screen. */
-	_checkOffset: function(inst, offset, isFixed) {
-		var dpWidth = inst.dpDiv.outerWidth();
-		var dpHeight = inst.dpDiv.outerHeight();
-		var inputWidth = inst.input ? inst.input.outerWidth() : 0;
-		var inputHeight = inst.input ? inst.input.outerHeight() : 0;
-		var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
-		var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
-
-		offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
-		offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;
-		offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0;
-
-		// now check if datepicker is showing outside window viewport - move to a better place if so.
-		offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ?
-			Math.abs(offset.left + dpWidth - viewWidth) : 0);
-		offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ?
-			Math.abs(dpHeight + inputHeight) : 0);
-
-		return offset;
-	},
-
-	/* Find an object's position on the screen. */
-	_findPos: function(obj) {
-		var inst = this._getInst(obj);
-		var isRTL = this._get(inst, 'isRTL');
-        while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) {
-            obj = obj[isRTL ? 'previousSibling' : 'nextSibling'];
-        }
-        var position = $(obj).offset();
-	    return [position.left, position.top];
-	},
-
-	/* Hide the date picker from view.
-	   @param  input  element - the input field attached to the date picker */
-	_hideDatepicker: function(input) {
-		var inst = this._curInst;
-		if (!inst || (input && inst != $.data(input, PROP_NAME)))
-			return;
-		if (this._datepickerShowing) {
-			var showAnim = this._get(inst, 'showAnim');
-			var duration = this._get(inst, 'duration');
-			var postProcess = function() {
-				$.datepicker._tidyDialog(inst);
-				this._curInst = null;
-			};
-			if ($.effects && $.effects[showAnim])
-				inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess);
-			else
-				inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' :
-					(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess);
-			if (!showAnim)
-				postProcess();
-			var onClose = this._get(inst, 'onClose');
-			if (onClose)
-				onClose.apply((inst.input ? inst.input[0] : null),
-					[(inst.input ? inst.input.val() : ''), inst]);  // trigger custom callback
-			this._datepickerShowing = false;
-			this._lastInput = null;
-			if (this._inDialog) {
-				this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' });
-				if ($.blockUI) {
-					$.unblockUI();
-					$('body').append(this.dpDiv);
-				}
-			}
-			this._inDialog = false;
-		}
-	},
-
-	/* Tidy up after a dialog display. */
-	_tidyDialog: function(inst) {
-		inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar');
-	},
-
-	/* Close date picker if clicked elsewhere. */
-	_checkExternalClick: function(event) {
-		if (!$.datepicker._curInst)
-			return;
-		var $target = $(event.target);
-		if ($target[0].id != $.datepicker._mainDivId &&
-				$target.parents('#' + $.datepicker._mainDivId).length == 0 &&
-				!$target.hasClass($.datepicker.markerClassName) &&
-				!$target.hasClass($.datepicker._triggerClass) &&
-				$.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI))
-			$.datepicker._hideDatepicker();
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustDate: function(id, offset, period) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (this._isDisabledDatepicker(target[0])) {
-			return;
-		}
-		this._adjustInstDate(inst, offset +
-			(period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning
-			period);
-		this._updateDatepicker(inst);
-	},
-
-	/* Action for current link. */
-	_gotoToday: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (this._get(inst, 'gotoCurrent') && inst.currentDay) {
-			inst.selectedDay = inst.currentDay;
-			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
-			inst.drawYear = inst.selectedYear = inst.currentYear;
-		}
-		else {
-			var date = new Date();
-			inst.selectedDay = date.getDate();
-			inst.drawMonth = inst.selectedMonth = date.getMonth();
-			inst.drawYear = inst.selectedYear = date.getFullYear();
-		}
-		this._notifyChange(inst);
-		this._adjustDate(target);
-	},
-
-	/* Action for selecting a new month/year. */
-	_selectMonthYear: function(id, select, period) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		inst._selectingMonthYear = false;
-		inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
-		inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
-			parseInt(select.options[select.selectedIndex].value,10);
-		this._notifyChange(inst);
-		this._adjustDate(target);
-	},
-
-	/* Restore input focus after not changing month/year. */
-	_clickMonthYear: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		if (inst.input && inst._selectingMonthYear) {
-			setTimeout(function() {
-				inst.input.focus();
-			}, 0);
-		}
-		inst._selectingMonthYear = !inst._selectingMonthYear;
-	},
-
-	/* Action for selecting a day. */
-	_selectDay: function(id, month, year, td) {
-		var target = $(id);
-		if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) {
-			return;
-		}
-		var inst = this._getInst(target[0]);
-		inst.selectedDay = inst.currentDay = $('a', td).html();
-		inst.selectedMonth = inst.currentMonth = month;
-		inst.selectedYear = inst.currentYear = year;
-		this._selectDate(id, this._formatDate(inst,
-			inst.currentDay, inst.currentMonth, inst.currentYear));
-	},
-
-	/* Erase the input field and hide the date picker. */
-	_clearDate: function(id) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		this._selectDate(target, '');
-	},
-
-	/* Update the input field with the selected date. */
-	_selectDate: function(id, dateStr) {
-		var target = $(id);
-		var inst = this._getInst(target[0]);
-		dateStr = (dateStr != null ? dateStr : this._formatDate(inst));
-		if (inst.input)
-			inst.input.val(dateStr);
-		this._updateAlternate(inst);
-		var onSelect = this._get(inst, 'onSelect');
-		if (onSelect)
-			onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);  // trigger custom callback
-		else if (inst.input)
-			inst.input.trigger('change'); // fire the change event
-		if (inst.inline)
-			this._updateDatepicker(inst);
-		else {
-			this._hideDatepicker();
-			this._lastInput = inst.input[0];
-			if (typeof(inst.input[0]) != 'object')
-				inst.input.focus(); // restore focus
-			this._lastInput = null;
-		}
-	},
-
-	/* Update any alternate field to synchronise with the main field. */
-	_updateAlternate: function(inst) {
-		var altField = this._get(inst, 'altField');
-		if (altField) { // update alternate field too
-			var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat');
-			var date = this._getDate(inst);
-			var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst));
-			$(altField).each(function() { $(this).val(dateStr); });
-		}
-	},
-
-	/* Set as beforeShowDay function to prevent selection of weekends.
-	   @param  date  Date - the date to customise
-	   @return [boolean, string] - is this date selectable?, what is its CSS class? */
-	noWeekends: function(date) {
-		var day = date.getDay();
-		return [(day > 0 && day < 6), ''];
-	},
-
-	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
-	   @param  date  Date - the date to get the week for
-	   @return  number - the number of the week within the year that contains this date */
-	iso8601Week: function(date) {
-		var checkDate = new Date(date.getTime());
-		// Find Thursday of this week starting on Monday
-		checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7));
-		var time = checkDate.getTime();
-		checkDate.setMonth(0); // Compare with Jan 1
-		checkDate.setDate(1);
-		return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1;
-	},
-
-	/* Parse a string value into a date object.
-	   See formatDate below for the possible formats.
-
-	   @param  format    string - the expected format of the date
-	   @param  value     string - the date in the above format
-	   @param  settings  Object - attributes include:
-	                     shortYearCutoff  number - the cutoff year for determining the century (optional)
-	                     dayNamesShort    string[7] - abbreviated names of the days from Sunday (optional)
-	                     dayNames         string[7] - names of the days from Sunday (optional)
-	                     monthNamesShort  string[12] - abbreviated names of the months (optional)
-	                     monthNames       string[12] - names of the months (optional)
-	   @return  Date - the extracted date value or null if value is blank */
-	parseDate: function (format, value, settings) {
-		if (format == null || value == null)
-			throw 'Invalid arguments';
-		value = (typeof value == 'object' ? value.toString() : value + '');
-		if (value == '')
-			return null;
-		var 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;
-		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
-		var year = -1;
-		var month = -1;
-		var day = -1;
-		var doy = -1;
-		var literal = false;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		// Extract a number from the string value
-		var getNumber = function(match) {
-			var isDoubled = lookAhead(match);
-			var size = (match == '@' ? 14 : (match == '!' ? 20 :
-				(match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2))));
-			var digits = new RegExp('^\\d{1,' + size + '}');
-			var num = value.substring(iValue).match(digits);
-			if (!num)
-				throw 'Missing number at position ' + iValue;
-			iValue += num[0].length;
-			return parseInt(num[0], 10);
-		};
-		// Extract a name from the string value and convert to an index
-		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).toLowerCase() == names[i].toLowerCase()) {
-					iValue += names[i].length;
-					return i + 1;
-				}
-			}
-			throw 'Unknown name at position ' + iValue;
-		};
-		// Confirm that a literal character matches the string value
-		var checkLiteral = function() {
-			if (value.charAt(iValue) != format.charAt(iFormat))
-				throw 'Unexpected literal at position ' + iValue;
-			iValue++;
-		};
-		var iValue = 0;
-		for (var iFormat = 0; iFormat < format.length; iFormat++) {
-			if (literal)
-				if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-					literal = false;
-				else
-					checkLiteral();
-			else
-				switch (format.charAt(iFormat)) {
-					case 'd':
-						day = getNumber('d');
-						break;
-					case 'D':
-						getName('D', dayNamesShort, dayNames);
-						break;
-					case 'o':
-						doy = getNumber('o');
-						break;
-					case 'm':
-						month = getNumber('m');
-						break;
-					case 'M':
-						month = getName('M', monthNamesShort, monthNames);
-						break;
-					case 'y':
-						year = getNumber('y');
-						break;
-					case '@':
-						var date = new Date(getNumber('@'));
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case '!':
-						var date = new Date((getNumber('!') - this._ticksTo1970) / 10000);
-						year = date.getFullYear();
-						month = date.getMonth() + 1;
-						day = date.getDate();
-						break;
-					case "'":
-						if (lookAhead("'"))
-							checkLiteral();
-						else
-							literal = true;
-						break;
-					default:
-						checkLiteral();
-				}
-		}
-		if (year == -1)
-			year = new Date().getFullYear();
-		else if (year < 100)
-			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
-				(year <= shortYearCutoff ? 0 : -100);
-		if (doy > -1) {
-			month = 1;
-			day = doy;
-			do {
-				var dim = this._getDaysInMonth(year, month - 1);
-				if (day <= dim)
-					break;
-				month++;
-				day -= dim;
-			} while (true);
-		}
-		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/*
-		return date;
-	},
-
-	/* Standard date formats. */
-	ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601)
-	COOKIE: 'D, dd M yy',
-	ISO_8601: 'yy-mm-dd',
-	RFC_822: 'D, d M y',
-	RFC_850: 'DD, dd-M-y',
-	RFC_1036: 'D, d M y',
-	RFC_1123: 'D, d M yy',
-	RFC_2822: 'D, d M yy',
-	RSS: 'D, d M y', // RFC 822
-	TICKS: '!',
-	TIMESTAMP: '@',
-	W3C: 'yy-mm-dd', // ISO 8601
-
-	_ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) +
-		Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000),
-
-	/* Format a date object into a string value.
-	   The format can be combinations of the following:
-	   d  - day of month (no leading zero)
-	   dd - day of month (two digit)
-	   o  - day of year (no leading zeros)
-	   oo - day of year (three digit)
-	   D  - day name short
-	   DD - day name long
-	   m  - month of year (no leading zero)
-	   mm - month of year (two digit)
-	   M  - month name short
-	   MM - month name long
-	   y  - year (two digit)
-	   yy - year (four digit)
-	   @ - Unix timestamp (ms since 01/01/1970)
-	   ! - Windows ticks (100ns since 01/01/0001)
-	   '...' - literal text
-	   '' - single quote
-
-	   @param  format    string - the desired format of the date
-	   @param  date      Date - the date value to format
-	   @param  settings  Object - attributes include:
-	                     dayNamesShort    string[7] - abbreviated names of the days from Sunday (optional)
-	                     dayNames         string[7] - names of the days from Sunday (optional)
-	                     monthNamesShort  string[12] - abbreviated names of the months (optional)
-	                     monthNames       string[12] - names of the months (optional)
-	   @return  string - the date in the above format */
-	formatDate: function (format, date, settings) {
-		if (!date)
-			return '';
-		var 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;
-		var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		// Format a number, with leading zero if necessary
-		var formatNumber = function(match, value, len) {
-			var num = '' + value;
-			if (lookAhead(match))
-				while (num.length < len)
-					num = '0' + num;
-			return num;
-		};
-		// Format a name, short or long as requested
-		var formatName = function(match, value, shortNames, longNames) {
-			return (lookAhead(match) ? longNames[value] : shortNames[value]);
-		};
-		var output = '';
-		var literal = false;
-		if (date)
-			for (var iFormat = 0; iFormat < format.length; iFormat++) {
-				if (literal)
-					if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-						literal = false;
-					else
-						output += format.charAt(iFormat);
-				else
-					switch (format.charAt(iFormat)) {
-						case 'd':
-							output += formatNumber('d', date.getDate(), 2);
-							break;
-						case 'D':
-							output += formatName('D', date.getDay(), dayNamesShort, dayNames);
-							break;
-						case 'o':
-							output += formatNumber('o',
-								(date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3);
-							break;
-						case 'm':
-							output += formatNumber('m', date.getMonth() + 1, 2);
-							break;
-						case 'M':
-							output += formatName('M', date.getMonth(), monthNamesShort, monthNames);
-							break;
-						case 'y':
-							output += (lookAhead('y') ? date.getFullYear() :
-								(date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100);
-							break;
-						case '@':
-							output += date.getTime();
-							break;
-						case '!':
-							output += date.getTime() * 10000 + this._ticksTo1970;
-							break;
-						case "'":
-							if (lookAhead("'"))
-								output += "'";
-							else
-								literal = true;
-							break;
-						default:
-							output += format.charAt(iFormat);
-					}
-			}
-		return output;
-	},
-
-	/* Extract all possible characters from the date format. */
-	_possibleChars: function (format) {
-		var chars = '';
-		var literal = false;
-		// Check whether a format character is doubled
-		var lookAhead = function(match) {
-			var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match);
-			if (matches)
-				iFormat++;
-			return matches;
-		};
-		for (var iFormat = 0; iFormat < format.length; iFormat++)
-			if (literal)
-				if (format.charAt(iFormat) == "'" && !lookAhead("'"))
-					literal = false;
-				else
-					chars += format.charAt(iFormat);
-			else
-				switch (format.charAt(iFormat)) {
-					case 'd': case 'm': case 'y': case '@':
-						chars += '0123456789';
-						break;
-					case 'D': case 'M':
-						return null; // Accept anything
-					case "'":
-						if (lookAhead("'"))
-							chars += "'";
-						else
-							literal = true;
-						break;
-					default:
-						chars += format.charAt(iFormat);
-				}
-		return chars;
-	},
-
-	/* Get a setting value, defaulting if necessary. */
-	_get: function(inst, name) {
-		return inst.settings[name] !== undefined ?
-			inst.settings[name] : this._defaults[name];
-	},
-
-	/* Parse existing date and initialise date picker. */
-	_setDateFromField: function(inst, noDefault) {
-		if (inst.input.val() == inst.lastVal) {
-			return;
-		}
-		var dateFormat = this._get(inst, 'dateFormat');
-		var dates = inst.lastVal = inst.input ? inst.input.val() : null;
-		var date, defaultDate;
-		date = defaultDate = this._getDefaultDate(inst);
-		var settings = this._getFormatConfig(inst);
-		try {
-			date = this.parseDate(dateFormat, dates, settings) || defaultDate;
-		} catch (event) {
-			this.log(event);
-			dates = (noDefault ? '' : dates);
-		}
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		inst.currentDay = (dates ? date.getDate() : 0);
-		inst.currentMonth = (dates ? date.getMonth() : 0);
-		inst.currentYear = (dates ? date.getFullYear() : 0);
-		this._adjustInstDate(inst);
-	},
-
-	/* Retrieve the default date shown on opening. */
-	_getDefaultDate: function(inst) {
-		return this._restrictMinMax(inst,
-			this._determineDate(inst, this._get(inst, 'defaultDate'), new Date()));
-	},
-
-	/* A date may be specified as an exact value or a relative one. */
-	_determineDate: function(inst, date, defaultDate) {
-		var offsetNumeric = function(offset) {
-			var date = new Date();
-			date.setDate(date.getDate() + offset);
-			return date;
-		};
-		var offsetString = function(offset) {
-			try {
-				return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'),
-					offset, $.datepicker._getFormatConfig(inst));
-			}
-			catch (e) {
-				// Ignore
-			}
-			var date = (offset.toLowerCase().match(/^c/) ?
-				$.datepicker._getDate(inst) : null) || new Date();
-			var year = date.getFullYear();
-			var month = date.getMonth();
-			var day = date.getDate();
-			var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;
-			var matches = pattern.exec(offset);
-			while (matches) {
-				switch (matches[2] || 'd') {
-					case 'd' : case 'D' :
-						day += parseInt(matches[1],10); break;
-					case 'w' : case 'W' :
-						day += parseInt(matches[1],10) * 7; break;
-					case 'm' : case 'M' :
-						month += parseInt(matches[1],10);
-						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
-						break;
-					case 'y': case 'Y' :
-						year += parseInt(matches[1],10);
-						day = Math.min(day, $.datepicker._getDaysInMonth(year, month));
-						break;
-				}
-				matches = pattern.exec(offset);
-			}
-			return new Date(year, month, day);
-		};
-		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(newDate);
-	},
-
-	/* Handle switch to/from daylight saving.
-	   Hours may be non-zero on daylight saving cut-over:
-	   > 12 when midnight changeover, but then cannot generate
-	   midnight datetime, so jump to 1AM, otherwise reset.
-	   @param  date  (Date) the date to check
-	   @return  (Date) the corrected date */
-	_daylightSavingAdjust: function(date) {
-		if (!date) return null;
-		date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
-		return date;
-	},
-
-	/* Set the date(s) directly. */
-	_setDate: function(inst, date, noChange) {
-		var clear = !date;
-		var origMonth = inst.selectedMonth;
-		var origYear = inst.selectedYear;
-		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);
-		if (inst.input) {
-			inst.input.val(clear ? '' : this._formatDate(inst));
-		}
-	},
-
-	/* Retrieve the date(s) directly. */
-	_getDate: function(inst) {
-		var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null :
-			this._daylightSavingAdjust(new Date(
-			inst.currentYear, inst.currentMonth, inst.currentDay)));
-			return startDate;
-	},
-
-	/* Generate the HTML for the current state of the date picker. */
-	_generateHTML: function(inst) {
-		var today = new Date();
-		today = this._daylightSavingAdjust(
-			new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time
-		var isRTL = this._get(inst, 'isRTL');
-		var showButtonPanel = this._get(inst, 'showButtonPanel');
-		var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext');
-		var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat');
-		var numMonths = this._getNumberOfMonths(inst);
-		var showCurrentAtPos = this._get(inst, 'showCurrentAtPos');
-		var stepMonths = this._get(inst, 'stepMonths');
-		var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1);
-		var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) :
-			new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		var drawMonth = inst.drawMonth - showCurrentAtPos;
-		var drawYear = inst.drawYear;
-		if (drawMonth < 0) {
-			drawMonth += 12;
-			drawYear--;
-		}
-		if (maxDate) {
-			var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(),
-				maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate()));
-			maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw);
-			while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) {
-				drawMonth--;
-				if (drawMonth < 0) {
-					drawMonth = 11;
-					drawYear--;
-				}
-			}
-		}
-		inst.drawMonth = drawMonth;
-		inst.drawYear = drawYear;
-		var prevText = this._get(inst, 'prevText');
-		prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText,
-			this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)),
-			this._getFormatConfig(inst)));
-		var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ?
-			'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._adjustDate(\'#' + inst.id + '\', -' + stepMonths + ', \'M\');"' +
-			' title="' + prevText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>' :
-			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+ prevText +'"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'e' : 'w') + '">' + prevText + '</span></a>'));
-		var nextText = this._get(inst, 'nextText');
-		nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText,
-			this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)),
-			this._getFormatConfig(inst)));
-		var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ?
-			'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._adjustDate(\'#' + inst.id + '\', +' + stepMonths + ', \'M\');"' +
-			' title="' + nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>' :
-			(hideIfNoPrevNext ? '' : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+ nextText + '"><span class="ui-icon ui-icon-circle-triangle-' + ( isRTL ? 'w' : 'e') + '">' + nextText + '</span></a>'));
-		var currentText = this._get(inst, 'currentText');
-		var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today);
-		currentText = (!navigationAsDateFormat ? currentText :
-			this.formatDate(currentText, gotoDate, this._getFormatConfig(inst)));
-		var controls = (!inst.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._hideDatepicker();">' + this._get(inst, 'closeText') + '</button>' : '');
-		var buttonPanel = (showButtonPanel) ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (isRTL ? controls : '') +
-			(this._isInRange(inst, gotoDate) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' + dpuuid +
-			'.datepicker._gotoToday(\'#' + inst.id + '\');"' +
-			'>' + currentText + '</button>' : '') + (isRTL ? '' : controls) + '</div>' : '';
-		var firstDay = parseInt(this._get(inst, 'firstDay'),10);
-		firstDay = (isNaN(firstDay) ? 0 : firstDay);
-		var showWeek = this._get(inst, 'showWeek');
-		var dayNames = this._get(inst, 'dayNames');
-		var dayNamesShort = this._get(inst, 'dayNamesShort');
-		var dayNamesMin = this._get(inst, 'dayNamesMin');
-		var monthNames = this._get(inst, 'monthNames');
-		var monthNamesShort = this._get(inst, 'monthNamesShort');
-		var beforeShowDay = this._get(inst, 'beforeShowDay');
-		var showOtherMonths = this._get(inst, 'showOtherMonths');
-		var selectOtherMonths = this._get(inst, 'selectOtherMonths');
-		var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week;
-		var defaultDate = this._getDefaultDate(inst);
-		var html = '';
-		for (var row = 0; row < numMonths[0]; row++) {
-			var group = '';
-			for (var col = 0; col < numMonths[1]; col++) {
-				var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay));
-				var cornerClass = ' ui-corner-all';
-				var calender = '';
-				if (isMultiMonth) {
-					calender += '<div class="ui-datepicker-group';
-					if (numMonths[1] > 1)
-						switch (col) {
-							case 0: calender += ' ui-datepicker-group-first';
-								cornerClass = ' ui-corner-' + (isRTL ? 'right' : 'left'); break;
-							case numMonths[1]-1: calender += ' ui-datepicker-group-last';
-								cornerClass = ' ui-corner-' + (isRTL ? 'left' : 'right'); break;
-							default: calender += ' ui-datepicker-group-middle'; cornerClass = ''; break;
-						}
-					calender += '">';
-				}
-				calender += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + cornerClass + '">' +
-					(/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') +
-					(/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') +
-					this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate,
-					row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers
-					'</div><table class="ui-datepicker-calendar"><thead>' +
-					'<tr>';
-				var thead = (showWeek ? '<th class="ui-datepicker-week-col">' + this._get(inst, 'weekHeader') + '</th>' : '');
-				for (var dow = 0; dow < 7; dow++) { // days of the week
-					var day = (dow + firstDay) % 7;
-					thead += '<th' + ((dow + firstDay + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' +
-						'<span title="' + dayNames[day] + '">' + dayNamesMin[day] + '</span></th>';
-				}
-				calender += thead + '</tr></thead><tbody>';
-				var daysInMonth = this._getDaysInMonth(drawYear, drawMonth);
-				if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth)
-					inst.selectedDay = Math.min(inst.selectedDay, daysInMonth);
-				var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7;
-				var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate
-				var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays));
-				for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows
-					calender += '<tr>';
-					var tbody = (!showWeek ? '' : '<td class="ui-datepicker-week-col">' +
-						this._get(inst, 'calculateWeek')(printDate) + '</td>');
-					for (var dow = 0; dow < 7; dow++) { // create date picker days
-						var daySettings = (beforeShowDay ?
-							beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']);
-						var otherMonth = (printDate.getMonth() != drawMonth);
-						var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] ||
-							(minDate && printDate < minDate) || (maxDate && printDate > maxDate);
-						tbody += '<td class="' +
-							((dow + firstDay + 6) % 7 >= 5 ? ' ui-datepicker-week-end' : '') + // highlight weekends
-							(otherMonth ? ' ui-datepicker-other-month' : '') + // highlight days from other months
-							((printDate.getTime() == selectedDate.getTime() && drawMonth == inst.selectedMonth && inst._keyEvent) || // user pressed key
-							(defaultDate.getTime() == printDate.getTime() && defaultDate.getTime() == selectedDate.getTime()) ?
-							// or defaultDate is current printedDate and defaultDate is selectedDate
-							' ' + this._dayOverClass : '') + // highlight selected day
-							(unselectable ? ' ' + this._unselectableClass + ' ui-state-disabled': '') +  // highlight unselectable days
-							(otherMonth && !showOtherMonths ? '' : ' ' + daySettings[1] + // highlight custom dates
-							(printDate.getTime() == currentDate.getTime() ? ' ' + this._currentClass : '') + // highlight selected day
-							(printDate.getTime() == today.getTime() ? ' ui-datepicker-today' : '')) + '"' + // highlight today (if different)
-							((!otherMonth || showOtherMonths) && daySettings[2] ? ' title="' + daySettings[2] + '"' : '') + // cell title
-							(unselectable ? '' : ' onclick="DP_jQuery_' + dpuuid + '.datepicker._selectDay(\'#' +
-							inst.id + '\',' + printDate.getMonth() + ',' + printDate.getFullYear() + ', this);return false;"') + '>' + // actions
-							(otherMonth && !showOtherMonths ? '&#xa0;' : // display for other months
-							(unselectable ? '<span class="ui-state-default">' + printDate.getDate() + '</span>' : '<a class="ui-state-default' +
-							(printDate.getTime() == today.getTime() ? ' ui-state-highlight' : '') +
-							(printDate.getTime() == currentDate.getTime() ? ' ui-state-active' : '') + // highlight selected day
-							(otherMonth ? ' ui-priority-secondary' : '') + // distinguish dates from other months
-							'" href="#">' + printDate.getDate() + '</a>')) + '</td>'; // display selectable date
-						printDate.setDate(printDate.getDate() + 1);
-						printDate = this._daylightSavingAdjust(printDate);
-					}
-					calender += tbody + '</tr>';
-				}
-				drawMonth++;
-				if (drawMonth > 11) {
-					drawMonth = 0;
-					drawYear++;
-				}
-				calender += '</tbody></table>' + (isMultiMonth ? '</div>' + 
-							((numMonths[0] > 0 && col == numMonths[1]-1) ? '<div class="ui-datepicker-row-break"></div>' : '') : '');
-				group += calender;
-			}
-			html += group;
-		}
-		html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ?
-			'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : '');
-		inst._keyEvent = false;
-		return html;
-	},
-
-	/* Generate the month and year header. */
-	_generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
-			secondary, monthNames, monthNamesShort) {
-		var changeMonth = this._get(inst, 'changeMonth');
-		var changeYear = this._get(inst, 'changeYear');
-		var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
-		var html = '<div class="ui-datepicker-title">';
-		var monthHtml = '';
-		// month selection
-		if (secondary || !changeMonth)
-			monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
-		else {
-			var inMinYear = (minDate && minDate.getFullYear() == drawYear);
-			var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
-			monthHtml += '<select class="ui-datepicker-month" ' +
-				'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
-				'onclick="DP_jQuery_' + dpuuid + '.datepicker._clickMonthYear(\'#' + inst.id + '\');"' +
-			 	'>';
-			for (var month = 0; month < 12; month++) {
-				if ((!inMinYear || month >= minDate.getMonth()) &&
-						(!inMaxYear || month <= maxDate.getMonth()))
-					monthHtml += '<option value="' + month + '"' +
-						(month == drawMonth ? ' selected="selected"' : '') +
-						'>' + monthNamesShort[month] + '</option>';
-			}
-			monthHtml += '</select>';
-		}
-		if (!showMonthAfterYear)
-			html += monthHtml + (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '');
-		// year selection
-		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 += this._get(inst, 'yearSuffix');
-		if (showMonthAfterYear)
-			html += (secondary || !(changeMonth && changeYear) ? '&#xa0;' : '') + monthHtml;
-		html += '</div>'; // Close datepicker_header
-		return html;
-	},
-
-	/* Adjust one of the date sub-fields. */
-	_adjustInstDate: function(inst, offset, period) {
-		var year = inst.drawYear + (period == 'Y' ? offset : 0);
-		var month = inst.drawMonth + (period == 'M' ? offset : 0);
-		var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
-			(period == 'D' ? offset : 0);
-		var date = this._restrictMinMax(inst,
-			this._daylightSavingAdjust(new Date(year, month, day)));
-		inst.selectedDay = date.getDate();
-		inst.drawMonth = inst.selectedMonth = date.getMonth();
-		inst.drawYear = inst.selectedYear = date.getFullYear();
-		if (period == 'M' || period == 'Y')
-			this._notifyChange(inst);
-	},
-
-	/* Ensure a date is within any min/max bounds. */
-	_restrictMinMax: function(inst, date) {
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		var newDate = (minDate && date < minDate ? minDate : date);
-		newDate = (maxDate && newDate > maxDate ? maxDate : newDate);
-		return newDate;
-	},
-
-	/* Notify change of month/year. */
-	_notifyChange: function(inst) {
-		var onChange = this._get(inst, 'onChangeMonthYear');
-		if (onChange)
-			onChange.apply((inst.input ? inst.input[0] : null),
-				[inst.selectedYear, inst.selectedMonth + 1, inst]);
-	},
-
-	/* Determine the number of months to show. */
-	_getNumberOfMonths: function(inst) {
-		var numMonths = this._get(inst, 'numberOfMonths');
-		return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths));
-	},
-
-	/* Determine the current maximum date - ensure no time components are set. */
-	_getMinMaxDate: function(inst, minMax) {
-		return this._determineDate(inst, this._get(inst, minMax + 'Date'), null);
-	},
-
-	/* Find the number of days in a given month. */
-	_getDaysInMonth: function(year, month) {
-		return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate();
-	},
-
-	/* Find the day of the week of the first of a month. */
-	_getFirstDayOfMonth: function(year, month) {
-		return new Date(year, month, 1).getDay();
-	},
-
-	/* Determines if we should allow a "next/prev" month display change. */
-	_canAdjustMonth: function(inst, offset, curYear, curMonth) {
-		var numMonths = this._getNumberOfMonths(inst);
-		var date = this._daylightSavingAdjust(new Date(curYear,
-			curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1));
-		if (offset < 0)
-			date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth()));
-		return this._isInRange(inst, date);
-	},
-
-	/* Is the given date in the accepted range? */
-	_isInRange: function(inst, date) {
-		var minDate = this._getMinMaxDate(inst, 'min');
-		var maxDate = this._getMinMaxDate(inst, 'max');
-		return ((!minDate || date.getTime() >= minDate.getTime()) &&
-			(!maxDate || date.getTime() <= maxDate.getTime()));
-	},
-
-	/* Provide the configuration settings for formatting/parsing. */
-	_getFormatConfig: function(inst) {
-		var shortYearCutoff = this._get(inst, 'shortYearCutoff');
-		shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff :
-			new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10));
-		return {shortYearCutoff: shortYearCutoff,
-			dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'),
-			monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')};
-	},
-
-	/* Format the given date for display. */
-	_formatDate: function(inst, day, month, year) {
-		if (!day) {
-			inst.currentDay = inst.selectedDay;
-			inst.currentMonth = inst.selectedMonth;
-			inst.currentYear = inst.selectedYear;
-		}
-		var date = (day ? (typeof day == 'object' ? day :
-			this._daylightSavingAdjust(new Date(year, month, day))) :
-			this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
-		return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst));
-	}
-});
-
-/* jQuery extend now ignores nulls! */
-function extendRemove(target, props) {
-	$.extend(target, props);
-	for (var name in props)
-		if (props[name] == null || props[name] == undefined)
-			target[name] = props[name];
-	return target;
-};
-
-/* Determine whether an object is an array. */
-function isArray(a) {
-	return (a && (($.browser.safari && typeof a == 'object' && a.length) ||
-		(a.constructor && a.constructor.toString().match(/\Array\(\)/))));
-};
-
-/* Invoke the datepicker functionality.
-   @param  options  string - a command, optionally followed by additional parameters or
-                    Object - settings for attaching new datepicker functionality
-   @return  jQuery object */
-$.fn.datepicker = function(options){
-	
-	/* Verify an empty collection wasn't passed - Fixes #6976 */
-	if ( !this.length ) {
-		return this;
-	}
-	
-	/* Initialise the date picker. */
-	if (!$.datepicker.initialized) {
-		$(document).mousedown($.datepicker._checkExternalClick).
-			find('body').append($.datepicker.dpDiv);
-		$.datepicker.initialized = true;
-	}
-
-	var otherArgs = Array.prototype.slice.call(arguments, 1);
-	if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget'))
-		return $.datepicker['_' + options + 'Datepicker'].
-			apply($.datepicker, [this[0]].concat(otherArgs));
-	if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string')
-		return $.datepicker['_' + options + 'Datepicker'].
-			apply($.datepicker, [this[0]].concat(otherArgs));
-	return this.each(function() {
-		typeof options == 'string' ?
-			$.datepicker['_' + options + 'Datepicker'].
-				apply($.datepicker, [this].concat(otherArgs)) :
-			$.datepicker._attachDatepicker(this, options);
-	});
-};
-
-$.datepicker = new Datepicker(); // singleton instance
-$.datepicker.initialized = false;
-$.datepicker.uuid = new Date().getTime();
-$.datepicker.version = "1.8.11";
-
-// Workaround for #4055
-// Add another global to avoid noConflict issues with inline event handlers
-window['DP_jQuery_' + dpuuid] = $;
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.dialog.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.dialog.js
deleted file mode 100644
index f0656a2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.dialog.js
+++ /dev/null
@@ -1,857 +0,0 @@
-/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function( $, undefined ) {
-
-var uiDialogClasses =
-		'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
-	};
-
-$.widget("ui.dialog", {
-	options: {
-		autoOpen: true,
-		buttons: {},
-		closeOnEscape: true,
-		closeText: 'close',
-		dialogClass: '',
-		draggable: true,
-		hide: null,
-		height: 'auto',
-		maxHeight: false,
-		maxWidth: false,
-		minHeight: 150,
-		minWidth: 150,
-		modal: false,
-		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,
-		title: '',
-		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 || '&#160;',
-			titleId = $.ui.dialog.getTitleId(self.element),
-
-			uiDialog = (self.uiDialog = $('<div></div>'))
-				.appendTo(document.body)
-				.hide()
-				.addClass(uiDialogClasses + options.dialogClass)
-				.css({
-					zIndex: options.zIndex
-				})
-				// setting tabIndex makes the div focusable
-				// setting outline to 0 prevents a border on focus in Mozilla
-				.attr('tabIndex', -1).css('outline', 0).keydown(function(event) {
-					if (options.closeOnEscape && event.keyCode &&
-						event.keyCode === $.ui.keyCode.ESCAPE) {
-						
-						self.close(event);
-						event.preventDefault();
-					}
-				})
-				.attr({
-					role: 'dialog',
-					'aria-labelledby': titleId
-				})
-				.mousedown(function(event) {
-					self.moveToTop(false, event);
-				}),
-
-			uiDialogContent = self.element
-				.show()
-				.removeAttr('title')
-				.addClass(
-					'ui-dialog-content ' +
-					'ui-widget-content')
-				.appendTo(uiDialog),
-
-			uiDialogTitlebar = (self.uiDialogTitlebar = $('<div></div>'))
-				.addClass(
-					'ui-dialog-titlebar ' +
-					'ui-widget-header ' +
-					'ui-corner-all ' +
-					'ui-helper-clearfix'
-				)
-				.prependTo(uiDialog),
-
-			uiDialogTitlebarClose = $('<a href="#"></a>')
-				.addClass(
-					'ui-dialog-titlebar-close ' +
-					'ui-corner-all'
-				)
-				.attr('role', 'button')
-				.hover(
-					function() {
-						uiDialogTitlebarClose.addClass('ui-state-hover');
-					},
-					function() {
-						uiDialogTitlebarClose.removeClass('ui-state-hover');
-					}
-				)
-				.focus(function() {
-					uiDialogTitlebarClose.addClass('ui-state-focus');
-				})
-				.blur(function() {
-					uiDialogTitlebarClose.removeClass('ui-state-focus');
-				})
-				.click(function(event) {
-					self.close(event);
-					return false;
-				})
-				.appendTo(uiDialogTitlebar),
-
-			uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('<span></span>'))
-				.addClass(
-					'ui-icon ' +
-					'ui-icon-closethick'
-				)
-				.text(options.closeText)
-				.appendTo(uiDialogTitlebarClose),
-
-			uiDialogTitle = $('<span></span>')
-				.addClass('ui-dialog-title')
-				.attr('id', titleId)
-				.html(title)
-				.prependTo(uiDialogTitlebar);
-
-		//handling of deprecated beforeclose (vs beforeClose) option
-		//Ticket #4669 http://dev.jqueryui.com/ticket/4669
-		//TODO: remove in 1.9pre
-		if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) {
-			options.beforeClose = options.beforeclose;
-		}
-
-		uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection();
-
-		if (options.draggable && $.fn.draggable) {
-			self._makeDraggable();
-		}
-		if (options.resizable && $.fn.resizable) {
-			self._makeResizable();
-		}
-
-		self._createButtons(options.buttons);
-		self._isOpen = false;
-
-		if ($.fn.bgiframe) {
-			uiDialog.bgiframe();
-		}
-	},
-
-	_init: function() {
-		if ( this.options.autoOpen ) {
-			this.open();
-		}
-	},
-
-	destroy: function() {
-		var self = this;
-		
-		if (self.overlay) {
-			self.overlay.destroy();
-		}
-		self.uiDialog.hide();
-		self.element
-			.unbind('.dialog')
-			.removeData('dialog')
-			.removeClass('ui-dialog-content ui-widget-content')
-			.hide().appendTo('body');
-		self.uiDialog.remove();
-
-		if (self.originalTitle) {
-			self.element.attr('title', self.originalTitle);
-		}
-
-		return self;
-	},
-
-	widget: function() {
-		return this.uiDialog;
-	},
-
-	close: function(event) {
-		var self = this,
-			maxZ, thisZ;
-		
-		if (false === self._trigger('beforeClose', event)) {
-			return;
-		}
-
-		if (self.overlay) {
-			self.overlay.destroy();
-		}
-		self.uiDialog.unbind('keypress.ui-dialog');
-
-		self._isOpen = false;
-
-		if (self.options.hide) {
-			self.uiDialog.hide(self.options.hide, function() {
-				self._trigger('close', event);
-			});
-		} else {
-			self.uiDialog.hide();
-			self._trigger('close', event);
-		}
-
-		$.ui.dialog.overlay.resize();
-
-		// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
-		if (self.options.modal) {
-			maxZ = 0;
-			$('.ui-dialog').each(function() {
-				if (this !== self.uiDialog[0]) {
-					thisZ = $(this).css('z-index');
-					if(!isNaN(thisZ)) {
-						maxZ = Math.max(maxZ, thisZ);
-					}
-				}
-			});
-			$.ui.dialog.maxZ = maxZ;
-		}
-
-		return self;
-	},
-
-	isOpen: function() {
-		return this._isOpen;
-	},
-
-	// the force parameter allows us to move modal dialogs to their correct
-	// position on open
-	moveToTop: function(force, event) {
-		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;
-		}
-		if (self.overlay) {
-			$.ui.dialog.maxZ += 1;
-			self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ);
-		}
-
-		//Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed.
-		//  http://ui.jquery.com/bugs/ticket/3193
-		saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') };
-		$.ui.dialog.maxZ += 1;
-		self.uiDialog.css('z-index', $.ui.dialog.maxZ);
-		self.element.attr(saveScroll);
-		self._trigger('focus', event);
-
-		return self;
-	},
-
-	open: function() {
-		if (this._isOpen) { return; }
-
-		var self = this,
-			options = self.options,
-			uiDialog = self.uiDialog;
-
-		self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null;
-		self._size();
-		self._position(options.position);
-		uiDialog.show(options.show);
-		self.moveToTop(true);
-
-		// prevent tabbing out of modal dialogs
-		if (options.modal) {
-			uiDialog.bind('keypress.ui-dialog', function(event) {
-				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;
-				} else if (event.target === first[0] && event.shiftKey) {
-					last.focus(1);
-					return false;
-				}
-			});
-		}
-
-		// 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
-		$(self.element.find(':tabbable').get().concat(
-			uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat(
-				uiDialog.get()))).eq(0).focus();
-
-		self._isOpen = true;
-		self._trigger('open');
-
-		return self;
-	},
-
-	_createButtons: function(buttons) {
-		var self = this,
-			hasButtons = false,
-			uiDialogButtonPane = $('<div></div>')
-				.addClass(
-					'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();
-
-		if (typeof buttons === 'object' && buttons !== null) {
-			$.each(buttons, function() {
-				return !(hasButtons = true);
-			});
-		}
-		if (hasButtons) {
-			$.each(buttons, function(name, props) {
-				props = $.isFunction( props ) ?
-					{ click: props, text: name } :
-					props;
-				var button = $('<button type="button"></button>')
-					.attr( props, true )
-					.unbind('click')
-					.click(function() {
-						props.click.apply(self.element[0], arguments);
-					})
-					.appendTo(uiButtonSet);
-				if ($.fn.button) {
-					button.button();
-				}
-			});
-			uiDialogButtonPane.appendTo(self.uiDialog);
-		}
-	},
-
-	_makeDraggable: function() {
-		var self = this,
-			options = self.options,
-			doc = $(document),
-			heightBeforeDrag;
-
-		function filteredUi(ui) {
-			return {
-				position: ui.position,
-				offset: ui.offset
-			};
-		}
-
-		self.uiDialog.draggable({
-			cancel: '.ui-dialog-content, .ui-dialog-titlebar-close',
-			handle: '.ui-dialog-titlebar',
-			containment: 'document',
-			start: function(event, ui) {
-				heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height();
-				$(this).height($(this).height()).addClass("ui-dialog-dragging");
-				self._trigger('dragStart', event, filteredUi(ui));
-			},
-			drag: function(event, ui) {
-				self._trigger('drag', event, filteredUi(ui));
-			},
-			stop: function(event, ui) {
-				options.position = [ui.position.left - doc.scrollLeft(),
-					ui.position.top - doc.scrollTop()];
-				$(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag);
-				self._trigger('dragStop', event, filteredUi(ui));
-				$.ui.dialog.overlay.resize();
-			}
-		});
-	},
-
-	_makeResizable: function(handles) {
-		handles = (handles === undefined ? this.options.resizable : handles);
-		var self = this,
-			options = self.options,
-			// .ui-resizable has position: relative defined in the stylesheet
-			// but dialogs have to use absolute or fixed positioning
-			position = self.uiDialog.css('position'),
-			resizeHandles = (typeof handles === 'string' ?
-				handles	:
-				'n,e,s,w,se,sw,ne,nw'
-			);
-
-		function filteredUi(ui) {
-			return {
-				originalPosition: ui.originalPosition,
-				originalSize: ui.originalSize,
-				position: ui.position,
-				size: ui.size
-			};
-		}
-
-		self.uiDialog.resizable({
-			cancel: '.ui-dialog-content',
-			containment: 'document',
-			alsoResize: self.element,
-			maxWidth: options.maxWidth,
-			maxHeight: options.maxHeight,
-			minWidth: options.minWidth,
-			minHeight: self._minHeight(),
-			handles: resizeHandles,
-			start: function(event, ui) {
-				$(this).addClass("ui-dialog-resizing");
-				self._trigger('resizeStart', event, filteredUi(ui));
-			},
-			resize: function(event, ui) {
-				self._trigger('resize', event, filteredUi(ui));
-			},
-			stop: function(event, ui) {
-				$(this).removeClass("ui-dialog-resizing");
-				options.height = $(this).height();
-				options.width = $(this).width();
-				self._trigger('resizeStop', event, filteredUi(ui));
-				$.ui.dialog.overlay.resize();
-			}
-		})
-		.css('position', position)
-		.find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se');
-	},
-
-	_minHeight: function() {
-		var options = this.options;
-
-		if (options.height === 'auto') {
-			return options.minHeight;
-		} else {
-			return Math.min(options.minHeight, options.height);
-		}
-	},
-
-	_position: function(position) {
-		var myAt = [],
-			offset = [0, 0],
-			isVisible;
-
-		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(' ');
-
-			if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) {
-				myAt = position.split ? position.split(' ') : [position[0], position[1]];
-				if (myAt.length === 1) {
-					myAt[1] = myAt[0];
-				}
-
-				$.each(['left', 'top'], function(i, offsetPosition) {
-					if (+myAt[i] === myAt[i]) {
-						offset[i] = myAt[i];
-						myAt[i] = offsetPosition;
-					}
-				});
-
-				position = {
-					my: myAt.join(" "),
-					at: myAt.join(" "),
-					offset: offset.join(" ")
-				};
-			} 
-
-			position = $.extend({}, $.ui.dialog.prototype.options.position, position);
-		} else {
-			position = $.ui.dialog.prototype.options.position;
-		}
-
-		// need to show the dialog to get the actual offset in the position plugin
-		isVisible = this.uiDialog.is(':visible');
-		if (!isVisible) {
-			this.uiDialog.show();
-		}
-		this.uiDialog
-			// workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781
-			.css({ top: 0, left: 0 })
-			.position($.extend({ of: window }, position));
-		if (!isVisible) {
-			this.uiDialog.hide();
-		}
-	},
-
-	_setOptions: function( options ) {
-		var self = this,
-			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
-			//TODO: remove in 1.9pre
-			case "beforeclose":
-				key = "beforeClose";
-				break;
-			case "buttons":
-				self._createButtons(value);
-				break;
-			case "closeText":
-				// ensure that we always pass a string
-				self.uiDialogTitlebarCloseText.text("" + value);
-				break;
-			case "dialogClass":
-				uiDialog
-					.removeClass(self.options.dialogClass)
-					.addClass(uiDialogClasses + value);
-				break;
-			case "disabled":
-				if (value) {
-					uiDialog.addClass('ui-dialog-disabled');
-				} else {
-					uiDialog.removeClass('ui-dialog-disabled');
-				}
-				break;
-			case "draggable":
-				var isDraggable = uiDialog.is( ":data(draggable)" );
-				if ( isDraggable && !value ) {
-					uiDialog.draggable( "destroy" );
-				}
-				
-				if ( !isDraggable && value ) {
-					self._makeDraggable();
-				}
-				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');
-				}
-
-				// currently resizable, changing handles
-				if (isResizable && typeof value === 'string') {
-					uiDialog.resizable('option', 'handles', value);
-				}
-
-				// currently non-resizable, becoming resizable
-				if (!isResizable && value !== false) {
-					self._makeResizable(value);
-				}
-				break;
-			case "title":
-				// convert whatever was passed in o a string, for html() to not throw up
-				$(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || '&#160;'));
-				break;
-		}
-
-		$.Widget.prototype._setOption.apply(self, arguments);
-	},
-
-	_size: function() {
-		/* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
-		 * divs will both have width and height set, so we need to reset them
-		 */
-		var options = this.options,
-			nonContentHeight,
-			minContentHeight,
-			isVisible = this.uiDialog.is( ":visible" );
-
-		// reset content sizing
-		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
-		nonContentHeight = this.uiDialog.css({
-				height: 'auto',
-				width: options.width
-			})
-			.height();
-		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());
-		}
-	}
-});
-
-$.extend($.ui.dialog, {
-	version: "1.8.11",
-
-	uuid: 0,
-	maxZ: 0,
-
-	getTitleId: function($el) {
-		var id = $el.attr('id');
-		if (!id) {
-			this.uuid += 1;
-			id = this.uuid;
-		}
-		return 'ui-dialog-title-' + id;
-	},
-
-	overlay: function(dialog) {
-		this.$el = $.ui.dialog.overlay.create(dialog);
-	}
-});
-
-$.extend($.ui.dialog.overlay, {
-	instances: [],
-	// reuse old instances due to IE memory leak with alpha transparency (see #5185)
-	oldInstances: [],
-	maxZ: 0,
-	events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','),
-		function(event) { return event + '.dialog-overlay'; }).join(' '),
-	create: function(dialog) {
-		if (this.instances.length === 0) {
-			// prevent use of anchors and inputs
-			// we use a setTimeout in case the overlay is created from an
-			// event that we're going to be cancelling (see #2804)
-			setTimeout(function() {
-				// handle $(el).dialog().dialog('close') (see #4065)
-				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
-						// 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);
-
-			// allow closing by pressing the escape key
-			$(document).bind('keydown.dialog-overlay', function(event) {
-				if (dialog.options.closeOnEscape && event.keyCode &&
-					event.keyCode === $.ui.keyCode.ESCAPE) {
-					
-					dialog.close(event);
-					event.preventDefault();
-				}
-			});
-
-			// handle window resize
-			$(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize);
-		}
-
-		var $el = (this.oldInstances.pop() || $('<div></div>').addClass('ui-widget-overlay'))
-			.appendTo(document.body)
-			.css({
-				width: this.width(),
-				height: this.height()
-			});
-
-		if ($.fn.bgiframe) {
-			$el.bgiframe();
-		}
-
-		this.instances.push($el);
-		return $el;
-	},
-
-	destroy: function($el) {
-		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');
-		}
-
-		$el.remove();
-		
-		// adjust the maxZ to allow other modal dialogs to continue to work (see #4309)
-		var maxZ = 0;
-		$.each(this.instances, function() {
-			maxZ = Math.max(maxZ, this.css('z-index'));
-		});
-		this.maxZ = maxZ;
-	},
-
-	height: function() {
-		var scrollHeight,
-			offsetHeight;
-		// handle IE 6
-		if ($.browser.msie && $.browser.version < 7) {
-			scrollHeight = Math.max(
-				document.documentElement.scrollHeight,
-				document.body.scrollHeight
-			);
-			offsetHeight = Math.max(
-				document.documentElement.offsetHeight,
-				document.body.offsetHeight
-			);
-
-			if (scrollHeight < offsetHeight) {
-				return $(window).height() + 'px';
-			} else {
-				return scrollHeight + 'px';
-			}
-		// handle "good" browsers
-		} else {
-			return $(document).height() + 'px';
-		}
-	},
-
-	width: function() {
-		var scrollWidth,
-			offsetWidth;
-		// handle IE 6
-		if ($.browser.msie && $.browser.version < 7) {
-			scrollWidth = Math.max(
-				document.documentElement.scrollWidth,
-				document.body.scrollWidth
-			);
-			offsetWidth = Math.max(
-				document.documentElement.offsetWidth,
-				document.body.offsetWidth
-			);
-
-			if (scrollWidth < offsetWidth) {
-				return $(window).width() + 'px';
-			} else {
-				return scrollWidth + 'px';
-			}
-		// handle "good" browsers
-		} else {
-			return $(document).width() + 'px';
-		}
-	},
-
-	resize: function() {
-		/* If the dialog is draggable and the user drags it past the
-		 * right edge of the window, the document becomes wider so we
-		 * need to stretch the overlay. If the user then drags the
-		 * dialog back to the left, the document will become narrower,
-		 * so we need to shrink the overlay to the appropriate size.
-		 * This is handled by shrinking the overlay before setting it
-		 * to the full document size.
-		 */
-		var $overlays = $([]);
-		$.each($.ui.dialog.overlay.instances, function() {
-			$overlays = $overlays.add(this);
-		});
-
-		$overlays.css({
-			width: 0,
-			height: 0
-		}).css({
-			width: $.ui.dialog.overlay.width(),
-			height: $.ui.dialog.overlay.height()
-		});
-	}
-});
-
-$.extend($.ui.dialog.overlay.prototype, {
-	destroy: function() {
-		$.ui.dialog.overlay.destroy(this.$el);
-	}
-});
-
-}(jQuery));
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.draggable.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.draggable.js
deleted file mode 100644
index 5f36761..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.draggable.js
+++ /dev/null
@@ -1,799 +0,0 @@
-/*
- * jQuery UI Draggable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.draggable", $.ui.mouse, {
-	widgetEventPrefix: "drag",
-	options: {
-		addClasses: true,
-		appendTo: "parent",
-		axis: false,
-		connectToSortable: false,
-		containment: false,
-		cursor: "auto",
-		cursorAt: false,
-		grid: false,
-		handle: false,
-		helper: "original",
-		iframeFix: false,
-		opacity: false,
-		refreshPositions: false,
-		revert: false,
-		revertDuration: 500,
-		scope: "default",
-		scroll: true,
-		scrollSensitivity: 20,
-		scrollSpeed: 20,
-		snap: false,
-		snapMode: "both",
-		snapTolerance: 20,
-		stack: false,
-		zIndex: false
-	},
-	_create: function() {
-
-		if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position")))
-			this.element[0].style.position = 'relative';
-
-		(this.options.addClasses && this.element.addClass("ui-draggable"));
-		(this.options.disabled && this.element.addClass("ui-draggable-disabled"));
-
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-		if(!this.element.data('draggable')) return;
-		this.element
-			.removeData("draggable")
-			.unbind(".draggable")
-			.removeClass("ui-draggable"
-				+ " ui-draggable-dragging"
-				+ " ui-draggable-disabled");
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_mouseCapture: function(event) {
-
-		var o = this.options;
-
-		// among others, prevent a drag on a resizable-handle
-		if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle'))
-			return false;
-
-		//Quit if we're not on a valid handle
-		this.handle = this._getHandle(event);
-		if (!this.handle)
-			return false;
-
-		return true;
-
-	},
-
-	_mouseStart: function(event) {
-
-		var o = this.options;
-
-		//Create and append the visible helper
-		this.helper = this._createHelper(event);
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		//If ddmanager is used for droppables, set the global draggable
-		if($.ui.ddmanager)
-			$.ui.ddmanager.current = this;
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Store the helper's css position
-		this.cssPosition = this.helper.css("position");
-		this.scrollParent = this.helper.scrollParent();
-
-		//The element's absolute position on the page minus margins
-		this.offset = this.positionAbs = this.element.offset();
-		this.offset = {
-			top: this.offset.top - this.margins.top,
-			left: this.offset.left - this.margins.left
-		};
-
-		$.extend(this.offset, {
-			click: { //Where the click happened, relative to the element
-				left: event.pageX - this.offset.left,
-				top: event.pageY - this.offset.top
-			},
-			parent: this._getParentOffset(),
-			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
-		});
-
-		//Generate the original position
-		this.originalPosition = this.position = this._generatePosition(event);
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
-		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
-		//Set a containment if given in the options
-		if(o.containment)
-			this._setContainment();
-
-		//Trigger event + callbacks
-		if(this._trigger("start", event) === false) {
-			this._clear();
-			return false;
-		}
-
-		//Recache the helper size
-		this._cacheHelperProportions();
-
-		//Prepare the droppable offsets
-		if ($.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(this, event);
-
-		this.helper.addClass("ui-draggable-dragging");
-		this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-		return true;
-	},
-
-	_mouseDrag: function(event, noPropagation) {
-
-		//Compute the helpers position
-		this.position = this._generatePosition(event);
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		//Call plugins and callbacks and use the resulting position if something is returned
-		if (!noPropagation) {
-			var ui = this._uiHash();
-			if(this._trigger('drag', event, ui) === false) {
-				this._mouseUp({});
-				return false;
-			}
-			this.position = ui.position;
-		}
-
-		if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
-		if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
-		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-
-		//If we are using droppables, inform the manager about the drop
-		var dropped = false;
-		if ($.ui.ddmanager && !this.options.dropBehaviour)
-			dropped = $.ui.ddmanager.drop(this, event);
-
-		//if a drop comes from outside (a sortable)
-		if(this.dropped) {
-			dropped = this.dropped;
-			this.dropped = false;
-		}
-		
-		//if the original element is 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))) {
-			var self = this;
-			$(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() {
-				if(self._trigger("stop", event) !== false) {
-					self._clear();
-				}
-			});
-		} else {
-			if(this._trigger("stop", event) !== false) {
-				this._clear();
-			}
-		}
-
-		return false;
-	},
-	
-	cancel: function() {
-		
-		if(this.helper.is(".ui-draggable-dragging")) {
-			this._mouseUp({});
-		} else {
-			this._clear();
-		}
-		
-		return this;
-		
-	},
-
-	_getHandle: function(event) {
-
-		var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false;
-		$(this.options.handle, this.element)
-			.find("*")
-			.andSelf()
-			.each(function() {
-				if(this == event.target) handle = true;
-			});
-
-		return handle;
-
-	},
-
-	_createHelper: function(event) {
-
-		var o = this.options;
-		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone() : this.element);
-
-		if(!helper.parents('body').length)
-			helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo));
-
-		if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position")))
-			helper.css("position", "absolute");
-
-		return helper;
-
-	},
-
-	_adjustOffsetFromHelper: function(obj) {
-		if (typeof obj == 'string') {
-			obj = obj.split(' ');
-		}
-		if ($.isArray(obj)) {
-			obj = {left: +obj[0], top: +obj[1] || 0};
-		}
-		if ('left' in obj) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ('right' in obj) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ('top' in obj) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ('bottom' in obj) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_getParentOffset: function() {
-
-		//Get the offsetParent and cache its position
-		this.offsetParent = this.helper.offsetParent();
-		var po = this.offsetParent.offset();
-
-		// This is a special case where we need to modify a offset calculated on start, since the following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
-		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
-		if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
-		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
-			po = { top: 0, left: 0 };
-
-		return {
-			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
-			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-
-		if(this.cssPosition == "relative") {
-			var p = this.element.position();
-			return {
-				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
-				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
-			};
-		} else {
-			return { top: 0, left: 0 };
-		}
-
-	},
-
-	_cacheMargins: function() {
-		this.margins = {
-			left: (parseInt(this.element.css("marginLeft"),10) || 0),
-			top: (parseInt(this.element.css("marginTop"),10) || 0),
-			right: (parseInt(this.element.css("marginRight"),10) || 0),
-			bottom: (parseInt(this.element.css("marginBottom"),10) || 0)
-		};
-	},
-
-	_cacheHelperProportions: function() {
-		this.helperProportions = {
-			width: this.helper.outerWidth(),
-			height: this.helper.outerHeight()
-		};
-	},
-
-	_setContainment: function() {
-
-		var o = this.options;
-		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
-		if(o.containment == 'document' || o.containment == 'window') this.containment = [
-			(o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left,
-			(o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top,
-			(o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
-			(o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
-		];
-
-		if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) {
-			var ce = $(o.containment)[0]; if(!ce) return;
-			var co = $(o.containment).offset();
-			var over = ($(ce).css("overflow") != 'hidden');
-
-			this.containment = [
-				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;
-		}
-
-	},
-
-	_convertPositionTo: function(d, pos) {
-
-		if(!pos) pos = this.position;
-		var mod = d == "absolute" ? 1 : -1;
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		return {
-			top: (
-				pos.top																	// The absolute mouse position
-				+ this.offset.relative.top * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.top * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
-			),
-			left: (
-				pos.left																// The absolute mouse position
-				+ this.offset.relative.left * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.left * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
-			)
-		};
-
-	},
-
-	_generatePosition: function(event) {
-
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-		var pageX = event.pageX;
-		var pageY = event.pageY;
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
-			if(this.containment) {
-				if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
-				if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
-			}
-
-			if(o.grid) {
-				var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
-				pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
-				var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
-				pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
-			}
-
-		}
-
-		return {
-			top: (
-				pageY																// The absolute mouse position
-				- this.offset.click.top													// Click offset (relative to the element)
-				- this.offset.relative.top												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.top												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
-			),
-			left: (
-				pageX																// The absolute mouse position
-				- this.offset.click.left												// Click offset (relative to the element)
-				- this.offset.relative.left												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.left												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
-			)
-		};
-
-	},
-
-	_clear: function() {
-		this.helper.removeClass("ui-draggable-dragging");
-		if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove();
-		//if($.ui.ddmanager) $.ui.ddmanager.current = null;
-		this.helper = null;
-		this.cancelHelperRemoval = false;
-	},
-
-	// From now on bulk stuff - mainly helpers
-
-	_trigger: function(type, event, ui) {
-		ui = ui || this._uiHash();
-		$.ui.plugin.call(this, type, [event, ui]);
-		if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins
-		return $.Widget.prototype._trigger.call(this, type, event, ui);
-	},
-
-	plugins: {},
-
-	_uiHash: function(event) {
-		return {
-			helper: this.helper,
-			position: this.position,
-			originalPosition: this.originalPosition,
-			offset: this.positionAbs
-		};
-	}
-
-});
-
-$.extend($.ui.draggable, {
-	version: "1.8.11"
-});
-
-$.ui.plugin.add("draggable", "connectToSortable", {
-	start: function(event, ui) {
-
-		var inst = $(this).data("draggable"), o = inst.options,
-			uiSortable = $.extend({}, ui, { item: inst.element });
-		inst.sortables = [];
-		$(o.connectToSortable).each(function() {
-			var sortable = $.data(this, 'sortable');
-			if (sortable && !sortable.options.disabled) {
-				inst.sortables.push({
-					instance: sortable,
-					shouldRevert: sortable.options.revert
-				});
-				sortable.refreshPositions();	// Call the sortable's refreshPositions at drag start to refresh the containerCache since the sortable container cache is used in drag and needs to be up to date (this will ensure it's initialised as well as being kept in step with any changes that might have happened on the page).
-				sortable._trigger("activate", event, uiSortable);
-			}
-		});
-
-	},
-	stop: function(event, ui) {
-
-		//If we are still over the sortable, we fake the stop event of the sortable, but also remove helper
-		var inst = $(this).data("draggable"),
-			uiSortable = $.extend({}, ui, { item: inst.element });
-
-		$.each(inst.sortables, function() {
-			if(this.instance.isOver) {
-
-				this.instance.isOver = 0;
-
-				inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance
-				this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work)
-
-				//The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid'
-				if(this.shouldRevert) this.instance.options.revert = true;
-
-				//Trigger the stop of the sortable
-				this.instance._mouseStop(event);
-
-				this.instance.options.helper = this.instance.options._helper;
-
-				//If the helper has been the original item, restore properties in the sortable
-				if(inst.options.helper == 'original')
-					this.instance.currentItem.css({ top: 'auto', left: 'auto' });
-
-			} else {
-				this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance
-				this.instance._trigger("deactivate", event, uiSortable);
-			}
-
-		});
-
-	},
-	drag: function(event, ui) {
-
-		var inst = $(this).data("draggable"), self = this;
-
-		var checkPos = function(o) {
-			var dyClick = this.offset.click.top, dxClick = this.offset.click.left;
-			var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left;
-			var itemHeight = o.height, itemWidth = o.width;
-			var itemTop = o.top, itemLeft = o.left;
-
-			return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth);
-		};
-
-		$.each(inst.sortables, function(i) {
-			
-			//Copy over some variables to allow calling the sortable's native _intersectsWith
-			this.instance.positionAbs = inst.positionAbs;
-			this.instance.helperProportions = inst.helperProportions;
-			this.instance.offset.click = inst.offset.click;
-			
-			if(this.instance._intersectsWith(this.instance.containerCache)) {
-
-				//If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once
-				if(!this.instance.isOver) {
-
-					this.instance.isOver = 1;
-					//Now we fake the start of dragging for the sortable instance,
-					//by cloning the list group item, appending it to the sortable and using it as inst.currentItem
-					//We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one)
-					this.instance.currentItem = $(self).clone().appendTo(this.instance.element).data("sortable-item", true);
-					this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it
-					this.instance.options.helper = function() { return ui.helper[0]; };
-
-					event.target = this.instance.currentItem[0];
-					this.instance._mouseCapture(event, true);
-					this.instance._mouseStart(event, true, true);
-
-					//Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes
-					this.instance.offset.click.top = inst.offset.click.top;
-					this.instance.offset.click.left = inst.offset.click.left;
-					this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left;
-					this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top;
-
-					inst._trigger("toSortable", event);
-					inst.dropped = this.instance.element; //draggable revert needs that
-					//hack so receive/update callbacks work (mostly)
-					inst.currentItem = inst.element;
-					this.instance.fromOutside = inst;
-
-				}
-
-				//Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable
-				if(this.instance.currentItem) this.instance._mouseDrag(event);
-
-			} else {
-
-				//If it doesn't intersect with the sortable, and it intersected before,
-				//we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval
-				if(this.instance.isOver) {
-
-					this.instance.isOver = 0;
-					this.instance.cancelHelperRemoval = true;
-					
-					//Prevent reverting on this forced stop
-					this.instance.options.revert = false;
-					
-					// The out event needs to be triggered independently
-					this.instance._trigger('out', event, this.instance._uiHash(this.instance));
-					
-					this.instance._mouseStop(event, true);
-					this.instance.options.helper = this.instance.options._helper;
-
-					//Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size
-					this.instance.currentItem.remove();
-					if(this.instance.placeholder) this.instance.placeholder.remove();
-
-					inst._trigger("fromSortable", event);
-					inst.dropped = false; //draggable revert needs that
-				}
-
-			};
-
-		});
-
-	}
-});
-
-$.ui.plugin.add("draggable", "cursor", {
-	start: function(event, ui) {
-		var t = $('body'), o = $(this).data('draggable').options;
-		if (t.css("cursor")) o._cursor = t.css("cursor");
-		t.css("cursor", o.cursor);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		if (o._cursor) $('body').css("cursor", o._cursor);
-	}
-});
-
-$.ui.plugin.add("draggable", "iframeFix", {
-	start: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		$(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() {
-			$('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>')
-			.css({
-				width: this.offsetWidth+"px", height: this.offsetHeight+"px",
-				position: "absolute", opacity: "0.001", zIndex: 1000
-			})
-			.css($(this).offset())
-			.appendTo("body");
-		});
-	},
-	stop: function(event, ui) {
-		$("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //Remove frame helpers
-	}
-});
-
-$.ui.plugin.add("draggable", "opacity", {
-	start: function(event, ui) {
-		var t = $(ui.helper), o = $(this).data('draggable').options;
-		if(t.css("opacity")) o._opacity = t.css("opacity");
-		t.css('opacity', o.opacity);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data('draggable').options;
-		if(o._opacity) $(ui.helper).css('opacity', o._opacity);
-	}
-});
-
-$.ui.plugin.add("draggable", "scroll", {
-	start: function(event, ui) {
-		var i = $(this).data("draggable");
-		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset();
-	},
-	drag: function(event, ui) {
-
-		var i = $(this).data("draggable"), o = i.options, scrolled = false;
-
-		if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') {
-
-			if(!o.axis || o.axis != 'x') {
-				if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
-					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed;
-				else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity)
-					i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed;
-			}
-
-			if(!o.axis || o.axis != 'y') {
-				if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
-					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed;
-				else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity)
-					i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed;
-			}
-
-		} else {
-
-			if(!o.axis || o.axis != 'x') {
-				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
-				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
-			}
-
-			if(!o.axis || o.axis != 'y') {
-				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
-				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
-			}
-
-		}
-
-		if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(i, event);
-
-	}
-});
-
-$.ui.plugin.add("draggable", "snap", {
-	start: function(event, ui) {
-
-		var i = $(this).data("draggable"), o = i.options;
-		i.snapElements = [];
-
-		$(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() {
-			var $t = $(this); var $o = $t.offset();
-			if(this != i.element[0]) i.snapElements.push({
-				item: this,
-				width: $t.outerWidth(), height: $t.outerHeight(),
-				top: $o.top, left: $o.left
-			});
-		});
-
-	},
-	drag: function(event, ui) {
-
-		var inst = $(this).data("draggable"), o = inst.options;
-		var d = o.snapTolerance;
-
-		var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width,
-			y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height;
-
-		for (var i = inst.snapElements.length - 1; i >= 0; i--){
-
-			var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width,
-				t = inst.snapElements[i].top, b = t + inst.snapElements[i].height;
-
-			//Yes, I know, this is insane ;)
-			if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) {
-				if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
-				inst.snapElements[i].snapping = false;
-				continue;
-			}
-
-			if(o.snapMode != 'inner') {
-				var ts = Math.abs(t - y2) <= d;
-				var bs = Math.abs(b - y1) <= d;
-				var ls = Math.abs(l - x2) <= d;
-				var rs = Math.abs(r - x1) <= d;
-				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
-				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top;
-				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left;
-				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left;
-			}
-
-			var first = (ts || bs || ls || rs);
-
-			if(o.snapMode != 'outer') {
-				var ts = Math.abs(t - y1) <= d;
-				var bs = Math.abs(b - y2) <= d;
-				var ls = Math.abs(l - x1) <= d;
-				var rs = Math.abs(r - x2) <= d;
-				if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top;
-				if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top;
-				if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left;
-				if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left;
-			}
-
-			if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first))
-				(inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item })));
-			inst.snapElements[i].snapping = (ts || bs || ls || rs || first);
-
-		};
-
-	}
-});
-
-$.ui.plugin.add("draggable", "stack", {
-	start: function(event, ui) {
-
-		var o = $(this).data("draggable").options;
-
-		var group = $.makeArray($(o.stack)).sort(function(a,b) {
-			return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0);
-		});
-		if (!group.length) { return; }
-		
-		var min = parseInt(group[0].style.zIndex) || 0;
-		$(group).each(function(i) {
-			this.style.zIndex = min + i;
-		});
-
-		this[0].style.zIndex = min + group.length;
-
-	}
-});
-
-$.ui.plugin.add("draggable", "zIndex", {
-	start: function(event, ui) {
-		var t = $(ui.helper), o = $(this).data("draggable").options;
-		if(t.css("zIndex")) o._zIndex = t.css("zIndex");
-		t.css('zIndex', o.zIndex);
-	},
-	stop: function(event, ui) {
-		var o = $(this).data("draggable").options;
-		if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex);
-	}
-});
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.droppable.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.droppable.js
deleted file mode 100644
index 7d6b897..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.droppable.js
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * jQuery UI Droppable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.droppable", {
-	widgetEventPrefix: "drop",
-	options: {
-		accept: '*',
-		activeClass: false,
-		addClasses: true,
-		greedy: false,
-		hoverClass: false,
-		scope: 'default',
-		tolerance: 'intersect'
-	},
-	_create: function() {
-
-		var o = this.options, accept = o.accept;
-		this.isover = 0; this.isout = 1;
-
-		this.accept = $.isFunction(accept) ? accept : function(d) {
-			return d.is(accept);
-		};
-
-		//Store the droppable's proportions
-		this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight };
-
-		// Add the reference and positions to the manager
-		$.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || [];
-		$.ui.ddmanager.droppables[o.scope].push(this);
-
-		(o.addClasses && this.element.addClass("ui-droppable"));
-
-	},
-
-	destroy: function() {
-		var drop = $.ui.ddmanager.droppables[this.options.scope];
-		for ( var i = 0; i < drop.length; i++ )
-			if ( drop[i] == this )
-				drop.splice(i, 1);
-
-		this.element
-			.removeClass("ui-droppable ui-droppable-disabled")
-			.removeData("droppable")
-			.unbind(".droppable");
-
-		return this;
-	},
-
-	_setOption: function(key, value) {
-
-		if(key == 'accept') {
-			this.accept = $.isFunction(value) ? value : function(d) {
-				return d.is(value);
-			};
-		}
-		$.Widget.prototype._setOption.apply(this, arguments);
-	},
-
-	_activate: function(event) {
-		var draggable = $.ui.ddmanager.current;
-		if(this.options.activeClass) this.element.addClass(this.options.activeClass);
-		(draggable && this._trigger('activate', event, this.ui(draggable)));
-	},
-
-	_deactivate: function(event) {
-		var draggable = $.ui.ddmanager.current;
-		if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
-		(draggable && this._trigger('deactivate', event, this.ui(draggable)));
-	},
-
-	_over: function(event) {
-
-		var draggable = $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
-		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.hoverClass) this.element.addClass(this.options.hoverClass);
-			this._trigger('over', event, this.ui(draggable));
-		}
-
-	},
-
-	_out: function(event) {
-
-		var draggable = $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element
-
-		if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
-			this._trigger('out', event, this.ui(draggable));
-		}
-
-	},
-
-	_drop: function(event,custom) {
-
-		var draggable = custom || $.ui.ddmanager.current;
-		if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element
-
-		var childrenIntersection = false;
-		this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
-			var inst = $.data(this, 'droppable');
-			if(
-				inst.options.greedy
-				&& !inst.options.disabled
-				&& inst.options.scope == draggable.options.scope
-				&& inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element))
-				&& $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance)
-			) { childrenIntersection = true; return false; }
-		});
-		if(childrenIntersection) return false;
-
-		if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-			if(this.options.activeClass) this.element.removeClass(this.options.activeClass);
-			if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass);
-			this._trigger('drop', event, this.ui(draggable));
-			return this.element;
-		}
-
-		return false;
-
-	},
-
-	ui: function(c) {
-		return {
-			draggable: (c.currentItem || c.element),
-			helper: c.helper,
-			position: c.position,
-			offset: c.positionAbs
-		};
-	}
-
-});
-
-$.extend($.ui.droppable, {
-	version: "1.8.11"
-});
-
-$.ui.intersect = function(draggable, droppable, toleranceMode) {
-
-	if (!droppable.offset) return false;
-
-	var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width,
-		y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height;
-	var l = droppable.offset.left, r = l + droppable.proportions.width,
-		t = droppable.offset.top, b = t + droppable.proportions.height;
-
-	switch (toleranceMode) {
-		case 'fit':
-			return (l <= x1 && x2 <= r
-				&& t <= y1 && y2 <= b);
-			break;
-		case 'intersect':
-			return (l < x1 + (draggable.helperProportions.width / 2) // Right Half
-				&& x2 - (draggable.helperProportions.width / 2) < r // Left Half
-				&& t < y1 + (draggable.helperProportions.height / 2) // Bottom Half
-				&& y2 - (draggable.helperProportions.height / 2) < b ); // Top Half
-			break;
-		case 'pointer':
-			var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left),
-				draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top),
-				isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width);
-			return isOver;
-			break;
-		case 'touch':
-			return (
-					(y1 >= t && y1 <= b) ||	// Top edge touching
-					(y2 >= t && y2 <= b) ||	// Bottom edge touching
-					(y1 < t && y2 > b)		// Surrounded vertically
-				) && (
-					(x1 >= l && x1 <= r) ||	// Left edge touching
-					(x2 >= l && x2 <= r) ||	// Right edge touching
-					(x1 < l && x2 > r)		// Surrounded horizontally
-				);
-			break;
-		default:
-			return false;
-			break;
-		}
-
-};
-
-/*
-	This manager tracks offsets of draggables and droppables
-*/
-$.ui.ddmanager = {
-	current: null,
-	droppables: { 'default': [] },
-	prepareOffsets: function(t, event) {
-
-		var m = $.ui.ddmanager.droppables[t.options.scope] || [];
-		var type = event ? event.type : null; // workaround for #2317
-		var list = (t.currentItem || t.element).find(":data(droppable)").andSelf();
-
-		droppablesLoop: for (var i = 0; i < m.length; i++) {
-
-			if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue;	//No disabled and non-accepted
-			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 };
-
-		}
-
-	},
-	drop: function(draggable, event) {
-
-		var dropped = false;
-		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
-			if(!this.options) return;
-			if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance))
-				dropped = dropped || this._drop.call(this, event);
-
-			if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) {
-				this.isout = 1; this.isover = 0;
-				this._deactivate.call(this, event);
-			}
-
-		});
-		return dropped;
-
-	},
-	drag: function(draggable, event) {
-
-		//If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse.
-		if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event);
-
-		//Run through all droppables and check their positions based on specific tolerance options
-		$.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() {
-
-			if(this.options.disabled || this.greedyChild || !this.visible) return;
-			var intersects = $.ui.intersect(draggable, this, this.options.tolerance);
-
-			var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null);
-			if(!c) return;
-
-			var parentInstance;
-			if (this.options.greedy) {
-				var parent = this.element.parents(':data(droppable):eq(0)');
-				if (parent.length) {
-					parentInstance = $.data(parent[0], 'droppable');
-					parentInstance.greedyChild = (c == 'isover' ? 1 : 0);
-				}
-			}
-
-			// we just moved into a greedy child
-			if (parentInstance && c == 'isover') {
-				parentInstance['isover'] = 0;
-				parentInstance['isout'] = 1;
-				parentInstance._out.call(parentInstance, event);
-			}
-
-			this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0;
-			this[c == "isover" ? "_over" : "_out"].call(this, event);
-
-			// we just moved out of a greedy child
-			if (parentInstance && c == 'isout') {
-				parentInstance['isout'] = 0;
-				parentInstance['isover'] = 1;
-				parentInstance._over.call(parentInstance, event);
-			}
-		});
-
-	}
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.mouse.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.mouse.js
deleted file mode 100644
index b8db85c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.mouse.js
+++ /dev/null
@@ -1,156 +0,0 @@
-/*!
- * jQuery UI Mouse 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.mouse", {
-	options: {
-		cancel: ':input,option',
-		distance: 1,
-		delay: 0
-	},
-	_mouseInit: function() {
-		var self = this;
-
-		this.element
-			.bind('mousedown.'+this.widgetName, function(event) {
-				return self._mouseDown(event);
-			})
-			.bind('click.'+this.widgetName, function(event) {
-				if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) {
-				    $.removeData(event.target, self.widgetName + '.preventClickEvent');
-					event.stopImmediatePropagation();
-					return false;
-				}
-			});
-
-		this.started = false;
-	},
-
-	// TODO: make sure destroying one instance of mouse doesn't mess with
-	// other instances of mouse
-	_mouseDestroy: function() {
-		this.element.unbind('.'+this.widgetName);
-	},
-
-	_mouseDown: function(event) {
-		// don't let more than one widget handle mouseStart
-		// TODO: figure out why we have to use originalEvent
-		event.originalEvent = event.originalEvent || {};
-		if (event.originalEvent.mouseHandled) { return; }
-
-		// we may have missed mouseup (out of window)
-		(this._mouseStarted && this._mouseUp(event));
-
-		this._mouseDownEvent = event;
-
-		var self = this,
-			btnIsLeft = (event.which == 1),
-			elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false);
-		if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) {
-			return true;
-		}
-
-		this.mouseDelayMet = !this.options.delay;
-		if (!this.mouseDelayMet) {
-			this._mouseDelayTimer = setTimeout(function() {
-				self.mouseDelayMet = true;
-			}, this.options.delay);
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted = (this._mouseStart(event) !== false);
-			if (!this._mouseStarted) {
-				event.preventDefault();
-				return true;
-			}
-		}
-
-		// Click event may never have fired (Gecko & Opera)
-		if (true === $.data(event.target, this.widgetName + '.preventClickEvent')) {
-			$.removeData(event.target, this.widgetName + '.preventClickEvent');
-		}
-
-		// these delegates are required to keep context
-		this._mouseMoveDelegate = function(event) {
-			return self._mouseMove(event);
-		};
-		this._mouseUpDelegate = function(event) {
-			return self._mouseUp(event);
-		};
-		$(document)
-			.bind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.bind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		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 && !(document.documentMode >= 9) && !event.button) {
-			return this._mouseUp(event);
-		}
-
-		if (this._mouseStarted) {
-			this._mouseDrag(event);
-			return event.preventDefault();
-		}
-
-		if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) {
-			this._mouseStarted =
-				(this._mouseStart(this._mouseDownEvent, event) !== false);
-			(this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event));
-		}
-
-		return !this._mouseStarted;
-	},
-
-	_mouseUp: function(event) {
-		$(document)
-			.unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate)
-			.unbind('mouseup.'+this.widgetName, this._mouseUpDelegate);
-
-		if (this._mouseStarted) {
-			this._mouseStarted = false;
-
-			if (event.target == this._mouseDownEvent.target) {
-			    $.data(event.target, this.widgetName + '.preventClickEvent', true);
-			}
-
-			this._mouseStop(event);
-		}
-
-		return false;
-	},
-
-	_mouseDistanceMet: function(event) {
-		return (Math.max(
-				Math.abs(this._mouseDownEvent.pageX - event.pageX),
-				Math.abs(this._mouseDownEvent.pageY - event.pageY)
-			) >= this.options.distance
-		);
-	},
-
-	_mouseDelayMet: function(event) {
-		return this.mouseDelayMet;
-	},
-
-	// These are placeholder methods, to be overriden by extending plugin
-	_mouseStart: function(event) {},
-	_mouseDrag: function(event) {},
-	_mouseStop: function(event) {},
-	_mouseCapture: function(event) { return true; }
-});
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.position.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.position.js
deleted file mode 100644
index b66e59e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.position.js
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * jQuery UI Position 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function( $, undefined ) {
-
-$.ui = $.ui || {};
-
-var horizontalPositions = /left|center|right/,
-	verticalPositions = /top|center|bottom/,
-	center = "center",
-	_position = $.fn.position,
-	_offset = $.fn.offset;
-
-$.fn.position = function( options ) {
-	if ( !options || !options.of ) {
-		return _position.apply( this, arguments );
-	}
-
-	// make a copy, we don't want to modify arguments
-	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 ( targetElem.nodeType === 9 ) {
-		targetWidth = target.width();
-		targetHeight = target.height();
-		basePosition = { top: 0, left: 0 };
-	// 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 ( targetElem.preventDefault ) {
-		// force left top to allow flipping
-		options.at = "left top";
-		targetWidth = targetHeight = 0;
-		basePosition = { top: options.of.pageY, left: options.of.pageX };
-	} else {
-		targetWidth = target.outerWidth();
-		targetHeight = target.outerHeight();
-		basePosition = target.offset();
-	}
-
-	// force my and at to have valid horizontal and veritcal positions
-	// if a value is missing or invalid, it will be converted to center 
-	$.each( [ "my", "at" ], function() {
-		var pos = ( options[this] || "" ).split( " " );
-		if ( pos.length === 1) {
-			pos = horizontalPositions.test( pos[0] ) ?
-				pos.concat( [center] ) :
-				verticalPositions.test( pos[0] ) ?
-					[ center ].concat( pos ) :
-					[ center, center ];
-		}
-		pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center;
-		pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center;
-		options[ this ] = pos;
-	});
-
-	// normalize collision option
-	if ( collision.length === 1 ) {
-		collision[ 1 ] = collision[ 0 ];
-	}
-
-	// normalize offset option
-	offset[ 0 ] = parseInt( offset[0], 10 ) || 0;
-	if ( offset.length === 1 ) {
-		offset[ 1 ] = offset[ 0 ];
-	}
-	offset[ 1 ] = parseInt( offset[1], 10 ) || 0;
-
-	if ( options.at[0] === "right" ) {
-		basePosition.left += targetWidth;
-	} else if ( options.at[0] === center ) {
-		basePosition.left += targetWidth / 2;
-	}
-
-	if ( options.at[1] === "bottom" ) {
-		basePosition.top += targetHeight;
-	} else if ( options.at[1] === center ) {
-		basePosition.top += targetHeight / 2;
-	}
-
-	basePosition.left += offset[ 0 ];
-	basePosition.top += offset[ 1 ];
-
-	return this.each(function() {
-		var elem = $( this ),
-			elemWidth = elem.outerWidth(),
-			elemHeight = elem.outerHeight(),
-			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] === center ) {
-			position.left -= elemWidth / 2;
-		}
-
-		if ( options.my[1] === "bottom" ) {
-			position.top -= elemHeight;
-		} 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, {
-					targetWidth: targetWidth,
-					targetHeight: targetHeight,
-					elemWidth: elemWidth,
-					elemHeight: elemHeight,
-					collisionPosition: collisionPosition,
-					collisionWidth: collisionWidth,
-					collisionHeight: collisionHeight,
-					offset: offset,
-					my: options.my,
-					at: options.at
-				});
-			}
-		});
-
-		if ( $.fn.bgiframe ) {
-			elem.bgiframe();
-		}
-		elem.offset( $.extend( position, { using: options.using } ) );
-	});
-};
-
-$.ui.position = {
-	fit: {
-		left: function( position, data ) {
-			var win = $( window ),
-				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 = 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 ) {
-				return;
-			}
-			var win = $( window ),
-				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 += data.collisionPosition.left < 0 ?
-				myOffset + atOffset + offset :
-				over > 0 ?
-					myOffset + atOffset + offset :
-					0;
-		},
-		top: function( position, data ) {
-			if ( data.at[1] === center ) {
-				return;
-			}
-			var win = $( window ),
-				over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(),
-				myOffset = data.my[ 1 ] === "top" ?
-					-data.elemHeight :
-					data.my[ 1 ] === "bottom" ?
-						data.elemHeight :
-						0,
-				atOffset = data.at[ 1 ] === "top" ?
-					data.targetHeight :
-					-data.targetHeight,
-				offset = -2 * data.offset[ 1 ];
-			position.top += data.collisionPosition.top < 0 ?
-				myOffset + atOffset + offset :
-				over > 0 ?
-					myOffset + atOffset + offset :
-					0;
-		}
-	}
-};
-
-// offset setter from jQuery 1.4
-if ( !$.offset.setOffset ) {
-	$.offset.setOffset = function( elem, options ) {
-		// set position first, in-case top/left are set even on static elem
-		if ( /static/.test( $.curCSS( elem, "position" ) ) ) {
-			elem.style.position = "relative";
-		}
-		var curElem   = $( elem ),
-			curOffset = curElem.offset(),
-			curTop    = parseInt( $.curCSS( elem, "top",  true ), 10 ) || 0,
-			curLeft   = parseInt( $.curCSS( elem, "left", true ), 10)  || 0,
-			props     = {
-				top:  (options.top  - curOffset.top)  + curTop,
-				left: (options.left - curOffset.left) + curLeft
-			};
-		
-		if ( 'using' in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	};
-
-	$.fn.offset = function( options ) {
-		var elem = this[ 0 ];
-		if ( !elem || !elem.ownerDocument ) { return null; }
-		if ( options ) { 
-			return this.each(function() {
-				$.offset.setOffset( this, options );
-			});
-		}
-		return _offset.call( this );
-	};
-}
-
-}( jQuery ));
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.progressbar.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.progressbar.js
deleted file mode 100644
index c432132..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.progressbar.js
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget( "ui.progressbar", {
-	options: {
-		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.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();
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" )
-			.removeAttr( "role" )
-			.removeAttr( "aria-valuemin" )
-			.removeAttr( "aria-valuemax" )
-			.removeAttr( "aria-valuenow" );
-
-		this.valueDiv.remove();
-
-		$.Widget.prototype.destroy.apply( this, arguments );
-	},
-
-	value: function( newValue ) {
-		if ( newValue === undefined ) {
-			return this._value();
-		}
-
-		this._setOption( "value", newValue );
-		return this;
-	},
-
-	_setOption: function( key, value ) {
-		if ( key === "value" ) {
-			this.options.value = value;
-			this._refreshValue();
-			if ( this._value() === this.options.max ) {
-				this._trigger( "complete" );
-			}
-		}
-
-		$.Widget.prototype._setOption.apply( this, arguments );
-	},
-
-	_value: function() {
-		var val = this.options.value;
-		// normalize invalid value
-		if ( typeof val !== "number" ) {
-			val = 0;
-		}
-		return Math.min( this.options.max, Math.max( this.min, val ) );
-	},
-
-	_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
-			.toggleClass( "ui-corner-right", value === this.options.max )
-			.width( percentage.toFixed(0) + "%" );
-		this.element.attr( "aria-valuenow", value );
-	}
-});
-
-$.extend( $.ui.progressbar, {
-	version: "1.8.11"
-});
-
-})( jQuery );
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.resizable.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.resizable.js
deleted file mode 100644
index 1d1c906..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.resizable.js
+++ /dev/null
@@ -1,812 +0,0 @@
-/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.resizable", $.ui.mouse, {
-	widgetEventPrefix: "resize",
-	options: {
-		alsoResize: false,
-		animate: false,
-		animateDuration: "slow",
-		animateEasing: "swing",
-		aspectRatio: false,
-		autoHide: false,
-		containment: false,
-		ghost: false,
-		grid: false,
-		handles: "e,s,se",
-		helper: false,
-		maxHeight: null,
-		maxWidth: null,
-		minHeight: 10,
-		minWidth: 10,
-		zIndex: 1000
-	},
-	_create: function() {
-
-		var self = this, o = this.options;
-		this.element.addClass("ui-resizable");
-
-		$.extend(this, {
-			_aspectRatio: !!(o.aspectRatio),
-			aspectRatio: o.aspectRatio,
-			originalElement: this.element,
-			_proportionallyResizeElements: [],
-			_helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null
-		});
-
-		//Wrap the element if it cannot hold child nodes
-		if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
-
-			//Opera fix for relative positioning
-			if (/relative/.test(this.element.css('position')) && $.browser.opera)
-				this.element.css({ position: 'relative', top: 'auto', left: 'auto' });
-
-			//Create a wrapper element and set the wrapper to the new current internal element
-			this.element.wrap(
-				$('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({
-					position: this.element.css('position'),
-					width: this.element.outerWidth(),
-					height: this.element.outerHeight(),
-					top: this.element.css('top'),
-					left: this.element.css('left')
-				})
-			);
-
-			//Overwrite the original this.element
-			this.element = this.element.parent().data(
-				"resizable", this.element.data('resizable')
-			);
-
-			this.elementIsWrapper = true;
-
-			//Move margins to the wrapper
-			this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") });
-			this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0});
-
-			//Prevent Safari textarea resize
-			this.originalResizeStyle = this.originalElement.css('resize');
-			this.originalElement.css('resize', 'none');
-
-			//Push the actual element to our proportionallyResize internal array
-			this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' }));
-
-			// avoid IE jump (hard set the margin)
-			this.originalElement.css({ margin: this.originalElement.css('margin') });
-
-			// fix handlers offset
-			this._proportionallyResize();
-
-		}
-
-		this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' });
-		if(this.handles.constructor == String) {
-
-			if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw';
-			var n = this.handles.split(","); this.handles = {};
-
-			for(var i = 0; i < n.length; i++) {
-
-				var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle;
-				var axis = $('<div class="ui-resizable-handle ' + hname + '"></div>');
-
-				// increase zIndex of sw, se, ne, nw axis
-				//TODO : this modifies original option
-				if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex });
-
-				//TODO : What's going on here?
-				if ('se' == handle) {
-					axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se');
-				};
-
-				//Insert into internal handles object and append to element
-				this.handles[handle] = '.ui-resizable-'+handle;
-				this.element.append(axis);
-			}
-
-		}
-
-		this._renderAxis = function(target) {
-
-			target = target || this.element;
-
-			for(var i in this.handles) {
-
-				if(this.handles[i].constructor == String)
-					this.handles[i] = $(this.handles[i], this.element).show();
-
-				//Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls)
-				if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) {
-
-					var axis = $(this.handles[i], this.element), padWrapper = 0;
-
-					//Checking the correct pad and border
-					padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth();
-
-					//The padding type i have to apply...
-					var padPos = [ 'padding',
-						/ne|nw|n/.test(i) ? 'Top' :
-						/se|sw|s/.test(i) ? 'Bottom' :
-						/^e$/.test(i) ? 'Right' : 'Left' ].join("");
-
-					target.css(padPos, padWrapper);
-
-					this._proportionallyResize();
-
-				}
-
-				//TODO: What's that good for? There's not anything to be executed left
-				if(!$(this.handles[i]).length)
-					continue;
-
-			}
-		};
-
-		//TODO: make renderAxis a prototype function
-		this._renderAxis(this.element);
-
-		this._handles = $('.ui-resizable-handle', this.element)
-			.disableSelection();
-
-		//Matching axis name
-		this._handles.mouseover(function() {
-			if (!self.resizing) {
-				if (this.className)
-					var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);
-				//Axis, default = se
-				self.axis = axis && axis[1] ? axis[1] : 'se';
-			}
-		});
-
-		//If we want to auto hide the elements
-		if (o.autoHide) {
-			this._handles.hide();
-			$(this.element)
-				.addClass("ui-resizable-autohide")
-				.hover(function() {
-					$(this).removeClass("ui-resizable-autohide");
-					self._handles.show();
-				},
-				function(){
-					if (!self.resizing) {
-						$(this).addClass("ui-resizable-autohide");
-						self._handles.hide();
-					}
-				});
-		}
-
-		//Initialize the mouse interaction
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-
-		this._mouseDestroy();
-
-		var _destroy = function(exp) {
-			$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
-				.removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove();
-		};
-
-		//TODO: Unwrap at same DOM position
-		if (this.elementIsWrapper) {
-			_destroy(this.element);
-			var wrapper = this.element;
-			wrapper.after(
-				this.originalElement.css({
-					position: wrapper.css('position'),
-					width: wrapper.outerWidth(),
-					height: wrapper.outerHeight(),
-					top: wrapper.css('top'),
-					left: wrapper.css('left')
-				})
-			).remove();
-		}
-
-		this.originalElement.css('resize', this.originalResizeStyle);
-		_destroy(this.originalElement);
-
-		return this;
-	},
-
-	_mouseCapture: function(event) {
-		var handle = false;
-		for (var i in this.handles) {
-			if ($(this.handles[i])[0] == event.target) {
-				handle = true;
-			}
-		}
-
-		return !this.options.disabled && handle;
-	},
-
-	_mouseStart: function(event) {
-
-		var o = this.options, iniPos = this.element.position(), el = this.element;
-
-		this.resizing = true;
-		this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() };
-
-		// bugfix for http://dev.jquery.com/ticket/1749
-		if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) {
-			el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left });
-		}
-
-		//Opera fixing relative position
-		if ($.browser.opera && (/relative/).test(el.css('position')))
-			el.css({ position: 'relative', top: 'auto', left: 'auto' });
-
-		this._renderProxy();
-
-		var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top'));
-
-		if (o.containment) {
-			curleft += $(o.containment).scrollLeft() || 0;
-			curtop += $(o.containment).scrollTop() || 0;
-		}
-
-		//Store needed variables
-		this.offset = this.helper.offset();
-		this.position = { left: curleft, top: curtop };
-		this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
-		this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() };
-		this.originalPosition = { left: curleft, top: curtop };
-		this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() };
-		this.originalMousePosition = { left: event.pageX, top: event.pageY };
-
-		//Aspect Ratio
-		this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1);
-
-	    var cursor = $('.ui-resizable-' + this.axis).css('cursor');
-	    $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor);
-
-		el.addClass("ui-resizable-resizing");
-		this._propagate("start", event);
-		return true;
-	},
-
-	_mouseDrag: function(event) {
-
-		//Increase performance, avoid regex
-		var el = this.helper, o = this.options, props = {},
-			self = this, smp = this.originalMousePosition, a = this.axis;
-
-		var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0;
-		var trigger = this._change[a];
-		if (!trigger) return false;
-
-		// Calculate the attrs that will be change
-		var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff;
-
-		if (this._aspectRatio || event.shiftKey)
-			data = this._updateRatio(data, event);
-
-		data = this._respectSize(data, event);
-
-		// plugins callbacks need to be called first
-		this._propagate("resize", event);
-
-		el.css({
-			top: this.position.top + "px", left: this.position.left + "px",
-			width: this.size.width + "px", height: this.size.height + "px"
-		});
-
-		if (!this._helper && this._proportionallyResizeElements.length)
-			this._proportionallyResize();
-
-		this._updateCache(data);
-
-		// calling the user callback at the end
-		this._trigger('resize', event, this.ui());
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-
-		this.resizing = false;
-		var o = this.options, self = this;
-
-		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;
-
-			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;
-
-			if (!o.animate)
-				this.element.css($.extend(s, { top: top, left: left }));
-
-			self.helper.height(self.size.height);
-			self.helper.width(self.size.width);
-
-			if (this._helper && !o.animate) this._proportionallyResize();
-		}
-
-		$('body').css('cursor', 'auto');
-
-		this.element.removeClass("ui-resizable-resizing");
-
-		this._propagate("stop", event);
-
-		if (this._helper) this.helper.remove();
-		return false;
-
-	},
-
-	_updateCache: function(data) {
-		var o = this.options;
-		this.offset = this.helper.offset();
-		if (isNumber(data.left)) this.position.left = data.left;
-		if (isNumber(data.top)) this.position.top = data.top;
-		if (isNumber(data.height)) this.size.height = data.height;
-		if (isNumber(data.width)) this.size.width = data.width;
-	},
-
-	_updateRatio: function(data, event) {
-
-		var o = this.options, cpos = this.position, csize = this.size, a = this.axis;
-
-		if (data.height) data.width = (csize.height * this.aspectRatio);
-		else if (data.width) data.height = (csize.width / this.aspectRatio);
-
-		if (a == 'sw') {
-			data.left = cpos.left + (csize.width - data.width);
-			data.top = null;
-		}
-		if (a == 'nw') {
-			data.top = cpos.top + (csize.height - data.height);
-			data.left = cpos.left + (csize.width - data.width);
-		}
-
-		return data;
-	},
-
-	_respectSize: function(data, event) {
-
-		var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis,
-				ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height),
-					isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height);
-
-		if (isminw) data.width = o.minWidth;
-		if (isminh) data.height = o.minHeight;
-		if (ismaxw) data.width = o.maxWidth;
-		if (ismaxh) data.height = o.maxHeight;
-
-		var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height;
-		var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a);
-
-		if (isminw && cw) data.left = dw - o.minWidth;
-		if (ismaxw && cw) data.left = dw - o.maxWidth;
-		if (isminh && ch)	data.top = dh - o.minHeight;
-		if (ismaxh && ch)	data.top = dh - o.maxHeight;
-
-		// fixing jump error on top/left - bug #2330
-		var isNotwh = !data.width && !data.height;
-		if (isNotwh && !data.left && data.top) data.top = null;
-		else if (isNotwh && !data.top && data.left) data.left = null;
-
-		return data;
-	},
-
-	_proportionallyResize: function() {
-
-		var o = this.options;
-		if (!this._proportionallyResizeElements.length) return;
-		var element = this.helper || this.element;
-
-		for (var i=0; i < this._proportionallyResizeElements.length; i++) {
-
-			var prel = this._proportionallyResizeElements[i];
-
-			if (!this.borderDif) {
-				var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')],
-					p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')];
-
-				this.borderDif = $.map(b, function(v, i) {
-					var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0;
-					return border + padding;
-				});
-			}
-
-			if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length)))
-				continue;
-
-			prel.css({
-				height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0,
-				width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0
-			});
-
-		};
-
-	},
-
-	_renderProxy: function() {
-
-		var el = this.element, o = this.options;
-		this.elementOffset = el.offset();
-
-		if(this._helper) {
-
-			this.helper = this.helper || $('<div style="overflow:hidden;"></div>');
-
-			// fix ie6 offset TODO: This seems broken
-			var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0),
-			pxyoffset = ( ie6 ? 2 : -1 );
-
-			this.helper.addClass(this._helper).css({
-				width: this.element.outerWidth() + pxyoffset,
-				height: this.element.outerHeight() + pxyoffset,
-				position: 'absolute',
-				left: this.elementOffset.left - ie6offset +'px',
-				top: this.elementOffset.top - ie6offset +'px',
-				zIndex: ++o.zIndex //TODO: Don't modify option
-			});
-
-			this.helper
-				.appendTo("body")
-				.disableSelection();
-
-		} else {
-			this.helper = this.element;
-		}
-
-	},
-
-	_change: {
-		e: function(event, dx, dy) {
-			return { width: this.originalSize.width + dx };
-		},
-		w: function(event, dx, dy) {
-			var o = this.options, cs = this.originalSize, sp = this.originalPosition;
-			return { left: sp.left + dx, width: cs.width - dx };
-		},
-		n: function(event, dx, dy) {
-			var o = this.options, cs = this.originalSize, sp = this.originalPosition;
-			return { top: sp.top + dy, height: cs.height - dy };
-		},
-		s: function(event, dx, dy) {
-			return { height: this.originalSize.height + dy };
-		},
-		se: function(event, dx, dy) {
-			return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
-		},
-		sw: function(event, dx, dy) {
-			return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
-		},
-		ne: function(event, dx, dy) {
-			return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy]));
-		},
-		nw: function(event, dx, dy) {
-			return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy]));
-		}
-	},
-
-	_propagate: function(n, event) {
-		$.ui.plugin.call(this, n, [event, this.ui()]);
-		(n != "resize" && this._trigger(n, event, this.ui()));
-	},
-
-	plugins: {},
-
-	ui: function() {
-		return {
-			originalElement: this.originalElement,
-			element: this.element,
-			helper: this.helper,
-			position: this.position,
-			size: this.size,
-			originalSize: this.originalSize,
-			originalPosition: this.originalPosition
-		};
-	}
-
-});
-
-$.extend($.ui.resizable, {
-	version: "1.8.11"
-});
-
-/*
- * Resizable Extensions
- */
-
-$.ui.plugin.add("resizable", "alsoResize", {
-
-	start: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		var _store = function (exp) {
-			$(exp).each(function() {
-				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) { _store(exp); }); }
-		}else{
-			_store(o.alsoResize);
-		}
-	},
-
-	resize: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition;
-
-		var delta = {
-			height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0,
-			top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0
-		},
-
-		_alsoResize = function (exp, c) {
-			$(exp).each(function() {
-				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, function (i, prop) {
-					var sum = (start[prop]||0) + (delta[prop]||0);
-					if (sum && sum >= 0)
-						style[prop] = sum || null;
-				});
-
-				// Opera fixing relative position
-				if ($.browser.opera && /relative/.test(el.css('position'))) {
-					self._revertToRelativePosition = true;
-					el.css({ position: 'absolute', top: 'auto', left: 'auto' });
-				}
-
-				el.css(style);
-			});
-		};
-
-		if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-			$.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); });
-		}else{
-			_alsoResize(o.alsoResize);
-		}
-	},
-
-	stop: function (event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		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;
-			if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) {
-				$.each(o.alsoResize, function (exp) { _reset(exp); });
-			}else{
-				_reset(o.alsoResize);
-			}
-		}
-
-		$(this).removeData("resizable-alsoresize");
-	}
-});
-
-$.ui.plugin.add("resizable", "animate", {
-
-	stop: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options;
-
-		var pr = self._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;
-
-		var style = { width: (self.size.width - soffsetw), height: (self.size.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;
-
-		self.element.animate(
-			$.extend(style, top && left ? { top: top, left: left } : {}), {
-				duration: o.animateDuration,
-				easing: o.animateEasing,
-				step: function() {
-
-					var data = {
-						width: parseInt(self.element.css('width'), 10),
-						height: parseInt(self.element.css('height'), 10),
-						top: parseInt(self.element.css('top'), 10),
-						left: parseInt(self.element.css('left'), 10)
-					};
-
-					if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height });
-
-					// propagating resize, and updating values for each animation step
-					self._updateCache(data);
-					self._propagate("resize", event);
-
-				}
-			}
-		);
-	}
-
-});
-
-$.ui.plugin.add("resizable", "containment", {
-
-	start: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options, el = self.element;
-		var oc = o.containment,	ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc;
-		if (!ce) return;
-
-		self.containerElement = $(ce);
-
-		if (/document/.test(oc) || oc == document) {
-			self.containerOffset = { left: 0, top: 0 };
-			self.containerPosition = { left: 0, top: 0 };
-
-			self.parentData = {
-				element: $(document), left: 0, top: 0,
-				width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight
-			};
-		}
-
-		// i'm a node, so compute top, left, right, bottom
-		else {
-			var element = $(ce), p = [];
-			$([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); });
-
-			self.containerOffset = element.offset();
-			self.containerPosition = element.position();
-			self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) };
-
-			var co = self.containerOffset, ch = self.containerSize.height,	cw = self.containerSize.width,
-						width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch);
-
-			self.parentData = {
-				element: ce, left: co.left, top: co.top, width: width, height: height
-			};
-		}
-	},
-
-	resize: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options,
-				ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position,
-				pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement;
-
-		if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co;
-
-		if (cp.left < (self._helper ? co.left : 0)) {
-			self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left));
-			if (pRatio) self.size.height = self.size.width / o.aspectRatio;
-			self.position.left = o.helper ? co.left : 0;
-		}
-
-		if (cp.top < (self._helper ? co.top : 0)) {
-			self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top);
-			if (pRatio) self.size.width = self.size.height * o.aspectRatio;
-			self.position.top = self._helper ? co.top : 0;
-		}
-
-		self.offset.left = self.parentData.left+self.position.left;
-		self.offset.top = self.parentData.top+self.position.top;
-
-		var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ),
-					hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height );
-
-		var isParent = self.containerElement.get(0) == self.element.parent().get(0),
-		    isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position'));
-
-		if(isParent && isOffsetRelative) woset -= self.parentData.left;
-
-		if (woset + self.size.width >= self.parentData.width) {
-			self.size.width = self.parentData.width - woset;
-			if (pRatio) self.size.height = self.size.width / self.aspectRatio;
-		}
-
-		if (hoset + self.size.height >= self.parentData.height) {
-			self.size.height = self.parentData.height - hoset;
-			if (pRatio) self.size.width = self.size.height * self.aspectRatio;
-		}
-	},
-
-	stop: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options, cp = self.position,
-				co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement;
-
-		var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height;
-
-		if (self._helper && !o.animate && (/relative/).test(ce.css('position')))
-			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
-		if (self._helper && !o.animate && (/static/).test(ce.css('position')))
-			$(this).css({ left: ho.left - cop.left - co.left, width: w, height: h });
-
-	}
-});
-
-$.ui.plugin.add("resizable", "ghost", {
-
-	start: function(event, ui) {
-
-		var self = $(this).data("resizable"), o = self.options, cs = self.size;
-
-		self.ghost = self.originalElement.clone();
-		self.ghost
-			.css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 })
-			.addClass('ui-resizable-ghost')
-			.addClass(typeof o.ghost == 'string' ? o.ghost : '');
-
-		self.ghost.appendTo(self.helper);
-
-	},
-
-	resize: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options;
-		if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width });
-	},
-
-	stop: function(event, ui){
-		var self = $(this).data("resizable"), o = self.options;
-		if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0));
-	}
-
-});
-
-$.ui.plugin.add("resizable", "grid", {
-
-	resize: function(event, ui) {
-		var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey;
-		o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid;
-		var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1);
-
-		if (/^(se|s|e)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-		}
-		else if (/^(ne)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.top = op.top - oy;
-		}
-		else if (/^(sw)$/.test(a)) {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.left = op.left - ox;
-		}
-		else {
-			self.size.width = os.width + ox;
-			self.size.height = os.height + oy;
-			self.position.top = op.top - oy;
-			self.position.left = op.left - ox;
-		}
-	}
-
-});
-
-var num = function(v) {
-	return parseInt(v, 10) || 0;
-};
-
-var isNumber = function(value) {
-	return !isNaN(parseInt(value, 10));
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.selectable.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.selectable.js
deleted file mode 100644
index e3b9132..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.selectable.js
+++ /dev/null
@@ -1,266 +0,0 @@
-/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.selectable", $.ui.mouse, {
-	options: {
-		appendTo: 'body',
-		autoRefresh: true,
-		distance: 0,
-		filter: '*',
-		tolerance: 'touch'
-	},
-	_create: function() {
-		var self = this;
-
-		this.element.addClass("ui-selectable");
-
-		this.dragged = false;
-
-		// cache selectee children based on filter
-		var selectees;
-		this.refresh = function() {
-			selectees = $(self.options.filter, self.element[0]);
-			selectees.each(function() {
-				var $this = $(this);
-				var pos = $this.offset();
-				$.data(this, "selectable-item", {
-					element: this,
-					$element: $this,
-					left: pos.left,
-					top: pos.top,
-					right: pos.left + $this.outerWidth(),
-					bottom: pos.top + $this.outerHeight(),
-					startselected: false,
-					selected: $this.hasClass('ui-selected'),
-					selecting: $this.hasClass('ui-selecting'),
-					unselecting: $this.hasClass('ui-unselecting')
-				});
-			});
-		};
-		this.refresh();
-
-		this.selectees = selectees.addClass("ui-selectee");
-
-		this._mouseInit();
-
-		this.helper = $("<div class='ui-selectable-helper'></div>");
-	},
-
-	destroy: function() {
-		this.selectees
-			.removeClass("ui-selectee")
-			.removeData("selectable-item");
-		this.element
-			.removeClass("ui-selectable ui-selectable-disabled")
-			.removeData("selectable")
-			.unbind(".selectable");
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_mouseStart: function(event) {
-		var self = this;
-
-		this.opos = [event.pageX, event.pageY];
-
-		if (this.options.disabled)
-			return;
-
-		var options = this.options;
-
-		this.selectees = $(options.filter, this.element[0]);
-
-		this._trigger("start", event);
-
-		$(options.appendTo).append(this.helper);
-		// position helper (lasso)
-		this.helper.css({
-			"left": event.clientX,
-			"top": event.clientY,
-			"width": 0,
-			"height": 0
-		});
-
-		if (options.autoRefresh) {
-			this.refresh();
-		}
-
-		this.selectees.filter('.ui-selected').each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.startselected = true;
-			if (!event.metaKey) {
-				selectee.$element.removeClass('ui-selected');
-				selectee.selected = false;
-				selectee.$element.addClass('ui-unselecting');
-				selectee.unselecting = true;
-				// selectable UNSELECTING callback
-				self._trigger("unselecting", event, {
-					unselecting: selectee.element
-				});
-			}
-		});
-
-		$(event.target).parents().andSelf().each(function() {
-			var selectee = $.data(this, "selectable-item");
-			if (selectee) {
-				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;
-			}
-		});
-
-	},
-
-	_mouseDrag: function(event) {
-		var self = this;
-		this.dragged = true;
-
-		if (this.options.disabled)
-			return;
-
-		var options = this.options;
-
-		var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
-		if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
-		if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
-		this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
-
-		this.selectees.each(function() {
-			var selectee = $.data(this, "selectable-item");
-			//prevent helper from being selected if appendTo: selectable
-			if (!selectee || selectee.element == self.element[0])
-				return;
-			var hit = false;
-			if (options.tolerance == 'touch') {
-				hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
-			} else if (options.tolerance == 'fit') {
-				hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
-			}
-
-			if (hit) {
-				// SELECT
-				if (selectee.selected) {
-					selectee.$element.removeClass('ui-selected');
-					selectee.selected = false;
-				}
-				if (selectee.unselecting) {
-					selectee.$element.removeClass('ui-unselecting');
-					selectee.unselecting = false;
-				}
-				if (!selectee.selecting) {
-					selectee.$element.addClass('ui-selecting');
-					selectee.selecting = true;
-					// selectable SELECTING callback
-					self._trigger("selecting", event, {
-						selecting: selectee.element
-					});
-				}
-			} else {
-				// UNSELECT
-				if (selectee.selecting) {
-					if (event.metaKey && selectee.startselected) {
-						selectee.$element.removeClass('ui-selecting');
-						selectee.selecting = false;
-						selectee.$element.addClass('ui-selected');
-						selectee.selected = true;
-					} else {
-						selectee.$element.removeClass('ui-selecting');
-						selectee.selecting = false;
-						if (selectee.startselected) {
-							selectee.$element.addClass('ui-unselecting');
-							selectee.unselecting = true;
-						}
-						// selectable UNSELECTING callback
-						self._trigger("unselecting", event, {
-							unselecting: selectee.element
-						});
-					}
-				}
-				if (selectee.selected) {
-					if (!event.metaKey && !selectee.startselected) {
-						selectee.$element.removeClass('ui-selected');
-						selectee.selected = false;
-
-						selectee.$element.addClass('ui-unselecting');
-						selectee.unselecting = true;
-						// selectable UNSELECTING callback
-						self._trigger("unselecting", event, {
-							unselecting: selectee.element
-						});
-					}
-				}
-			}
-		});
-
-		return false;
-	},
-
-	_mouseStop: function(event) {
-		var self = this;
-
-		this.dragged = false;
-
-		var options = this.options;
-
-		$('.ui-unselecting', this.element[0]).each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.$element.removeClass('ui-unselecting');
-			selectee.unselecting = false;
-			selectee.startselected = false;
-			self._trigger("unselected", event, {
-				unselected: selectee.element
-			});
-		});
-		$('.ui-selecting', this.element[0]).each(function() {
-			var selectee = $.data(this, "selectable-item");
-			selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
-			selectee.selecting = false;
-			selectee.selected = true;
-			selectee.startselected = true;
-			self._trigger("selected", event, {
-				selected: selectee.element
-			});
-		});
-		this._trigger("stop", event);
-
-		this.helper.remove();
-
-		return false;
-	}
-
-});
-
-$.extend($.ui.selectable, {
-	version: "1.8.11"
-});
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.slider.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.slider.js
deleted file mode 100644
index f02a922..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.slider.js
+++ /dev/null
@@ -1,682 +0,0 @@
-/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-// number of pages in a slider
-// (how many times can you page up/down to go through the whole range)
-var numPages = 5;
-
-$.widget( "ui.slider", $.ui.mouse, {
-
-	widgetEventPrefix: "slide",
-
-	options: {
-		animate: false,
-		distance: 0,
-		max: 100,
-		min: 0,
-		orientation: "horizontal",
-		range: false,
-		step: 1,
-		value: 0,
-		values: null
-	},
-
-	_create: function() {
-		var self = this,
-			o = this.options;
-
-		this._keySliding = false;
-		this._mouseSliding = false;
-		this._animateOff = true;
-		this._handleIndex = null;
-		this._detectOrientation();
-		this._mouseInit();
-
-		this.element
-			.addClass( "ui-slider" +
-				" ui-slider-" + this.orientation +
-				" ui-widget" +
-				" ui-widget-content" +
-				" ui-corner-all" );
-		
-		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] ];
-				}
-			} else {
-				this.range = $( "<div></div>" );
-			}
-
-			this.range
-				.appendTo( this.element )
-				.addClass( "ui-slider-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" );
-		}
-
-		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" );
-			}
-		}
-
-		this.handles = $( ".ui-slider-handle", this.element )
-			.addClass( "ui-state-default" +
-				" ui-corner-all" );
-
-		this.handle = this.handles.eq( 0 );
-
-		this.handles.add( this.range ).filter( "a" )
-			.click(function( event ) {
-				event.preventDefault();
-			})
-			.hover(function() {
-				if ( !o.disabled ) {
-					$( this ).addClass( "ui-state-hover" );
-				}
-			}, function() {
-				$( this ).removeClass( "ui-state-hover" );
-			})
-			.focus(function() {
-				if ( !o.disabled ) {
-					$( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
-					$( this ).addClass( "ui-state-focus" );
-				} else {
-					$( this ).blur();
-				}
-			})
-			.blur(function() {
-				$( this ).removeClass( "ui-state-focus" );
-			});
-
-		this.handles.each(function( i ) {
-			$( this ).data( "index.ui-slider-handle", i );
-		});
-
-		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" );
-
-		this._mouseDestroy();
-
-		return this;
-	},
-
-	_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(),
-			height: this.element.outerHeight()
-		};
-		this.elementOffset = this.element.offset();
-
-		position = { x: event.pageX, y: event.pageY };
-		normValue = this._normValueFromMouse( position );
-		distance = this._valueMax() - this._valueMin() + 1;
-		self = this;
-		this.handles.each(function( i ) {
-			var thisDistance = Math.abs( normValue - self.values(i) );
-			if ( distance > thisDistance ) {
-				distance = thisDistance;
-				closestHandle = $( this );
-				index = i;
-			}
-		});
-
-		// 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 ) {
-			index += 1;
-			closestHandle = $( this.handles[index] );
-		}
-
-		allowed = this._start( event, index );
-		if ( allowed === false ) {
-			return false;
-		}
-		this._mouseSliding = true;
-
-		self._handleIndex = index;
-
-		closestHandle
-			.addClass( "ui-state-active" )
-			.focus();
-		
-		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)
-		};
-
-		if ( !this.handles.hasClass( "ui-state-hover" ) ) {
-			this._slide( event, index, normValue );
-		}
-		this._animateOff = true;
-		return true;
-	},
-
-	_mouseStart: function( event ) {
-		return true;
-	},
-
-	_mouseDrag: function( event ) {
-		var position = { x: event.pageX, y: event.pageY },
-			normValue = this._normValueFromMouse( position );
-		
-		this._slide( event, this._handleIndex, normValue );
-
-		return false;
-	},
-
-	_mouseStop: function( event ) {
-		this.handles.removeClass( "ui-state-active" );
-		this._mouseSliding = false;
-
-		this._stop( event, this._handleIndex );
-		this._change( event, this._handleIndex );
-
-		this._handleIndex = null;
-		this._clickOffset = null;
-		this._animateOff = false;
-
-		return false;
-	},
-	
-	_detectOrientation: function() {
-		this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
-	},
-
-	_normValueFromMouse: function( position ) {
-		var pixelTotal,
-			pixelMouse,
-			percentMouse,
-			valueTotal,
-			valueMouse;
-
-		if ( this.orientation === "horizontal" ) {
-			pixelTotal = this.elementSize.width;
-			pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
-		} else {
-			pixelTotal = this.elementSize.height;
-			pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
-		}
-
-		percentMouse = ( pixelMouse / pixelTotal );
-		if ( percentMouse > 1 ) {
-			percentMouse = 1;
-		}
-		if ( percentMouse < 0 ) {
-			percentMouse = 0;
-		}
-		if ( this.orientation === "vertical" ) {
-			percentMouse = 1 - percentMouse;
-		}
-
-		valueTotal = this._valueMax() - this._valueMin();
-		valueMouse = this._valueMin() + percentMouse * valueTotal;
-
-		return this._trimAlignValue( valueMouse );
-	},
-
-	_start: function( event, index ) {
-		var uiHash = {
-			handle: this.handles[ index ],
-			value: this.value()
-		};
-		if ( this.options.values && this.options.values.length ) {
-			uiHash.value = this.values( index );
-			uiHash.values = this.values();
-		}
-		return this._trigger( "start", event, uiHash );
-	},
-
-	_slide: function( event, index, newVal ) {
-		var otherVal,
-			newValues,
-			allowed;
-
-		if ( this.options.values && this.options.values.length ) {
-			otherVal = this.values( index ? 0 : 1 );
-
-			if ( ( this.options.values.length === 2 && this.options.range === true ) && 
-					( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
-				) {
-				newVal = otherVal;
-			}
-
-			if ( newVal !== this.values( index ) ) {
-				newValues = this.values();
-				newValues[ index ] = newVal;
-				// A slide can be canceled by returning false from the slide callback
-				allowed = this._trigger( "slide", event, {
-					handle: this.handles[ index ],
-					value: newVal,
-					values: newValues
-				} );
-				otherVal = this.values( index ? 0 : 1 );
-				if ( allowed !== false ) {
-					this.values( index, newVal, true );
-				}
-			}
-		} else {
-			if ( newVal !== this.value() ) {
-				// A slide can be canceled by returning false from the slide callback
-				allowed = this._trigger( "slide", event, {
-					handle: this.handles[ index ],
-					value: newVal
-				} );
-				if ( allowed !== false ) {
-					this.value( newVal );
-				}
-			}
-		}
-	},
-
-	_stop: function( event, index ) {
-		var uiHash = {
-			handle: this.handles[ index ],
-			value: this.value()
-		};
-		if ( this.options.values && this.options.values.length ) {
-			uiHash.value = this.values( index );
-			uiHash.values = this.values();
-		}
-
-		this._trigger( "stop", event, uiHash );
-	},
-
-	_change: function( event, index ) {
-		if ( !this._keySliding && !this._mouseSliding ) {
-			var uiHash = {
-				handle: this.handles[ index ],
-				value: this.value()
-			};
-			if ( this.options.values && this.options.values.length ) {
-				uiHash.value = this.values( index );
-				uiHash.values = this.values();
-			}
-
-			this._trigger( "change", event, uiHash );
-		}
-	},
-
-	value: function( newValue ) {
-		if ( arguments.length ) {
-			this.options.value = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, 0 );
-		}
-
-		return this._value();
-	},
-
-	values: function( index, newValue ) {
-		var vals,
-			newValues,
-			i;
-
-		if ( arguments.length > 1 ) {
-			this.options.values[ index ] = this._trimAlignValue( newValue );
-			this._refreshValue();
-			this._change( null, index );
-		}
-
-		if ( arguments.length ) {
-			if ( $.isArray( arguments[ 0 ] ) ) {
-				vals = this.options.values;
-				newValues = arguments[ 0 ];
-				for ( i = 0; i < vals.length; i += 1 ) {
-					vals[ i ] = this._trimAlignValue( newValues[ i ] );
-					this._change( null, i );
-				}
-				this._refreshValue();
-			} else {
-				if ( this.options.values && this.options.values.length ) {
-					return this._values( index );
-				} else {
-					return this.value();
-				}
-			}
-		} else {
-			return this._values();
-		}
-	},
-
-	_setOption: function( key, value ) {
-		var i,
-			valsLength = 0;
-
-		if ( $.isArray( this.options.values ) ) {
-			valsLength = this.options.values.length;
-		}
-
-		$.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" );
-				} else {
-					this.handles.removeAttr( "disabled" );
-					this.element.removeClass( "ui-disabled" );
-				}
-				break;
-			case "orientation":
-				this._detectOrientation();
-				this.element
-					.removeClass( "ui-slider-horizontal ui-slider-vertical" )
-					.addClass( "ui-slider-" + this.orientation );
-				this._refreshValue();
-				break;
-			case "value":
-				this._animateOff = true;
-				this._refreshValue();
-				this._change( null, 0 );
-				this._animateOff = false;
-				break;
-			case "values":
-				this._animateOff = true;
-				this._refreshValue();
-				for ( i = 0; i < valsLength; i += 1 ) {
-					this._change( null, i );
-				}
-				this._animateOff = false;
-				break;
-		}
-	},
-
-	//internal value getter
-	// _value() returns value trimmed by min and max, aligned by step
-	_value: function() {
-		var val = this.options.value;
-		val = this._trimAlignValue( val );
-
-		return val;
-	},
-
-	//internal values getter
-	// _values() returns array of values trimmed by min and max, aligned by step
-	// _values( index ) returns single value trimmed by min and max, aligned by step
-	_values: function( index ) {
-		var val,
-			vals,
-			i;
-
-		if ( arguments.length ) {
-			val = this.options.values[ index ];
-			val = this._trimAlignValue( val );
-
-			return val;
-		} else {
-			// .slice() creates a copy of the array
-			// this copy gets trimmed by min and max and then returned
-			vals = this.options.values.slice();
-			for ( i = 0; i < vals.length; i+= 1) {
-				vals[ i ] = this._trimAlignValue( vals[ i ] );
-			}
-
-			return vals;
-		}
-	},
-	
-	// returns the step-aligned value that val is closest to, between (inclusive) min and max
-	_trimAlignValue: function( val ) {
-		if ( val <= this._valueMin() ) {
-			return this._valueMin();
-		}
-		if ( val >= this._valueMax() ) {
-			return this._valueMax();
-		}
-		var step = ( this.options.step > 0 ) ? this.options.step : 1,
-			valModStep = (val - this._valueMin()) % step;
-			alignValue = val - valModStep;
-
-		if ( Math.abs(valModStep) * 2 >= step ) {
-			alignValue += ( valModStep > 0 ) ? step : ( -step );
-		}
-
-		// Since JavaScript has problems with large floats, round
-		// the final value to 5 digits after the decimal point (see #4124)
-		return parseFloat( alignValue.toFixed(5) );
-	},
-
-	_valueMin: function() {
-		return this.options.min;
-	},
-
-	_valueMax: function() {
-		return this.options.max;
-	},
-	
-	_refreshValue: function() {
-		var 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 {
-						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 {
-			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.11"
-});
-
-}(jQuery));
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.sortable.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.sortable.js
deleted file mode 100644
index 1a06dca..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.sortable.js
+++ /dev/null
@@ -1,1073 +0,0 @@
-/*
- * jQuery UI Sortable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-$.widget("ui.sortable", $.ui.mouse, {
-	widgetEventPrefix: "sort",
-	options: {
-		appendTo: "parent",
-		axis: false,
-		connectWith: false,
-		containment: false,
-		cursor: 'auto',
-		cursorAt: false,
-		dropOnEmpty: true,
-		forcePlaceholderSize: false,
-		forceHelperSize: false,
-		grid: false,
-		handle: false,
-		helper: "original",
-		items: '> *',
-		opacity: false,
-		placeholder: false,
-		revert: false,
-		scroll: true,
-		scrollSensitivity: 20,
-		scrollSpeed: 20,
-		scope: "default",
-		tolerance: "intersect",
-		zIndex: 1000
-	},
-	_create: function() {
-
-		var o = this.options;
-		this.containerCache = {};
-		this.element.addClass("ui-sortable");
-
-		//Get the items
-		this.refresh();
-
-		//Let's determine if the items are being displayed horizontally
-		this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) || (/inline|table-cell/).test(this.items[0].item.css('display')) : false;
-
-		//Let's determine the parent's offset
-		this.offset = this.element.offset();
-
-		//Initialize mouse events for interaction
-		this._mouseInit();
-
-	},
-
-	destroy: function() {
-		this.element
-			.removeClass("ui-sortable ui-sortable-disabled")
-			.removeData("sortable")
-			.unbind(".sortable");
-		this._mouseDestroy();
-
-		for ( var i = this.items.length - 1; i >= 0; i-- )
-			this.items[i].item.removeData("sortable-item");
-
-		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) {
-			return false;
-		}
-
-		if(this.options.disabled || this.options.type == 'static') return false;
-
-		//We have to refresh the items data once first
-		this._refreshItems(event);
-
-		//Find out if the clicked node (or one of its parents) is a actual item in this.items
-		var currentItem = null, self = this, nodes = $(event.target).parents().each(function() {
-			if($.data(this, 'sortable-item') == self) {
-				currentItem = $(this);
-				return false;
-			}
-		});
-		if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target);
-
-		if(!currentItem) return false;
-		if(this.options.handle && !overrideHandle) {
-			var validHandle = false;
-
-			$(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; });
-			if(!validHandle) return false;
-		}
-
-		this.currentItem = currentItem;
-		this._removeCurrentsFromItems();
-		return true;
-
-	},
-
-	_mouseStart: function(event, overrideHandle, noActivation) {
-
-		var o = this.options, self = this;
-		this.currentContainer = this;
-
-		//We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture
-		this.refreshPositions();
-
-		//Create and append the visible helper
-		this.helper = this._createHelper(event);
-
-		//Cache the helper size
-		this._cacheHelperProportions();
-
-		/*
-		 * - Position generation -
-		 * This block generates everything position related - it's the core of draggables.
-		 */
-
-		//Cache the margins of the original element
-		this._cacheMargins();
-
-		//Get the next scrolling parent
-		this.scrollParent = this.helper.scrollParent();
-
-		//The element's absolute position on the page minus margins
-		this.offset = this.currentItem.offset();
-		this.offset = {
-			top: this.offset.top - this.margins.top,
-			left: this.offset.left - this.margins.left
-		};
-
-		// Only after we got the offset, we can change the helper's position to absolute
-		// TODO: Still need to figure out a way to make relative sorting possible
-		this.helper.css("position", "absolute");
-		this.cssPosition = this.helper.css("position");
-
-		$.extend(this.offset, {
-			click: { //Where the click happened, relative to the element
-				left: event.pageX - this.offset.left,
-				top: event.pageY - this.offset.top
-			},
-			parent: this._getParentOffset(),
-			relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper
-		});
-
-		//Generate the original position
-		this.originalPosition = this._generatePosition(event);
-		this.originalPageX = event.pageX;
-		this.originalPageY = event.pageY;
-
-		//Adjust the mouse offset relative to the helper if 'cursorAt' is supplied
-		(o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt));
-
-		//Cache the former DOM position
-		this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] };
-
-		//If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way
-		if(this.helper[0] != this.currentItem[0]) {
-			this.currentItem.hide();
-		}
-
-		//Create the placeholder
-		this._createPlaceholder();
-
-		//Set a containment if given in the options
-		if(o.containment)
-			this._setContainment();
-
-		if(o.cursor) { // cursor option
-			if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor");
-			$('body').css("cursor", o.cursor);
-		}
-
-		if(o.opacity) { // opacity option
-			if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity");
-			this.helper.css("opacity", o.opacity);
-		}
-
-		if(o.zIndex) { // zIndex option
-			if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex");
-			this.helper.css("zIndex", o.zIndex);
-		}
-
-		//Prepare scrolling
-		if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML')
-			this.overflowOffset = this.scrollParent.offset();
-
-		//Call callbacks
-		this._trigger("start", event, this._uiHash());
-
-		//Recache the helper size
-		if(!this._preserveHelperProportions)
-			this._cacheHelperProportions();
-
-
-		//Post 'activate' events to possible containers
-		if(!noActivation) {
-			 for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); }
-		}
-
-		//Prepare possible droppables
-		if($.ui.ddmanager)
-			$.ui.ddmanager.current = this;
-
-		if ($.ui.ddmanager && !o.dropBehaviour)
-			$.ui.ddmanager.prepareOffsets(this, event);
-
-		this.dragging = true;
-
-		this.helper.addClass("ui-sortable-helper");
-		this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position
-		return true;
-
-	},
-
-	_mouseDrag: function(event) {
-
-		//Compute the helpers position
-		this.position = this._generatePosition(event);
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		if (!this.lastPositionAbs) {
-			this.lastPositionAbs = this.positionAbs;
-		}
-
-		//Do scrolling
-		if(this.options.scroll) {
-			var o = this.options, scrolled = false;
-			if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') {
-
-				if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity)
-					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed;
-				else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity)
-					this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed;
-
-				if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity)
-					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed;
-				else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity)
-					this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed;
-
-			} else {
-
-				if(event.pageY - $(document).scrollTop() < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed);
-				else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity)
-					scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed);
-
-				if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed);
-				else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity)
-					scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed);
-
-			}
-
-			if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour)
-				$.ui.ddmanager.prepareOffsets(this, event);
-		}
-
-		//Regenerate the absolute position used for position checks
-		this.positionAbs = this._convertPositionTo("absolute");
-
-		//Set the helper position
-		if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px';
-		if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px';
-
-		//Rearrange
-		for (var i = this.items.length - 1; i >= 0; i--) {
-
-			//Cache variables and intersection, continue if no intersection
-			var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item);
-			if (!intersection) continue;
-
-			if(itemElement != this.currentItem[0] //cannot intersect with itself
-				&&	this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before
-				&&	!$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked
-				&& (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true)
-				//&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container
-			) {
-
-				this.direction = intersection == 1 ? "down" : "up";
-
-				if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) {
-					this._rearrange(event, item);
-				} else {
-					break;
-				}
-
-				this._trigger("change", event, this._uiHash());
-				break;
-			}
-		}
-
-		//Post events to containers
-		this._contactContainers(event);
-
-		//Interconnect with droppables
-		if($.ui.ddmanager) $.ui.ddmanager.drag(this, event);
-
-		//Call callbacks
-		this._trigger('sort', event, this._uiHash());
-
-		this.lastPositionAbs = this.positionAbs;
-		return false;
-
-	},
-
-	_mouseStop: function(event, noPropagation) {
-
-		if(!event) return;
-
-		//If we are using droppables, inform the manager about the drop
-		if ($.ui.ddmanager && !this.options.dropBehaviour)
-			$.ui.ddmanager.drop(this, event);
-
-		if(this.options.revert) {
-			var self = this;
-			var cur = self.placeholder.offset();
-
-			self.reverting = true;
-
-			$(this.helper).animate({
-				left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft),
-				top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
-			}, parseInt(this.options.revert, 10) || 500, function() {
-				self._clear(event);
-			});
-		} else {
-			this._clear(event, noPropagation);
-		}
-
-		return false;
-
-	},
-
-	cancel: function() {
-
-		var self = this;
-
-		if(this.dragging) {
-
-			this._mouseUp({ target: null });
-
-			if(this.options.helper == "original")
-				this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
-			else
-				this.currentItem.show();
-
-			//Post deactivating events to containers
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				this.containers[i]._trigger("deactivate", null, self._uiHash(this));
-				if(this.containers[i].containerCache.over) {
-					this.containers[i]._trigger("out", null, self._uiHash(this));
-					this.containers[i].containerCache.over = 0;
-				}
-			}
-
-		}
-
-		if (this.placeholder) {
-			//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
-			if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-			if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove();
-
-			$.extend(this, {
-				helper: null,
-				dragging: false,
-				reverting: false,
-				_noFinalSort: null
-			});
-
-			if(this.domPosition.prev) {
-				$(this.domPosition.prev).after(this.currentItem);
-			} else {
-				$(this.domPosition.parent).prepend(this.currentItem);
-			}
-		}
-
-		return this;
-
-	},
-
-	serialize: function(o) {
-
-		var items = this._getItemsAsjQuery(o && o.connected);
-		var str = []; o = o || {};
-
-		$(items).each(function() {
-			var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/));
-			if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2]));
-		});
-
-		if(!str.length && o.key) {
-			str.push(o.key + '=');
-		}
-
-		return str.join('&');
-
-	},
-
-	toArray: function(o) {
-
-		var items = this._getItemsAsjQuery(o && o.connected);
-		var ret = []; o = o || {};
-
-		items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); });
-		return ret;
-
-	},
-
-	/* Be careful with the following core functions */
-	_intersectsWith: function(item) {
-
-		var x1 = this.positionAbs.left,
-			x2 = x1 + this.helperProportions.width,
-			y1 = this.positionAbs.top,
-			y2 = y1 + this.helperProportions.height;
-
-		var l = item.left,
-			r = l + item.width,
-			t = item.top,
-			b = t + item.height;
-
-		var dyClick = this.offset.click.top,
-			dxClick = this.offset.click.left;
-
-		var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r;
-
-		if(	   this.options.tolerance == "pointer"
-			|| this.options.forcePointerForContainers
-			|| (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height'])
-		) {
-			return isOverElement;
-		} else {
-
-			return (l < x1 + (this.helperProportions.width / 2) // Right Half
-				&& x2 - (this.helperProportions.width / 2) < r // Left Half
-				&& t < y1 + (this.helperProportions.height / 2) // Bottom Half
-				&& y2 - (this.helperProportions.height / 2) < b ); // Top Half
-
-		}
-	},
-
-	_intersectsWithPointer: function(item) {
-
-		var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
-			isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width),
-			isOverElement = isOverElementHeight && isOverElementWidth,
-			verticalDirection = this._getDragVerticalDirection(),
-			horizontalDirection = this._getDragHorizontalDirection();
-
-		if (!isOverElement)
-			return false;
-
-		return this.floating ?
-			( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 )
-			: ( verticalDirection && (verticalDirection == "down" ? 2 : 1) );
-
-	},
-
-	_intersectsWithSides: function(item) {
-
-		var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height),
-			isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width),
-			verticalDirection = this._getDragVerticalDirection(),
-			horizontalDirection = this._getDragHorizontalDirection();
-
-		if (this.floating && horizontalDirection) {
-			return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf));
-		} else {
-			return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf));
-		}
-
-	},
-
-	_getDragVerticalDirection: function() {
-		var delta = this.positionAbs.top - this.lastPositionAbs.top;
-		return delta != 0 && (delta > 0 ? "down" : "up");
-	},
-
-	_getDragHorizontalDirection: function() {
-		var delta = this.positionAbs.left - this.lastPositionAbs.left;
-		return delta != 0 && (delta > 0 ? "right" : "left");
-	},
-
-	refresh: function(event) {
-		this._refreshItems(event);
-		this.refreshPositions();
-		return this;
-	},
-
-	_connectWith: function() {
-		var options = this.options;
-		return options.connectWith.constructor == String
-			? [options.connectWith]
-			: options.connectWith;
-	},
-	
-	_getItemsAsjQuery: function(connected) {
-
-		var self = this;
-		var items = [];
-		var queries = [];
-		var connectWith = this._connectWith();
-
-		if(connectWith && connected) {
-			for (var i = connectWith.length - 1; i >= 0; i--){
-				var cur = $(connectWith[i]);
-				for (var j = cur.length - 1; j >= 0; j--){
-					var inst = $.data(cur[j], 'sortable');
-					if(inst && inst != this && !inst.options.disabled) {
-						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]);
-					}
-				};
-			};
-		}
-
-		queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]);
-
-		for (var i = queries.length - 1; i >= 0; i--){
-			queries[i][0].each(function() {
-				items.push(this);
-			});
-		};
-
-		return $(items);
-
-	},
-
-	_removeCurrentsFromItems: function() {
-
-		var list = this.currentItem.find(":data(sortable-item)");
-
-		for (var i=0; i < this.items.length; i++) {
-
-			for (var j=0; j < list.length; j++) {
-				if(list[j] == this.items[i].item[0])
-					this.items.splice(i,1);
-			};
-
-		};
-
-	},
-
-	_refreshItems: function(event) {
-
-		this.items = [];
-		this.containers = [this];
-		var items = this.items;
-		var self = this;
-		var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]];
-		var connectWith = this._connectWith();
-
-		if(connectWith) {
-			for (var i = connectWith.length - 1; i >= 0; i--){
-				var cur = $(connectWith[i]);
-				for (var j = cur.length - 1; j >= 0; j--){
-					var inst = $.data(cur[j], 'sortable');
-					if(inst && inst != this && !inst.options.disabled) {
-						queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]);
-						this.containers.push(inst);
-					}
-				};
-			};
-		}
-
-		for (var i = queries.length - 1; i >= 0; i--) {
-			var targetData = queries[i][1];
-			var _queries = queries[i][0];
-
-			for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) {
-				var item = $(_queries[j]);
-
-				item.data('sortable-item', targetData); // Data for target checking (mouse manager)
-
-				items.push({
-					item: item,
-					instance: targetData,
-					width: 0, height: 0,
-					left: 0, top: 0
-				});
-			};
-		};
-
-	},
-
-	refreshPositions: function(fast) {
-
-		//This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change
-		if(this.offsetParent && this.helper) {
-			this.offset.parent = this._getParentOffset();
-		}
-
-		for (var i = this.items.length - 1; i >= 0; i--){
-			var item = this.items[i];
-
-			var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item;
-
-			if (!fast) {
-				item.width = t.outerWidth();
-				item.height = t.outerHeight();
-			}
-
-			var p = t.offset();
-			item.left = p.left;
-			item.top = p.top;
-		};
-
-		if(this.options.custom && this.options.custom.refreshContainers) {
-			this.options.custom.refreshContainers.call(this);
-		} else {
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				var p = this.containers[i].element.offset();
-				this.containers[i].containerCache.left = p.left;
-				this.containers[i].containerCache.top = p.top;
-				this.containers[i].containerCache.width	= this.containers[i].element.outerWidth();
-				this.containers[i].containerCache.height = this.containers[i].element.outerHeight();
-			};
-		}
-
-		return this;
-	},
-
-	_createPlaceholder: function(that) {
-
-		var self = that || this, o = self.options;
-
-		if(!o.placeholder || o.placeholder.constructor == String) {
-			var className = o.placeholder;
-			o.placeholder = {
-				element: function() {
-
-					var el = $(document.createElement(self.currentItem[0].nodeName))
-						.addClass(className || self.currentItem[0].className+" ui-sortable-placeholder")
-						.removeClass("ui-sortable-helper")[0];
-
-					if(!className)
-						el.style.visibility = "hidden";
-
-					return el;
-				},
-				update: function(container, p) {
-
-					// 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that
-					// 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified
-					if(className && !o.forcePlaceholderSize) return;
-
-					//If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item
-					if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); };
-					if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); };
-				}
-			};
-		}
-
-		//Create the placeholder
-		self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem));
-
-		//Append it after the actual current item
-		self.currentItem.after(self.placeholder);
-
-		//Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317)
-		o.placeholder.update(self, self.placeholder);
-
-	},
-
-	_contactContainers: function(event) {
-		
-		// get innermost container that intersects with item 
-		var innermostContainer = null, innermostIndex = null;		
-		
-		
-		for (var i = this.containers.length - 1; i >= 0; i--){
-
-			// never consider a container that's located within the item itself 
-			if($.ui.contains(this.currentItem[0], this.containers[i].element[0]))
-				continue;
-
-			if(this._intersectsWith(this.containers[i].containerCache)) {
-
-				// if we've already found a container and it's more "inner" than this, then continue 
-				if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0]))
-					continue;
-
-				innermostContainer = this.containers[i]; 
-				innermostIndex = i;
-					
-			} else {
-				// container doesn't intersect. trigger "out" event if necessary 
-				if(this.containers[i].containerCache.over) {
-					this.containers[i]._trigger("out", event, this._uiHash(this));
-					this.containers[i].containerCache.over = 0;
-				}
-			}
-
-		}
-		
-		// if no intersecting containers found, return 
-		if(!innermostContainer) return; 
-
-		// move the item into the container if it's not there already
-		if(this.containers.length === 1) {
-			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this));
-			this.containers[innermostIndex].containerCache.over = 1;
-		} else if(this.currentContainer != this.containers[innermostIndex]) { 
-
-			//When entering a new container, we will find the item with the least distance and append our item near it 
-			var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; 
-			for (var j = this.items.length - 1; j >= 0; j--) { 
-				if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; 
-				var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; 
-				if(Math.abs(cur - base) < dist) { 
-					dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; 
-				} 
-			} 
-
-			if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled 
-				return; 
-
-			this.currentContainer = this.containers[innermostIndex]; 
-			itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); 
-			this._trigger("change", event, this._uiHash()); 
-			this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); 
-
-			//Update the placeholder 
-			this.options.placeholder.update(this.currentContainer, this.placeholder); 
-		
-			this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); 
-			this.containers[innermostIndex].containerCache.over = 1;
-		} 
-	
-		
-	},
-
-	_createHelper: function(event) {
-
-		var o = this.options;
-		var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem);
-
-		if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already
-			$(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]);
-
-		if(helper[0] == this.currentItem[0])
-			this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") };
-
-		if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width());
-		if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height());
-
-		return helper;
-
-	},
-
-	_adjustOffsetFromHelper: function(obj) {
-		if (typeof obj == 'string') {
-			obj = obj.split(' ');
-		}
-		if ($.isArray(obj)) {
-			obj = {left: +obj[0], top: +obj[1] || 0};
-		}
-		if ('left' in obj) {
-			this.offset.click.left = obj.left + this.margins.left;
-		}
-		if ('right' in obj) {
-			this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left;
-		}
-		if ('top' in obj) {
-			this.offset.click.top = obj.top + this.margins.top;
-		}
-		if ('bottom' in obj) {
-			this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top;
-		}
-	},
-
-	_getParentOffset: function() {
-
-
-		//Get the offsetParent and cache its position
-		this.offsetParent = this.helper.offsetParent();
-		var po = this.offsetParent.offset();
-
-		// This is a special case where we need to modify a offset calculated on start, since the following happened:
-		// 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent
-		// 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that
-		//    the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag
-		if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) {
-			po.left += this.scrollParent.scrollLeft();
-			po.top += this.scrollParent.scrollTop();
-		}
-
-		if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information
-		|| (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix
-			po = { top: 0, left: 0 };
-
-		return {
-			top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0),
-			left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0)
-		};
-
-	},
-
-	_getRelativeOffset: function() {
-
-		if(this.cssPosition == "relative") {
-			var p = this.currentItem.position();
-			return {
-				top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(),
-				left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft()
-			};
-		} else {
-			return { top: 0, left: 0 };
-		}
-
-	},
-
-	_cacheMargins: function() {
-		this.margins = {
-			left: (parseInt(this.currentItem.css("marginLeft"),10) || 0),
-			top: (parseInt(this.currentItem.css("marginTop"),10) || 0)
-		};
-	},
-
-	_cacheHelperProportions: function() {
-		this.helperProportions = {
-			width: this.helper.outerWidth(),
-			height: this.helper.outerHeight()
-		};
-	},
-
-	_setContainment: function() {
-
-		var o = this.options;
-		if(o.containment == 'parent') o.containment = this.helper[0].parentNode;
-		if(o.containment == 'document' || o.containment == 'window') this.containment = [
-			0 - this.offset.relative.left - this.offset.parent.left,
-			0 - this.offset.relative.top - this.offset.parent.top,
-			$(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left,
-			($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top
-		];
-
-		if(!(/^(document|window|parent)$/).test(o.containment)) {
-			var ce = $(o.containment)[0];
-			var co = $(o.containment).offset();
-			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
-			];
-		}
-
-	},
-
-	_convertPositionTo: function(d, pos) {
-
-		if(!pos) pos = this.position;
-		var mod = d == "absolute" ? 1 : -1;
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		return {
-			top: (
-				pos.top																	// The absolute mouse position
-				+ this.offset.relative.top * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.top * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod)
-			),
-			left: (
-				pos.left																// The absolute mouse position
-				+ this.offset.relative.left * mod										// Only for relative positioned nodes: Relative offset from element to offset parent
-				+ this.offset.parent.left * mod											// The offsetParent's offset without borders (offset + border)
-				- ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod)
-			)
-		};
-
-	},
-
-	_generatePosition: function(event) {
-
-		var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName);
-
-		// This is another very weird special case that only happens for relative elements:
-		// 1. If the css position is relative
-		// 2. and the scroll parent is the document or similar to the offset parent
-		// we have to refresh the relative offset during the scroll so there are no jumps
-		if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) {
-			this.offset.relative = this._getRelativeOffset();
-		}
-
-		var pageX = event.pageX;
-		var pageY = event.pageY;
-
-		/*
-		 * - Position constraining -
-		 * Constrain the position to a mix of grid, containment.
-		 */
-
-		if(this.originalPosition) { //If we are not dragging yet, we won't check for options
-
-			if(this.containment) {
-				if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top;
-				if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left;
-				if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top;
-			}
-
-			if(o.grid) {
-				var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1];
-				pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top;
-
-				var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0];
-				pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left;
-			}
-
-		}
-
-		return {
-			top: (
-				pageY																// The absolute mouse position
-				- this.offset.click.top													// Click offset (relative to the element)
-				- this.offset.relative.top												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.top												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ))
-			),
-			left: (
-				pageX																// The absolute mouse position
-				- this.offset.click.left												// Click offset (relative to the element)
-				- this.offset.relative.left												// Only for relative positioned nodes: Relative offset from element to offset parent
-				- this.offset.parent.left												// The offsetParent's offset without borders (offset + border)
-				+ ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ))
-			)
-		};
-
-	},
-
-	_rearrange: function(event, i, a, hardRefresh) {
-
-		a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling));
-
-		//Various things done here to improve the performance:
-		// 1. we create a setTimeout, that calls refreshPositions
-		// 2. on the instance, we have a counter variable, that get's higher after every append
-		// 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same
-		// 4. this lets only the last addition to the timeout stack through
-		this.counter = this.counter ? ++this.counter : 1;
-		var self = this, counter = this.counter;
-
-		window.setTimeout(function() {
-			if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove
-		},0);
-
-	},
-
-	_clear: function(event, noPropagation) {
-
-		this.reverting = false;
-		// We delay all events that have to be triggered to after the point where the placeholder has been removed and
-		// everything else normalized again
-		var delayedTriggers = [], self = this;
-
-		// We first have to update the dom position of the actual currentItem
-		// Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088)
-		if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem);
-		this._noFinalSort = null;
-
-		if(this.helper[0] == this.currentItem[0]) {
-			for(var i in this._storedCSS) {
-				if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = '';
-			}
-			this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper");
-		} else {
-			this.currentItem.show();
-		}
-
-		if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); });
-		if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed
-		if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element
-			if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); });
-			for (var i = this.containers.length - 1; i >= 0; i--){
-				if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) {
-					delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-					delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this));  }; }).call(this, this.containers[i]));
-				}
-			};
-		};
-
-		//Post events to containers
-		for (var i = this.containers.length - 1; i >= 0; i--){
-			if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-			if(this.containers[i].containerCache.over) {
-				delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); };  }).call(this, this.containers[i]));
-				this.containers[i].containerCache.over = 0;
-			}
-		}
-
-		//Do what was originally in plugins
-		if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor
-		if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity
-		if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index
-
-		this.dragging = false;
-		if(this.cancelHelperRemoval) {
-			if(!noPropagation) {
-				this._trigger("beforeStop", event, this._uiHash());
-				for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
-				this._trigger("stop", event, this._uiHash());
-			}
-			return false;
-		}
-
-		if(!noPropagation) this._trigger("beforeStop", event, this._uiHash());
-
-		//$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node!
-		this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
-
-		if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null;
-
-		if(!noPropagation) {
-			for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events
-			this._trigger("stop", event, this._uiHash());
-		}
-
-		this.fromOutside = false;
-		return true;
-
-	},
-
-	_trigger: function() {
-		if ($.Widget.prototype._trigger.apply(this, arguments) === false) {
-			this.cancel();
-		}
-	},
-
-	_uiHash: function(inst) {
-		var self = inst || this;
-		return {
-			helper: self.helper,
-			placeholder: self.placeholder || $([]),
-			position: self.position,
-			originalPosition: self.originalPosition,
-			offset: self.positionAbs,
-			item: self.currentItem,
-			sender: inst ? inst.element : null
-		};
-	}
-
-});
-
-$.extend($.ui.sortable, {
-	version: "1.8.11"
-});
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.tabs.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.tabs.js
deleted file mode 100644
index 3be7ff4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.tabs.js
+++ /dev/null
@@ -1,758 +0,0 @@
-/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function( $, undefined ) {
-
-var tabId = 0,
-	listId = 0;
-
-function getNextTabId() {
-	return ++tabId;
-}
-
-function getNextListId() {
-	return ++listId;
-}
-
-$.widget( "ui.tabs", {
-	options: {
-		add: null,
-		ajaxOptions: null,
-		cache: false,
-		cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
-		collapsible: false,
-		disable: null,
-		disabled: [],
-		enable: null,
-		event: "click",
-		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
-		idPrefix: "ui-tabs-",
-		load: null,
-		panelTemplate: "<div></div>",
-		remove: null,
-		select: null,
-		show: null,
-		spinner: "<em>Loading&#8230;</em>",
-		tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>"
-	},
-
-	_create: function() {
-		this._tabify( true );
-	},
-
-	_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._tabify();
-		}
-	},
-
-	_tabId: function( a ) {
-		return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) ||
-			this.options.idPrefix + getNextTabId();
-	},
-
-	_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-" + getNextListId() );
-		return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) );
-	},
-
-	_ui: function( tab, panel ) {
-		return {
-			tab: tab,
-			panel: panel,
-			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)" )
-				.each(function() {
-					var el = $( this );
-					el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" );
-				});
-	},
-
-	_tabify: function( init ) {
-		var self = this,
-			o = this.options,
-			fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
-
-		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 ) ) {
-				href = a.hash;
-				a.href = href;
-			}
-
-			// inline tab
-			if ( fragmentId.test( href ) ) {
-				self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) );
-			// remote tab
-			// 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( /#.*$/, "" ) );
-
-				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 );
-			// invalid tab href
-			} else {
-				o.disabled.push( i );
-			}
-		});
-
-		// initialization from scratch
-		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" );
-
-			// 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 ) {
-							o.selected = i;
-							return false;
-						}
-					});
-				}
-				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" ) );
-				}
-				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;
-
-			// 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 );
-			}
-
-			// highlight selected tab
-			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.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) );
-				});
-
-				this.load( o.selected );
-			}
-
-			// clean up to avoid memory leaks in certain versions of IE 6
-			// 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" ) );
-		}
-
-		// update 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 );
-		}
-
-		// disable tabs
-		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" );
-		}
-
-		// remove all handlers before, tabify may run on existing tabs after add or option change
-		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 );
-				}
-			};
-			var removeState = function( state, el ) {
-				el.removeClass( "ui-state-" + state );
-			};
-			this.lis.bind( "mouseover.tabs" , function() {
-				addState( "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( "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 {
-				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" );
-			}
-		}
-
-		// 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 ] ) );
-					});
-			}
-			: 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" );
-				});
-			}
-			: 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 = $(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.panels.filter( ":animated" ).length ||
-				self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) {
-				this.blur();
-				return false;
-			}
-
-			o.selected = self.anchors.index( this );
-
-			self.abort();
-
-			// if tab may be closed
-			if ( o.collapsible ) {
-				if ( $li.hasClass( "ui-tabs-selected" ) ) {
-					o.selected = -1;
-
-					if ( o.cookie ) {
-						self._cookie( o.selected, o.cookie );
-					}
-
-					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 );
-					}
-
-					self.element.queue( "tabs", function() {
-						showTab( el, $show );
-					});
-
-					// 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 );
-			}
-
-			// show new tab
-			if ( $show.length ) {
-				if ( $hide.length ) {
-					self.element.queue( "tabs", function() {
-						hideTab( el, $hide );
-					});
-				}
-				self.element.queue( "tabs", function() {
-					showTab( el, $show );
-				});
-
-				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 ) {
-				this.blur();
-			}
-		});
-
-		// disable click in any case
-		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.anchors.each(function() {
-			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" );
-			});
-		});
-
-		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 );
-		}
-
-		return this;
-	},
-
-	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 ] );
-
-		$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 = 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 ] );
-		}
-
-		o.disabled = $.map( o.disabled, function( n, i ) {
-			return n >= index ? ++n : n;
-		});
-
-		this._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 ] ) );
-			});
-
-			this.load( 0 );
-		}
-
-		this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		return this;
-	},
-
-	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 ) );
-		}
-
-		o.disabled = $.map(
-			$.grep( o.disabled, function(n, i) {
-				return n != index;
-			}),
-			function( n, i ) {
-				return n >= index ? --n : n;
-			});
-
-		this._tabify();
-
-		this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) );
-		return this;
-	},
-
-	enable: function( index ) {
-		index = this._getIndex( index );
-		var o = this.options;
-		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._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		return this;
-	},
-
-	disable: function( index ) {
-		index = this._getIndex( index );
-		var self = this, o = this.options;
-		// cannot disable already selected tab
-		if ( index != o.selected ) {
-			this.lis.eq( index ).addClass( "ui-state-disabled" );
-
-			o.disabled.push( index );
-			o.disabled.sort();
-
-			this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) );
-		}
-
-		return this;
-	},
-
-	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" );
-		return this;
-	},
-
-	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" );
-			return;
-		}
-
-		// load remote from here on
-		this.lis.eq( index ).addClass( "ui-state-processing" );
-
-		if ( o.spinner ) {
-			var span = $( "span", a );
-			span.data( "label.tabs", span.html() ).html( o.spinner );
-		}
-
-		this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, {
-			url: url,
-			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 );
-				}
-
-				self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) );
-				try {
-					o.ajaxOptions.success( r, s );
-				}
-				catch ( e ) {}
-			},
-			error: function( xhr, s, e ) {
-				// take care of tab labels
-				self._cleanup();
-
-				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 );
-				}
-				catch ( e ) {}
-			}
-		} ) );
-
-		// last, so that load event is fired before show...
-		self.element.dequeue( "tabs" );
-
-		return this;
-	},
-
-	abort: function() {
-		// stop possibly running animations
-		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 ) );
-
-		// terminate pending requests from other tabs
-		if ( this.xhr ) {
-			this.xhr.abort();
-			delete this.xhr;
-		}
-
-		// take care of tab labels
-		this._cleanup();
-		return this;
-	},
-
-	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.11"
-});
-
-/*
- * Tabs Extensions
- */
-
-/*
- * Rotate
- */
-$.extend( $.ui.tabs.prototype, {
-	rotation: null,
-	rotate: function( ms, continuing ) {
-		var self = this,
-			o = this.options;
-
-		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 );
-			
-			if ( e ) {
-				e.stopPropagation();
-			}
-		});
-
-		var stop = self._unrotate || ( self._unrotate = !continuing
-			? function(e) {
-				if (e.clientX) { // in case of a true click
-					self.rotate(null);
-				}
-			}
-			: function( e ) {
-				t = o.selected;
-				rotate();
-			});
-
-		// start rotation
-		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 );
-			delete this._rotate;
-			delete this._unrotate;
-		}
-
-		return this;
-	}
-});
-
-})( jQuery );
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.widget.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.widget.js
deleted file mode 100644
index b6b1bee..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.widget.js
+++ /dev/null
@@ -1,262 +0,0 @@
-/*!
- * jQuery UI Widget 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(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" );
-		}
-		_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 ],
-		fullName;
-	name = name.split( "." )[ 1 ];
-	fullName = namespace + "-" + name;
-
-	if ( !prototype ) {
-		prototype = base;
-		base = $.Widget;
-	}
-
-	// create selector for plugin
-	$.expr[ ":" ][ fullName ] = function( elem ) {
-		return !!$.data( elem, name );
-	};
-
-	$[ namespace ] = $[ namespace ] || {};
-	$[ namespace ][ name ] = function( options, element ) {
-		// allow instantiation without initializing for simple inheritance
-		if ( arguments.length ) {
-			this._createWidget( options, element );
-		}
-	};
-
-	var basePrototype = new base();
-	// we need to make the options hash a property directly on the new instance
-	// otherwise we'll modify the options hash on the prototype that we're
-	// inheriting from
-//	$.each( basePrototype, function( key, val ) {
-//		if ( $.isPlainObject(val) ) {
-//			basePrototype[ key ] = $.extend( {}, val );
-//		}
-//	});
-	basePrototype.options = $.extend( true, {}, basePrototype.options );
-	$[ namespace ][ name ].prototype = $.extend( true, basePrototype, {
-		namespace: namespace,
-		widgetName: name,
-		widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name,
-		widgetBaseClass: fullName
-	}, prototype );
-
-	$.widget.bridge( name, $[ namespace ][ name ] );
-};
-
-$.widget.bridge = function( name, object ) {
-	$.fn[ name ] = function( options ) {
-		var isMethodCall = typeof options === "string",
-			args = Array.prototype.slice.call( arguments, 1 ),
-			returnValue = this;
-
-		// allow multiple hashes to be passed on init
-		options = !isMethodCall && args.length ?
-			$.extend.apply( null, [ true, options ].concat(args) ) :
-			options;
-
-		// prevent calls to internal methods
-		if ( isMethodCall && options.charAt( 0 ) === "_" ) {
-			return returnValue;
-		}
-
-		if ( isMethodCall ) {
-			this.each(function() {
-				var instance = $.data( this, name ),
-					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;
-				}
-			});
-		} else {
-			this.each(function() {
-				var instance = $.data( this, name );
-				if ( instance ) {
-					instance.option( options || {} )._init();
-				} else {
-					$.data( this, name, new object( options, this ) );
-				}
-			});
-		}
-
-		return returnValue;
-	};
-};
-
-$.Widget = function( options, element ) {
-	// allow instantiation without initializing for simple inheritance
-	if ( arguments.length ) {
-		this._createWidget( options, element );
-	}
-};
-
-$.Widget.prototype = {
-	widgetName: "widget",
-	widgetEventPrefix: "",
-	options: {
-		disabled: false
-	},
-	_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
-		$.data( element, this.widgetName, this );
-		this.element = $( element );
-		this.options = $.extend( true, {},
-			this.options,
-			this._getCreateOptions(),
-			options );
-
-		var self = this;
-		this.element.bind( "remove." + this.widgetName, function() {
-			self.destroy();
-		});
-
-		this._create();
-		this._trigger( "create" );
-		this._init();
-	},
-	_getCreateOptions: function() {
-		return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ];
-	},
-	_create: function() {},
-	_init: function() {},
-
-	destroy: function() {
-		this.element
-			.unbind( "." + this.widgetName )
-			.removeData( this.widgetName );
-		this.widget()
-			.unbind( "." + this.widgetName )
-			.removeAttr( "aria-disabled" )
-			.removeClass(
-				this.widgetBaseClass + "-disabled " +
-				"ui-state-disabled" );
-	},
-
-	widget: function() {
-		return this.element;
-	},
-
-	option: function( key, value ) {
-		var options = key;
-
-		if ( arguments.length === 0 ) {
-			// don't return a reference to the internal hash
-			return $.extend( {}, this.options );
-		}
-
-		if  (typeof key === "string" ) {
-			if ( value === undefined ) {
-				return this.options[ key ];
-			}
-			options = {};
-			options[ key ] = value;
-		}
-
-		this._setOptions( options );
-
-		return this;
-	},
-	_setOptions: function( options ) {
-		var self = this;
-		$.each( options, function( key, value ) {
-			self._setOption( key, value );
-		});
-
-		return this;
-	},
-	_setOption: function( key, value ) {
-		this.options[ key ] = value;
-
-		if ( key === "disabled" ) {
-			this.widget()
-				[ value ? "addClass" : "removeClass"](
-					this.widgetBaseClass + "-disabled" + " " +
-					"ui-state-disabled" )
-				.attr( "aria-disabled", value );
-		}
-
-		return this;
-	},
-
-	enable: function() {
-		return this._setOption( "disabled", false );
-	},
-	disable: function() {
-		return this._setOption( "disabled", true );
-	},
-
-	_trigger: function( type, event, data ) {
-		var callback = this.options[ type ];
-
-		event = $.Event( event );
-		event.type = ( type === this.widgetEventPrefix ?
-			type :
-			this.widgetEventPrefix + type ).toLowerCase();
-		data = data || {};
-
-		// copy original event properties over to the new event
-		// this would happen if we could call $.event.fix instead of $.Event
-		// but we don't have a way to force an event to be fixed multiple times
-		if ( event.originalEvent ) {
-			for ( var i = $.event.props.length, prop; i; ) {
-				prop = $.event.props[ --i ];
-				event[ prop ] = event.originalEvent[ prop ];
-			}
-		}
-
-		this.element.trigger( event, data );
-
-		return !( $.isFunction(callback) &&
-			callback.call( this.element[0], event, data ) === false ||
-			event.isDefaultPrevented() );
-	}
-};
-
-})( jQuery );
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.blind.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.blind.min.js
deleted file mode 100644
index fa8837c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.blind.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Blind 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
-g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.bounce.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.bounce.min.js
deleted file mode 100644
index 78d1e8d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.bounce.min.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * jQuery UI Effects Bounce 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
-3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
-b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.clip.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.clip.min.js
deleted file mode 100644
index 2b30b7a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.clip.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Clip 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
-c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.core.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.core.min.js
deleted file mode 100644
index ad5dd0e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.core.min.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * jQuery UI Effects 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
-a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
-a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
-"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
-0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
-211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
-d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0];
-h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,
-a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.11",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,
-a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",
-border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);
-return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments);
-else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),
-b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,
-a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,
-a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==
-e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=
-g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/
-h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,
-a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.drop.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.drop.min.js
deleted file mode 100644
index 7a66c28..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.drop.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Drop 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
-"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.explode.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.explode.min.js
deleted file mode 100644
index 02ee87f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.explode.min.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * jQuery UI Effects Explode 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
-0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
-e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fade.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fade.min.js
deleted file mode 100644
index 6b8c6c2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fade.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*
- * jQuery UI Effects Fade 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fade
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fold.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fold.min.js
deleted file mode 100644
index 05c2b69..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fold.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Fold 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
-10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.highlight.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.highlight.min.js
deleted file mode 100644
index 9b8d63c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.highlight.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Highlight 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
-this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.pulsate.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.pulsate.min.js
deleted file mode 100644
index 450bbbd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.pulsate.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Pulsate 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
-a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.scale.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.scale.min.js
deleted file mode 100644
index be0c886..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.scale.min.js
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
- * jQuery UI Effects Scale 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
-b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
-1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
-p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
-if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
-a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
-child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
-n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.shake.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.shake.min.js
deleted file mode 100644
index bef27e8..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.shake.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Shake 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
-(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.slide.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.slide.min.js
deleted file mode 100644
index e9f40ae..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.slide.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Slide 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
-var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.transfer.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.transfer.min.js
deleted file mode 100644
index b909fd8..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.transfer.min.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * jQuery UI Effects Transfer 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
-b.dequeue()})})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.accordion.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.accordion.min.js
deleted file mode 100644
index 0d5a882..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.accordion.min.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
-a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
-function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=
-this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.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 b=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(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
-b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
-a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
-if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
-if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
-e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
-e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
-"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.11",
-animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);
-f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",
-paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.autocomplete.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.autocomplete.min.js
deleted file mode 100644
index 9331247..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.autocomplete.min.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g=
-false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=
-a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};
-this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&
-a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");
-d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&
-b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=
-this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();
-this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||
-b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;
-d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
-"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
-(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
--1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},
-deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);
-e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,
-g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
-this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.button.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.button.min.js
deleted file mode 100644
index e47c710..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.button.min.js
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,f=a([]);if(c)f=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return f};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
-i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
-function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(f)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
-b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var e=b.element[0];h(e).not(e).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
-g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(e){if(c.disabled)return false;if(e.keyCode==a.ui.keyCode.SPACE||e.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
-c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){var b=this.element.parents().filter(":last"),c="label[for="+this.element.attr("id")+"]";this.buttonElement=b.find(c);if(!this.buttonElement.length){b=b.length?b.siblings():this.element.siblings();this.buttonElement=b.filter(c);if(!this.buttonElement.length)this.buttonElement=b.find(c)}this.element.addClass("ui-helper-hidden-accessible");
-(b=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  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").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
-this.hasTitle||this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
-true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("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"),
-c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){if(this.options.text)e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){e.push(f?"ui-button-icons-only":
-"ui-button-icon-only");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},
-destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.core.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.core.min.js
deleted file mode 100644
index 272fe36..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.core.min.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*!
- * jQuery UI 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
-NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
-"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
-if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
-"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
-d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
-c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
-b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.datepicker.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.datepicker.min.js
deleted file mode 100644
index 7f50278..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.datepicker.min.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function(d,A){function K(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
-"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={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:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
-minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function F(a,b){d.extend(a,b);for(var c in b)if(b[c]==
-null||b[c]==A)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.11"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){F(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();
-f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
-_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
-b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
-""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
-c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
-true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}F(a.settings,e||{});
-b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);
-this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",
-this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,
-function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:
-f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},
-e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");F(e.settings,f);if(i!==null&&f.dateFormat!==A&&f.minDate===A)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==A&&f.maxDate===A)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},
-_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");
-b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]?d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),
-"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?
--d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,
-+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==A?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);
-if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);
-d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");F(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=
-document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");
-var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=
-b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");
-this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+
-this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&
-a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():
-0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),
-"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?
-"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=
-d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=
-d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c==
-"M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=
-b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();
-this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);
-a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?
-c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){var v=o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&v?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,v,H){p=o(p)?H:v;for(v=0;v<p.length;v++)if(b.substr(s,p[v].length).toLowerCase()==p[v].toLowerCase()){s+=p[v].length;return v+1}throw"Unknown name at position "+
-s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(k)if(a.charAt(z)=="'"&&!o("'"))k=false;else r();else switch(a.charAt(z)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var w=new Date(m("@"));c=w.getFullYear();j=w.getMonth()+1;l=w.getDate();break;case "!":w=new Date((m("!")-this._ticksTo1970)/1E4);c=w.getFullYear();j=w.getMonth()+
-1;l=w.getDate();break;case "'":if(o("'"))r();else k=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",
-RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&
-a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",
-b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+=
-"0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==A?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=
-f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=
-(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,
-l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=
-a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),
-b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=
-this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,
-"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=
-this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",D=0;D<i[0];D++){for(var M="",E=0;E<i[1];E++){var N=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(E){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-
-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&D==0?c?f:n:"")+(/all|right/.test(t)&&D==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,D>0||E>0,z,w)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var B=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=
-(t+h)%7;B+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=B+"</tr></thead><tbody>";B=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,B);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;B=l?6:Math.ceil((t+B)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<B;O++){x+="<tr>";var P=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var G=
-p?p.apply(a.input?a.input[0]:null,[q]):[true,""],C=q.getMonth()!=g,J=C&&!H||!G[0]||k&&q<k||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(C?" ui-datepicker-other-month":"")+(q.getTime()==N.getTime()&&g==a.selectedMonth&&a._keyEvent||L.getTime()==q.getTime()&&L.getTime()==N.getTime()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(C&&!v?"":" "+G[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":
-""))+'"'+((!C||v)&&G[2]?' title="'+G[2]+'"':"")+(J?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(C&&!v?"&#xa0;":J?'<span class="ui-state-default">'+q.getDate()+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(C?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=
-P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&E==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',
-o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&
-l)?"&#xa0;":""));a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
-a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";if(d.browser.mozilla)k+='<select class="ui-datepicker-year"><option value="'+c+'" selected="selected">'+c+"</option></select>";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=
-a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
-"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
-c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
-"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
-function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,
-[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.11";window["DP_jQuery_"+y]=d})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.dialog.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.dialog.min.js
deleted file mode 100644
index 1f47be0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.dialog.min.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&
-c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",
--1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
-"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=
-b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&
-a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index");
-isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);
-d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});
-c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,
-h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=
-d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,
-position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,
-h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===
-1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in
-l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");
-break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e=
-this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&
-this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.11",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===
-0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
-height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
-b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,
-function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.draggable.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.draggable.min.js
deleted file mode 100644
index 3012e9d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.draggable.min.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * jQuery UI Draggable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
-d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
-this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&
-this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
-a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
-0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),
-height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?
-document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),
-10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),
-10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&
-d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=
-this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?
-e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
-f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,
-offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.11"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g.refreshPositions();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},
-b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=
-d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};
-a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&
-this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",
-{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+
-"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",
-a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+
-c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<
-c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+
-c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),
-f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=
-c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=
-c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),
-{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=
-parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.droppable.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.droppable.min.js
deleted file mode 100644
index 0e40fa5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.droppable.min.js
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * jQuery UI Droppable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.11"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
-d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.mouse.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.mouse.min.js
deleted file mode 100644
index fd7067c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.mouse.min.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/*!
- * jQuery UI Mouse 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function(b){b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
-a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,e=a.which==1,f=typeof this.options.cancel=="string"?b(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
-this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(d){return c._mouseMove(d)};this._mouseUpDelegate=function(d){return c._mouseUp(d)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=
-true}},_mouseMove:function(a){if(b.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);
-if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.position.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.position.min.js
deleted file mode 100644
index 8a5de73..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.position.min.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * jQuery UI Position 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
-left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
-k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
-m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
-d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
-a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
-g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.progressbar.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.progressbar.min.js
deleted file mode 100644
index cd29ff0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.progressbar.min.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function(b,d){b.widget("ui.progressbar",{options:{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.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
-this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.11"})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.resizable.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.resizable.min.js
deleted file mode 100644
index bb6f85f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.resizable.min.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
-nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
-String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
-if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
-d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
-this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
-this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
-b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
-f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");
-this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=
-null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+
-this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=
-[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=
-this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,
-a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,
-c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,
-originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.11"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=
-b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width",
-"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};
-if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-
-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,
-height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=
-e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,
-d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?
-d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=
-a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&
-/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");
-b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/
-(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.selectable.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.selectable.min.js
deleted file mode 100644
index 4b64a43..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.selectable.min.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
-selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
-c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
-c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
-this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
-a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
-!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
-e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.11"})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.slider.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.slider.min.js
deleted file mode 100644
index 2714014..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.slider.min.js
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var b=this,a=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");a.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
-this.range=d([]);if(a.range){if(a.range===true){this.range=d("<div></div>");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
-if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length<a.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();
-else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
-false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
-b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(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");
-this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b,
-g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},
-_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;
-if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=
-this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c<e))c=e;if(c!==this.values(a)){e=this.values();e[a]=c;b=this._trigger("slide",b,{handle:this.handles[a],value:c,values:e});this.values(a?0:1);b!==false&&this.values(a,c,true)}}else if(c!==this.value()){b=this._trigger("slide",b,{handle:this.handles[a],
-value:c});b!==false&&this.value(c)}},_stop:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("stop",b,c)},_change:function(b,a){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("change",b,c)}},value:function(b){if(arguments.length){this.options.value=
-this._trimAlignValue(b);this._refreshValue();this._change(null,0)}return this._value()},values:function(b,a){var c,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(b):this.value();
-else return this._values()},_setOption:function(b,a){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(b){case "disabled":if(a){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")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var b=this.options.value;return b=this._trimAlignValue(b)},_values:function(b){var a,c;if(arguments.length){a=this.options.values[b];
-return a=this._trimAlignValue(a)}else{a=this.options.values.slice();for(c=0;c<a.length;c+=1)a[c]=this._trimAlignValue(a[c]);return a}},_trimAlignValue:function(b){if(b<=this._valueMin())return this._valueMin();if(b>=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},
-_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate);
-if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1,
-1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.11"})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.sortable.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.sortable.min.js
deleted file mode 100644
index d42ebaf..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.sortable.min.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * jQuery UI Sortable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();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;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=
-b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;
-d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-
-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};
-this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=
-document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);
-return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<
-b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-
-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,
-a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],
-e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();
-c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):
-this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,
-dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},
-toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||
-this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();
-var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},
-_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();
-if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
-this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),
-this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&
-this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=
-e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
-if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);
-c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===
-1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=
-this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):
-b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==
-""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
-this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions=
-{width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||
-document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,
-b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=
-document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
-e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-
-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<
-this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&
-this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=
-this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();
-this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],
-this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",
-g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||
-this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,
-originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.11"})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.tabs.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.tabs.min.js
deleted file mode 100644
index 550eec8..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.tabs.min.js
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
-e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
-d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
-(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){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");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
-this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
-if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
-this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
-g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
-function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
-this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
--1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
-d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=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.anchors.each(function(){var e=
-d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(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")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
-e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
-j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
-if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
-this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
-load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
-"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
-url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.11"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
-a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.widget.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.widget.min.js
deleted file mode 100644
index 01cb788..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.widget.min.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*!
- * jQuery UI Widget 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
-a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
-e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
-this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
-widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
-enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/version.txt b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/version.txt
deleted file mode 100644
index 267637b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/development-bundle/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-1.8.11
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-1.5.1.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-1.5.1.min.js
deleted file mode 100644
index 6437874..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-1.5.1.min.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.5.1
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Wed Feb 23 13:55:29 2011 -0500
- */
-(function(a,b){function cg(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cd(a){if(!bZ[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";bZ[a]=c}return bZ[a]}function cc(a,b){var c={};d.each(cb.concat.apply([],cb.slice(0,b)),function(){c[this]=a});return c}function bY(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bX(){try{return new a.XMLHttpRequest}catch(b){}}function bW(){d(a).unload(function(){for(var a in bU)bU[a](0,1)})}function bQ(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bP(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bO(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bq.test(a)?e(a,f):bO(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bO(a+"["+f+"]",b[f],c,e)}function bN(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bH,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bN(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bN(a,c,d,e,"*",g));return l}function bM(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bB),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bo(a,b,c){var e=b==="width"?bi:bj,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function ba(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function _(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function $(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function Z(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function Y(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function O(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(J.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function N(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function F(a,b){return(a&&a!=="*"?a+".":"")+b.replace(r,"`").replace(s,"&")}function E(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,q=[],r=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(p,"")===a.type?r.push(g.selector):t.splice(i--,1);f=d(a.target).closest(r,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&q.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=q.length;j<k;j++){f=q[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function C(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function w(){return!0}function v(){return!1}function g(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function f(a,c,f){if(f===b&&a.nodeType===1){f=a.getAttribute("data-"+c);if(typeof f==="string"){try{f=f==="true"?!0:f==="false"?!1:f==="null"?null:d.isNaN(f)?e.test(f)?d.parseJSON(f):f:parseFloat(f)}catch(g){}d.data(a,c,f)}else f=b}return f}var c=a.document,d=function(){function I(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(I,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x=!1,y,z="then done fail isResolved isRejected promise".split(" "),A,B=Object.prototype.toString,C=Object.prototype.hasOwnProperty,D=Array.prototype.push,E=Array.prototype.slice,F=String.prototype.trim,G=Array.prototype.indexOf,H={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.1",length:0,size:function(){return this.length},toArray:function(){return E.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?D.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(E.apply(this,arguments),"slice",E.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:D,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;y.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=!0;if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",A,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",A),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&I()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):H[B.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!C.call(a,"constructor")&&!C.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||C.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:F?function(a){return a==null?"":F.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?D.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){c=1;try{while(a[0])a.shift().apply(d,f)}catch(g){throw g}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(d.isFunction(this.promise)?this.promise():this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),e;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(e)return e;e=a={}}var c=z.length;while(c--)a[z[c]]=b[z[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){var b=arguments.length,c=b<=1&&a&&d.isFunction(a.promise)?a:d.Deferred(),e=c.promise();if(b>1){var f=E.call(arguments,0),g=b,h=function(a){return function(b){f[a]=arguments.length>1?E.call(arguments,0):b,--g||c.resolveWith(e,f)}};while(b--)a=f[b],a&&d.isFunction(a.promise)?a.promise().then(h(b),c.reject):--g;g||c.resolveWith(e,f)}else c!==a&&c.resolve(a);return e},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),y=d._Deferred(),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){H["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),G&&(d.inArray=function(a,b){return G.call(b,a)}),i.test(" ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?A=function(){c.removeEventListener("DOMContentLoaded",A,!1),d.ready()}:c.attachEvent&&(A=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",A),d.ready())});return d}();(function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e),b=e=f=null}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function"),b=null;return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}})();var e=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!g(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,h=b.nodeType,i=h?d.cache:b,j=h?b[d.expando]:d.expando;if(!i[j])return;if(c){var k=e?i[j][f]:i[j];if(k){delete k[c];if(!g(k))return}}if(e){delete i[j][f];if(!g(i[j]))return}var l=i[j][f];d.support.deleteExpando||i!=a?delete i[j]:i[j]=null,l?(i[j]={},h||(i[j].toJSON=d.noop),i[j][f]=l):h&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var g=this[0].attributes,h;for(var i=0,j=g.length;i<j;i++)h=g[i].name,h.indexOf("data-")===0&&(h=h.substr(5),f(this[0],h,e[h]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=f(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var h=/[\n\t\r]/g,i=/\s+/,j=/\r/g,k=/^(?:href|src|style)$/,l=/^(?:button|input)$/i,m=/^(?:button|input|object|select|textarea)$/i,n=/^a(?:rea)?$/i,o=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(i);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var j=0,k=b.length;j<k;j++)g.indexOf(" "+b[j]+" ")<0&&(h+=" "+b[j]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(i);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var j=(" "+g.className+" ").replace(h," ");for(var k=0,l=c.length;k<l;k++)j=j.replace(" "+c[k]+" "," ");g.className=d.trim(j)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),j=b,k=a.split(i);while(f=k[g++])j=e?j:!h.hasClass(f),h[j?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(h," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var k=i?f:0,l=i?f+1:h.length;k<l;k++){var m=h[k];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(o.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(j,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&o.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=k.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&l.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var o=a.getAttributeNode("tabIndex");return o&&o.specified?o.value:m.test(a.nodeName)||n.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var p=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return p===null?b:p}h&&(a[c]=e);return a[c]}});var p=/\.(.*)$/,q=/^(?:textarea|input|select)$/i,r=/\./g,s=/ /g,t=/[^\w\s.|`]/g,u=function(a){return a.replace(t,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=v;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(){return typeof d!=="undefined"&&!d.event.triggered?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=v);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),u).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var w=s.handle;w&&(w.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(p,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=!0,l[m]())}catch(q){}k&&(l["on"+m]=k),d.event.triggered=!1}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,F(a.origType,a.selector),d.extend({},a,{handler:E,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,F(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?w:v):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=w;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=w;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=w,this.stopPropagation()},isDefaultPrevented:v,isPropagationStopped:v,isImmediatePropagationStopped:v};var x=function(a){var b=a.relatedTarget;try{if(b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},y=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?y:x,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?y:x)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&C("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&C("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var z,A=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},B=function B(a){var c=a.target,e,f;if(q.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=A(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:B,beforedeactivate:B,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&B.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&B.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",A(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in z)d.event.add(this,c+".specialChange",z[c]);return q.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return q.test(this.nodeName)}},z=d.event.special.change.filters,z.focus=z.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function c(a){a=d.event.fix(a),a.type=b;return d.event.handle.call(this,a)}d.event.special[b]={setup:function(){this.addEventListener(a,c,!0)},teardown:function(){this.removeEventListener(a,c,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var D={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=p.exec(h),k="",j&&(k=j[0],h=h.replace(p,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(D[h]+k),h=h+k):h=(D[h]||h)+k;if(c==="live")for(var q=0,r=n.length;q<r;q++)d.event.add(n[q],"live."+F(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+F(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.getAttribute("type")},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector,d=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(e){d=!0}b&&(k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(d||!l.match.PSEUDO.test(c)&&!/!=/.test(c))return b.call(a,c)}catch(e){}return k(c,null,null,[a]).length>0})}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var G=/Until$/,H=/^(?:parents|prevUntil|prevAll)/,I=/,/,J=/^.[^:#\[\.,]*$/,K=Array.prototype.slice,L=d.expr.match.POS,M={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(O(this,a,!1),"not",a)},filter:function(a){return this.pushStack(O(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=L.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(N(c[0])||N(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=K.call(arguments);G.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!M[a]?d.unique(f):f,(this.length>1||I.test(e))&&H.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var P=/ jQuery\d+="(?:\d+|null)"/g,Q=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,S=/<([\w:]+)/,T=/<tbody/i,U=/<|&#?\w+;/,V=/<(?:script|object|embed|option|style)/i,W=/checked\s*(?:[^=]|=\s*.checked.)/i,X={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};X.optgroup=X.option,X.tbody=X.tfoot=X.colgroup=X.caption=X.thead,X.th=X.td,d.support.htmlSerialize||(X._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(P,""):null;if(typeof a!=="string"||V.test(a)||!d.support.leadingWhitespace&&Q.test(a)||X[(S.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(R,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&W.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?Y(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,ba)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!V.test(a[0])&&(d.support.checkClone||!W.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){$(a,e),f=_(a),g=_(e);for(h=0;f[h];++h)$(f[h],g[h])}if(b){Z(a,e);if(c){f=_(a),g=_(e);for(h=0;f[h];++h)Z(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||U.test(i)){if(typeof i==="string"){i=i.replace(R,"<$1></$2>");var j=(S.exec(i)||["",""])[1].toLowerCase(),k=X[j]||X._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=T.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&Q.test(i)&&m.insertBefore(b.createTextNode(Q.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bb=/alpha\([^)]*\)/i,bc=/opacity=([^)]*)/,bd=/-([a-z])/ig,be=/([A-Z])/g,bf=/^-?\d+(?:px)?$/i,bg=/^-?\d/,bh={position:"absolute",visibility:"hidden",display:"block"},bi=["Left","Right"],bj=["Top","Bottom"],bk,bl,bm,bn=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bk(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bk)return bk(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bd,bn)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bo(a,b,e):d.swap(a,bh,function(){f=bo(a,b,e)});if(f<=0){f=bk(a,b,b),f==="0px"&&bm&&(f=bm(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bf.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return bc.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bb.test(f)?f.replace(bb,e):c.filter+" "+e}}),c.defaultView&&c.defaultView.getComputedStyle&&(bl=function(a,c,e){var f,g,h;e=e.replace(be,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bm=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bf.test(d)&&bg.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bk=bl||bm,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var bp=/%20/g,bq=/\[\]$/,br=/\r?\n/g,bs=/#.*$/,bt=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bu=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bv=/(?:^file|^widget|\-extension):$/,bw=/^(?:GET|HEAD)$/,bx=/^\/\//,by=/\?/,bz=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bA=/^(?:select|textarea)/i,bB=/\s+/,bC=/([?&])_=[^&]*/,bD=/(^|\-)([a-z])/g,bE=function(a,b,c){return b+c.toUpperCase()},bF=/^([\w\+\.\-]+:)\/\/([^\/?#:]*)(?::(\d+))?/,bG=d.fn.load,bH={},bI={},bJ,bK;try{bJ=c.location.href}catch(bL){bJ=c.createElement("a"),bJ.href="",bJ=bJ.href}bK=bF.exec(bJ.toLowerCase()),d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bG)return bG.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bz,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bA.test(this.nodeName)||bu.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(br,"\r\n")}}):{name:b.name,value:c.replace(br,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bJ,isLocal:bv.test(bK[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bM(bH),ajaxTransport:bM(bI),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bP(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bQ(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bD,bE)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bt.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bs,"").replace(bx,bK[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bB),e.crossDomain||(q=bF.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bK[1]||q[2]!=bK[2]||(q[3]||(q[1]==="http:"?80:443))!=(bK[3]||(bK[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bN(bH,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!bw.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(by.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bC,"$1_="+w);e.url=x+(x===e.url?(by.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bN(bI,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bO(g,a[g],c,f);return e.join("&").replace(bp,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bR=d.now(),bS=/(\=)\?(&|$)|()\?\?()/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bR++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bS.test(b.url)||f&&bS.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bS,l),b.url===j&&(f&&(k=k.replace(bS,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bT=d.now(),bU,bV;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bX()||bY()}:bX,bV=d.ajaxSettings.xhr(),d.support.ajax=!!bV,d.support.cors=bV&&"withCredentials"in bV,bV=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),(!a.crossDomain||a.hasContent)&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bU[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bU||(bU={},bW()),h=bT++,g.onreadystatechange=bU[h]=c):c()},abort:function(){c&&c(0,1)}}}});var bZ={},b$=/^(?:toggle|show|hide)$/,b_=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,ca,cb=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(cc("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cd(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cc("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(cc("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cd(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(b$.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=b_.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:cc("show",1),slideUp:cc("hide",1),slideToggle:cc("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!ca&&(ca=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(ca),ca=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var ce=/^t(?:able|d|h)$/i,cf=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=cg(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!ce.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),a=b=e=f=g=h=null,d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=e==="absolute"&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=cf.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!cf.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=cg(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=cg(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-ui-1.8.11.custom.min.js b/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-ui-1.8.11.custom.min.js
deleted file mode 100644
index f8709e0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery-ui-1.8.11.custom/js/jquery-ui-1.8.11.custom.min.js
+++ /dev/null
@@ -1,783 +0,0 @@
-/*!
- * jQuery UI 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI
- */
-(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.11",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,
-NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,
-"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");
-if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f,
-"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,
-d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}});
-c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&
-b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&&c.ui.isOverAxis(b,e,i)}})}})(jQuery);
-;/*!
- * jQuery UI Widget 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Widget
- */
-(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)b(d).triggerHandler("remove");k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){b(this).triggerHandler("remove")});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]=function(h){return!!b.data(h,
-a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)):d;if(e&&d.charAt(0)==="_")return h;
-e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options=b.extend(true,{},this.options,
-this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},
-widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",c);return this},
-enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery);
-;/*!
- * jQuery UI Mouse 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Mouse
- *
- * Depends:
- *	jquery.ui.widget.js
- */
-(function(b){b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(a){a.originalEvent=
-a.originalEvent||{};if(!a.originalEvent.mouseHandled){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,e=a.which==1,f=typeof this.options.cancel=="string"?b(a.target).parents().add(a.target).filter(this.options.cancel).length:false;if(!e||f||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted=
-this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(d){return c._mouseMove(d)};this._mouseUpDelegate=function(d){return c._mouseUp(d)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return a.originalEvent.mouseHandled=
-true}},_mouseMove:function(a){if(b.browser.msie&&!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);
-if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery);
-;/*
- * jQuery UI Position 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Position
- */
-(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY,
-left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+=
-k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-=
-m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left=
-d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+=
-a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b),
-g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery);
-;/*
- * jQuery UI Draggable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Draggables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper==
-"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b=
-this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-
-this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions();
-d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||
-this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&
-this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==
-a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||
-0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-
-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),
-height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?
-document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"?0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),
-10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0),a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0),a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),
-10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&
-d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],
-this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.left<this.containment[0])e=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=
-this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;e=this.originalPageX+Math.round((e-this.originalPageX)/b.grid[0])*b.grid[0];e=this.containment?!(e-this.offset.click.left<this.containment[0]||e-this.offset.click.left>this.containment[2])?
-e:!(e-this.offset.click.left<this.containment[0])?e-b.grid[0]:e+b.grid[0]:e}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop()),left:e-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
-f?0:c.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(a,b,c){c=c||this._uiHash();d.ui.plugin.call(this,a,[b,c]);if(a=="drag")this.positionAbs=this._convertPositionTo("absolute");return d.Widget.prototype._trigger.call(this,a,b,c)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,
-offset:this.positionAbs}}});d.extend(d.ui.draggable,{version:"1.8.11"});d.ui.plugin.add("draggable","connectToSortable",{start:function(a,b){var c=d(this).data("draggable"),f=c.options,e=d.extend({},b,{item:c.element});c.sortables=[];d(f.connectToSortable).each(function(){var g=d.data(this,"sortable");if(g&&!g.options.disabled){c.sortables.push({instance:g,shouldRevert:g.options.revert});g.refreshPositions();g._trigger("activate",a,e)}})},stop:function(a,b){var c=d(this).data("draggable"),f=d.extend({},
-b,{item:c.element});d.each(c.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;c.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(a);this.instance.options.helper=this.instance.options._helper;c.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval=false;this.instance._trigger("deactivate",a,f)}})},drag:function(a,b){var c=
-d(this).data("draggable"),f=this;d.each(c.sortables,function(){this.instance.positionAbs=c.positionAbs;this.instance.helperProportions=c.helperProportions;this.instance.offset.click=c.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=d(f).clone().appendTo(this.instance.element).data("sortable-item",true);this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return b.helper[0]};
-a.target=this.instance.currentItem[0];this.instance._mouseCapture(a,true);this.instance._mouseStart(a,true,true);this.instance.offset.click.top=c.offset.click.top;this.instance.offset.click.left=c.offset.click.left;this.instance.offset.parent.left-=c.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=c.offset.parent.top-this.instance.offset.parent.top;c._trigger("toSortable",a);c.dropped=this.instance.element;c.currentItem=c.element;this.instance.fromOutside=c}this.instance.currentItem&&
-this.instance._mouseDrag(a)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",a,this.instance._uiHash(this.instance));this.instance._mouseStop(a,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&&this.instance.placeholder.remove();c._trigger("fromSortable",a);c.dropped=false}})}});d.ui.plugin.add("draggable","cursor",
-{start:function(){var a=d("body"),b=d(this).data("draggable").options;if(a.css("cursor"))b._cursor=a.css("cursor");a.css("cursor",b.cursor)},stop:function(){var a=d(this).data("draggable").options;a._cursor&&d("body").css("cursor",a._cursor)}});d.ui.plugin.add("draggable","iframeFix",{start:function(){var a=d(this).data("draggable").options;d(a.iframeFix===true?"iframe":a.iframeFix).each(function(){d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+
-"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",
-a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop+
-c.scrollSpeed;else if(a.pageY-b.overflowOffset.top<c.scrollSensitivity)b.scrollParent[0].scrollTop=f=b.scrollParent[0].scrollTop-c.scrollSpeed;if(!c.axis||c.axis!="y")if(b.overflowOffset.left+b.scrollParent[0].offsetWidth-a.pageX<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft+c.scrollSpeed;else if(a.pageX-b.overflowOffset.left<c.scrollSensitivity)b.scrollParent[0].scrollLeft=f=b.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(!c.axis||c.axis!="x")if(a.pageY-d(document).scrollTop()<
-c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()-c.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<c.scrollSensitivity)f=d(document).scrollTop(d(document).scrollTop()+c.scrollSpeed);if(!c.axis||c.axis!="y")if(a.pageX-d(document).scrollLeft()<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()-c.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<c.scrollSensitivity)f=d(document).scrollLeft(d(document).scrollLeft()+
-c.scrollSpeed)}f!==false&&d.ui.ddmanager&&!c.dropBehaviour&&d.ui.ddmanager.prepareOffsets(b,a)}});d.ui.plugin.add("draggable","snap",{start:function(){var a=d(this).data("draggable"),b=a.options;a.snapElements=[];d(b.snap.constructor!=String?b.snap.items||":data(draggable)":b.snap).each(function(){var c=d(this),f=c.offset();this!=a.element[0]&&a.snapElements.push({item:this,width:c.outerWidth(),height:c.outerHeight(),top:f.top,left:f.left})})},drag:function(a,b){for(var c=d(this).data("draggable"),
-f=c.options,e=f.snapTolerance,g=b.offset.left,n=g+c.helperProportions.width,m=b.offset.top,o=m+c.helperProportions.height,h=c.snapElements.length-1;h>=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e<g&&g<k+e&&j-e<m&&m<l+e||i-e<g&&g<k+e&&j-e<o&&o<l+e||i-e<n&&n<k+e&&j-e<m&&m<l+e||i-e<n&&n<k+e&&j-e<o&&o<l+e){if(f.snapMode!="inner"){var p=Math.abs(j-o)<=e,q=Math.abs(l-m)<=e,r=Math.abs(i-n)<=e,s=Math.abs(k-g)<=e;if(p)b.position.top=
-c._convertPositionTo("relative",{top:j-c.helperProportions.height,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i-c.helperProportions.width}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k}).left-c.margins.left}var t=p||q||r||s;if(f.snapMode!="outer"){p=Math.abs(j-m)<=e;q=Math.abs(l-o)<=e;r=Math.abs(i-g)<=e;s=Math.abs(k-n)<=e;if(p)b.position.top=
-c._convertPositionTo("relative",{top:j,left:0}).top-c.margins.top;if(q)b.position.top=c._convertPositionTo("relative",{top:l-c.helperProportions.height,left:0}).top-c.margins.top;if(r)b.position.left=c._convertPositionTo("relative",{top:0,left:i}).left-c.margins.left;if(s)b.position.left=c._convertPositionTo("relative",{top:0,left:k-c.helperProportions.width}).left-c.margins.left}if(!c.snapElements[h].snapping&&(p||q||r||s||t))c.options.snap.snap&&c.options.snap.snap.call(c.element,a,d.extend(c._uiHash(),
-{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=p||q||r||s||t}else{c.snapElements[h].snapping&&c.options.snap.release&&c.options.snap.release.call(c.element,a,d.extend(c._uiHash(),{snapItem:c.snapElements[h].item}));c.snapElements[h].snapping=false}}}});d.ui.plugin.add("draggable","stack",{start:function(){var a=d(this).data("draggable").options;a=d.makeArray(d(a.stack)).sort(function(c,f){return(parseInt(d(c).css("zIndex"),10)||0)-(parseInt(d(f).css("zIndex"),10)||0)});if(a.length){var b=
-parseInt(a[0].style.zIndex)||0;d(a).each(function(c){this.style.zIndex=b+c});this[0].style.zIndex=b+a.length}}});d.ui.plugin.add("draggable","zIndex",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("zIndex"))b._zIndex=a.css("zIndex");a.css("zIndex",b.zIndex)},stop:function(a,b){a=d(this).data("draggable").options;a._zIndex&&d(b.helper).css("zIndex",a._zIndex)}})})(jQuery);
-;/*
- * jQuery UI Droppable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Droppables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.mouse.js
- *	jquery.ui.draggable.js
- */
-(function(d){d.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var a=this.options,b=a.accept;this.isover=0;this.isout=1;this.accept=d.isFunction(b)?b:function(c){return c.is(b)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};d.ui.ddmanager.droppables[a.scope]=d.ui.ddmanager.droppables[a.scope]||[];d.ui.ddmanager.droppables[a.scope].push(this);
-a.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var a=d.ui.ddmanager.droppables[this.options.scope],b=0;b<a.length;b++)a[b]==this&&a.splice(b,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(a,b){if(a=="accept")this.accept=d.isFunction(b)?b:function(c){return c.is(b)};d.Widget.prototype._setOption.apply(this,arguments)},_activate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&
-this.element.addClass(this.options.activeClass);b&&this._trigger("activate",a,this.ui(b))},_deactivate:function(a){var b=d.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);b&&this._trigger("deactivate",a,this.ui(b))},_over:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass);
-this._trigger("over",a,this.ui(b))}},_out:function(a){var b=d.ui.ddmanager.current;if(!(!b||(b.currentItem||b.element)[0]==this.element[0]))if(this.accept.call(this.element[0],b.currentItem||b.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",a,this.ui(b))}},_drop:function(a,b){var c=b||d.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return false;var e=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g=
-d.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==c.options.scope&&g.accept.call(g.element[0],c.currentItem||c.element)&&d.ui.intersect(c,d.extend(g,{offset:g.element.offset()}),g.options.tolerance)){e=true;return false}});if(e)return false;if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop",
-a,this.ui(c));return this.element}return false},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}});d.extend(d.ui.droppable,{version:"1.8.11"});d.ui.intersect=function(a,b,c){if(!b.offset)return false;var e=(a.positionAbs||a.position.absolute).left,g=e+a.helperProportions.width,f=(a.positionAbs||a.position.absolute).top,h=f+a.helperProportions.height,i=b.offset.left,k=i+b.proportions.width,j=b.offset.top,l=j+b.proportions.height;
-switch(c){case "fit":return i<=e&&g<=k&&j<=f&&h<=l;case "intersect":return i<e+a.helperProportions.width/2&&g-a.helperProportions.width/2<k&&j<f+a.helperProportions.height/2&&h-a.helperProportions.height/2<l;case "pointer":return d.ui.isOver((a.positionAbs||a.position.absolute).top+(a.clickOffset||a.offset.click).top,(a.positionAbs||a.position.absolute).left+(a.clickOffset||a.offset.click).left,j,i,b.proportions.height,b.proportions.width);case "touch":return(f>=j&&f<=l||h>=j&&h<=l||f<j&&h>l)&&(e>=
-i&&e<=k||g>=i&&g<=k||e<i&&g>k);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f<c.length;f++)if(!(c[f].options.disabled||a&&!c[f].accept.call(c[f].element[0],a.currentItem||a.element))){for(var h=0;h<g.length;h++)if(g[h]==c[f].element[0]){c[f].proportions.height=0;continue a}c[f].visible=c[f].element.css("display")!=
-"none";if(c[f].visible){e=="mousedown"&&c[f]._activate.call(c[f],b);c[f].offset=c[f].element.offset();c[f].proportions={width:c[f].element[0].offsetWidth,height:c[f].element[0].offsetHeight}}}},drop:function(a,b){var c=false;d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&d.ui.intersect(a,this,this.options.tolerance))c=c||this._drop.call(this,b);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],a.currentItem||
-a.element)){this.isout=1;this.isover=0;this._deactivate.call(this,b)}}});return c},drag:function(a,b){a.options.refreshPositions&&d.ui.ddmanager.prepareOffsets(a,b);d.each(d.ui.ddmanager.droppables[a.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var c=d.ui.intersect(a,this,this.options.tolerance);if(c=!c&&this.isover==1?"isout":c&&this.isover==0?"isover":null){var e;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){e=
-d.data(g[0],"droppable");e.greedyChild=c=="isover"?1:0}}if(e&&c=="isover"){e.isover=0;e.isout=1;e._out.call(e,b)}this[c]=1;this[c=="isout"?"isover":"isout"]=0;this[c=="isover"?"_over":"_out"].call(this,b);if(e&&c=="isout"){e.isout=0;e.isover=1;e._over.call(e,b)}}}})}}})(jQuery);
-;/*
- * jQuery UI Resizable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.resizable",e.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var b=this,a=this.options;this.element.addClass("ui-resizable");e.extend(this,{_aspectRatio:!!a.aspectRatio,aspectRatio:a.aspectRatio,originalElement:this.element,
-_proportionallyResizeElements:[],_helper:a.helper||a.ghost||a.animate?a.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&e.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),
-top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=
-this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",
-nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d<c.length;d++){var f=e.trim(c[d]),g=e('<div class="ui-resizable-handle '+("ui-resizable-"+f)+'"></div>');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor==
-String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection();
-this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};
-if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(),
-d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset=
-this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio:
-this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize",
-b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height;
-f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");
-this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=
-null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidth<b.width,f=l(b.height)&&a.maxHeight&&a.maxHeight<b.height,g=l(b.width)&&a.minWidth&&a.minWidth>b.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+
-this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a<this._proportionallyResizeElements.length;a++){var c=this._proportionallyResizeElements[a];if(!this.borderDif){var d=
-[c.css("borderTopWidth"),c.css("borderRightWidth"),c.css("borderBottomWidth"),c.css("borderLeftWidth")],f=[c.css("paddingTop"),c.css("paddingRight"),c.css("paddingBottom"),c.css("paddingLeft")];this.borderDif=e.map(d,function(g,h){g=parseInt(g,10)||0;h=parseInt(f[h],10)||0;return g+h})}e.browser.msie&&(e(b).is(":hidden")||e(b).parents(":hidden").length)||c.css({height:b.height()-this.borderDif[0]-this.borderDif[2]||0,width:b.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var b=
-this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,
-a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,
-c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,
-originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.11"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=
-b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width",
-"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};
-if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-
-g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,
-height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=
-e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,
-d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?
-d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=
-a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&
-/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");
-b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/
-(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery);
-;/*
- * jQuery UI Selectable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"),
-selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX,
-c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting",
-c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d=
-this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.right<b||a.top>i||a.bottom<g);else if(d.tolerance=="fit")k=a.left>b&&a.right<h&&a.top>g&&a.bottom<i;if(k){if(a.selected){a.$element.removeClass("ui-selected");a.selected=false}if(a.unselecting){a.$element.removeClass("ui-unselecting");
-a.unselecting=false}if(!a.selecting){a.$element.addClass("ui-selecting");a.selecting=true;f._trigger("selecting",c,{selecting:a.element})}}else{if(a.selecting)if(c.metaKey&&a.startselected){a.$element.removeClass("ui-selecting");a.selecting=false;a.$element.addClass("ui-selected");a.selected=true}else{a.$element.removeClass("ui-selecting");a.selecting=false;if(a.startselected){a.$element.addClass("ui-unselecting");a.unselecting=true}f._trigger("unselecting",c,{unselecting:a.element})}if(a.selected)if(!c.metaKey&&
-!a.startselected){a.$element.removeClass("ui-selected");a.selected=false;a.$element.addClass("ui-unselecting");a.unselecting=true;f._trigger("unselecting",c,{unselecting:a.element})}}}});return false}},_mouseStop:function(c){var f=this;this.dragged=false;e(".ui-unselecting",this.element[0]).each(function(){var d=e.data(this,"selectable-item");d.$element.removeClass("ui-unselecting");d.unselecting=false;d.startselected=false;f._trigger("unselected",c,{unselected:d.element})});e(".ui-selecting",this.element[0]).each(function(){var d=
-e.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected");d.selecting=false;d.selected=true;d.startselected=true;f._trigger("selected",c,{selected:d.element})});this._trigger("stop",c);this.helper.remove();return false}});e.extend(e.ui.selectable,{version:"1.8.11"})})(jQuery);
-;/*
- * jQuery UI Sortable 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Sortables
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.sortable",d.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");
-this.refresh();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;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=
-b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;
-d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem=c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-
-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};
-this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment();if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=
-document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);
-return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY<b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop+b.scrollSpeed;else if(a.pageY-this.overflowOffset.top<
-b.scrollSensitivity)this.scrollParent[0].scrollTop=c=this.scrollParent[0].scrollTop-b.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-a.pageX<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft+b.scrollSpeed;else if(a.pageX-this.overflowOffset.left<b.scrollSensitivity)this.scrollParent[0].scrollLeft=c=this.scrollParent[0].scrollLeft-b.scrollSpeed}else{if(a.pageY-d(document).scrollTop()<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()-
-b.scrollSpeed);else if(d(window).height()-(a.pageY-d(document).scrollTop())<b.scrollSensitivity)c=d(document).scrollTop(d(document).scrollTop()+b.scrollSpeed);if(a.pageX-d(document).scrollLeft()<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()-b.scrollSpeed);else if(d(window).width()-(a.pageX-d(document).scrollLeft())<b.scrollSensitivity)c=d(document).scrollLeft(d(document).scrollLeft()+b.scrollSpeed)}c!==false&&d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,
-a)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(b=this.items.length-1;b>=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],
-e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a,c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();
-c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):
-this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,
-dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},
-toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+j<k&&b+l>g&&b+l<h;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||
-this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?j:g<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<h&&i<e+this.helperProportions.height/2&&f-this.helperProportions.height/2<k},_intersectsWithPointer:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left,a.width);b=b&&a;a=this._getDragVerticalDirection();
-var c=this._getDragHorizontalDirection();if(!b)return false;return this.floating?c&&c=="right"||a=="down"?2:1:a&&(a=="down"?2:1)},_intersectsWithSides:function(a){var b=d.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,a.top+a.height/2,a.height);a=d.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,a.left+a.width/2,a.width);var c=this._getDragVerticalDirection(),e=this._getDragHorizontalDirection();return this.floating&&e?e=="right"&&a||e=="left"&&!a:c&&(c=="down"&&b||c=="up"&&!b)},
-_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();
-if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),
-this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(a){this.items=[];this.containers=[this];var b=this.items,c=[[d.isFunction(this.options.items)?this.options.items.call(this.element[0],a,{item:this.currentItem}):d(this.options.items,this.element),
-this]],e=this._connectWith();if(e)for(var f=e.length-1;f>=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h<g;h++){i=d(e[h]);i.data("sortable-item",a);b.push({item:i,instance:a,width:0,height:0,left:0,top:0})}}},refreshPositions:function(a){if(this.offsetParent&&
-this.helper)this.offset.parent=this._getParentOffset();for(var b=this.items.length-1;b>=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=
-e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];
-if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);
-c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===
-1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)<b){b=Math.abs(h-f);e=this.items[g]}}if(e||this.options.dropOnEmpty){this.currentContainer=
-this.containers[c];e?this._rearrange(a,e,null,true):this._rearrange(a,null,this.containers[c].element,true);this._trigger("change",a,this._uiHash());this.containers[c]._trigger("change",a,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}}},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a,this.currentItem])):
-b.helper=="clone"?this.currentItem.clone():this.currentItem;a.parents("body").length||d(b.appendTo!="parent"?b.appendTo:this.currentItem[0].parentNode)[0].appendChild(a[0]);if(a[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(a[0].style.width==""||b.forceHelperSize)a.width(this.currentItem.width());if(a[0].style.height==
-""||b.forceHelperSize)a.height(this.currentItem.height());return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]||0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=
-this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),
-10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions=
-{width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment=="parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||
-document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)){var b=d(a.containment)[0];a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,
-b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=
-document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():
-e?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(c[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset();var f=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-
-this.offset.click.left<this.containment[0])f=this.containment[0]+this.offset.click.left;if(a.pageY-this.offset.click.top<this.containment[1])g=this.containment[1]+this.offset.click.top;if(a.pageX-this.offset.click.left>this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top<
-this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.top<this.containment[1])?g-b.grid[1]:g+b.grid[1]:g;f=this.originalPageX+Math.round((f-this.originalPageX)/b.grid[0])*b.grid[0];f=this.containment?!(f-this.offset.click.left<this.containment[0]||f-this.offset.click.left>this.containment[2])?f:!(f-this.offset.click.left<this.containment[0])?f-b.grid[0]:f+b.grid[0]:f}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(d.browser.safari&&
-this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:c.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(d.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:c.scrollLeft())}},_rearrange:function(a,b,c,e){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling);this.counter=
-this.counter?++this.counter:1;var f=this,g=this.counter;window.setTimeout(function(){g==f.counter&&f.refreshPositions(!e)},0)},_clear:function(a,b){this.reverting=false;var c=[];!this._noFinalSort&&this.currentItem[0].parentNode&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var e in this._storedCSS)if(this._storedCSS[e]=="auto"||this._storedCSS[e]=="static")this._storedCSS[e]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();
-this.fromOutside&&!b&&c.push(function(f){this._trigger("receive",f,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!b)c.push(function(f){this._trigger("update",f,this._uiHash())});if(!d.ui.contains(this.element[0],this.currentItem[0])){b||c.push(function(f){this._trigger("remove",f,this._uiHash())});for(e=this.containers.length-1;e>=0;e--)if(d.ui.contains(this.containers[e].element[0],
-this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",
-g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}return false}b||
-this._trigger("beforeStop",a,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!b){for(e=0;e<c.length;e++)c[e].call(this,a);this._trigger("stop",a,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){d.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()},_uiHash:function(a){var b=a||this;return{helper:b.helper,placeholder:b.placeholder||d([]),position:b.position,
-originalPosition:b.originalPosition,offset:b.positionAbs,item:b.currentItem,sender:a?a.element:null}}});d.extend(d.ui.sortable,{version:"1.8.11"})})(jQuery);
-;/*
- * jQuery UI Accordion 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(c){c.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
-a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
-if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion",
-function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=
-this.options;if(a.icons){c("<span></span>").addClass("ui-icon "+a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.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 b=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(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons();
-b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target);
-a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+
-c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options;
-if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
-if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(),
-e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight||
-e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false",
-"aria-selected":"false",tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.11",
-animations:{slide:function(a,b){a=c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);
-f[i]={value:j[1],unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",
-paddingTop:"hide",paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery);
-;/*
- * jQuery UI Autocomplete 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *	jquery.ui.position.js
- */
-(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g=
-false;var f=d.ui.keyCode;switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=
-a.element.val()){a.selectedItem=null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};
-this.menu=d("<ul></ul>").addClass("ui-autocomplete").appendTo(d(this.options.appendTo||"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&
-a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"),i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");
-d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&
-b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source==="string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=
-this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)!==false)return this._search(a)},_search:function(a){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:a},this.response)},_response:function(a){if(!this.options.disabled&&a&&a.length){a=this._normalize(a);this._suggest(a);this._trigger("open")}else this.close();
-this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(a){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",a)}},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(a){if(a.length&&a[0].label&&a[0].value)return a;return d.map(a,function(b){if(typeof b==="string")return{label:b,value:b};return d.extend({label:b.label||
-b.value,value:b.value||b.label},b)})},_suggest:function(a){var b=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(b,a);this.menu.deactivate();this.menu.refresh();b.show();this._resizeMenu();b.position(d.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new d.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(a,b){var g=this;
-d.each(b,function(c,f){g._renderItem(a,f)})},_renderItem:function(a,b){return d("<li></li>").data("item.autocomplete",b).append(d("<a></a>").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b);else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,
-"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery);
-(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex",
--1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})},
-deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0);
-e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e,
-g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first"));
-this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element.attr("scrollHeight")},select:function(e){this._trigger("selected",e,{item:this.active})}})})(jQuery);
-;/*
- * jQuery UI Button 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(a){var g,i=function(b){a(":ui-button",b.target.form).each(function(){var c=a(this).data("button");setTimeout(function(){c.refresh()},1)})},h=function(b){var c=b.name,d=b.form,f=a([]);if(c)f=d?a(d).find("[name='"+c+"']"):a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form});return f};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",
-i);if(typeof this.options.disabled!=="boolean")this.options.disabled=this.element.attr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,c=this.options,d=this.type==="checkbox"||this.type==="radio",f="ui-state-hover"+(!d?" ui-state-active":"");if(c.label===null)c.label=this.buttonElement.html();if(this.element.is(":disabled"))c.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",
-function(){if(!c.disabled){a(this).addClass("ui-state-hover");this===g&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){c.disabled||a(this).removeClass(f)}).bind("focus.button",function(){a(this).addClass("ui-state-focus")}).bind("blur.button",function(){a(this).removeClass("ui-state-focus")});d&&this.element.bind("change.button",function(){b.refresh()});if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).toggleClass("ui-state-active");
-b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed",true);var e=b.element[0];h(e).not(e).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed",false)});else{this.buttonElement.bind("mousedown.button",function(){if(c.disabled)return false;a(this).addClass("ui-state-active");
-g=this;a(document).one("mouseup",function(){g=null})}).bind("mouseup.button",function(){if(c.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(e){if(c.disabled)return false;if(e.keyCode==a.ui.keyCode.SPACE||e.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(e){e.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",
-c.disabled)},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type==="radio"){var b=this.element.parents().filter(":last"),c="label[for="+this.element.attr("id")+"]";this.buttonElement=b.find(c);if(!this.buttonElement.length){b=b.length?b.siblings():this.element.siblings();this.buttonElement=b.filter(c);if(!this.buttonElement.length)this.buttonElement=b.find(c)}this.element.addClass("ui-helper-hidden-accessible");
-(b=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  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").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
-this.hasTitle||this.buttonElement.removeAttr("title");a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")c?this.element.attr("disabled",true):this.element.removeAttr("disabled");this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")h(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
-true):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed",false)});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed",true):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed",false)},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("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"),
-c=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){if(this.options.text)e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>");d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>");if(!this.options.text){e.push(f?"ui-button-icons-only":
-"ui-button-icon-only");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},
-destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy");a.Widget.prototype.destroy.call(this)}})})(jQuery);
-;/*
- * jQuery UI Dialog 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- *  jquery.ui.button.js
- *	jquery.ui.draggable.js
- *	jquery.ui.mouse.js
- *	jquery.ui.position.js
- *	jquery.ui.resizable.js
- */
-(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&&
-c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||"&#160;",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex",
--1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role",
-"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("<span></span>").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose=
-b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&&
-a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index");
-isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ);
-d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}});
-c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f,
-h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('<button type="button"></button>').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g=
-d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize,
-position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f,
-h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length===
-1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in
-l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled");
-break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||"&#160;"));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e=
-this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&&
-this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.11",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length===
-0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()<c.ui.dialog.overlay.maxZ)return false})},1);c(document).bind("keydown.dialog-overlay",function(d){if(a.options.closeOnEscape&&d.keyCode&&d.keyCode===c.ui.keyCode.ESCAPE){a.close(d);d.preventDefault()}});c(window).bind("resize.dialog-overlay",c.ui.dialog.overlay.resize)}var b=(this.oldInstances.pop()||c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),
-height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
-b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a<b?c(window).height()+"px":a+"px"}else return c(document).height()+"px"},width:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);b=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return a<b?c(window).width()+"px":a+"px"}else return c(document).width()+"px"},resize:function(){var a=c([]);c.each(c.ui.dialog.overlay.instances,
-function(){a=a.add(this)});a.css({width:0,height:0}).css({width:c.ui.dialog.overlay.width(),height:c.ui.dialog.overlay.height()})}});c.extend(c.ui.dialog.overlay.prototype,{destroy:function(){c.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
-;/*
- * jQuery UI Slider 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.mouse.js
- *	jquery.ui.widget.js
- */
-(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var b=this,a=this.options;this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");a.disabled&&this.element.addClass("ui-slider-disabled ui-disabled");
-this.range=d([]);if(a.range){if(a.range===true){this.range=d("<div></div>");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("<div></div>");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
-if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length<a.values.length;)d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur();
-else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e=
-false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h===
-b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(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");
-this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b,
-g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true},
-_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a;
-if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=
-this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c<e))c=e;if(c!==this.values(a)){e=this.values();e[a]=c;b=this._trigger("slide",b,{handle:this.handles[a],value:c,values:e});this.values(a?0:1);b!==false&&this.values(a,c,true)}}else if(c!==this.value()){b=this._trigger("slide",b,{handle:this.handles[a],
-value:c});b!==false&&this.value(c)}},_stop:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("stop",b,c)},_change:function(b,a){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(a);c.values=this.values()}this._trigger("change",b,c)}},value:function(b){if(arguments.length){this.options.value=
-this._trimAlignValue(b);this._refreshValue();this._change(null,0)}return this._value()},values:function(b,a){var c,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f<c.length;f+=1){c[f]=this._trimAlignValue(e[f]);this._change(null,f)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(b):this.value();
-else return this._values()},_setOption:function(b,a){var c,e=0;if(d.isArray(this.options.values))e=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(b){case "disabled":if(a){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")}break;case "orientation":this._detectOrientation();
-this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<e;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var b=this.options.value;return b=this._trimAlignValue(b)},_values:function(b){var a,c;if(arguments.length){a=this.options.values[b];
-return a=this._trimAlignValue(a)}else{a=this.options.values.slice();for(c=0;c<a.length;c+=1)a[c]=this._trimAlignValue(a[c]);return a}},_trimAlignValue:function(b){if(b<=this._valueMin())return this._valueMin();if(b>=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},
-_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate);
-if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1,
-1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.11"})})(jQuery);
-;/*
- * jQuery UI Tabs 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs
- *
- * Depends:
- *	jquery.ui.core.js
- *	jquery.ui.widget.js
- */
-(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&&
-e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=
-d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]||
-(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){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");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected=
-this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");
-if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"));
-this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+
-g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal",
-function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")};
-this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected=
--1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier.";
-d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=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.anchors.each(function(){var e=
-d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(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")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b,
-e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]);
-j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();
-if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1<this.anchors.length?1:-1));e.disabled=d.map(d.grep(e.disabled,function(h){return h!=b}),function(h){return h>=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null,
-this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this},
-load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c,
-"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this},
-url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.11"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k<a.anchors.length?k:0)},b);j&&j.stopPropagation()});e=a._unrotate||(a._unrotate=!e?function(j){j.clientX&&
-a.rotate(null)}:function(){t=c.selected;h()});if(b){this.element.bind("tabsshow",h);this.anchors.bind(c.event+".tabs",e);h()}else{clearTimeout(a.rotation);this.element.unbind("tabsshow",h);this.anchors.unbind(c.event+".tabs",e);delete this._rotate;delete this._unrotate}return this}})})(jQuery);
-;/*
- * jQuery UI Datepicker 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker
- *
- * Depends:
- *	jquery.ui.core.js
- */
-(function(d,A){function K(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass=
-"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={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:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",
-minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false};d.extend(this._defaults,this.regional[""]);this.dpDiv=d('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}function F(a,b){d.extend(a,b);for(var c in b)if(b[c]==
-null||b[c]==A)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.11"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){F(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase();
-f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')}},
-_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&&
-b.append.remove();if(c){b.append=d('<span class="'+this._appendClass+'">'+c+"</span>");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("<img/>").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('<button type="button"></button>').addClass(this._triggerClass).html(f==
-""?c:d("<img/>").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;g<f.length;g++)if(f[g].length>h){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a,
-c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b),
-true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}F(a.settings,e||{});
-b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);
-this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",
-this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,
-function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null:
-f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return true;return false},_getInst:function(a){try{return d.data(a,"datepicker")}catch(b){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(a,b,c){var e=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?d.extend({},d.datepicker._defaults):e?b=="all"?d.extend({},
-e.settings):this._get(e,b):null;var f=b||{};if(typeof b=="string"){f={};f[b]=c}if(e){this._curInst==e&&this._hideDatepicker();var h=this._getDateDatepicker(a,true),i=this._getMinMaxDate(e,"min"),g=this._getMinMaxDate(e,"max");F(e.settings,f);if(i!==null&&f.dateFormat!==A&&f.minDate===A)e.settings.minDate=this._formatDate(e,i);if(g!==null&&f.dateFormat!==A&&f.maxDate===A)e.settings.maxDate=this._formatDate(e,g);this._attachments(d(a),e);this._autoSize(e);this._setDateDatepicker(a,h);this._updateDatepicker(e)}},
-_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){(a=this._getInst(a))&&this._updateDatepicker(a)},_setDateDatepicker:function(a,b){if(a=this._getInst(a)){this._setDate(a,b);this._updateDatepicker(a);this._updateAlternate(a)}},_getDateDatepicker:function(a,b){(a=this._getInst(a))&&!a.inline&&this._setDateFromField(a,b);return a?this._getDate(a):null},_doKeyDown:function(a){var b=d.datepicker._getInst(a.target),c=true,e=b.dpDiv.is(".ui-datepicker-rtl");
-b._keyEvent=true;if(d.datepicker._datepickerShowing)switch(a.keyCode){case 9:d.datepicker._hideDatepicker();c=false;break;case 13:c=d("td."+d.datepicker._dayOverClass+":not(."+d.datepicker._currentClass+")",b.dpDiv);c[0]?d.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,c[0]):d.datepicker._hideDatepicker();return false;case 27:d.datepicker._hideDatepicker();break;case 33:d.datepicker._adjustDate(a.target,a.ctrlKey?-d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),
-"M");break;case 34:d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 35:if(a.ctrlKey||a.metaKey)d.datepicker._clearDate(a.target);c=a.ctrlKey||a.metaKey;break;case 36:if(a.ctrlKey||a.metaKey)d.datepicker._gotoToday(a.target);c=a.ctrlKey||a.metaKey;break;case 37:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?+1:-1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?
--d.datepicker._get(b,"stepBigMonths"):-d.datepicker._get(b,"stepMonths"),"M");break;case 38:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,-7,"D");c=a.ctrlKey||a.metaKey;break;case 39:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,e?-1:+1,"D");c=a.ctrlKey||a.metaKey;if(a.originalEvent.altKey)d.datepicker._adjustDate(a.target,a.ctrlKey?+d.datepicker._get(b,"stepBigMonths"):+d.datepicker._get(b,"stepMonths"),"M");break;case 40:if(a.ctrlKey||a.metaKey)d.datepicker._adjustDate(a.target,
-+7,"D");c=a.ctrlKey||a.metaKey;break;default:c=false}else if(a.keyCode==36&&a.ctrlKey)d.datepicker._showDatepicker(this);else c=false;if(c){a.preventDefault();a.stopPropagation()}},_doKeyPress:function(a){var b=d.datepicker._getInst(a.target);if(d.datepicker._get(b,"constrainInput")){b=d.datepicker._possibleChars(d.datepicker._get(b,"dateFormat"));var c=String.fromCharCode(a.charCode==A?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||c<" "||!b||b.indexOf(c)>-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);
-if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true},_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);
-d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");F(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos=d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=
-document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b,c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");
-var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&&d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=
-b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");
-this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+
-this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&
-a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():
-0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left,b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),
-"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b);this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?
-"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(d.datepicker._curInst){a=
-d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=
-d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear=false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c==
-"M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay=d("a",e).html();f.selectedMonth=f.currentMonth=
-b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a);else{this._hideDatepicker();
-this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);
-a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?
-c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1<a.length&&a.charAt(z+1)==p)&&z++;return p},m=function(p){var v=o(p);p=new RegExp("^\\d{1,"+(p=="@"?14:p=="!"?20:p=="y"&&v?4:p=="o"?3:2)+"}");p=b.substring(s).match(p);if(!p)throw"Missing number at position "+s;s+=p[0].length;return parseInt(p[0],10)},n=function(p,v,H){p=o(p)?H:v;for(v=0;v<p.length;v++)if(b.substr(s,p[v].length).toLowerCase()==p[v].toLowerCase()){s+=p[v].length;return v+1}throw"Unknown name at position "+
-s;},r=function(){if(b.charAt(s)!=a.charAt(z))throw"Unexpected literal at position "+s;s++},s=0,z=0;z<a.length;z++)if(k)if(a.charAt(z)=="'"&&!o("'"))k=false;else r();else switch(a.charAt(z)){case "d":l=m("d");break;case "D":n("D",f,h);break;case "o":u=m("o");break;case "m":j=m("m");break;case "M":j=n("M",i,g);break;case "y":c=m("y");break;case "@":var w=new Date(m("@"));c=w.getFullYear();j=w.getMonth()+1;l=w.getDate();break;case "!":w=new Date((m("!")-this._ticksTo1970)/1E4);c=w.getFullYear();j=w.getMonth()+
-1;l=w.getDate();break;case "'":if(o("'"))r();else k=true;break;default:r()}if(c==-1)c=(new Date).getFullYear();else if(c<100)c+=(new Date).getFullYear()-(new Date).getFullYear()%100+(c<=e?0:-100);if(u>-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",
-RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+1<a.length&&
-a.charAt(k+1)==o)&&k++;return o},g=function(o,m,n){m=""+m;if(i(o))for(;m.length<n;)m="0"+m;return m},j=function(o,m,n,r){return i(o)?r[m]:n[m]},l="",u=false;if(b)for(var k=0;k<a.length;k++)if(u)if(a.charAt(k)=="'"&&!i("'"))u=false;else l+=a.charAt(k);else switch(a.charAt(k)){case "d":l+=g("d",b.getDate(),2);break;case "D":l+=j("D",b.getDay(),e,f);break;case "o":l+=g("o",(b.getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864E5,3);break;case "m":l+=g("m",b.getMonth()+1,2);break;case "M":l+=j("M",
-b.getMonth(),h,c);break;case "y":l+=i("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case "@":l+=b.getTime();break;case "!":l+=b.getTime()*1E4+this._ticksTo1970;break;case "'":if(i("'"))l+="'";else u=true;break;default:l+=a.charAt(k)}return l},_possibleChars:function(a){for(var b="",c=false,e=function(h){(h=f+1<a.length&&a.charAt(f+1)==h)&&f++;return h},f=0;f<a.length;f++)if(c)if(a.charAt(f)=="'"&&!e("'"))c=false;else b+=a.charAt(f);else switch(a.charAt(f)){case "d":case "m":case "y":case "@":b+=
-"0123456789";break;case "D":case "M":return null;case "'":if(e("'"))b+="'";else c=true;break;default:b+=a.charAt(f)}return b},_get:function(a,b){return a.settings[b]!==A?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()!=a.lastVal){var c=this._get(a,"dateFormat"),e=a.lastVal=a.input?a.input.val():null,f,h;f=h=this._getDefaultDate(a);var i=this._getFormatConfig(a);try{f=this.parseDate(c,e,i)||h}catch(g){this.log(g);e=b?"":e}a.selectedDay=f.getDate();a.drawMonth=a.selectedMonth=
-f.getMonth();a.drawYear=a.selectedYear=f.getFullYear();a.currentDay=e?f.getDate():0;a.currentMonth=e?f.getMonth():0;a.currentYear=e?f.getFullYear():0;this._adjustInstDate(a)}},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var e=function(h){var i=new Date;i.setDate(i.getDate()+h);return i},f=function(h){try{return d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),h,d.datepicker._getFormatConfig(a))}catch(i){}var g=
-(h.toLowerCase().match(/^c/)?d.datepicker._getDate(a):null)||new Date,j=g.getFullYear(),l=g.getMonth();g=g.getDate();for(var u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,k=u.exec(h);k;){switch(k[2]||"d"){case "d":case "D":g+=parseInt(k[1],10);break;case "w":case "W":g+=parseInt(k[1],10)*7;break;case "m":case "M":l+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break;case "y":case "Y":j+=parseInt(k[1],10);g=Math.min(g,d.datepicker._getDaysInMonth(j,l));break}k=u.exec(h)}return new Date(j,
-l,g)};if(b=(b=b==null||b===""?c:typeof b=="string"?f(b):typeof b=="number"?isNaN(b)?c:e(b):new Date(b.getTime()))&&b.toString()=="Invalid Date"?c:b){b.setHours(0);b.setMinutes(0);b.setSeconds(0);b.setMilliseconds(0)}return this._daylightSavingAdjust(b)},_daylightSavingAdjust:function(a){if(!a)return null;a.setHours(a.getHours()>12?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=
-a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),
-b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n=
-this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&n<k?k:n;this._daylightSavingAdjust(new Date(m,g,1))>n;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', -"+j+", 'M');\" title=\""+n+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"e":"w")+'">'+n+"</span></a>":f?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+n+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+n+"</span></a>";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._adjustDate('#"+a.id+"', +"+j+", 'M');\" title=\""+r+'"><span class="ui-icon ui-icon-circle-triangle-'+
-(c?"w":"e")+'">'+r+"</span></a>":f?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+r+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+r+"</span></a>";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+y+'.datepicker._hideDatepicker();">'+this._get(a,
-"closeText")+"</button>":"";e=e?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?h:"")+(this._isInRange(a,r)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+y+".datepicker._gotoToday('#"+a.id+"');\">"+j+"</button>":"")+(c?"":h)+"</div>":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z=
-this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",D=0;D<i[0];D++){for(var M="",E=0;E<i[1];E++){var N=this._daylightSavingAdjust(new Date(m,g,a.selectedDay)),t=" ui-corner-all",x="";if(l){x+='<div class="ui-datepicker-group';if(i[1]>1)switch(E){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]-
-1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+t+'">'+(/all|left/.test(t)&&D==0?c?f:n:"")+(/all|right/.test(t)&&D==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,D>0||E>0,z,w)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var B=j?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(t=0;t<7;t++){var q=
-(t+h)%7;B+="<th"+((t+h+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+r[q]+'">'+s[q]+"</span></th>"}x+=B+"</tr></thead><tbody>";B=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,B);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;B=l?6:Math.ceil((t+B)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O<B;O++){x+="<tr>";var P=!j?"":'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(q)+"</td>";for(t=0;t<7;t++){var G=
-p?p.apply(a.input?a.input[0]:null,[q]):[true,""],C=q.getMonth()!=g,J=C&&!H||!G[0]||k&&q<k||o&&q>o;P+='<td class="'+((t+h+6)%7>=5?" ui-datepicker-week-end":"")+(C?" ui-datepicker-other-month":"")+(q.getTime()==N.getTime()&&g==a.selectedMonth&&a._keyEvent||L.getTime()==q.getTime()&&L.getTime()==N.getTime()?" "+this._dayOverClass:"")+(J?" "+this._unselectableClass+" ui-state-disabled":"")+(C&&!v?"":" "+G[1]+(q.getTime()==u.getTime()?" "+this._currentClass:"")+(q.getTime()==b.getTime()?" ui-datepicker-today":
-""))+'"'+((!C||v)&&G[2]?' title="'+G[2]+'"':"")+(J?"":' onclick="DP_jQuery_'+y+".datepicker._selectDay('#"+a.id+"',"+q.getMonth()+","+q.getFullYear()+', this);return false;"')+">"+(C&&!v?"&#xa0;":J?'<span class="ui-state-default">'+q.getDate()+"</span>":'<a class="ui-state-default'+(q.getTime()==b.getTime()?" ui-state-highlight":"")+(q.getTime()==u.getTime()?" ui-state-active":"")+(C?" ui-priority-secondary":"")+'" href="#">'+q.getDate()+"</a>")+"</td>";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+=
-P+"</tr>"}g++;if(g>11){g=0;m++}x+="</tbody></table>"+(l?"</div>"+(i[0]>0&&E==i[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='<div class="ui-datepicker-title">',
-o="";if(h||!j)o+='<span class="ui-datepicker-month">'+i[b]+"</span>";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";for(var n=0;n<12;n++)if((!i||n>=e.getMonth())&&(!m||n<=f.getMonth()))o+='<option value="'+n+'"'+(n==b?' selected="selected"':"")+">"+g[n]+"</option>";o+="</select>"}u||(k+=o+(h||!(j&&
-l)?"&#xa0;":""));a.yearshtml="";if(h||!l)k+='<span class="ui-datepicker-year">'+c+"</span>";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+y+".datepicker._selectMonthYear('#"+
-a.id+"', this, 'Y');\" onclick=\"DP_jQuery_"+y+".datepicker._clickMonthYear('#"+a.id+"');\">";b<=g;b++)a.yearshtml+='<option value="'+b+'"'+(b==c?' selected="selected"':"")+">"+b+"</option>";a.yearshtml+="</select>";if(d.browser.mozilla)k+='<select class="ui-datepicker-year"><option value="'+c+'" selected="selected">'+c+"</option></select>";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?"&#xa0;":"")+o;k+="</div>";return k},_adjustInstDate:function(a,b,c){var e=
-a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&b<c?c:b;return b=a&&b>a?a:b},_notifyChange:function(a){var b=this._get(a,
-"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a);
-c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a,
-"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker=
-function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,
-[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.11";window["DP_jQuery_"+y]=d})(jQuery);
-;/*
- * jQuery UI Progressbar 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar
- *
- * Depends:
- *   jquery.ui.core.js
- *   jquery.ui.widget.js
- */
-(function(b,d){b.widget("ui.progressbar",{options:{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.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
-this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*
-this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.11"})})(jQuery);
-;/*
- * jQuery UI Effects 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/
- */
-jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1],
-16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,
-a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d=
-a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor",
-"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,
-0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,
-211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b,
-d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0];
-h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c,
-a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.11",save:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.data("ec.storage."+a[b],c[0].style[a[b]])},restore:function(c,a){for(var b=0;b<a.length;b++)a[b]!==null&&c.css(a[b],c.data("ec.storage."+a[b]))},setMode:function(c,a){if(a=="toggle")a=c.is(":hidden")?"show":"hide";return a},getBaseline:function(c,
-a){var b;switch(c[0]){case "top":b=0;break;case "middle":b=0.5;break;case "bottom":b=1;break;default:b=c[0]/a.height}switch(c[1]){case "left":c=0;break;case "center":c=0.5;break;case "right":c=1;break;default:c=c[1]/a.width}return{x:c,y:b}},createWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent();var a={width:c.outerWidth(true),height:c.outerHeight(true),"float":c.css("float")},b=f("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",
-border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c);
-return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments);
-else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c),
-b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c,
-a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c,
-a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a==
-e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=
-g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g))+b},easeOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*a)*Math.sin((a*e-c)*2*Math.PI/g)+d+b},easeInOutElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e/2)==2)return b+d;g||(g=e*0.3*1.5);if(h<Math.abs(d)){h=d;c=g/4}else c=g/(2*Math.PI)*Math.asin(d/
-h);if(a<1)return-0.5*h*Math.pow(2,10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)+b;return h*Math.pow(2,-10*(a-=1))*Math.sin((a*e-c)*2*Math.PI/g)*0.5+d+b},easeInBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*(a/=e)*a*((g+1)*a-g)+b},easeOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;return d*((a=a/e-1)*a*((g+1)*a+g)+1)+b},easeInOutBack:function(c,a,b,d,e,g){if(g==j)g=1.70158;if((a/=e/2)<1)return d/2*a*a*(((g*=1.525)+1)*a-g)+b;return d/2*((a-=2)*a*(((g*=1.525)+1)*a+g)+2)+b},easeInBounce:function(c,
-a,b,d,e){return d-f.easing.easeOutBounce(c,e-a,0,d,e)+b},easeOutBounce:function(c,a,b,d,e){return(a/=e)<1/2.75?d*7.5625*a*a+b:a<2/2.75?d*(7.5625*(a-=1.5/2.75)*a+0.75)+b:a<2.5/2.75?d*(7.5625*(a-=2.25/2.75)*a+0.9375)+b:d*(7.5625*(a-=2.625/2.75)*a+0.984375)+b},easeInOutBounce:function(c,a,b,d,e){if(a<e/2)return f.easing.easeInBounce(c,a*2,0,d,e)*0.5+b;return f.easing.easeOutBounce(c,a*2-e,0,d,e)*0.5+d*0.5+b}})}(jQuery);
-;/*
- * jQuery UI Effects Blind 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Blind
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.blind=function(c){return this.queue(function(){var a=b(this),g=["position","top","bottom","left","right"],f=b.effects.setMode(a,c.options.mode||"hide"),d=c.options.direction||"vertical";b.effects.save(a,g);a.show();var e=b.effects.createWrapper(a).css({overflow:"hidden"}),h=d=="vertical"?"height":"width";d=d=="vertical"?e.height():e.width();f=="show"&&e.css(h,0);var i={};i[h]=f=="show"?d:0;e.animate(i,c.duration,c.options.easing,function(){f=="hide"&&a.hide();b.effects.restore(a,
-g);b.effects.removeWrapper(a);c.callback&&c.callback.apply(a[0],arguments);a.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Bounce 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Bounce
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.bounce=function(b){return this.queue(function(){var a=e(this),l=["position","top","bottom","left","right"],h=e.effects.setMode(a,b.options.mode||"effect"),d=b.options.direction||"up",c=b.options.distance||20,m=b.options.times||5,i=b.duration||250;/show|hide/.test(h)&&l.push("opacity");e.effects.save(a,l);a.show();e.effects.createWrapper(a);var f=d=="up"||d=="down"?"top":"left";d=d=="up"||d=="left"?"pos":"neg";c=b.options.distance||(f=="top"?a.outerHeight({margin:true})/3:a.outerWidth({margin:true})/
-3);if(h=="show")a.css("opacity",0).css(f,d=="pos"?-c:c);if(h=="hide")c/=m*2;h!="hide"&&m--;if(h=="show"){var g={opacity:1};g[f]=(d=="pos"?"+=":"-=")+c;a.animate(g,i/2,b.options.easing);c/=2;m--}for(g=0;g<m;g++){var j={},k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing);c=h=="hide"?c*2:c/2}if(h=="hide"){g={opacity:0};g[f]=(d=="pos"?"-=":"+=")+c;a.animate(g,i/2,b.options.easing,function(){a.hide();e.effects.restore(a,l);e.effects.removeWrapper(a);
-b.callback&&b.callback.apply(this,arguments)})}else{j={};k={};j[f]=(d=="pos"?"-=":"+=")+c;k[f]=(d=="pos"?"+=":"-=")+c;a.animate(j,i/2,b.options.easing).animate(k,i/2,b.options.easing,function(){e.effects.restore(a,l);e.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments)})}a.queue("fx",function(){a.dequeue()});a.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Clip 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Clip
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.clip=function(e){return this.queue(function(){var a=b(this),i=["position","top","bottom","left","right","height","width"],f=b.effects.setMode(a,e.options.mode||"hide"),c=e.options.direction||"vertical";b.effects.save(a,i);a.show();var d=b.effects.createWrapper(a).css({overflow:"hidden"});d=a[0].tagName=="IMG"?d:a;var g={size:c=="vertical"?"height":"width",position:c=="vertical"?"top":"left"};c=c=="vertical"?d.height():d.width();if(f=="show"){d.css(g.size,0);d.css(g.position,
-c/2)}var h={};h[g.size]=f=="show"?c:0;h[g.position]=f=="show"?0:c/2;d.animate(h,{queue:false,duration:e.duration,easing:e.options.easing,complete:function(){f=="hide"&&a.hide();b.effects.restore(a,i);b.effects.removeWrapper(a);e.callback&&e.callback.apply(a[0],arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Drop 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Drop
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.drop=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right","opacity"],e=c.effects.setMode(a,d.options.mode||"hide"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a);var f=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var g=d.options.distance||(f=="top"?a.outerHeight({margin:true})/2:a.outerWidth({margin:true})/2);if(e=="show")a.css("opacity",0).css(f,b=="pos"?-g:g);var i={opacity:e==
-"show"?1:0};i[f]=(e=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+g;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){e=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Explode 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Explode
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(j){j.effects.explode=function(a){return this.queue(function(){var c=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3,d=a.options.pieces?Math.round(Math.sqrt(a.options.pieces)):3;a.options.mode=a.options.mode=="toggle"?j(this).is(":visible")?"hide":"show":a.options.mode;var b=j(this).show().css("visibility","hidden"),g=b.offset();g.top-=parseInt(b.css("marginTop"),10)||0;g.left-=parseInt(b.css("marginLeft"),10)||0;for(var h=b.outerWidth(true),i=b.outerHeight(true),e=0;e<c;e++)for(var f=
-0;f<d;f++)b.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+
-e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery);
-;/*
- * jQuery UI Effects Fade 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fade
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Fold 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Fold
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1],
-10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery);
-;/*
- * jQuery UI Effects Highlight 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Highlight
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&&
-this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Pulsate 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Pulsate
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c<times;c++){b.animate({opacity:animateTo},duration,a.options.easing);animateTo=(animateTo+1)%2}b.animate({opacity:animateTo},duration,
-a.options.easing,function(){animateTo==0&&b.hide();a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()}).dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Scale 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Scale
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.puff=function(b){return this.queue(function(){var a=c(this),e=c.effects.setMode(a,b.options.mode||"hide"),g=parseInt(b.options.percent,10)||150,h=g/100,i={height:a.height(),width:a.width()};c.extend(b.options,{fade:true,mode:e,percent:e=="hide"?g:100,from:e=="hide"?i:{height:i.height*h,width:i.width*h}});a.effect("scale",b.options,b.duration,b.callback);a.dequeue()})};c.effects.scale=function(b){return this.queue(function(){var a=c(this),e=c.extend(true,{},b.options),g=c.effects.setMode(a,
-b.options.mode||"effect"),h=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:g=="hide"?0:100),i=b.options.direction||"both",f=b.options.origin;if(g!="effect"){e.origin=f||["middle","center"];e.restore=true}f={height:a.height(),width:a.width()};a.from=b.options.from||(g=="show"?{height:0,width:0}:f);h={y:i!="horizontal"?h/100:1,x:i!="vertical"?h/100:1};a.to={height:f.height*h.y,width:f.width*h.x};if(b.options.fade){if(g=="show"){a.from.opacity=0;a.to.opacity=1}if(g=="hide"){a.from.opacity=
-1;a.to.opacity=0}}e.from=a.from;e.to=a.to;e.mode=g;a.effect("size",e,b.duration,b.callback);a.dequeue()})};c.effects.size=function(b){return this.queue(function(){var a=c(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],g=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],i=["fontSize"],f=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],k=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],
-p=c.effects.setMode(a,b.options.mode||"effect"),n=b.options.restore||false,m=b.options.scale||"both",l=b.options.origin,j={height:a.height(),width:a.width()};a.from=b.options.from||j;a.to=b.options.to||j;if(l){l=c.effects.getBaseline(l,j);a.from.top=(j.height-a.from.height)*l.y;a.from.left=(j.width-a.from.width)*l.x;a.to.top=(j.height-a.to.height)*l.y;a.to.left=(j.width-a.to.width)*l.x}var d={from:{y:a.from.height/j.height,x:a.from.width/j.width},to:{y:a.to.height/j.height,x:a.to.width/j.width}};
-if(m=="box"||m=="both"){if(d.from.y!=d.to.y){e=e.concat(f);a.from=c.effects.setTransition(a,f,d.from.y,a.from);a.to=c.effects.setTransition(a,f,d.to.y,a.to)}if(d.from.x!=d.to.x){e=e.concat(k);a.from=c.effects.setTransition(a,k,d.from.x,a.from);a.to=c.effects.setTransition(a,k,d.to.x,a.to)}}if(m=="content"||m=="both")if(d.from.y!=d.to.y){e=e.concat(i);a.from=c.effects.setTransition(a,i,d.from.y,a.from);a.to=c.effects.setTransition(a,i,d.to.y,a.to)}c.effects.save(a,n?e:g);a.show();c.effects.createWrapper(a);
-a.css("overflow","hidden").css(a.from);if(m=="content"||m=="both"){f=f.concat(["marginTop","marginBottom"]).concat(i);k=k.concat(["marginLeft","marginRight"]);h=e.concat(f).concat(k);a.find("*[width]").each(function(){child=c(this);n&&c.effects.save(child,h);var o={height:child.height(),width:child.width()};child.from={height:o.height*d.from.y,width:o.width*d.from.x};child.to={height:o.height*d.to.y,width:o.width*d.to.x};if(d.from.y!=d.to.y){child.from=c.effects.setTransition(child,f,d.from.y,child.from);
-child.to=c.effects.setTransition(child,f,d.to.y,child.to)}if(d.from.x!=d.to.x){child.from=c.effects.setTransition(child,k,d.from.x,child.from);child.to=c.effects.setTransition(child,k,d.to.x,child.to)}child.css(child.from);child.animate(child.to,b.duration,b.options.easing,function(){n&&c.effects.restore(child,h)})})}a.animate(a.to,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){a.to.opacity===0&&a.css("opacity",a.from.opacity);p=="hide"&&a.hide();c.effects.restore(a,
-n?e:g);c.effects.removeWrapper(a);b.callback&&b.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Shake 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Shake
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(d){d.effects.shake=function(a){return this.queue(function(){var b=d(this),j=["position","top","bottom","left","right"];d.effects.setMode(b,a.options.mode||"effect");var c=a.options.direction||"left",e=a.options.distance||20,l=a.options.times||3,f=a.duration||a.options.duration||140;d.effects.save(b,j);b.show();d.effects.createWrapper(b);var g=c=="up"||c=="down"?"top":"left",h=c=="up"||c=="left"?"pos":"neg";c={};var i={},k={};c[g]=(h=="pos"?"-=":"+=")+e;i[g]=(h=="pos"?"+=":"-=")+e*2;k[g]=
-(h=="pos"?"-=":"+=")+e*2;b.animate(c,f,a.options.easing);for(e=1;e<l;e++)b.animate(i,f,a.options.easing).animate(k,f,a.options.easing);b.animate(i,f,a.options.easing).animate(c,f/2,a.options.easing,function(){d.effects.restore(b,j);d.effects.removeWrapper(b);a.callback&&a.callback.apply(this,arguments)});b.queue("fx",function(){b.dequeue()});b.dequeue()})}})(jQuery);
-;/*
- * jQuery UI Effects Slide 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Slide
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(c){c.effects.slide=function(d){return this.queue(function(){var a=c(this),h=["position","top","bottom","left","right"],f=c.effects.setMode(a,d.options.mode||"show"),b=d.options.direction||"left";c.effects.save(a,h);a.show();c.effects.createWrapper(a).css({overflow:"hidden"});var g=b=="up"||b=="down"?"top":"left";b=b=="up"||b=="left"?"pos":"neg";var e=d.options.distance||(g=="top"?a.outerHeight({margin:true}):a.outerWidth({margin:true}));if(f=="show")a.css(g,b=="pos"?isNaN(e)?"-"+e:-e:e);
-var i={};i[g]=(f=="show"?b=="pos"?"+=":"-=":b=="pos"?"-=":"+=")+e;a.animate(i,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){f=="hide"&&a.hide();c.effects.restore(a,h);c.effects.removeWrapper(a);d.callback&&d.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery);
-;/*
- * jQuery UI Effects Transfer 1.8.11
- *
- * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Effects/Transfer
- *
- * Depends:
- *	jquery.effects.core.js
- */
-(function(e){e.effects.transfer=function(a){return this.queue(function(){var b=e(this),c=e(a.options.to),d=c.offset();c={top:d.top,left:d.left,height:c.innerHeight(),width:c.innerWidth()};d=b.offset();var f=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments);
-b.dequeue()})})}})(jQuery);
-;
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.js b/src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.js
deleted file mode 100644
index f3201aa..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.js
+++ /dev/null
@@ -1,8981 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.6.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu Jun 30 14:16:56 2011 -0400
- */
-(function( window, undefined ) {
-
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document,
-	navigator = window.navigator,
-	location = window.location;
-var jQuery = (function() {
-
-// Define a local copy of jQuery
-var jQuery = function( selector, context ) {
-		// The jQuery object is actually just the init constructor 'enhanced'
-		return new jQuery.fn.init( selector, context, rootjQuery );
-	},
-
-	// Map over jQuery in case of overwrite
-	_jQuery = window.jQuery,
-
-	// Map over the $ in case of overwrite
-	_$ = window.$,
-
-	// A central reference to the root jQuery(document)
-	rootjQuery,
-
-	// A simple way to check for HTML strings or ID strings
-	// (both of which we optimize for)
-	quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
-
-	// Check if a string has a non-whitespace character in it
-	rnotwhite = /\S/,
-
-	// Used for trimming whitespace
-	trimLeft = /^\s+/,
-	trimRight = /\s+$/,
-
-	// Check for digits
-	rdigit = /\d/,
-
-	// Match a standalone tag
-	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-
-	// JSON RegExp
-	rvalidchars = /^[\],:{}\s]*$/,
-	rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
-	rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-
-	// Useragent RegExp
-	rwebkit = /(webkit)[ \/]([\w.]+)/,
-	ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
-	rmsie = /(msie) ([\w.]+)/,
-	rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
-
-	// Matches dashed string for camelizing
-	rdashAlpha = /-([a-z])/ig,
-
-	// Used by jQuery.camelCase as callback to replace()
-	fcamelCase = function( all, letter ) {
-		return letter.toUpperCase();
-	},
-
-	// Keep a UserAgent string for use with jQuery.browser
-	userAgent = navigator.userAgent,
-
-	// For matching the engine and version of the browser
-	browserMatch,
-
-	// The deferred used on DOM ready
-	readyList,
-
-	// The ready event handler
-	DOMContentLoaded,
-
-	// Save a reference to some core methods
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	push = Array.prototype.push,
-	slice = Array.prototype.slice,
-	trim = String.prototype.trim,
-	indexOf = Array.prototype.indexOf,
-
-	// [[Class]] -> type pairs
-	class2type = {};
-
-jQuery.fn = jQuery.prototype = {
-	constructor: jQuery,
-	init: function( selector, context, rootjQuery ) {
-		var match, elem, ret, doc;
-
-		// Handle $(""), $(null), or $(undefined)
-		if ( !selector ) {
-			return this;
-		}
-
-		// Handle $(DOMElement)
-		if ( selector.nodeType ) {
-			this.context = this[0] = selector;
-			this.length = 1;
-			return this;
-		}
-
-		// The body element only exists once, optimize finding it
-		if ( selector === "body" && !context && document.body ) {
-			this.context = document;
-			this[0] = document.body;
-			this.selector = selector;
-			this.length = 1;
-			return this;
-		}
-
-		// Handle HTML strings
-		if ( typeof selector === "string" ) {
-			// Are we dealing with HTML string or an ID?
-			if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
-				// Assume that strings that start and end with <> are HTML and skip the regex check
-				match = [ null, selector, null ];
-
-			} else {
-				match = quickExpr.exec( selector );
-			}
-
-			// Verify a match, and that no context was specified for #id
-			if ( match && (match[1] || !context) ) {
-
-				// HANDLE: $(html) -> $(array)
-				if ( match[1] ) {
-					context = context instanceof jQuery ? context[0] : context;
-					doc = (context ? context.ownerDocument || context : document);
-
-					// If a single string is passed in and it's a single tag
-					// just do a createElement and skip the rest
-					ret = rsingleTag.exec( selector );
-
-					if ( ret ) {
-						if ( jQuery.isPlainObject( context ) ) {
-							selector = [ document.createElement( ret[1] ) ];
-							jQuery.fn.attr.call( selector, context, true );
-
-						} else {
-							selector = [ doc.createElement( ret[1] ) ];
-						}
-
-					} else {
-						ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
-						selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
-					}
-
-					return jQuery.merge( this, selector );
-
-				// HANDLE: $("#id")
-				} else {
-					elem = document.getElementById( match[2] );
-
-					// Check parentNode to catch when Blackberry 4.6 returns
-					// nodes that are no longer in the document #6963
-					if ( elem && elem.parentNode ) {
-						// Handle the case where IE and Opera return items
-						// by name instead of ID
-						if ( elem.id !== match[2] ) {
-							return rootjQuery.find( selector );
-						}
-
-						// Otherwise, we inject the element directly into the jQuery object
-						this.length = 1;
-						this[0] = elem;
-					}
-
-					this.context = document;
-					this.selector = selector;
-					return this;
-				}
-
-			// HANDLE: $(expr, $(...))
-			} else if ( !context || context.jquery ) {
-				return (context || rootjQuery).find( selector );
-
-			// HANDLE: $(expr, context)
-			// (which is just equivalent to: $(context).find(expr)
-			} else {
-				return this.constructor( context ).find( selector );
-			}
-
-		// HANDLE: $(function)
-		// Shortcut for document ready
-		} else if ( jQuery.isFunction( selector ) ) {
-			return rootjQuery.ready( selector );
-		}
-
-		if (selector.selector !== undefined) {
-			this.selector = selector.selector;
-			this.context = selector.context;
-		}
-
-		return jQuery.makeArray( selector, this );
-	},
-
-	// Start with an empty selector
-	selector: "",
-
-	// The current version of jQuery being used
-	jquery: "1.6.2",
-
-	// The default length of a jQuery object is 0
-	length: 0,
-
-	// The number of elements contained in the matched element set
-	size: function() {
-		return this.length;
-	},
-
-	toArray: function() {
-		return slice.call( this, 0 );
-	},
-
-	// Get the Nth element in the matched element set OR
-	// Get the whole matched element set as a clean array
-	get: function( num ) {
-		return num == null ?
-
-			// Return a 'clean' array
-			this.toArray() :
-
-			// Return just the object
-			( num < 0 ? this[ this.length + num ] : this[ num ] );
-	},
-
-	// Take an array of elements and push it onto the stack
-	// (returning the new matched element set)
-	pushStack: function( elems, name, selector ) {
-		// Build a new jQuery matched element set
-		var ret = this.constructor();
-
-		if ( jQuery.isArray( elems ) ) {
-			push.apply( ret, elems );
-
-		} else {
-			jQuery.merge( ret, elems );
-		}
-
-		// Add the old object onto the stack (as a reference)
-		ret.prevObject = this;
-
-		ret.context = this.context;
-
-		if ( name === "find" ) {
-			ret.selector = this.selector + (this.selector ? " " : "") + selector;
-		} else if ( name ) {
-			ret.selector = this.selector + "." + name + "(" + selector + ")";
-		}
-
-		// Return the newly-formed element set
-		return ret;
-	},
-
-	// Execute a callback for every element in the matched set.
-	// (You can seed the arguments with an array of args, but this is
-	// only used internally.)
-	each: function( callback, args ) {
-		return jQuery.each( this, callback, args );
-	},
-
-	ready: function( fn ) {
-		// Attach the listeners
-		jQuery.bindReady();
-
-		// Add the callback
-		readyList.done( fn );
-
-		return this;
-	},
-
-	eq: function( i ) {
-		return i === -1 ?
-			this.slice( i ) :
-			this.slice( i, +i + 1 );
-	},
-
-	first: function() {
-		return this.eq( 0 );
-	},
-
-	last: function() {
-		return this.eq( -1 );
-	},
-
-	slice: function() {
-		return this.pushStack( slice.apply( this, arguments ),
-			"slice", slice.call(arguments).join(",") );
-	},
-
-	map: function( callback ) {
-		return this.pushStack( jQuery.map(this, function( elem, i ) {
-			return callback.call( elem, i, elem );
-		}));
-	},
-
-	end: function() {
-		return this.prevObject || this.constructor(null);
-	},
-
-	// For internal use only.
-	// Behaves like an Array's method, not like a jQuery method.
-	push: push,
-	sort: [].sort,
-	splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
-	var options, name, src, copy, copyIsArray, clone,
-		target = arguments[0] || {},
-		i = 1,
-		length = arguments.length,
-		deep = false;
-
-	// Handle a deep copy situation
-	if ( typeof target === "boolean" ) {
-		deep = target;
-		target = arguments[1] || {};
-		// skip the boolean and the target
-		i = 2;
-	}
-
-	// Handle case when target is a string or something (possible in deep copy)
-	if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
-		target = {};
-	}
-
-	// extend jQuery itself if only one argument is passed
-	if ( length === i ) {
-		target = this;
-		--i;
-	}
-
-	for ( ; i < length; i++ ) {
-		// Only deal with non-null/undefined values
-		if ( (options = arguments[ i ]) != null ) {
-			// Extend the base object
-			for ( name in options ) {
-				src = target[ name ];
-				copy = options[ name ];
-
-				// Prevent never-ending loop
-				if ( target === copy ) {
-					continue;
-				}
-
-				// Recurse if we're merging plain objects or arrays
-				if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
-					if ( copyIsArray ) {
-						copyIsArray = false;
-						clone = src && jQuery.isArray(src) ? src : [];
-
-					} else {
-						clone = src && jQuery.isPlainObject(src) ? src : {};
-					}
-
-					// Never move original objects, clone them
-					target[ name ] = jQuery.extend( deep, clone, copy );
-
-				// Don't bring in undefined values
-				} else if ( copy !== undefined ) {
-					target[ name ] = copy;
-				}
-			}
-		}
-	}
-
-	// Return the modified object
-	return target;
-};
-
-jQuery.extend({
-	noConflict: function( deep ) {
-		if ( window.$ === jQuery ) {
-			window.$ = _$;
-		}
-
-		if ( deep && window.jQuery === jQuery ) {
-			window.jQuery = _jQuery;
-		}
-
-		return jQuery;
-	},
-
-	// Is the DOM ready to be used? Set to true once it occurs.
-	isReady: false,
-
-	// A counter to track how many items to wait for before
-	// the ready event fires. See #6781
-	readyWait: 1,
-
-	// Hold (or release) the ready event
-	holdReady: function( hold ) {
-		if ( hold ) {
-			jQuery.readyWait++;
-		} else {
-			jQuery.ready( true );
-		}
-	},
-
-	// Handle when the DOM is ready
-	ready: function( wait ) {
-		// Either a released hold or an DOMready/load event and not yet ready
-		if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
-			// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-			if ( !document.body ) {
-				return setTimeout( jQuery.ready, 1 );
-			}
-
-			// Remember that the DOM is ready
-			jQuery.isReady = true;
-
-			// If a normal DOM Ready event fired, decrement, and wait if need be
-			if ( wait !== true && --jQuery.readyWait > 0 ) {
-				return;
-			}
-
-			// If there are functions bound, to execute
-			readyList.resolveWith( document, [ jQuery ] );
-
-			// Trigger any bound ready events
-			if ( jQuery.fn.trigger ) {
-				jQuery( document ).trigger( "ready" ).unbind( "ready" );
-			}
-		}
-	},
-
-	bindReady: function() {
-		if ( readyList ) {
-			return;
-		}
-
-		readyList = jQuery._Deferred();
-
-		// Catch cases where $(document).ready() is called after the
-		// browser event has already occurred.
-		if ( document.readyState === "complete" ) {
-			// Handle it asynchronously to allow scripts the opportunity to delay ready
-			return setTimeout( jQuery.ready, 1 );
-		}
-
-		// Mozilla, Opera and webkit nightlies currently support this event
-		if ( document.addEventListener ) {
-			// Use the handy event callback
-			document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-
-			// A fallback to window.onload, that will always work
-			window.addEventListener( "load", jQuery.ready, false );
-
-		// If IE event model is used
-		} else if ( document.attachEvent ) {
-			// ensure firing before onload,
-			// maybe late but safe also for iframes
-			document.attachEvent( "onreadystatechange", DOMContentLoaded );
-
-			// A fallback to window.onload, that will always work
-			window.attachEvent( "onload", jQuery.ready );
-
-			// If IE and not a frame
-			// continually check to see if the document is ready
-			var toplevel = false;
-
-			try {
-				toplevel = window.frameElement == null;
-			} catch(e) {}
-
-			if ( document.documentElement.doScroll && toplevel ) {
-				doScrollCheck();
-			}
-		}
-	},
-
-	// See test/unit/core.js for details concerning isFunction.
-	// Since version 1.3, DOM methods and functions like alert
-	// aren't supported. They return false on IE (#2968).
-	isFunction: function( obj ) {
-		return jQuery.type(obj) === "function";
-	},
-
-	isArray: Array.isArray || function( obj ) {
-		return jQuery.type(obj) === "array";
-	},
-
-	// A crude way of determining if an object is a window
-	isWindow: function( obj ) {
-		return obj && typeof obj === "object" && "setInterval" in obj;
-	},
-
-	isNaN: function( obj ) {
-		return obj == null || !rdigit.test( obj ) || isNaN( obj );
-	},
-
-	type: function( obj ) {
-		return obj == null ?
-			String( obj ) :
-			class2type[ toString.call(obj) ] || "object";
-	},
-
-	isPlainObject: function( obj ) {
-		// Must be an Object.
-		// Because of IE, we also have to check the presence of the constructor property.
-		// Make sure that DOM nodes and window objects don't pass through, as well
-		if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
-			return false;
-		}
-
-		// Not own constructor property must be Object
-		if ( obj.constructor &&
-			!hasOwn.call(obj, "constructor") &&
-			!hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
-			return false;
-		}
-
-		// Own properties are enumerated firstly, so to speed up,
-		// if last one is own, then all properties are own.
-
-		var key;
-		for ( key in obj ) {}
-
-		return key === undefined || hasOwn.call( obj, key );
-	},
-
-	isEmptyObject: function( obj ) {
-		for ( var name in obj ) {
-			return false;
-		}
-		return true;
-	},
-
-	error: function( msg ) {
-		throw msg;
-	},
-
-	parseJSON: function( data ) {
-		if ( typeof data !== "string" || !data ) {
-			return null;
-		}
-
-		// Make sure leading/trailing whitespace is removed (IE can't handle it)
-		data = jQuery.trim( data );
-
-		// Attempt to parse using the native JSON parser first
-		if ( window.JSON && window.JSON.parse ) {
-			return window.JSON.parse( data );
-		}
-
-		// Make sure the incoming data is actual JSON
-		// Logic borrowed from http://json.org/json2.js
-		if ( rvalidchars.test( data.replace( rvalidescape, "@" )
-			.replace( rvalidtokens, "]" )
-			.replace( rvalidbraces, "")) ) {
-
-			return (new Function( "return " + data ))();
-
-		}
-		jQuery.error( "Invalid JSON: " + data );
-	},
-
-	// Cross-browser xml parsing
-	// (xml & tmp used internally)
-	parseXML: function( data , xml , tmp ) {
-
-		if ( window.DOMParser ) { // Standard
-			tmp = new DOMParser();
-			xml = tmp.parseFromString( data , "text/xml" );
-		} else { // IE
-			xml = new ActiveXObject( "Microsoft.XMLDOM" );
-			xml.async = "false";
-			xml.loadXML( data );
-		}
-
-		tmp = xml.documentElement;
-
-		if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
-			jQuery.error( "Invalid XML: " + data );
-		}
-
-		return xml;
-	},
-
-	noop: function() {},
-
-	// Evaluates a script in a global context
-	// Workarounds based on findings by Jim Driscoll
-	// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
-	globalEval: function( data ) {
-		if ( data && rnotwhite.test( data ) ) {
-			// We use execScript on Internet Explorer
-			// We use an anonymous function so that context is window
-			// rather than jQuery in Firefox
-			( window.execScript || function( data ) {
-				window[ "eval" ].call( window, data );
-			} )( data );
-		}
-	},
-
-	// Converts a dashed string to camelCased string;
-	// Used by both the css and data modules
-	camelCase: function( string ) {
-		return string.replace( rdashAlpha, fcamelCase );
-	},
-
-	nodeName: function( elem, name ) {
-		return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
-	},
-
-	// args is for internal usage only
-	each: function( object, callback, args ) {
-		var name, i = 0,
-			length = object.length,
-			isObj = length === undefined || jQuery.isFunction( object );
-
-		if ( args ) {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.apply( object[ name ], args ) === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( ; i < length; ) {
-					if ( callback.apply( object[ i++ ], args ) === false ) {
-						break;
-					}
-				}
-			}
-
-		// A special, fast, case for the most common use of each
-		} else {
-			if ( isObj ) {
-				for ( name in object ) {
-					if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
-						break;
-					}
-				}
-			} else {
-				for ( ; i < length; ) {
-					if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
-						break;
-					}
-				}
-			}
-		}
-
-		return object;
-	},
-
-	// Use native String.trim function wherever possible
-	trim: trim ?
-		function( text ) {
-			return text == null ?
-				"" :
-				trim.call( text );
-		} :
-
-		// Otherwise use our own trimming functionality
-		function( text ) {
-			return text == null ?
-				"" :
-				text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
-		},
-
-	// results is for internal usage only
-	makeArray: function( array, results ) {
-		var ret = results || [];
-
-		if ( array != null ) {
-			// The window, strings (and functions) also have 'length'
-			// The extra typeof function check is to prevent crashes
-			// in Safari 2 (See: #3039)
-			// Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
-			var type = jQuery.type( array );
-
-			if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
-				push.call( ret, array );
-			} else {
-				jQuery.merge( ret, array );
-			}
-		}
-
-		return ret;
-	},
-
-	inArray: function( elem, array ) {
-
-		if ( indexOf ) {
-			return indexOf.call( array, elem );
-		}
-
-		for ( var i = 0, length = array.length; i < length; i++ ) {
-			if ( array[ i ] === elem ) {
-				return i;
-			}
-		}
-
-		return -1;
-	},
-
-	merge: function( first, second ) {
-		var i = first.length,
-			j = 0;
-
-		if ( typeof second.length === "number" ) {
-			for ( var l = second.length; j < l; j++ ) {
-				first[ i++ ] = second[ j ];
-			}
-
-		} else {
-			while ( second[j] !== undefined ) {
-				first[ i++ ] = second[ j++ ];
-			}
-		}
-
-		first.length = i;
-
-		return first;
-	},
-
-	grep: function( elems, callback, inv ) {
-		var ret = [], retVal;
-		inv = !!inv;
-
-		// Go through the array, only saving the items
-		// that pass the validator function
-		for ( var i = 0, length = elems.length; i < length; i++ ) {
-			retVal = !!callback( elems[ i ], i );
-			if ( inv !== retVal ) {
-				ret.push( elems[ i ] );
-			}
-		}
-
-		return ret;
-	},
-
-	// arg is for internal usage only
-	map: function( elems, callback, arg ) {
-		var value, key, ret = [],
-			i = 0,
-			length = elems.length,
-			// jquery objects are treated as arrays
-			isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
-
-		// Go through the array, translating each of the items to their
-		if ( isArray ) {
-			for ( ; i < length; i++ ) {
-				value = callback( elems[ i ], i, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-
-		// Go through every key on the object,
-		} else {
-			for ( key in elems ) {
-				value = callback( elems[ key ], key, arg );
-
-				if ( value != null ) {
-					ret[ ret.length ] = value;
-				}
-			}
-		}
-
-		// Flatten any nested arrays
-		return ret.concat.apply( [], ret );
-	},
-
-	// A global GUID counter for objects
-	guid: 1,
-
-	// Bind a function to a context, optionally partially applying any
-	// arguments.
-	proxy: function( fn, context ) {
-		if ( typeof context === "string" ) {
-			var tmp = fn[ context ];
-			context = fn;
-			fn = tmp;
-		}
-
-		// Quick check to determine if target is callable, in the spec
-		// this throws a TypeError, but we will just return undefined.
-		if ( !jQuery.isFunction( fn ) ) {
-			return undefined;
-		}
-
-		// Simulated bind
-		var args = slice.call( arguments, 2 ),
-			proxy = function() {
-				return fn.apply( context, args.concat( slice.call( arguments ) ) );
-			};
-
-		// Set the guid of unique handler to the same of original handler, so it can be removed
-		proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
-
-		return proxy;
-	},
-
-	// Mutifunctional method to get and set values to a collection
-	// The value/s can optionally be executed if it's a function
-	access: function( elems, key, value, exec, fn, pass ) {
-		var length = elems.length;
-
-		// Setting many attributes
-		if ( typeof key === "object" ) {
-			for ( var k in key ) {
-				jQuery.access( elems, k, key[k], exec, fn, value );
-			}
-			return elems;
-		}
-
-		// Setting one attribute
-		if ( value !== undefined ) {
-			// Optionally, function values get executed if exec is true
-			exec = !pass && exec && jQuery.isFunction(value);
-
-			for ( var i = 0; i < length; i++ ) {
-				fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
-			}
-
-			return elems;
-		}
-
-		// Getting an attribute
-		return length ? fn( elems[0], key ) : undefined;
-	},
-
-	now: function() {
-		return (new Date()).getTime();
-	},
-
-	// Use of jQuery.browser is frowned upon.
-	// More details: http://docs.jquery.com/Utilities/jQuery.browser
-	uaMatch: function( ua ) {
-		ua = ua.toLowerCase();
-
-		var match = rwebkit.exec( ua ) ||
-			ropera.exec( ua ) ||
-			rmsie.exec( ua ) ||
-			ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
-			[];
-
-		return { browser: match[1] || "", version: match[2] || "0" };
-	},
-
-	sub: function() {
-		function jQuerySub( selector, context ) {
-			return new jQuerySub.fn.init( selector, context );
-		}
-		jQuery.extend( true, jQuerySub, this );
-		jQuerySub.superclass = this;
-		jQuerySub.fn = jQuerySub.prototype = this();
-		jQuerySub.fn.constructor = jQuerySub;
-		jQuerySub.sub = this.sub;
-		jQuerySub.fn.init = function init( selector, context ) {
-			if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
-				context = jQuerySub( context );
-			}
-
-			return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
-		};
-		jQuerySub.fn.init.prototype = jQuerySub.fn;
-		var rootjQuerySub = jQuerySub(document);
-		return jQuerySub;
-	},
-
-	browser: {}
-});
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
-	class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-browserMatch = jQuery.uaMatch( userAgent );
-if ( browserMatch.browser ) {
-	jQuery.browser[ browserMatch.browser ] = true;
-	jQuery.browser.version = browserMatch.version;
-}
-
-// Deprecated, use jQuery.browser.webkit instead
-if ( jQuery.browser.webkit ) {
-	jQuery.browser.safari = true;
-}
-
-// IE doesn't match non-breaking spaces with \s
-if ( rnotwhite.test( "\xA0" ) ) {
-	trimLeft = /^[\s\xA0]+/;
-	trimRight = /[\s\xA0]+$/;
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-
-// Cleanup functions for the document ready method
-if ( document.addEventListener ) {
-	DOMContentLoaded = function() {
-		document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-		jQuery.ready();
-	};
-
-} else if ( document.attachEvent ) {
-	DOMContentLoaded = function() {
-		// Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-		if ( document.readyState === "complete" ) {
-			document.detachEvent( "onreadystatechange", DOMContentLoaded );
-			jQuery.ready();
-		}
-	};
-}
-
-// The DOM ready check for Internet Explorer
-function doScrollCheck() {
-	if ( jQuery.isReady ) {
-		return;
-	}
-
-	try {
-		// If IE is used, use the trick by Diego Perini
-		// http://javascript.nwbox.com/IEContentLoaded/
-		document.documentElement.doScroll("left");
-	} catch(e) {
-		setTimeout( doScrollCheck, 1 );
-		return;
-	}
-
-	// and execute any waiting functions
-	jQuery.ready();
-}
-
-return jQuery;
-
-})();
-
-
-var // Promise methods
-	promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ),
-	// Static reference to slice
-	sliceDeferred = [].slice;
-
-jQuery.extend({
-	// Create a simple deferred (one callbacks list)
-	_Deferred: function() {
-		var // callbacks list
-			callbacks = [],
-			// stored [ context , args ]
-			fired,
-			// to avoid firing when already doing so
-			firing,
-			// flag to know if the deferred has been cancelled
-			cancelled,
-			// the deferred itself
-			deferred  = {
-
-				// done( f1, f2, ...)
-				done: function() {
-					if ( !cancelled ) {
-						var args = arguments,
-							i,
-							length,
-							elem,
-							type,
-							_fired;
-						if ( fired ) {
-							_fired = fired;
-							fired = 0;
-						}
-						for ( i = 0, length = args.length; i < length; i++ ) {
-							elem = args[ i ];
-							type = jQuery.type( elem );
-							if ( type === "array" ) {
-								deferred.done.apply( deferred, elem );
-							} else if ( type === "function" ) {
-								callbacks.push( elem );
-							}
-						}
-						if ( _fired ) {
-							deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );
-						}
-					}
-					return this;
-				},
-
-				// resolve with given context and args
-				resolveWith: function( context, args ) {
-					if ( !cancelled && !fired && !firing ) {
-						// make sure args are available (#8421)
-						args = args || [];
-						firing = 1;
-						try {
-							while( callbacks[ 0 ] ) {
-								callbacks.shift().apply( context, args );
-							}
-						}
-						finally {
-							fired = [ context, args ];
-							firing = 0;
-						}
-					}
-					return this;
-				},
-
-				// resolve with this as context and given arguments
-				resolve: function() {
-					deferred.resolveWith( this, arguments );
-					return this;
-				},
-
-				// Has this deferred been resolved?
-				isResolved: function() {
-					return !!( firing || fired );
-				},
-
-				// Cancel
-				cancel: function() {
-					cancelled = 1;
-					callbacks = [];
-					return this;
-				}
-			};
-
-		return deferred;
-	},
-
-	// Full fledged deferred (two callbacks list)
-	Deferred: function( func ) {
-		var deferred = jQuery._Deferred(),
-			failDeferred = jQuery._Deferred(),
-			promise;
-		// Add errorDeferred methods, then and promise
-		jQuery.extend( deferred, {
-			then: function( doneCallbacks, failCallbacks ) {
-				deferred.done( doneCallbacks ).fail( failCallbacks );
-				return this;
-			},
-			always: function() {
-				return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments );
-			},
-			fail: failDeferred.done,
-			rejectWith: failDeferred.resolveWith,
-			reject: failDeferred.resolve,
-			isRejected: failDeferred.isResolved,
-			pipe: function( fnDone, fnFail ) {
-				return jQuery.Deferred(function( newDefer ) {
-					jQuery.each( {
-						done: [ fnDone, "resolve" ],
-						fail: [ fnFail, "reject" ]
-					}, function( handler, data ) {
-						var fn = data[ 0 ],
-							action = data[ 1 ],
-							returned;
-						if ( jQuery.isFunction( fn ) ) {
-							deferred[ handler ](function() {
-								returned = fn.apply( this, arguments );
-								if ( returned && jQuery.isFunction( returned.promise ) ) {
-									returned.promise().then( newDefer.resolve, newDefer.reject );
-								} else {
-									newDefer[ action ]( returned );
-								}
-							});
-						} else {
-							deferred[ handler ]( newDefer[ action ] );
-						}
-					});
-				}).promise();
-			},
-			// Get a promise for this deferred
-			// If obj is provided, the promise aspect is added to the object
-			promise: function( obj ) {
-				if ( obj == null ) {
-					if ( promise ) {
-						return promise;
-					}
-					promise = obj = {};
-				}
-				var i = promiseMethods.length;
-				while( i-- ) {
-					obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];
-				}
-				return obj;
-			}
-		});
-		// Make sure only one callback list will be used
-		deferred.done( failDeferred.cancel ).fail( deferred.cancel );
-		// Unexpose cancel
-		delete deferred.cancel;
-		// Call given func if any
-		if ( func ) {
-			func.call( deferred, deferred );
-		}
-		return deferred;
-	},
-
-	// Deferred helper
-	when: function( firstParam ) {
-		var args = arguments,
-			i = 0,
-			length = args.length,
-			count = length,
-			deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
-				firstParam :
-				jQuery.Deferred();
-		function resolveFunc( i ) {
-			return function( value ) {
-				args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
-				if ( !( --count ) ) {
-					// Strange bug in FF4:
-					// Values changed onto the arguments object sometimes end up as undefined values
-					// outside the $.when method. Cloning the object into a fresh array solves the issue
-					deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) );
-				}
-			};
-		}
-		if ( length > 1 ) {
-			for( ; i < length; i++ ) {
-				if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) {
-					args[ i ].promise().then( resolveFunc(i), deferred.reject );
-				} else {
-					--count;
-				}
-			}
-			if ( !count ) {
-				deferred.resolveWith( deferred, args );
-			}
-		} else if ( deferred !== firstParam ) {
-			deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
-		}
-		return deferred.promise();
-	}
-});
-
-
-
-jQuery.support = (function() {
-
-	var div = document.createElement( "div" ),
-		documentElement = document.documentElement,
-		all,
-		a,
-		select,
-		opt,
-		input,
-		marginDiv,
-		support,
-		fragment,
-		body,
-		testElementParent,
-		testElement,
-		testElementStyle,
-		tds,
-		events,
-		eventName,
-		i,
-		isSupported;
-
-	// Preliminary tests
-	div.setAttribute("className", "t");
-	div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
-
-	all = div.getElementsByTagName( "*" );
-	a = div.getElementsByTagName( "a" )[ 0 ];
-
-	// Can't get basic test support
-	if ( !all || !all.length || !a ) {
-		return {};
-	}
-
-	// First batch of supports tests
-	select = document.createElement( "select" );
-	opt = select.appendChild( document.createElement("option") );
-	input = div.getElementsByTagName( "input" )[ 0 ];
-
-	support = {
-		// IE strips leading whitespace when .innerHTML is used
-		leadingWhitespace: ( div.firstChild.nodeType === 3 ),
-
-		// Make sure that tbody elements aren't automatically inserted
-		// IE will insert them into empty tables
-		tbody: !div.getElementsByTagName( "tbody" ).length,
-
-		// Make sure that link elements get serialized correctly by innerHTML
-		// This requires a wrapper element in IE
-		htmlSerialize: !!div.getElementsByTagName( "link" ).length,
-
-		// Get the style information from getAttribute
-		// (IE uses .cssText instead)
-		style: /top/.test( a.getAttribute("style") ),
-
-		// Make sure that URLs aren't manipulated
-		// (IE normalizes it by default)
-		hrefNormalized: ( a.getAttribute( "href" ) === "/a" ),
-
-		// Make sure that element opacity exists
-		// (IE uses filter instead)
-		// Use a regex to work around a WebKit issue. See #5145
-		opacity: /^0.55$/.test( a.style.opacity ),
-
-		// Verify style float existence
-		// (IE uses styleFloat instead of cssFloat)
-		cssFloat: !!a.style.cssFloat,
-
-		// Make sure that if no value is specified for a checkbox
-		// that it defaults to "on".
-		// (WebKit defaults to "" instead)
-		checkOn: ( input.value === "on" ),
-
-		// Make sure that a selected-by-default option has a working selected property.
-		// (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
-		optSelected: opt.selected,
-
-		// Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
-		getSetAttribute: div.className !== "t",
-
-		// Will be defined later
-		submitBubbles: true,
-		changeBubbles: true,
-		focusinBubbles: false,
-		deleteExpando: true,
-		noCloneEvent: true,
-		inlineBlockNeedsLayout: false,
-		shrinkWrapBlocks: false,
-		reliableMarginRight: true
-	};
-
-	// Make sure checked status is properly cloned
-	input.checked = true;
-	support.noCloneChecked = input.cloneNode( true ).checked;
-
-	// Make sure that the options inside disabled selects aren't marked as disabled
-	// (WebKit marks them as disabled)
-	select.disabled = true;
-	support.optDisabled = !opt.disabled;
-
-	// Test to see if it's possible to delete an expando from an element
-	// Fails in Internet Explorer
-	try {
-		delete div.test;
-	} catch( e ) {
-		support.deleteExpando = false;
-	}
-
-	if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
-		div.attachEvent( "onclick", function() {
-			// Cloning a node shouldn't copy over any
-			// bound event handlers (IE does this)
-			support.noCloneEvent = false;
-		});
-		div.cloneNode( true ).fireEvent( "onclick" );
-	}
-
-	// Check if a radio maintains it's value
-	// after being appended to the DOM
-	input = document.createElement("input");
-	input.value = "t";
-	input.setAttribute("type", "radio");
-	support.radioValue = input.value === "t";
-
-	input.setAttribute("checked", "checked");
-	div.appendChild( input );
-	fragment = document.createDocumentFragment();
-	fragment.appendChild( div.firstChild );
-
-	// WebKit doesn't clone checked state correctly in fragments
-	support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
-	div.innerHTML = "";
-
-	// Figure out if the W3C box model works as expected
-	div.style.width = div.style.paddingLeft = "1px";
-
-	body = document.getElementsByTagName( "body" )[ 0 ];
-	// We use our own, invisible, body unless the body is already present
-	// in which case we use a div (#9239)
-	testElement = document.createElement( body ? "div" : "body" );
-	testElementStyle = {
-		visibility: "hidden",
-		width: 0,
-		height: 0,
-		border: 0,
-		margin: 0
-	};
-	if ( body ) {
-		jQuery.extend( testElementStyle, {
-			position: "absolute",
-			left: -1000,
-			top: -1000
-		});
-	}
-	for ( i in testElementStyle ) {
-		testElement.style[ i ] = testElementStyle[ i ];
-	}
-	testElement.appendChild( div );
-	testElementParent = body || documentElement;
-	testElementParent.insertBefore( testElement, testElementParent.firstChild );
-
-	// Check if a disconnected checkbox will retain its checked
-	// value of true after appended to the DOM (IE6/7)
-	support.appendChecked = input.checked;
-
-	support.boxModel = div.offsetWidth === 2;
-
-	if ( "zoom" in div.style ) {
-		// Check if natively block-level elements act like inline-block
-		// elements when setting their display to 'inline' and giving
-		// them layout
-		// (IE < 8 does this)
-		div.style.display = "inline";
-		div.style.zoom = 1;
-		support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
-
-		// Check if elements with layout shrink-wrap their children
-		// (IE 6 does this)
-		div.style.display = "";
-		div.innerHTML = "<div style='width:4px;'></div>";
-		support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
-	}
-
-	div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
-	tds = div.getElementsByTagName( "td" );
-
-	// Check if table cells still have offsetWidth/Height when they are set
-	// to display:none and there are still other visible table cells in a
-	// table row; if so, offsetWidth/Height are not reliable for use when
-	// determining if an element has been hidden directly using
-	// display:none (it is still safe to use offsets if a parent element is
-	// hidden; don safety goggles and see bug #4512 for more information).
-	// (only IE 8 fails this test)
-	isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
-	tds[ 0 ].style.display = "";
-	tds[ 1 ].style.display = "none";
-
-	// Check if empty table cells still have offsetWidth/Height
-	// (IE < 8 fail this test)
-	support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-	div.innerHTML = "";
-
-	// Check if div with explicit width and no margin-right incorrectly
-	// gets computed margin-right based on width of container. For more
-	// info see bug #3333
-	// Fails in WebKit before Feb 2011 nightlies
-	// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-	if ( document.defaultView && document.defaultView.getComputedStyle ) {
-		marginDiv = document.createElement( "div" );
-		marginDiv.style.width = "0";
-		marginDiv.style.marginRight = "0";
-		div.appendChild( marginDiv );
-		support.reliableMarginRight =
-			( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
-	}
-
-	// Remove the body element we added
-	testElement.innerHTML = "";
-	testElementParent.removeChild( testElement );
-
-	// Technique from Juriy Zaytsev
-	// http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
-	// We only care about the case where non-standard event systems
-	// are used, namely in IE. Short-circuiting here helps us to
-	// avoid an eval call (in setAttribute) which can cause CSP
-	// to go haywire. See: https://developer.mozilla.org/en/Security/CSP
-	if ( div.attachEvent ) {
-		for( i in {
-			submit: 1,
-			change: 1,
-			focusin: 1
-		} ) {
-			eventName = "on" + i;
-			isSupported = ( eventName in div );
-			if ( !isSupported ) {
-				div.setAttribute( eventName, "return;" );
-				isSupported = ( typeof div[ eventName ] === "function" );
-			}
-			support[ i + "Bubbles" ] = isSupported;
-		}
-	}
-
-	// Null connected elements to avoid leaks in IE
-	testElement = fragment = select = opt = body = marginDiv = div = input = null;
-
-	return support;
-})();
-
-// Keep track of boxModel
-jQuery.boxModel = jQuery.support.boxModel;
-
-
-
-
-var rbrace = /^(?:\{.*\}|\[.*\])$/,
-	rmultiDash = /([a-z])([A-Z])/g;
-
-jQuery.extend({
-	cache: {},
-
-	// Please use with caution
-	uuid: 0,
-
-	// Unique for each copy of jQuery on the page
-	// Non-digits removed to match rinlinejQuery
-	expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
-
-	// The following elements throw uncatchable exceptions if you
-	// attempt to add expando properties to them.
-	noData: {
-		"embed": true,
-		// Ban all objects except for Flash (which handle expandos)
-		"object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
-		"applet": true
-	},
-
-	hasData: function( elem ) {
-		elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
-
-		return !!elem && !isEmptyDataObject( elem );
-	},
-
-	data: function( elem, name, data, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
-
-		var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
-
-			// We have to handle DOM nodes and JS objects differently because IE6-7
-			// can't GC object references properly across the DOM-JS boundary
-			isNode = elem.nodeType,
-
-			// Only DOM nodes need the global jQuery cache; JS object data is
-			// attached directly to the object so GC can occur automatically
-			cache = isNode ? jQuery.cache : elem,
-
-			// Only defining an ID for JS objects if its cache already exists allows
-			// the code to shortcut on the same path as a DOM node with no cache
-			id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
-
-		// Avoid doing any more work than we need to when trying to get data on an
-		// object that has no data at all
-		if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {
-			return;
-		}
-
-		if ( !id ) {
-			// Only DOM nodes need a new unique ID for each element since their data
-			// ends up in the global cache
-			if ( isNode ) {
-				elem[ jQuery.expando ] = id = ++jQuery.uuid;
-			} else {
-				id = jQuery.expando;
-			}
-		}
-
-		if ( !cache[ id ] ) {
-			cache[ id ] = {};
-
-			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-			// metadata on plain JS objects when the object is serialized using
-			// JSON.stringify
-			if ( !isNode ) {
-				cache[ id ].toJSON = jQuery.noop;
-			}
-		}
-
-		// An object can be passed to jQuery.data instead of a key/value pair; this gets
-		// shallow copied over onto the existing cache
-		if ( typeof name === "object" || typeof name === "function" ) {
-			if ( pvt ) {
-				cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
-			} else {
-				cache[ id ] = jQuery.extend(cache[ id ], name);
-			}
-		}
-
-		thisCache = cache[ id ];
-
-		// Internal jQuery data is stored in a separate object inside the object's data
-		// cache in order to avoid key collisions between internal data and user-defined
-		// data
-		if ( pvt ) {
-			if ( !thisCache[ internalKey ] ) {
-				thisCache[ internalKey ] = {};
-			}
-
-			thisCache = thisCache[ internalKey ];
-		}
-
-		if ( data !== undefined ) {
-			thisCache[ jQuery.camelCase( name ) ] = data;
-		}
-
-		// TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
-		// not attempt to inspect the internal events object using jQuery.data, as this
-		// internal data object is undocumented and subject to change.
-		if ( name === "events" && !thisCache[name] ) {
-			return thisCache[ internalKey ] && thisCache[ internalKey ].events;
-		}
-
-		return getByName ? 
-			// Check for both converted-to-camel and non-converted data property names
-			thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] :
-			thisCache;
-	},
-
-	removeData: function( elem, name, pvt /* Internal Use Only */ ) {
-		if ( !jQuery.acceptData( elem ) ) {
-			return;
-		}
-
-		var internalKey = jQuery.expando, isNode = elem.nodeType,
-
-			// See jQuery.data for more information
-			cache = isNode ? jQuery.cache : elem,
-
-			// See jQuery.data for more information
-			id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
-		// If there is already no cache entry for this object, there is no
-		// purpose in continuing
-		if ( !cache[ id ] ) {
-			return;
-		}
-
-		if ( name ) {
-			var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
-
-			if ( thisCache ) {
-				delete thisCache[ name ];
-
-				// If there is no data left in the cache, we want to continue
-				// and let the cache object itself get destroyed
-				if ( !isEmptyDataObject(thisCache) ) {
-					return;
-				}
-			}
-		}
-
-		// See jQuery.data for more information
-		if ( pvt ) {
-			delete cache[ id ][ internalKey ];
-
-			// Don't destroy the parent cache unless the internal data object
-			// had been the only thing left in it
-			if ( !isEmptyDataObject(cache[ id ]) ) {
-				return;
-			}
-		}
-
-		var internalCache = cache[ id ][ internalKey ];
-
-		// Browsers that fail expando deletion also refuse to delete expandos on
-		// the window, but it will allow it on all other JS objects; other browsers
-		// don't care
-		if ( jQuery.support.deleteExpando || cache != window ) {
-			delete cache[ id ];
-		} else {
-			cache[ id ] = null;
-		}
-
-		// We destroyed the entire user cache at once because it's faster than
-		// iterating through each key, but we need to continue to persist internal
-		// data if it existed
-		if ( internalCache ) {
-			cache[ id ] = {};
-			// TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-			// metadata on plain JS objects when the object is serialized using
-			// JSON.stringify
-			if ( !isNode ) {
-				cache[ id ].toJSON = jQuery.noop;
-			}
-
-			cache[ id ][ internalKey ] = internalCache;
-
-		// Otherwise, we need to eliminate the expando on the node to avoid
-		// false lookups in the cache for entries that no longer exist
-		} else if ( isNode ) {
-			// IE does not allow us to delete expando properties from nodes,
-			// nor does it have a removeAttribute function on Document nodes;
-			// we must handle all of these cases
-			if ( jQuery.support.deleteExpando ) {
-				delete elem[ jQuery.expando ];
-			} else if ( elem.removeAttribute ) {
-				elem.removeAttribute( jQuery.expando );
-			} else {
-				elem[ jQuery.expando ] = null;
-			}
-		}
-	},
-
-	// For internal use only.
-	_data: function( elem, name, data ) {
-		return jQuery.data( elem, name, data, true );
-	},
-
-	// A method for determining if a DOM node can handle the data expando
-	acceptData: function( elem ) {
-		if ( elem.nodeName ) {
-			var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
-
-			if ( match ) {
-				return !(match === true || elem.getAttribute("classid") !== match);
-			}
-		}
-
-		return true;
-	}
-});
-
-jQuery.fn.extend({
-	data: function( key, value ) {
-		var data = null;
-
-		if ( typeof key === "undefined" ) {
-			if ( this.length ) {
-				data = jQuery.data( this[0] );
-
-				if ( this[0].nodeType === 1 ) {
-			    var attr = this[0].attributes, name;
-					for ( var i = 0, l = attr.length; i < l; i++ ) {
-						name = attr[i].name;
-
-						if ( name.indexOf( "data-" ) === 0 ) {
-							name = jQuery.camelCase( name.substring(5) );
-
-							dataAttr( this[0], name, data[ name ] );
-						}
-					}
-				}
-			}
-
-			return data;
-
-		} else if ( typeof key === "object" ) {
-			return this.each(function() {
-				jQuery.data( this, key );
-			});
-		}
-
-		var parts = key.split(".");
-		parts[1] = parts[1] ? "." + parts[1] : "";
-
-		if ( value === undefined ) {
-			data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
-			// Try to fetch any internally stored data first
-			if ( data === undefined && this.length ) {
-				data = jQuery.data( this[0], key );
-				data = dataAttr( this[0], key, data );
-			}
-
-			return data === undefined && parts[1] ?
-				this.data( parts[0] ) :
-				data;
-
-		} else {
-			return this.each(function() {
-				var $this = jQuery( this ),
-					args = [ parts[0], value ];
-
-				$this.triggerHandler( "setData" + parts[1] + "!", args );
-				jQuery.data( this, key, value );
-				$this.triggerHandler( "changeData" + parts[1] + "!", args );
-			});
-		}
-	},
-
-	removeData: function( key ) {
-		return this.each(function() {
-			jQuery.removeData( this, key );
-		});
-	}
-});
-
-function dataAttr( elem, key, data ) {
-	// If nothing was found internally, try to fetch any
-	// data from the HTML5 data-* attribute
-	if ( data === undefined && elem.nodeType === 1 ) {
-		var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase();
-
-		data = elem.getAttribute( name );
-
-		if ( typeof data === "string" ) {
-			try {
-				data = data === "true" ? true :
-				data === "false" ? false :
-				data === "null" ? null :
-				!jQuery.isNaN( data ) ? parseFloat( data ) :
-					rbrace.test( data ) ? jQuery.parseJSON( data ) :
-					data;
-			} catch( e ) {}
-
-			// Make sure we set the data so it isn't changed later
-			jQuery.data( elem, key, data );
-
-		} else {
-			data = undefined;
-		}
-	}
-
-	return data;
-}
-
-// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON
-// property to be considered empty objects; this property always exists in
-// order to make sure JSON.stringify does not expose internal metadata
-function isEmptyDataObject( obj ) {
-	for ( var name in obj ) {
-		if ( name !== "toJSON" ) {
-			return false;
-		}
-	}
-
-	return true;
-}
-
-
-
-
-function handleQueueMarkDefer( elem, type, src ) {
-	var deferDataKey = type + "defer",
-		queueDataKey = type + "queue",
-		markDataKey = type + "mark",
-		defer = jQuery.data( elem, deferDataKey, undefined, true );
-	if ( defer &&
-		( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) &&
-		( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) {
-		// Give room for hard-coded callbacks to fire first
-		// and eventually mark/queue something else on the element
-		setTimeout( function() {
-			if ( !jQuery.data( elem, queueDataKey, undefined, true ) &&
-				!jQuery.data( elem, markDataKey, undefined, true ) ) {
-				jQuery.removeData( elem, deferDataKey, true );
-				defer.resolve();
-			}
-		}, 0 );
-	}
-}
-
-jQuery.extend({
-
-	_mark: function( elem, type ) {
-		if ( elem ) {
-			type = (type || "fx") + "mark";
-			jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );
-		}
-	},
-
-	_unmark: function( force, elem, type ) {
-		if ( force !== true ) {
-			type = elem;
-			elem = force;
-			force = false;
-		}
-		if ( elem ) {
-			type = type || "fx";
-			var key = type + "mark",
-				count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );
-			if ( count ) {
-				jQuery.data( elem, key, count, true );
-			} else {
-				jQuery.removeData( elem, key, true );
-				handleQueueMarkDefer( elem, type, "mark" );
-			}
-		}
-	},
-
-	queue: function( elem, type, data ) {
-		if ( elem ) {
-			type = (type || "fx") + "queue";
-			var q = jQuery.data( elem, type, undefined, true );
-			// Speed up dequeue by getting out quickly if this is just a lookup
-			if ( data ) {
-				if ( !q || jQuery.isArray(data) ) {
-					q = jQuery.data( elem, type, jQuery.makeArray(data), true );
-				} else {
-					q.push( data );
-				}
-			}
-			return q || [];
-		}
-	},
-
-	dequeue: function( elem, type ) {
-		type = type || "fx";
-
-		var queue = jQuery.queue( elem, type ),
-			fn = queue.shift(),
-			defer;
-
-		// If the fx queue is dequeued, always remove the progress sentinel
-		if ( fn === "inprogress" ) {
-			fn = queue.shift();
-		}
-
-		if ( fn ) {
-			// Add a progress sentinel to prevent the fx queue from being
-			// automatically dequeued
-			if ( type === "fx" ) {
-				queue.unshift("inprogress");
-			}
-
-			fn.call(elem, function() {
-				jQuery.dequeue(elem, type);
-			});
-		}
-
-		if ( !queue.length ) {
-			jQuery.removeData( elem, type + "queue", true );
-			handleQueueMarkDefer( elem, type, "queue" );
-		}
-	}
-});
-
-jQuery.fn.extend({
-	queue: function( type, data ) {
-		if ( typeof type !== "string" ) {
-			data = type;
-			type = "fx";
-		}
-
-		if ( data === undefined ) {
-			return jQuery.queue( this[0], type );
-		}
-		return this.each(function() {
-			var queue = jQuery.queue( this, type, data );
-
-			if ( type === "fx" && queue[0] !== "inprogress" ) {
-				jQuery.dequeue( this, type );
-			}
-		});
-	},
-	dequeue: function( type ) {
-		return this.each(function() {
-			jQuery.dequeue( this, type );
-		});
-	},
-	// Based off of the plugin by Clint Helfers, with permission.
-	// http://blindsignals.com/index.php/2009/07/jquery-delay/
-	delay: function( time, type ) {
-		time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
-		type = type || "fx";
-
-		return this.queue( type, function() {
-			var elem = this;
-			setTimeout(function() {
-				jQuery.dequeue( elem, type );
-			}, time );
-		});
-	},
-	clearQueue: function( type ) {
-		return this.queue( type || "fx", [] );
-	},
-	// Get a promise resolved when queues of a certain type
-	// are emptied (fx is the type by default)
-	promise: function( type, object ) {
-		if ( typeof type !== "string" ) {
-			object = type;
-			type = undefined;
-		}
-		type = type || "fx";
-		var defer = jQuery.Deferred(),
-			elements = this,
-			i = elements.length,
-			count = 1,
-			deferDataKey = type + "defer",
-			queueDataKey = type + "queue",
-			markDataKey = type + "mark",
-			tmp;
-		function resolve() {
-			if ( !( --count ) ) {
-				defer.resolveWith( elements, [ elements ] );
-			}
-		}
-		while( i-- ) {
-			if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
-					( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
-						jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
-					jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {
-				count++;
-				tmp.done( resolve );
-			}
-		}
-		resolve();
-		return defer.promise();
-	}
-});
-
-
-
-
-var rclass = /[\n\t\r]/g,
-	rspace = /\s+/,
-	rreturn = /\r/g,
-	rtype = /^(?:button|input)$/i,
-	rfocusable = /^(?:button|input|object|select|textarea)$/i,
-	rclickable = /^a(?:rea)?$/i,
-	rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
-	rinvalidChar = /\:|^on/,
-	formHook, boolHook;
-
-jQuery.fn.extend({
-	attr: function( name, value ) {
-		return jQuery.access( this, name, value, true, jQuery.attr );
-	},
-
-	removeAttr: function( name ) {
-		return this.each(function() {
-			jQuery.removeAttr( this, name );
-		});
-	},
-	
-	prop: function( name, value ) {
-		return jQuery.access( this, name, value, true, jQuery.prop );
-	},
-	
-	removeProp: function( name ) {
-		name = jQuery.propFix[ name ] || name;
-		return this.each(function() {
-			// try/catch handles cases where IE balks (such as removing a property on window)
-			try {
-				this[ name ] = undefined;
-				delete this[ name ];
-			} catch( e ) {}
-		});
-	},
-
-	addClass: function( value ) {
-		var classNames, i, l, elem,
-			setClass, c, cl;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).addClass( value.call(this, j, this.className) );
-			});
-		}
-
-		if ( value && typeof value === "string" ) {
-			classNames = value.split( rspace );
-
-			for ( i = 0, l = this.length; i < l; i++ ) {
-				elem = this[ i ];
-
-				if ( elem.nodeType === 1 ) {
-					if ( !elem.className && classNames.length === 1 ) {
-						elem.className = value;
-
-					} else {
-						setClass = " " + elem.className + " ";
-
-						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
-							if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
-								setClass += classNames[ c ] + " ";
-							}
-						}
-						elem.className = jQuery.trim( setClass );
-					}
-				}
-			}
-		}
-
-		return this;
-	},
-
-	removeClass: function( value ) {
-		var classNames, i, l, elem, className, c, cl;
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( j ) {
-				jQuery( this ).removeClass( value.call(this, j, this.className) );
-			});
-		}
-
-		if ( (value && typeof value === "string") || value === undefined ) {
-			classNames = (value || "").split( rspace );
-
-			for ( i = 0, l = this.length; i < l; i++ ) {
-				elem = this[ i ];
-
-				if ( elem.nodeType === 1 && elem.className ) {
-					if ( value ) {
-						className = (" " + elem.className + " ").replace( rclass, " " );
-						for ( c = 0, cl = classNames.length; c < cl; c++ ) {
-							className = className.replace(" " + classNames[ c ] + " ", " ");
-						}
-						elem.className = jQuery.trim( className );
-
-					} else {
-						elem.className = "";
-					}
-				}
-			}
-		}
-
-		return this;
-	},
-
-	toggleClass: function( value, stateVal ) {
-		var type = typeof value,
-			isBool = typeof stateVal === "boolean";
-
-		if ( jQuery.isFunction( value ) ) {
-			return this.each(function( i ) {
-				jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
-			});
-		}
-
-		return this.each(function() {
-			if ( type === "string" ) {
-				// toggle individual class names
-				var className,
-					i = 0,
-					self = jQuery( this ),
-					state = stateVal,
-					classNames = value.split( rspace );
-
-				while ( (className = classNames[ i++ ]) ) {
-					// check each className given, space seperated list
-					state = isBool ? state : !self.hasClass( className );
-					self[ state ? "addClass" : "removeClass" ]( className );
-				}
-
-			} else if ( type === "undefined" || type === "boolean" ) {
-				if ( this.className ) {
-					// store className if set
-					jQuery._data( this, "__className__", this.className );
-				}
-
-				// toggle whole className
-				this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
-			}
-		});
-	},
-
-	hasClass: function( selector ) {
-		var className = " " + selector + " ";
-		for ( var i = 0, l = this.length; i < l; i++ ) {
-			if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
-				return true;
-			}
-		}
-
-		return false;
-	},
-
-	val: function( value ) {
-		var hooks, ret,
-			elem = this[0];
-		
-		if ( !arguments.length ) {
-			if ( elem ) {
-				hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
-
-				if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
-					return ret;
-				}
-
-				ret = elem.value;
-
-				return typeof ret === "string" ? 
-					// handle most common string cases
-					ret.replace(rreturn, "") : 
-					// handle cases where value is null/undef or number
-					ret == null ? "" : ret;
-			}
-
-			return undefined;
-		}
-
-		var isFunction = jQuery.isFunction( value );
-
-		return this.each(function( i ) {
-			var self = jQuery(this), val;
-
-			if ( this.nodeType !== 1 ) {
-				return;
-			}
-
-			if ( isFunction ) {
-				val = value.call( this, i, self.val() );
-			} else {
-				val = value;
-			}
-
-			// Treat null/undefined as ""; convert numbers to string
-			if ( val == null ) {
-				val = "";
-			} else if ( typeof val === "number" ) {
-				val += "";
-			} else if ( jQuery.isArray( val ) ) {
-				val = jQuery.map(val, function ( value ) {
-					return value == null ? "" : value + "";
-				});
-			}
-
-			hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
-
-			// If set returns undefined, fall back to normal setting
-			if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
-				this.value = val;
-			}
-		});
-	}
-});
-
-jQuery.extend({
-	valHooks: {
-		option: {
-			get: function( elem ) {
-				// attributes.value is undefined in Blackberry 4.7 but
-				// uses .value. See #6932
-				var val = elem.attributes.value;
-				return !val || val.specified ? elem.value : elem.text;
-			}
-		},
-		select: {
-			get: function( elem ) {
-				var value,
-					index = elem.selectedIndex,
-					values = [],
-					options = elem.options,
-					one = elem.type === "select-one";
-
-				// Nothing was selected
-				if ( index < 0 ) {
-					return null;
-				}
-
-				// Loop through all the selected options
-				for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
-					var option = options[ i ];
-
-					// Don't return options that are disabled or in a disabled optgroup
-					if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
-							(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
-
-						// Get the specific value for the option
-						value = jQuery( option ).val();
-
-						// We don't need an array for one selects
-						if ( one ) {
-							return value;
-						}
-
-						// Multi-Selects return an array
-						values.push( value );
-					}
-				}
-
-				// Fixes Bug #2551 -- select.val() broken in IE after form.reset()
-				if ( one && !values.length && options.length ) {
-					return jQuery( options[ index ] ).val();
-				}
-
-				return values;
-			},
-
-			set: function( elem, value ) {
-				var values = jQuery.makeArray( value );
-
-				jQuery(elem).find("option").each(function() {
-					this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
-				});
-
-				if ( !values.length ) {
-					elem.selectedIndex = -1;
-				}
-				return values;
-			}
-		}
-	},
-
-	attrFn: {
-		val: true,
-		css: true,
-		html: true,
-		text: true,
-		data: true,
-		width: true,
-		height: true,
-		offset: true
-	},
-	
-	attrFix: {
-		// Always normalize to ensure hook usage
-		tabindex: "tabIndex"
-	},
-	
-	attr: function( elem, name, value, pass ) {
-		var nType = elem.nodeType;
-		
-		// don't get/set attributes on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return undefined;
-		}
-
-		if ( pass && name in jQuery.attrFn ) {
-			return jQuery( elem )[ name ]( value );
-		}
-
-		// Fallback to prop when attributes are not supported
-		if ( !("getAttribute" in elem) ) {
-			return jQuery.prop( elem, name, value );
-		}
-
-		var ret, hooks,
-			notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-		// Normalize the name if needed
-		if ( notxml ) {
-			name = jQuery.attrFix[ name ] || name;
-
-			hooks = jQuery.attrHooks[ name ];
-
-			if ( !hooks ) {
-				// Use boolHook for boolean attributes
-				if ( rboolean.test( name ) ) {
-
-					hooks = boolHook;
-
-				// Use formHook for forms and if the name contains certain characters
-				} else if ( formHook && name !== "className" &&
-					(jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) {
-
-					hooks = formHook;
-				}
-			}
-		}
-
-		if ( value !== undefined ) {
-
-			if ( value === null ) {
-				jQuery.removeAttr( elem, name );
-				return undefined;
-
-			} else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
-
-			} else {
-				elem.setAttribute( name, "" + value );
-				return value;
-			}
-
-		} else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
-			return ret;
-
-		} else {
-
-			ret = elem.getAttribute( name );
-
-			// Non-existent attributes return null, we normalize to undefined
-			return ret === null ?
-				undefined :
-				ret;
-		}
-	},
-
-	removeAttr: function( elem, name ) {
-		var propName;
-		if ( elem.nodeType === 1 ) {
-			name = jQuery.attrFix[ name ] || name;
-		
-			if ( jQuery.support.getSetAttribute ) {
-				// Use removeAttribute in browsers that support it
-				elem.removeAttribute( name );
-			} else {
-				jQuery.attr( elem, name, "" );
-				elem.removeAttributeNode( elem.getAttributeNode( name ) );
-			}
-
-			// Set corresponding property to false for boolean attributes
-			if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
-				elem[ propName ] = false;
-			}
-		}
-	},
-
-	attrHooks: {
-		type: {
-			set: function( elem, value ) {
-				// We can't allow the type property to be changed (since it causes problems in IE)
-				if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
-					jQuery.error( "type property can't be changed" );
-				} else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
-					// Setting the type on a radio button after the value resets the value in IE6-9
-					// Reset value to it's default in case type is set after value
-					// This is for element creation
-					var val = elem.value;
-					elem.setAttribute( "type", value );
-					if ( val ) {
-						elem.value = val;
-					}
-					return value;
-				}
-			}
-		},
-		tabIndex: {
-			get: function( elem ) {
-				// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-				// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-				var attributeNode = elem.getAttributeNode("tabIndex");
-
-				return attributeNode && attributeNode.specified ?
-					parseInt( attributeNode.value, 10 ) :
-					rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
-						0 :
-						undefined;
-			}
-		},
-		// Use the value property for back compat
-		// Use the formHook for button elements in IE6/7 (#1954)
-		value: {
-			get: function( elem, name ) {
-				if ( formHook && jQuery.nodeName( elem, "button" ) ) {
-					return formHook.get( elem, name );
-				}
-				return name in elem ?
-					elem.value :
-					null;
-			},
-			set: function( elem, value, name ) {
-				if ( formHook && jQuery.nodeName( elem, "button" ) ) {
-					return formHook.set( elem, value, name );
-				}
-				// Does not return so that setAttribute is also used
-				elem.value = value;
-			}
-		}
-	},
-
-	propFix: {
-		tabindex: "tabIndex",
-		readonly: "readOnly",
-		"for": "htmlFor",
-		"class": "className",
-		maxlength: "maxLength",
-		cellspacing: "cellSpacing",
-		cellpadding: "cellPadding",
-		rowspan: "rowSpan",
-		colspan: "colSpan",
-		usemap: "useMap",
-		frameborder: "frameBorder",
-		contenteditable: "contentEditable"
-	},
-	
-	prop: function( elem, name, value ) {
-		var nType = elem.nodeType;
-
-		// don't get/set properties on text, comment and attribute nodes
-		if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-			return undefined;
-		}
-
-		var ret, hooks,
-			notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-		if ( notxml ) {
-			// Fix name and attach hooks
-			name = jQuery.propFix[ name ] || name;
-			hooks = jQuery.propHooks[ name ];
-		}
-
-		if ( value !== undefined ) {
-			if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
-				return ret;
-
-			} else {
-				return (elem[ name ] = value);
-			}
-
-		} else {
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) {
-				return ret;
-
-			} else {
-				return elem[ name ];
-			}
-		}
-	},
-	
-	propHooks: {}
-});
-
-// Hook for boolean attributes
-boolHook = {
-	get: function( elem, name ) {
-		// Align boolean attributes with corresponding properties
-		return jQuery.prop( elem, name ) ?
-			name.toLowerCase() :
-			undefined;
-	},
-	set: function( elem, value, name ) {
-		var propName;
-		if ( value === false ) {
-			// Remove boolean attributes when set to false
-			jQuery.removeAttr( elem, name );
-		} else {
-			// value is true since we know at this point it's type boolean and not false
-			// Set boolean attributes to the same name and set the DOM property
-			propName = jQuery.propFix[ name ] || name;
-			if ( propName in elem ) {
-				// Only set the IDL specifically if it already exists on the element
-				elem[ propName ] = true;
-			}
-
-			elem.setAttribute( name, name.toLowerCase() );
-		}
-		return name;
-	}
-};
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !jQuery.support.getSetAttribute ) {
-
-	// propFix is more comprehensive and contains all fixes
-	jQuery.attrFix = jQuery.propFix;
-	
-	// Use this for any attribute on a form in IE6/7
-	formHook = jQuery.attrHooks.name = jQuery.attrHooks.title = jQuery.valHooks.button = {
-		get: function( elem, name ) {
-			var ret;
-			ret = elem.getAttributeNode( name );
-			// Return undefined if nodeValue is empty string
-			return ret && ret.nodeValue !== "" ?
-				ret.nodeValue :
-				undefined;
-		},
-		set: function( elem, value, name ) {
-			// Check form objects in IE (multiple bugs related)
-			// Only use nodeValue if the attribute node exists on the form
-			var ret = elem.getAttributeNode( name );
-			if ( ret ) {
-				ret.nodeValue = value;
-				return value;
-			}
-		}
-	};
-
-	// Set width and height to auto instead of 0 on empty string( Bug #8150 )
-	// This is for removals
-	jQuery.each([ "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-			set: function( elem, value ) {
-				if ( value === "" ) {
-					elem.setAttribute( name, "auto" );
-					return value;
-				}
-			}
-		});
-	});
-}
-
-
-// Some attributes require a special call on IE
-if ( !jQuery.support.hrefNormalized ) {
-	jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
-		jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-			get: function( elem ) {
-				var ret = elem.getAttribute( name, 2 );
-				return ret === null ? undefined : ret;
-			}
-		});
-	});
-}
-
-if ( !jQuery.support.style ) {
-	jQuery.attrHooks.style = {
-		get: function( elem ) {
-			// Return undefined in the case of empty string
-			// Normalize to lowercase since IE uppercases css property names
-			return elem.style.cssText.toLowerCase() || undefined;
-		},
-		set: function( elem, value ) {
-			return (elem.style.cssText = "" + value);
-		}
-	};
-}
-
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
-	jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
-		get: function( elem ) {
-			var parent = elem.parentNode;
-
-			if ( parent ) {
-				parent.selectedIndex;
-
-				// Make sure that it also works with optgroups, see #5701
-				if ( parent.parentNode ) {
-					parent.parentNode.selectedIndex;
-				}
-			}
-		}
-	});
-}
-
-// Radios and checkboxes getter/setter
-if ( !jQuery.support.checkOn ) {
-	jQuery.each([ "radio", "checkbox" ], function() {
-		jQuery.valHooks[ this ] = {
-			get: function( elem ) {
-				// Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
-				return elem.getAttribute("value") === null ? "on" : elem.value;
-			}
-		};
-	});
-}
-jQuery.each([ "radio", "checkbox" ], function() {
-	jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
-		set: function( elem, value ) {
-			if ( jQuery.isArray( value ) ) {
-				return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0);
-			}
-		}
-	});
-});
-
-
-
-
-var rnamespaces = /\.(.*)$/,
-	rformElems = /^(?:textarea|input|select)$/i,
-	rperiod = /\./g,
-	rspaces = / /g,
-	rescape = /[^\w\s.|`]/g,
-	fcleanup = function( nm ) {
-		return nm.replace(rescape, "\\$&");
-	};
-
-/*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code originated from
- * Dean Edwards' addEvent library.
- */
-jQuery.event = {
-
-	// Bind an event to an element
-	// Original by Dean Edwards
-	add: function( elem, types, handler, data ) {
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
-
-		if ( handler === false ) {
-			handler = returnFalse;
-		} else if ( !handler ) {
-			// Fixes bug #7229. Fix recommended by jdalton
-			return;
-		}
-
-		var handleObjIn, handleObj;
-
-		if ( handler.handler ) {
-			handleObjIn = handler;
-			handler = handleObjIn.handler;
-		}
-
-		// Make sure that the function being executed has a unique ID
-		if ( !handler.guid ) {
-			handler.guid = jQuery.guid++;
-		}
-
-		// Init the element's event structure
-		var elemData = jQuery._data( elem );
-
-		// If no elemData is found then we must be trying to bind to one of the
-		// banned noData elements
-		if ( !elemData ) {
-			return;
-		}
-
-		var events = elemData.events,
-			eventHandle = elemData.handle;
-
-		if ( !events ) {
-			elemData.events = events = {};
-		}
-
-		if ( !eventHandle ) {
-			elemData.handle = eventHandle = function( e ) {
-				// Discard the second event of a jQuery.event.trigger() and
-				// when an event is called after a page has unloaded
-				return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
-					jQuery.event.handle.apply( eventHandle.elem, arguments ) :
-					undefined;
-			};
-		}
-
-		// Add elem as a property of the handle function
-		// This is to prevent a memory leak with non-native events in IE.
-		eventHandle.elem = elem;
-
-		// Handle multiple events separated by a space
-		// jQuery(...).bind("mouseover mouseout", fn);
-		types = types.split(" ");
-
-		var type, i = 0, namespaces;
-
-		while ( (type = types[ i++ ]) ) {
-			handleObj = handleObjIn ?
-				jQuery.extend({}, handleObjIn) :
-				{ handler: handler, data: data };
-
-			// Namespaced event handlers
-			if ( type.indexOf(".") > -1 ) {
-				namespaces = type.split(".");
-				type = namespaces.shift();
-				handleObj.namespace = namespaces.slice(0).sort().join(".");
-
-			} else {
-				namespaces = [];
-				handleObj.namespace = "";
-			}
-
-			handleObj.type = type;
-			if ( !handleObj.guid ) {
-				handleObj.guid = handler.guid;
-			}
-
-			// Get the current list of functions bound to this event
-			var handlers = events[ type ],
-				special = jQuery.event.special[ type ] || {};
-
-			// Init the event handler queue
-			if ( !handlers ) {
-				handlers = events[ type ] = [];
-
-				// Check for a special event handler
-				// Only use addEventListener/attachEvent if the special
-				// events handler returns false
-				if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-					// Bind the global event handler to the element
-					if ( elem.addEventListener ) {
-						elem.addEventListener( type, eventHandle, false );
-
-					} else if ( elem.attachEvent ) {
-						elem.attachEvent( "on" + type, eventHandle );
-					}
-				}
-			}
-
-			if ( special.add ) {
-				special.add.call( elem, handleObj );
-
-				if ( !handleObj.handler.guid ) {
-					handleObj.handler.guid = handler.guid;
-				}
-			}
-
-			// Add the function to the element's handler list
-			handlers.push( handleObj );
-
-			// Keep track of which events have been used, for event optimization
-			jQuery.event.global[ type ] = true;
-		}
-
-		// Nullify elem to prevent memory leaks in IE
-		elem = null;
-	},
-
-	global: {},
-
-	// Detach an event or set of events from an element
-	remove: function( elem, types, handler, pos ) {
-		// don't do events on text and comment nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
-
-		if ( handler === false ) {
-			handler = returnFalse;
-		}
-
-		var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
-			elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
-			events = elemData && elemData.events;
-
-		if ( !elemData || !events ) {
-			return;
-		}
-
-		// types is actually an event object here
-		if ( types && types.type ) {
-			handler = types.handler;
-			types = types.type;
-		}
-
-		// Unbind all events for the element
-		if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
-			types = types || "";
-
-			for ( type in events ) {
-				jQuery.event.remove( elem, type + types );
-			}
-
-			return;
-		}
-
-		// Handle multiple events separated by a space
-		// jQuery(...).unbind("mouseover mouseout", fn);
-		types = types.split(" ");
-
-		while ( (type = types[ i++ ]) ) {
-			origType = type;
-			handleObj = null;
-			all = type.indexOf(".") < 0;
-			namespaces = [];
-
-			if ( !all ) {
-				// Namespaced event handlers
-				namespaces = type.split(".");
-				type = namespaces.shift();
-
-				namespace = new RegExp("(^|\\.)" +
-					jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
-			}
-
-			eventType = events[ type ];
-
-			if ( !eventType ) {
-				continue;
-			}
-
-			if ( !handler ) {
-				for ( j = 0; j < eventType.length; j++ ) {
-					handleObj = eventType[ j ];
-
-					if ( all || namespace.test( handleObj.namespace ) ) {
-						jQuery.event.remove( elem, origType, handleObj.handler, j );
-						eventType.splice( j--, 1 );
-					}
-				}
-
-				continue;
-			}
-
-			special = jQuery.event.special[ type ] || {};
-
-			for ( j = pos || 0; j < eventType.length; j++ ) {
-				handleObj = eventType[ j ];
-
-				if ( handler.guid === handleObj.guid ) {
-					// remove the given handler for the given type
-					if ( all || namespace.test( handleObj.namespace ) ) {
-						if ( pos == null ) {
-							eventType.splice( j--, 1 );
-						}
-
-						if ( special.remove ) {
-							special.remove.call( elem, handleObj );
-						}
-					}
-
-					if ( pos != null ) {
-						break;
-					}
-				}
-			}
-
-			// remove generic event handler if no more handlers exist
-			if ( eventType.length === 0 || pos != null && eventType.length === 1 ) {
-				if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
-					jQuery.removeEvent( elem, type, elemData.handle );
-				}
-
-				ret = null;
-				delete events[ type ];
-			}
-		}
-
-		// Remove the expando if it's no longer used
-		if ( jQuery.isEmptyObject( events ) ) {
-			var handle = elemData.handle;
-			if ( handle ) {
-				handle.elem = null;
-			}
-
-			delete elemData.events;
-			delete elemData.handle;
-
-			if ( jQuery.isEmptyObject( elemData ) ) {
-				jQuery.removeData( elem, undefined, true );
-			}
-		}
-	},
-	
-	// Events that are safe to short-circuit if no handlers are attached.
-	// Native DOM events should not be added, they may have inline handlers.
-	customEvent: {
-		"getData": true,
-		"setData": true,
-		"changeData": true
-	},
-
-	trigger: function( event, data, elem, onlyHandlers ) {
-		// Event object or event type
-		var type = event.type || event,
-			namespaces = [],
-			exclusive;
-
-		if ( type.indexOf("!") >= 0 ) {
-			// Exclusive events trigger only for the exact event (no namespaces)
-			type = type.slice(0, -1);
-			exclusive = true;
-		}
-
-		if ( type.indexOf(".") >= 0 ) {
-			// Namespaced trigger; create a regexp to match event type in handle()
-			namespaces = type.split(".");
-			type = namespaces.shift();
-			namespaces.sort();
-		}
-
-		if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
-			// No jQuery handlers for this event type, and it can't have inline handlers
-			return;
-		}
-
-		// Caller can pass in an Event, Object, or just an event type string
-		event = typeof event === "object" ?
-			// jQuery.Event object
-			event[ jQuery.expando ] ? event :
-			// Object literal
-			new jQuery.Event( type, event ) :
-			// Just the event type (string)
-			new jQuery.Event( type );
-
-		event.type = type;
-		event.exclusive = exclusive;
-		event.namespace = namespaces.join(".");
-		event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
-		
-		// triggerHandler() and global events don't bubble or run the default action
-		if ( onlyHandlers || !elem ) {
-			event.preventDefault();
-			event.stopPropagation();
-		}
-
-		// Handle a global trigger
-		if ( !elem ) {
-			// TODO: Stop taunting the data cache; remove global events and always attach to document
-			jQuery.each( jQuery.cache, function() {
-				// internalKey variable is just used to make it easier to find
-				// and potentially change this stuff later; currently it just
-				// points to jQuery.expando
-				var internalKey = jQuery.expando,
-					internalCache = this[ internalKey ];
-				if ( internalCache && internalCache.events && internalCache.events[ type ] ) {
-					jQuery.event.trigger( event, data, internalCache.handle.elem );
-				}
-			});
-			return;
-		}
-
-		// Don't do events on text and comment nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-			return;
-		}
-
-		// Clean up the event in case it is being reused
-		event.result = undefined;
-		event.target = elem;
-
-		// Clone any incoming data and prepend the event, creating the handler arg list
-		data = data != null ? jQuery.makeArray( data ) : [];
-		data.unshift( event );
-
-		var cur = elem,
-			// IE doesn't like method names with a colon (#3533, #8272)
-			ontype = type.indexOf(":") < 0 ? "on" + type : "";
-
-		// Fire event on the current element, then bubble up the DOM tree
-		do {
-			var handle = jQuery._data( cur, "handle" );
-
-			event.currentTarget = cur;
-			if ( handle ) {
-				handle.apply( cur, data );
-			}
-
-			// Trigger an inline bound script
-			if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) {
-				event.result = false;
-				event.preventDefault();
-			}
-
-			// Bubble up to document, then to window
-			cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window;
-		} while ( cur && !event.isPropagationStopped() );
-
-		// If nobody prevented the default action, do it now
-		if ( !event.isDefaultPrevented() ) {
-			var old,
-				special = jQuery.event.special[ type ] || {};
-
-			if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) &&
-				!(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
-
-				// Call a native DOM method on the target with the same name name as the event.
-				// Can't use an .isFunction)() check here because IE6/7 fails that test.
-				// IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch.
-				try {
-					if ( ontype && elem[ type ] ) {
-						// Don't re-trigger an onFOO event when we call its FOO() method
-						old = elem[ ontype ];
-
-						if ( old ) {
-							elem[ ontype ] = null;
-						}
-
-						jQuery.event.triggered = type;
-						elem[ type ]();
-					}
-				} catch ( ieError ) {}
-
-				if ( old ) {
-					elem[ ontype ] = old;
-				}
-
-				jQuery.event.triggered = undefined;
-			}
-		}
-		
-		return event.result;
-	},
-
-	handle: function( event ) {
-		event = jQuery.event.fix( event || window.event );
-		// Snapshot the handlers list since a called handler may add/remove events.
-		var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0),
-			run_all = !event.exclusive && !event.namespace,
-			args = Array.prototype.slice.call( arguments, 0 );
-
-		// Use the fix-ed Event rather than the (read-only) native event
-		args[0] = event;
-		event.currentTarget = this;
-
-		for ( var j = 0, l = handlers.length; j < l; j++ ) {
-			var handleObj = handlers[ j ];
-
-			// Triggered event must 1) be non-exclusive and have no namespace, or
-			// 2) have namespace(s) a subset or equal to those in the bound event.
-			if ( run_all || event.namespace_re.test( handleObj.namespace ) ) {
-				// Pass in a reference to the handler function itself
-				// So that we can later remove it
-				event.handler = handleObj.handler;
-				event.data = handleObj.data;
-				event.handleObj = handleObj;
-
-				var ret = handleObj.handler.apply( this, args );
-
-				if ( ret !== undefined ) {
-					event.result = ret;
-					if ( ret === false ) {
-						event.preventDefault();
-						event.stopPropagation();
-					}
-				}
-
-				if ( event.isImmediatePropagationStopped() ) {
-					break;
-				}
-			}
-		}
-		return event.result;
-	},
-
-	props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-
-	fix: function( event ) {
-		if ( event[ jQuery.expando ] ) {
-			return event;
-		}
-
-		// store a copy of the original event object
-		// and "clone" to set read-only properties
-		var originalEvent = event;
-		event = jQuery.Event( originalEvent );
-
-		for ( var i = this.props.length, prop; i; ) {
-			prop = this.props[ --i ];
-			event[ prop ] = originalEvent[ prop ];
-		}
-
-		// Fix target property, if necessary
-		if ( !event.target ) {
-			// Fixes #1925 where srcElement might not be defined either
-			event.target = event.srcElement || document;
-		}
-
-		// check if target is a textnode (safari)
-		if ( event.target.nodeType === 3 ) {
-			event.target = event.target.parentNode;
-		}
-
-		// Add relatedTarget, if necessary
-		if ( !event.relatedTarget && event.fromElement ) {
-			event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
-		}
-
-		// Calculate pageX/Y if missing and clientX/Y available
-		if ( event.pageX == null && event.clientX != null ) {
-			var eventDocument = event.target.ownerDocument || document,
-				doc = eventDocument.documentElement,
-				body = eventDocument.body;
-
-			event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
-			event.pageY = event.clientY + (doc && doc.scrollTop  || body && body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop  || 0);
-		}
-
-		// Add which for key events
-		if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
-			event.which = event.charCode != null ? event.charCode : event.keyCode;
-		}
-
-		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
-		if ( !event.metaKey && event.ctrlKey ) {
-			event.metaKey = event.ctrlKey;
-		}
-
-		// Add which for click: 1 === left; 2 === middle; 3 === right
-		// Note: button is not normalized, so don't use it
-		if ( !event.which && event.button !== undefined ) {
-			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-		}
-
-		return event;
-	},
-
-	// Deprecated, use jQuery.guid instead
-	guid: 1E8,
-
-	// Deprecated, use jQuery.proxy instead
-	proxy: jQuery.proxy,
-
-	special: {
-		ready: {
-			// Make sure the ready event is setup
-			setup: jQuery.bindReady,
-			teardown: jQuery.noop
-		},
-
-		live: {
-			add: function( handleObj ) {
-				jQuery.event.add( this,
-					liveConvert( handleObj.origType, handleObj.selector ),
-					jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
-			},
-
-			remove: function( handleObj ) {
-				jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj );
-			}
-		},
-
-		beforeunload: {
-			setup: function( data, namespaces, eventHandle ) {
-				// We only want to do this special case on windows
-				if ( jQuery.isWindow( this ) ) {
-					this.onbeforeunload = eventHandle;
-				}
-			},
-
-			teardown: function( namespaces, eventHandle ) {
-				if ( this.onbeforeunload === eventHandle ) {
-					this.onbeforeunload = null;
-				}
-			}
-		}
-	}
-};
-
-jQuery.removeEvent = document.removeEventListener ?
-	function( elem, type, handle ) {
-		if ( elem.removeEventListener ) {
-			elem.removeEventListener( type, handle, false );
-		}
-	} :
-	function( elem, type, handle ) {
-		if ( elem.detachEvent ) {
-			elem.detachEvent( "on" + type, handle );
-		}
-	};
-
-jQuery.Event = function( src, props ) {
-	// Allow instantiation without the 'new' keyword
-	if ( !this.preventDefault ) {
-		return new jQuery.Event( src, props );
-	}
-
-	// Event object
-	if ( src && src.type ) {
-		this.originalEvent = src;
-		this.type = src.type;
-
-		// Events bubbling up the document may have been marked as prevented
-		// by a handler lower down the tree; reflect the correct value.
-		this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
-			src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
-
-	// Event type
-	} else {
-		this.type = src;
-	}
-
-	// Put explicitly provided properties onto the event object
-	if ( props ) {
-		jQuery.extend( this, props );
-	}
-
-	// timeStamp is buggy for some events on Firefox(#3843)
-	// So we won't rely on the native value
-	this.timeStamp = jQuery.now();
-
-	// Mark it as fixed
-	this[ jQuery.expando ] = true;
-};
-
-function returnFalse() {
-	return false;
-}
-function returnTrue() {
-	return true;
-}
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
-	preventDefault: function() {
-		this.isDefaultPrevented = returnTrue;
-
-		var e = this.originalEvent;
-		if ( !e ) {
-			return;
-		}
-
-		// if preventDefault exists run it on the original event
-		if ( e.preventDefault ) {
-			e.preventDefault();
-
-		// otherwise set the returnValue property of the original event to false (IE)
-		} else {
-			e.returnValue = false;
-		}
-	},
-	stopPropagation: function() {
-		this.isPropagationStopped = returnTrue;
-
-		var e = this.originalEvent;
-		if ( !e ) {
-			return;
-		}
-		// if stopPropagation exists run it on the original event
-		if ( e.stopPropagation ) {
-			e.stopPropagation();
-		}
-		// otherwise set the cancelBubble property of the original event to true (IE)
-		e.cancelBubble = true;
-	},
-	stopImmediatePropagation: function() {
-		this.isImmediatePropagationStopped = returnTrue;
-		this.stopPropagation();
-	},
-	isDefaultPrevented: returnFalse,
-	isPropagationStopped: returnFalse,
-	isImmediatePropagationStopped: returnFalse
-};
-
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function( event ) {
-
-	// Check if mouse(over|out) are still within the same parent element
-	var related = event.relatedTarget,
-		inside = false,
-		eventType = event.type;
-
-	event.type = event.data;
-
-	if ( related !== this ) {
-
-		if ( related ) {
-			inside = jQuery.contains( this, related );
-		}
-
-		if ( !inside ) {
-
-			jQuery.event.handle.apply( this, arguments );
-
-			event.type = eventType;
-		}
-	}
-},
-
-// In case of event delegation, we only need to rename the event.type,
-// liveHandler will take care of the rest.
-delegate = function( event ) {
-	event.type = event.data;
-	jQuery.event.handle.apply( this, arguments );
-};
-
-// Create mouseenter and mouseleave events
-jQuery.each({
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-}, function( orig, fix ) {
-	jQuery.event.special[ orig ] = {
-		setup: function( data ) {
-			jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
-		},
-		teardown: function( data ) {
-			jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
-		}
-	};
-});
-
-// submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
-	jQuery.event.special.submit = {
-		setup: function( data, namespaces ) {
-			if ( !jQuery.nodeName( this, "form" ) ) {
-				jQuery.event.add(this, "click.specialSubmit", function( e ) {
-					var elem = e.target,
-						type = elem.type;
-
-					if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
-						trigger( "submit", this, arguments );
-					}
-				});
-
-				jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
-					var elem = e.target,
-						type = elem.type;
-
-					if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
-						trigger( "submit", this, arguments );
-					}
-				});
-
-			} else {
-				return false;
-			}
-		},
-
-		teardown: function( namespaces ) {
-			jQuery.event.remove( this, ".specialSubmit" );
-		}
-	};
-
-}
-
-// change delegation, happens here so we have bind.
-if ( !jQuery.support.changeBubbles ) {
-
-	var changeFilters,
-
-	getVal = function( elem ) {
-		var type = elem.type, val = elem.value;
-
-		if ( type === "radio" || type === "checkbox" ) {
-			val = elem.checked;
-
-		} else if ( type === "select-multiple" ) {
-			val = elem.selectedIndex > -1 ?
-				jQuery.map( elem.options, function( elem ) {
-					return elem.selected;
-				}).join("-") :
-				"";
-
-		} else if ( jQuery.nodeName( elem, "select" ) ) {
-			val = elem.selectedIndex;
-		}
-
-		return val;
-	},
-
-	testChange = function testChange( e ) {
-		var elem = e.target, data, val;
-
-		if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {
-			return;
-		}
-
-		data = jQuery._data( elem, "_change_data" );
-		val = getVal(elem);
-
-		// the current data will be also retrieved by beforeactivate
-		if ( e.type !== "focusout" || elem.type !== "radio" ) {
-			jQuery._data( elem, "_change_data", val );
-		}
-
-		if ( data === undefined || val === data ) {
-			return;
-		}
-
-		if ( data != null || val ) {
-			e.type = "change";
-			e.liveFired = undefined;
-			jQuery.event.trigger( e, arguments[1], elem );
-		}
-	};
-
-	jQuery.event.special.change = {
-		filters: {
-			focusout: testChange,
-
-			beforedeactivate: testChange,
-
-			click: function( e ) {
-				var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
-
-				if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) {
-					testChange.call( this, e );
-				}
-			},
-
-			// Change has to be called before submit
-			// Keydown will be called before keypress, which is used in submit-event delegation
-			keydown: function( e ) {
-				var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
-
-				if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) ||
-					(e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
-					type === "select-multiple" ) {
-					testChange.call( this, e );
-				}
-			},
-
-			// Beforeactivate happens also before the previous element is blurred
-			// with this event you can't trigger a change event, but you can store
-			// information
-			beforeactivate: function( e ) {
-				var elem = e.target;
-				jQuery._data( elem, "_change_data", getVal(elem) );
-			}
-		},
-
-		setup: function( data, namespaces ) {
-			if ( this.type === "file" ) {
-				return false;
-			}
-
-			for ( var type in changeFilters ) {
-				jQuery.event.add( this, type + ".specialChange", changeFilters[type] );
-			}
-
-			return rformElems.test( this.nodeName );
-		},
-
-		teardown: function( namespaces ) {
-			jQuery.event.remove( this, ".specialChange" );
-
-			return rformElems.test( this.nodeName );
-		}
-	};
-
-	changeFilters = jQuery.event.special.change.filters;
-
-	// Handle when the input is .focus()'d
-	changeFilters.focus = changeFilters.beforeactivate;
-}
-
-function trigger( type, elem, args ) {
-	// Piggyback on a donor event to simulate a different one.
-	// Fake originalEvent to avoid donor's stopPropagation, but if the
-	// simulated event prevents default then we do the same on the donor.
-	// Don't pass args or remember liveFired; they apply to the donor event.
-	var event = jQuery.extend( {}, args[ 0 ] );
-	event.type = type;
-	event.originalEvent = {};
-	event.liveFired = undefined;
-	jQuery.event.handle.call( elem, event );
-	if ( event.isDefaultPrevented() ) {
-		args[ 0 ].preventDefault();
-	}
-}
-
-// Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
-	jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
-		// Attach a single capturing handler while someone wants focusin/focusout
-		var attaches = 0;
-
-		jQuery.event.special[ fix ] = {
-			setup: function() {
-				if ( attaches++ === 0 ) {
-					document.addEventListener( orig, handler, true );
-				}
-			},
-			teardown: function() {
-				if ( --attaches === 0 ) {
-					document.removeEventListener( orig, handler, true );
-				}
-			}
-		};
-
-		function handler( donor ) {
-			// Donor event is always a native one; fix it and switch its type.
-			// Let focusin/out handler cancel the donor focus/blur event.
-			var e = jQuery.event.fix( donor );
-			e.type = fix;
-			e.originalEvent = {};
-			jQuery.event.trigger( e, null, e.target );
-			if ( e.isDefaultPrevented() ) {
-				donor.preventDefault();
-			}
-		}
-	});
-}
-
-jQuery.each(["bind", "one"], function( i, name ) {
-	jQuery.fn[ name ] = function( type, data, fn ) {
-		var handler;
-
-		// Handle object literals
-		if ( typeof type === "object" ) {
-			for ( var key in type ) {
-				this[ name ](key, data, type[key], fn);
-			}
-			return this;
-		}
-
-		if ( arguments.length === 2 || data === false ) {
-			fn = data;
-			data = undefined;
-		}
-
-		if ( name === "one" ) {
-			handler = function( event ) {
-				jQuery( this ).unbind( event, handler );
-				return fn.apply( this, arguments );
-			};
-			handler.guid = fn.guid || jQuery.guid++;
-		} else {
-			handler = fn;
-		}
-
-		if ( type === "unload" && name !== "one" ) {
-			this.one( type, data, fn );
-
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				jQuery.event.add( this[i], type, handler, data );
-			}
-		}
-
-		return this;
-	};
-});
-
-jQuery.fn.extend({
-	unbind: function( type, fn ) {
-		// Handle object literals
-		if ( typeof type === "object" && !type.preventDefault ) {
-			for ( var key in type ) {
-				this.unbind(key, type[key]);
-			}
-
-		} else {
-			for ( var i = 0, l = this.length; i < l; i++ ) {
-				jQuery.event.remove( this[i], type, fn );
-			}
-		}
-
-		return this;
-	},
-
-	delegate: function( selector, types, data, fn ) {
-		return this.live( types, data, fn, selector );
-	},
-
-	undelegate: function( selector, types, fn ) {
-		if ( arguments.length === 0 ) {
-			return this.unbind( "live" );
-
-		} else {
-			return this.die( types, null, fn, selector );
-		}
-	},
-
-	trigger: function( type, data ) {
-		return this.each(function() {
-			jQuery.event.trigger( type, data, this );
-		});
-	},
-
-	triggerHandler: function( type, data ) {
-		if ( this[0] ) {
-			return jQuery.event.trigger( type, data, this[0], true );
-		}
-	},
-
-	toggle: function( fn ) {
-		// Save reference to arguments for access in closure
-		var args = arguments,
-			guid = fn.guid || jQuery.guid++,
-			i = 0,
-			toggler = function( event ) {
-				// Figure out which function to execute
-				var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i;
-				jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
-				// Make sure that clicks stop
-				event.preventDefault();
-
-				// and execute the function
-				return args[ lastToggle ].apply( this, arguments ) || false;
-			};
-
-		// link all the functions, so any of them can unbind this click handler
-		toggler.guid = guid;
-		while ( i < args.length ) {
-			args[ i++ ].guid = guid;
-		}
-
-		return this.click( toggler );
-	},
-
-	hover: function( fnOver, fnOut ) {
-		return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-	}
-});
-
-var liveMap = {
-	focus: "focusin",
-	blur: "focusout",
-	mouseenter: "mouseover",
-	mouseleave: "mouseout"
-};
-
-jQuery.each(["live", "die"], function( i, name ) {
-	jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
-		var type, i = 0, match, namespaces, preType,
-			selector = origSelector || this.selector,
-			context = origSelector ? this : jQuery( this.context );
-
-		if ( typeof types === "object" && !types.preventDefault ) {
-			for ( var key in types ) {
-				context[ name ]( key, data, types[key], selector );
-			}
-
-			return this;
-		}
-
-		if ( name === "die" && !types &&
-					origSelector && origSelector.charAt(0) === "." ) {
-
-			context.unbind( origSelector );
-
-			return this;
-		}
-
-		if ( data === false || jQuery.isFunction( data ) ) {
-			fn = data || returnFalse;
-			data = undefined;
-		}
-
-		types = (types || "").split(" ");
-
-		while ( (type = types[ i++ ]) != null ) {
-			match = rnamespaces.exec( type );
-			namespaces = "";
-
-			if ( match )  {
-				namespaces = match[0];
-				type = type.replace( rnamespaces, "" );
-			}
-
-			if ( type === "hover" ) {
-				types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
-				continue;
-			}
-
-			preType = type;
-
-			if ( liveMap[ type ] ) {
-				types.push( liveMap[ type ] + namespaces );
-				type = type + namespaces;
-
-			} else {
-				type = (liveMap[ type ] || type) + namespaces;
-			}
-
-			if ( name === "live" ) {
-				// bind live handler
-				for ( var j = 0, l = context.length; j < l; j++ ) {
-					jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
-						{ data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
-				}
-
-			} else {
-				// unbind live handler
-				context.unbind( "live." + liveConvert( type, selector ), fn );
-			}
-		}
-
-		return this;
-	};
-});
-
-function liveHandler( event ) {
-	var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
-		elems = [],
-		selectors = [],
-		events = jQuery._data( this, "events" );
-
-	// Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
-	if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
-		return;
-	}
-
-	if ( event.namespace ) {
-		namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
-	}
-
-	event.liveFired = this;
-
-	var live = events.live.slice(0);
-
-	for ( j = 0; j < live.length; j++ ) {
-		handleObj = live[j];
-
-		if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
-			selectors.push( handleObj.selector );
-
-		} else {
-			live.splice( j--, 1 );
-		}
-	}
-
-	match = jQuery( event.target ).closest( selectors, event.currentTarget );
-
-	for ( i = 0, l = match.length; i < l; i++ ) {
-		close = match[i];
-
-		for ( j = 0; j < live.length; j++ ) {
-			handleObj = live[j];
-
-			if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
-				elem = close.elem;
-				related = null;
-
-				// Those two events require additional checking
-				if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
-					event.type = handleObj.preType;
-					related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
-
-					// Make sure not to accidentally match a child element with the same selector
-					if ( related && jQuery.contains( elem, related ) ) {
-						related = elem;
-					}
-				}
-
-				if ( !related || related !== elem ) {
-					elems.push({ elem: elem, handleObj: handleObj, level: close.level });
-				}
-			}
-		}
-	}
-
-	for ( i = 0, l = elems.length; i < l; i++ ) {
-		match = elems[i];
-
-		if ( maxLevel && match.level > maxLevel ) {
-			break;
-		}
-
-		event.currentTarget = match.elem;
-		event.data = match.handleObj.data;
-		event.handleObj = match.handleObj;
-
-		ret = match.handleObj.origHandler.apply( match.elem, arguments );
-
-		if ( ret === false || event.isPropagationStopped() ) {
-			maxLevel = match.level;
-
-			if ( ret === false ) {
-				stop = false;
-			}
-			if ( event.isImmediatePropagationStopped() ) {
-				break;
-			}
-		}
-	}
-
-	return stop;
-}
-
-function liveConvert( type, selector ) {
-	return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&");
-}
-
-jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
-	"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-	"change select submit keydown keypress keyup error").split(" "), function( i, name ) {
-
-	// Handle event binding
-	jQuery.fn[ name ] = function( data, fn ) {
-		if ( fn == null ) {
-			fn = data;
-			data = null;
-		}
-
-		return arguments.length > 0 ?
-			this.bind( name, data, fn ) :
-			this.trigger( name );
-	};
-
-	if ( jQuery.attrFn ) {
-		jQuery.attrFn[ name ] = true;
-	}
-});
-
-
-
-/*!
- * Sizzle CSS Selector Engine
- *  Copyright 2011, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){
-
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
-	done = 0,
-	toString = Object.prototype.toString,
-	hasDuplicate = false,
-	baseHasDuplicate = true,
-	rBackslash = /\\/g,
-	rNonWord = /\W/;
-
-// Here we check if the JavaScript engine is using some sort of
-// optimization where it does not always call our comparision
-// function. If that is the case, discard the hasDuplicate value.
-//   Thus far that includes Google Chrome.
-[0, 0].sort(function() {
-	baseHasDuplicate = false;
-	return 0;
-});
-
-var Sizzle = function( selector, context, results, seed ) {
-	results = results || [];
-	context = context || document;
-
-	var origContext = context;
-
-	if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
-		return [];
-	}
-	
-	if ( !selector || typeof selector !== "string" ) {
-		return results;
-	}
-
-	var m, set, checkSet, extra, ret, cur, pop, i,
-		prune = true,
-		contextXML = Sizzle.isXML( context ),
-		parts = [],
-		soFar = selector;
-	
-	// Reset the position of the chunker regexp (start from head)
-	do {
-		chunker.exec( "" );
-		m = chunker.exec( soFar );
-
-		if ( m ) {
-			soFar = m[3];
-		
-			parts.push( m[1] );
-		
-			if ( m[2] ) {
-				extra = m[3];
-				break;
-			}
-		}
-	} while ( m );
-
-	if ( parts.length > 1 && origPOS.exec( selector ) ) {
-
-		if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
-			set = posProcess( parts[0] + parts[1], context );
-
-		} else {
-			set = Expr.relative[ parts[0] ] ?
-				[ context ] :
-				Sizzle( parts.shift(), context );
-
-			while ( parts.length ) {
-				selector = parts.shift();
-
-				if ( Expr.relative[ selector ] ) {
-					selector += parts.shift();
-				}
-				
-				set = posProcess( selector, set );
-			}
-		}
-
-	} else {
-		// Take a shortcut and set the context if the root selector is an ID
-		// (but not if it'll be faster if the inner selector is an ID)
-		if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
-				Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
-
-			ret = Sizzle.find( parts.shift(), context, contextXML );
-			context = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set )[0] :
-				ret.set[0];
-		}
-
-		if ( context ) {
-			ret = seed ?
-				{ expr: parts.pop(), set: makeArray(seed) } :
-				Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
-
-			set = ret.expr ?
-				Sizzle.filter( ret.expr, ret.set ) :
-				ret.set;
-
-			if ( parts.length > 0 ) {
-				checkSet = makeArray( set );
-
-			} else {
-				prune = false;
-			}
-
-			while ( parts.length ) {
-				cur = parts.pop();
-				pop = cur;
-
-				if ( !Expr.relative[ cur ] ) {
-					cur = "";
-				} else {
-					pop = parts.pop();
-				}
-
-				if ( pop == null ) {
-					pop = context;
-				}
-
-				Expr.relative[ cur ]( checkSet, pop, contextXML );
-			}
-
-		} else {
-			checkSet = parts = [];
-		}
-	}
-
-	if ( !checkSet ) {
-		checkSet = set;
-	}
-
-	if ( !checkSet ) {
-		Sizzle.error( cur || selector );
-	}
-
-	if ( toString.call(checkSet) === "[object Array]" ) {
-		if ( !prune ) {
-			results.push.apply( results, checkSet );
-
-		} else if ( context && context.nodeType === 1 ) {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
-					results.push( set[i] );
-				}
-			}
-
-		} else {
-			for ( i = 0; checkSet[i] != null; i++ ) {
-				if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
-					results.push( set[i] );
-				}
-			}
-		}
-
-	} else {
-		makeArray( checkSet, results );
-	}
-
-	if ( extra ) {
-		Sizzle( extra, origContext, results, seed );
-		Sizzle.uniqueSort( results );
-	}
-
-	return results;
-};
-
-Sizzle.uniqueSort = function( results ) {
-	if ( sortOrder ) {
-		hasDuplicate = baseHasDuplicate;
-		results.sort( sortOrder );
-
-		if ( hasDuplicate ) {
-			for ( var i = 1; i < results.length; i++ ) {
-				if ( results[i] === results[ i - 1 ] ) {
-					results.splice( i--, 1 );
-				}
-			}
-		}
-	}
-
-	return results;
-};
-
-Sizzle.matches = function( expr, set ) {
-	return Sizzle( expr, null, null, set );
-};
-
-Sizzle.matchesSelector = function( node, expr ) {
-	return Sizzle( expr, null, null, [node] ).length > 0;
-};
-
-Sizzle.find = function( expr, context, isXML ) {
-	var set;
-
-	if ( !expr ) {
-		return [];
-	}
-
-	for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
-		var match,
-			type = Expr.order[i];
-		
-		if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
-			var left = match[1];
-			match.splice( 1, 1 );
-
-			if ( left.substr( left.length - 1 ) !== "\\" ) {
-				match[1] = (match[1] || "").replace( rBackslash, "" );
-				set = Expr.find[ type ]( match, context, isXML );
-
-				if ( set != null ) {
-					expr = expr.replace( Expr.match[ type ], "" );
-					break;
-				}
-			}
-		}
-	}
-
-	if ( !set ) {
-		set = typeof context.getElementsByTagName !== "undefined" ?
-			context.getElementsByTagName( "*" ) :
-			[];
-	}
-
-	return { set: set, expr: expr };
-};
-
-Sizzle.filter = function( expr, set, inplace, not ) {
-	var match, anyFound,
-		old = expr,
-		result = [],
-		curLoop = set,
-		isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
-
-	while ( expr && set.length ) {
-		for ( var type in Expr.filter ) {
-			if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
-				var found, item,
-					filter = Expr.filter[ type ],
-					left = match[1];
-
-				anyFound = false;
-
-				match.splice(1,1);
-
-				if ( left.substr( left.length - 1 ) === "\\" ) {
-					continue;
-				}
-
-				if ( curLoop === result ) {
-					result = [];
-				}
-
-				if ( Expr.preFilter[ type ] ) {
-					match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
-
-					if ( !match ) {
-						anyFound = found = true;
-
-					} else if ( match === true ) {
-						continue;
-					}
-				}
-
-				if ( match ) {
-					for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
-						if ( item ) {
-							found = filter( item, match, i, curLoop );
-							var pass = not ^ !!found;
-
-							if ( inplace && found != null ) {
-								if ( pass ) {
-									anyFound = true;
-
-								} else {
-									curLoop[i] = false;
-								}
-
-							} else if ( pass ) {
-								result.push( item );
-								anyFound = true;
-							}
-						}
-					}
-				}
-
-				if ( found !== undefined ) {
-					if ( !inplace ) {
-						curLoop = result;
-					}
-
-					expr = expr.replace( Expr.match[ type ], "" );
-
-					if ( !anyFound ) {
-						return [];
-					}
-
-					break;
-				}
-			}
-		}
-
-		// Improper expression
-		if ( expr === old ) {
-			if ( anyFound == null ) {
-				Sizzle.error( expr );
-
-			} else {
-				break;
-			}
-		}
-
-		old = expr;
-	}
-
-	return curLoop;
-};
-
-Sizzle.error = function( msg ) {
-	throw "Syntax error, unrecognized expression: " + msg;
-};
-
-var Expr = Sizzle.selectors = {
-	order: [ "ID", "NAME", "TAG" ],
-
-	match: {
-		ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-		NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
-		ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
-		TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
-		CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
-		POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
-		PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
-	},
-
-	leftMatch: {},
-
-	attrMap: {
-		"class": "className",
-		"for": "htmlFor"
-	},
-
-	attrHandle: {
-		href: function( elem ) {
-			return elem.getAttribute( "href" );
-		},
-		type: function( elem ) {
-			return elem.getAttribute( "type" );
-		}
-	},
-
-	relative: {
-		"+": function(checkSet, part){
-			var isPartStr = typeof part === "string",
-				isTag = isPartStr && !rNonWord.test( part ),
-				isPartStrNotTag = isPartStr && !isTag;
-
-			if ( isTag ) {
-				part = part.toLowerCase();
-			}
-
-			for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
-				if ( (elem = checkSet[i]) ) {
-					while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
-
-					checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
-						elem || false :
-						elem === part;
-				}
-			}
-
-			if ( isPartStrNotTag ) {
-				Sizzle.filter( part, checkSet, true );
-			}
-		},
-
-		">": function( checkSet, part ) {
-			var elem,
-				isPartStr = typeof part === "string",
-				i = 0,
-				l = checkSet.length;
-
-			if ( isPartStr && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
-
-					if ( elem ) {
-						var parent = elem.parentNode;
-						checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
-					}
-				}
-
-			} else {
-				for ( ; i < l; i++ ) {
-					elem = checkSet[i];
-
-					if ( elem ) {
-						checkSet[i] = isPartStr ?
-							elem.parentNode :
-							elem.parentNode === part;
-					}
-				}
-
-				if ( isPartStr ) {
-					Sizzle.filter( part, checkSet, true );
-				}
-			}
-		},
-
-		"": function(checkSet, part, isXML){
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
-
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
-		},
-
-		"~": function( checkSet, part, isXML ) {
-			var nodeCheck,
-				doneName = done++,
-				checkFn = dirCheck;
-
-			if ( typeof part === "string" && !rNonWord.test( part ) ) {
-				part = part.toLowerCase();
-				nodeCheck = part;
-				checkFn = dirNodeCheck;
-			}
-
-			checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
-		}
-	},
-
-	find: {
-		ID: function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-				// Check parentNode to catch when Blackberry 4.6 returns
-				// nodes that are no longer in the document #6963
-				return m && m.parentNode ? [m] : [];
-			}
-		},
-
-		NAME: function( match, context ) {
-			if ( typeof context.getElementsByName !== "undefined" ) {
-				var ret = [],
-					results = context.getElementsByName( match[1] );
-
-				for ( var i = 0, l = results.length; i < l; i++ ) {
-					if ( results[i].getAttribute("name") === match[1] ) {
-						ret.push( results[i] );
-					}
-				}
-
-				return ret.length === 0 ? null : ret;
-			}
-		},
-
-		TAG: function( match, context ) {
-			if ( typeof context.getElementsByTagName !== "undefined" ) {
-				return context.getElementsByTagName( match[1] );
-			}
-		}
-	},
-	preFilter: {
-		CLASS: function( match, curLoop, inplace, result, not, isXML ) {
-			match = " " + match[1].replace( rBackslash, "" ) + " ";
-
-			if ( isXML ) {
-				return match;
-			}
-
-			for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
-				if ( elem ) {
-					if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
-						if ( !inplace ) {
-							result.push( elem );
-						}
-
-					} else if ( inplace ) {
-						curLoop[i] = false;
-					}
-				}
-			}
-
-			return false;
-		},
-
-		ID: function( match ) {
-			return match[1].replace( rBackslash, "" );
-		},
-
-		TAG: function( match, curLoop ) {
-			return match[1].replace( rBackslash, "" ).toLowerCase();
-		},
-
-		CHILD: function( match ) {
-			if ( match[1] === "nth" ) {
-				if ( !match[2] ) {
-					Sizzle.error( match[0] );
-				}
-
-				match[2] = match[2].replace(/^\+|\s*/g, '');
-
-				// parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
-				var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
-					match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
-					!/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
-
-				// calculate the numbers (first)n+(last) including if they are negative
-				match[2] = (test[1] + (test[2] || 1)) - 0;
-				match[3] = test[3] - 0;
-			}
-			else if ( match[2] ) {
-				Sizzle.error( match[0] );
-			}
-
-			// TODO: Move to normal caching system
-			match[0] = done++;
-
-			return match;
-		},
-
-		ATTR: function( match, curLoop, inplace, result, not, isXML ) {
-			var name = match[1] = match[1].replace( rBackslash, "" );
-			
-			if ( !isXML && Expr.attrMap[name] ) {
-				match[1] = Expr.attrMap[name];
-			}
-
-			// Handle if an un-quoted value was used
-			match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
-
-			if ( match[2] === "~=" ) {
-				match[4] = " " + match[4] + " ";
-			}
-
-			return match;
-		},
-
-		PSEUDO: function( match, curLoop, inplace, result, not ) {
-			if ( match[1] === "not" ) {
-				// If we're dealing with a complex expression, or a simple one
-				if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
-					match[3] = Sizzle(match[3], null, null, curLoop);
-
-				} else {
-					var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
-
-					if ( !inplace ) {
-						result.push.apply( result, ret );
-					}
-
-					return false;
-				}
-
-			} else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
-				return true;
-			}
-			
-			return match;
-		},
-
-		POS: function( match ) {
-			match.unshift( true );
-
-			return match;
-		}
-	},
-	
-	filters: {
-		enabled: function( elem ) {
-			return elem.disabled === false && elem.type !== "hidden";
-		},
-
-		disabled: function( elem ) {
-			return elem.disabled === true;
-		},
-
-		checked: function( elem ) {
-			return elem.checked === true;
-		},
-		
-		selected: function( elem ) {
-			// Accessing this property makes selected-by-default
-			// options in Safari work properly
-			if ( elem.parentNode ) {
-				elem.parentNode.selectedIndex;
-			}
-			
-			return elem.selected === true;
-		},
-
-		parent: function( elem ) {
-			return !!elem.firstChild;
-		},
-
-		empty: function( elem ) {
-			return !elem.firstChild;
-		},
-
-		has: function( elem, i, match ) {
-			return !!Sizzle( match[3], elem ).length;
-		},
-
-		header: function( elem ) {
-			return (/h\d/i).test( elem.nodeName );
-		},
-
-		text: function( elem ) {
-			var attr = elem.getAttribute( "type" ), type = elem.type;
-			// IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) 
-			// use getAttribute instead to test this case
-			return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
-		},
-
-		radio: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
-		},
-
-		checkbox: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
-		},
-
-		file: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
-		},
-
-		password: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
-		},
-
-		submit: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return (name === "input" || name === "button") && "submit" === elem.type;
-		},
-
-		image: function( elem ) {
-			return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
-		},
-
-		reset: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return (name === "input" || name === "button") && "reset" === elem.type;
-		},
-
-		button: function( elem ) {
-			var name = elem.nodeName.toLowerCase();
-			return name === "input" && "button" === elem.type || name === "button";
-		},
-
-		input: function( elem ) {
-			return (/input|select|textarea|button/i).test( elem.nodeName );
-		},
-
-		focus: function( elem ) {
-			return elem === elem.ownerDocument.activeElement;
-		}
-	},
-	setFilters: {
-		first: function( elem, i ) {
-			return i === 0;
-		},
-
-		last: function( elem, i, match, array ) {
-			return i === array.length - 1;
-		},
-
-		even: function( elem, i ) {
-			return i % 2 === 0;
-		},
-
-		odd: function( elem, i ) {
-			return i % 2 === 1;
-		},
-
-		lt: function( elem, i, match ) {
-			return i < match[3] - 0;
-		},
-
-		gt: function( elem, i, match ) {
-			return i > match[3] - 0;
-		},
-
-		nth: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		},
-
-		eq: function( elem, i, match ) {
-			return match[3] - 0 === i;
-		}
-	},
-	filter: {
-		PSEUDO: function( elem, match, i, array ) {
-			var name = match[1],
-				filter = Expr.filters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-
-			} else if ( name === "contains" ) {
-				return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
-
-			} else if ( name === "not" ) {
-				var not = match[3];
-
-				for ( var j = 0, l = not.length; j < l; j++ ) {
-					if ( not[j] === elem ) {
-						return false;
-					}
-				}
-
-				return true;
-
-			} else {
-				Sizzle.error( name );
-			}
-		},
-
-		CHILD: function( elem, match ) {
-			var type = match[1],
-				node = elem;
-
-			switch ( type ) {
-				case "only":
-				case "first":
-					while ( (node = node.previousSibling) )	 {
-						if ( node.nodeType === 1 ) { 
-							return false; 
-						}
-					}
-
-					if ( type === "first" ) { 
-						return true; 
-					}
-
-					node = elem;
-
-				case "last":
-					while ( (node = node.nextSibling) )	 {
-						if ( node.nodeType === 1 ) { 
-							return false; 
-						}
-					}
-
-					return true;
-
-				case "nth":
-					var first = match[2],
-						last = match[3];
-
-					if ( first === 1 && last === 0 ) {
-						return true;
-					}
-					
-					var doneName = match[0],
-						parent = elem.parentNode;
-	
-					if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
-						var count = 0;
-						
-						for ( node = parent.firstChild; node; node = node.nextSibling ) {
-							if ( node.nodeType === 1 ) {
-								node.nodeIndex = ++count;
-							}
-						} 
-
-						parent.sizcache = doneName;
-					}
-					
-					var diff = elem.nodeIndex - last;
-
-					if ( first === 0 ) {
-						return diff === 0;
-
-					} else {
-						return ( diff % first === 0 && diff / first >= 0 );
-					}
-			}
-		},
-
-		ID: function( elem, match ) {
-			return elem.nodeType === 1 && elem.getAttribute("id") === match;
-		},
-
-		TAG: function( elem, match ) {
-			return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
-		},
-		
-		CLASS: function( elem, match ) {
-			return (" " + (elem.className || elem.getAttribute("class")) + " ")
-				.indexOf( match ) > -1;
-		},
-
-		ATTR: function( elem, match ) {
-			var name = match[1],
-				result = Expr.attrHandle[ name ] ?
-					Expr.attrHandle[ name ]( elem ) :
-					elem[ name ] != null ?
-						elem[ name ] :
-						elem.getAttribute( name ),
-				value = result + "",
-				type = match[2],
-				check = match[4];
-
-			return result == null ?
-				type === "!=" :
-				type === "=" ?
-				value === check :
-				type === "*=" ?
-				value.indexOf(check) >= 0 :
-				type === "~=" ?
-				(" " + value + " ").indexOf(check) >= 0 :
-				!check ?
-				value && result !== false :
-				type === "!=" ?
-				value !== check :
-				type === "^=" ?
-				value.indexOf(check) === 0 :
-				type === "$=" ?
-				value.substr(value.length - check.length) === check :
-				type === "|=" ?
-				value === check || value.substr(0, check.length + 1) === check + "-" :
-				false;
-		},
-
-		POS: function( elem, match, i, array ) {
-			var name = match[2],
-				filter = Expr.setFilters[ name ];
-
-			if ( filter ) {
-				return filter( elem, i, match, array );
-			}
-		}
-	}
-};
-
-var origPOS = Expr.match.POS,
-	fescape = function(all, num){
-		return "\\" + (num - 0 + 1);
-	};
-
-for ( var type in Expr.match ) {
-	Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
-	Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
-}
-
-var makeArray = function( array, results ) {
-	array = Array.prototype.slice.call( array, 0 );
-
-	if ( results ) {
-		results.push.apply( results, array );
-		return results;
-	}
-	
-	return array;
-};
-
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-// Also verifies that the returned array holds DOM nodes
-// (which is not the case in the Blackberry browser)
-try {
-	Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
-
-// Provide a fallback method if it does not work
-} catch( e ) {
-	makeArray = function( array, results ) {
-		var i = 0,
-			ret = results || [];
-
-		if ( toString.call(array) === "[object Array]" ) {
-			Array.prototype.push.apply( ret, array );
-
-		} else {
-			if ( typeof array.length === "number" ) {
-				for ( var l = array.length; i < l; i++ ) {
-					ret.push( array[i] );
-				}
-
-			} else {
-				for ( ; array[i]; i++ ) {
-					ret.push( array[i] );
-				}
-			}
-		}
-
-		return ret;
-	};
-}
-
-var sortOrder, siblingCheck;
-
-if ( document.documentElement.compareDocumentPosition ) {
-	sortOrder = function( a, b ) {
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-		}
-
-		if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
-			return a.compareDocumentPosition ? -1 : 1;
-		}
-
-		return a.compareDocumentPosition(b) & 4 ? -1 : 1;
-	};
-
-} else {
-	sortOrder = function( a, b ) {
-		// The nodes are identical, we can exit early
-		if ( a === b ) {
-			hasDuplicate = true;
-			return 0;
-
-		// Fallback to using sourceIndex (in IE) if it's available on both nodes
-		} else if ( a.sourceIndex && b.sourceIndex ) {
-			return a.sourceIndex - b.sourceIndex;
-		}
-
-		var al, bl,
-			ap = [],
-			bp = [],
-			aup = a.parentNode,
-			bup = b.parentNode,
-			cur = aup;
-
-		// If the nodes are siblings (or identical) we can do a quick check
-		if ( aup === bup ) {
-			return siblingCheck( a, b );
-
-		// If no parents were found then the nodes are disconnected
-		} else if ( !aup ) {
-			return -1;
-
-		} else if ( !bup ) {
-			return 1;
-		}
-
-		// Otherwise they're somewhere else in the tree so we need
-		// to build up a full list of the parentNodes for comparison
-		while ( cur ) {
-			ap.unshift( cur );
-			cur = cur.parentNode;
-		}
-
-		cur = bup;
-
-		while ( cur ) {
-			bp.unshift( cur );
-			cur = cur.parentNode;
-		}
-
-		al = ap.length;
-		bl = bp.length;
-
-		// Start walking down the tree looking for a discrepancy
-		for ( var i = 0; i < al && i < bl; i++ ) {
-			if ( ap[i] !== bp[i] ) {
-				return siblingCheck( ap[i], bp[i] );
-			}
-		}
-
-		// We ended someplace up the tree so do a sibling check
-		return i === al ?
-			siblingCheck( a, bp[i], -1 ) :
-			siblingCheck( ap[i], b, 1 );
-	};
-
-	siblingCheck = function( a, b, ret ) {
-		if ( a === b ) {
-			return ret;
-		}
-
-		var cur = a.nextSibling;
-
-		while ( cur ) {
-			if ( cur === b ) {
-				return -1;
-			}
-
-			cur = cur.nextSibling;
-		}
-
-		return 1;
-	};
-}
-
-// Utility function for retreiving the text value of an array of DOM nodes
-Sizzle.getText = function( elems ) {
-	var ret = "", elem;
-
-	for ( var i = 0; elems[i]; i++ ) {
-		elem = elems[i];
-
-		// Get the text from text nodes and CDATA nodes
-		if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
-			ret += elem.nodeValue;
-
-		// Traverse everything else, except comment nodes
-		} else if ( elem.nodeType !== 8 ) {
-			ret += Sizzle.getText( elem.childNodes );
-		}
-	}
-
-	return ret;
-};
-
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
-	// We're going to inject a fake input element with a specified name
-	var form = document.createElement("div"),
-		id = "script" + (new Date()).getTime(),
-		root = document.documentElement;
-
-	form.innerHTML = "<a name='" + id + "'/>";
-
-	// Inject it into the root element, check its status, and remove it quickly
-	root.insertBefore( form, root.firstChild );
-
-	// The workaround has to do additional checks after a getElementById
-	// Which slows things down for other browsers (hence the branching)
-	if ( document.getElementById( id ) ) {
-		Expr.find.ID = function( match, context, isXML ) {
-			if ( typeof context.getElementById !== "undefined" && !isXML ) {
-				var m = context.getElementById(match[1]);
-
-				return m ?
-					m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
-						[m] :
-						undefined :
-					[];
-			}
-		};
-
-		Expr.filter.ID = function( elem, match ) {
-			var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
-
-			return elem.nodeType === 1 && node && node.nodeValue === match;
-		};
-	}
-
-	root.removeChild( form );
-
-	// release memory in IE
-	root = form = null;
-})();
-
-(function(){
-	// Check to see if the browser returns only elements
-	// when doing getElementsByTagName("*")
-
-	// Create a fake element
-	var div = document.createElement("div");
-	div.appendChild( document.createComment("") );
-
-	// Make sure no comments are found
-	if ( div.getElementsByTagName("*").length > 0 ) {
-		Expr.find.TAG = function( match, context ) {
-			var results = context.getElementsByTagName( match[1] );
-
-			// Filter out possible comments
-			if ( match[1] === "*" ) {
-				var tmp = [];
-
-				for ( var i = 0; results[i]; i++ ) {
-					if ( results[i].nodeType === 1 ) {
-						tmp.push( results[i] );
-					}
-				}
-
-				results = tmp;
-			}
-
-			return results;
-		};
-	}
-
-	// Check to see if an attribute returns normalized href attributes
-	div.innerHTML = "<a href='#'></a>";
-
-	if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
-			div.firstChild.getAttribute("href") !== "#" ) {
-
-		Expr.attrHandle.href = function( elem ) {
-			return elem.getAttribute( "href", 2 );
-		};
-	}
-
-	// release memory in IE
-	div = null;
-})();
-
-if ( document.querySelectorAll ) {
-	(function(){
-		var oldSizzle = Sizzle,
-			div = document.createElement("div"),
-			id = "__sizzle__";
-
-		div.innerHTML = "<p class='TEST'></p>";
-
-		// Safari can't handle uppercase or unicode characters when
-		// in quirks mode.
-		if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
-			return;
-		}
-	
-		Sizzle = function( query, context, extra, seed ) {
-			context = context || document;
-
-			// Only use querySelectorAll on non-XML documents
-			// (ID selectors don't work in non-HTML documents)
-			if ( !seed && !Sizzle.isXML(context) ) {
-				// See if we find a selector to speed up
-				var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
-				
-				if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
-					// Speed-up: Sizzle("TAG")
-					if ( match[1] ) {
-						return makeArray( context.getElementsByTagName( query ), extra );
-					
-					// Speed-up: Sizzle(".CLASS")
-					} else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
-						return makeArray( context.getElementsByClassName( match[2] ), extra );
-					}
-				}
-				
-				if ( context.nodeType === 9 ) {
-					// Speed-up: Sizzle("body")
-					// The body element only exists once, optimize finding it
-					if ( query === "body" && context.body ) {
-						return makeArray( [ context.body ], extra );
-						
-					// Speed-up: Sizzle("#ID")
-					} else if ( match && match[3] ) {
-						var elem = context.getElementById( match[3] );
-
-						// Check parentNode to catch when Blackberry 4.6 returns
-						// nodes that are no longer in the document #6963
-						if ( elem && elem.parentNode ) {
-							// Handle the case where IE and Opera return items
-							// by name instead of ID
-							if ( elem.id === match[3] ) {
-								return makeArray( [ elem ], extra );
-							}
-							
-						} else {
-							return makeArray( [], extra );
-						}
-					}
-					
-					try {
-						return makeArray( context.querySelectorAll(query), extra );
-					} catch(qsaError) {}
-
-				// qSA works strangely on Element-rooted queries
-				// We can work around this by specifying an extra ID on the root
-				// and working up from there (Thanks to Andrew Dupont for the technique)
-				// IE 8 doesn't work on object elements
-				} else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-					var oldContext = context,
-						old = context.getAttribute( "id" ),
-						nid = old || id,
-						hasParent = context.parentNode,
-						relativeHierarchySelector = /^\s*[+~]/.test( query );
-
-					if ( !old ) {
-						context.setAttribute( "id", nid );
-					} else {
-						nid = nid.replace( /'/g, "\\$&" );
-					}
-					if ( relativeHierarchySelector && hasParent ) {
-						context = context.parentNode;
-					}
-
-					try {
-						if ( !relativeHierarchySelector || hasParent ) {
-							return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
-						}
-
-					} catch(pseudoError) {
-					} finally {
-						if ( !old ) {
-							oldContext.removeAttribute( "id" );
-						}
-					}
-				}
-			}
-		
-			return oldSizzle(query, context, extra, seed);
-		};
-
-		for ( var prop in oldSizzle ) {
-			Sizzle[ prop ] = oldSizzle[ prop ];
-		}
-
-		// release memory in IE
-		div = null;
-	})();
-}
-
-(function(){
-	var html = document.documentElement,
-		matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
-
-	if ( matches ) {
-		// Check to see if it's possible to do matchesSelector
-		// on a disconnected node (IE 9 fails this)
-		var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
-			pseudoWorks = false;
-
-		try {
-			// This should fail with an exception
-			// Gecko does not error, returns false instead
-			matches.call( document.documentElement, "[test!='']:sizzle" );
-	
-		} catch( pseudoError ) {
-			pseudoWorks = true;
-		}
-
-		Sizzle.matchesSelector = function( node, expr ) {
-			// Make sure that attribute selectors are quoted
-			expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
-
-			if ( !Sizzle.isXML( node ) ) {
-				try { 
-					if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
-						var ret = matches.call( node, expr );
-
-						// IE 9's matchesSelector returns false on disconnected nodes
-						if ( ret || !disconnectedMatch ||
-								// As well, disconnected nodes are said to be in a document
-								// fragment in IE 9, so check for that
-								node.document && node.document.nodeType !== 11 ) {
-							return ret;
-						}
-					}
-				} catch(e) {}
-			}
-
-			return Sizzle(expr, null, null, [node]).length > 0;
-		};
-	}
-})();
-
-(function(){
-	var div = document.createElement("div");
-
-	div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
-	// Opera can't find a second classname (in 9.6)
-	// Also, make sure that getElementsByClassName actually exists
-	if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
-		return;
-	}
-
-	// Safari caches class attributes, doesn't catch changes (in 3.2)
-	div.lastChild.className = "e";
-
-	if ( div.getElementsByClassName("e").length === 1 ) {
-		return;
-	}
-	
-	Expr.order.splice(1, 0, "CLASS");
-	Expr.find.CLASS = function( match, context, isXML ) {
-		if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
-			return context.getElementsByClassName(match[1]);
-		}
-	};
-
-	// release memory in IE
-	div = null;
-})();
-
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-
-		if ( elem ) {
-			var match = false;
-
-			elem = elem[dir];
-
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 && !isXML ){
-					elem.sizcache = doneName;
-					elem.sizset = i;
-				}
-
-				if ( elem.nodeName.toLowerCase() === cur ) {
-					match = elem;
-					break;
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-	for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-		var elem = checkSet[i];
-
-		if ( elem ) {
-			var match = false;
-			
-			elem = elem[dir];
-
-			while ( elem ) {
-				if ( elem.sizcache === doneName ) {
-					match = checkSet[elem.sizset];
-					break;
-				}
-
-				if ( elem.nodeType === 1 ) {
-					if ( !isXML ) {
-						elem.sizcache = doneName;
-						elem.sizset = i;
-					}
-
-					if ( typeof cur !== "string" ) {
-						if ( elem === cur ) {
-							match = true;
-							break;
-						}
-
-					} else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
-						match = elem;
-						break;
-					}
-				}
-
-				elem = elem[dir];
-			}
-
-			checkSet[i] = match;
-		}
-	}
-}
-
-if ( document.documentElement.contains ) {
-	Sizzle.contains = function( a, b ) {
-		return a !== b && (a.contains ? a.contains(b) : true);
-	};
-
-} else if ( document.documentElement.compareDocumentPosition ) {
-	Sizzle.contains = function( a, b ) {
-		return !!(a.compareDocumentPosition(b) & 16);
-	};
-
-} else {
-	Sizzle.contains = function() {
-		return false;
-	};
-}
-
-Sizzle.isXML = function( elem ) {
-	// documentElement is verified for cases where it doesn't yet exist
-	// (such as loading iframes in IE - #4833) 
-	var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
-
-	return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-var posProcess = function( selector, context ) {
-	var match,
-		tmpSet = [],
-		later = "",
-		root = context.nodeType ? [context] : context;
-
-	// Position selectors must be done after the filter
-	// And so must :not(positional) so we move all PSEUDOs to the end
-	while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
-		later += match[0];
-		selector = selector.replace( Expr.match.PSEUDO, "" );
-	}
-
-	selector = Expr.relative[selector] ? selector + "*" : selector;
-
-	for ( var i = 0, l = root.length; i < l; i++ ) {
-		Sizzle( selector, root[i], tmpSet );
-	}
-
-	return Sizzle.filter( later, tmpSet );
-};
-
-// EXPOSE
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})();
-
-
-var runtil = /Until$/,
-	rparentsprev = /^(?:parents|prevUntil|prevAll)/,
-	// Note: This RegExp should be improved, or likely pulled from Sizzle
-	rmultiselector = /,/,
-	isSimple = /^.[^:#\[\.,]*$/,
-	slice = Array.prototype.slice,
-	POS = jQuery.expr.match.POS,
-	// methods guaranteed to produce a unique set when starting from a unique set
-	guaranteedUnique = {
-		children: true,
-		contents: true,
-		next: true,
-		prev: true
-	};
-
-jQuery.fn.extend({
-	find: function( selector ) {
-		var self = this,
-			i, l;
-
-		if ( typeof selector !== "string" ) {
-			return jQuery( selector ).filter(function() {
-				for ( i = 0, l = self.length; i < l; i++ ) {
-					if ( jQuery.contains( self[ i ], this ) ) {
-						return true;
-					}
-				}
-			});
-		}
-
-		var ret = this.pushStack( "", "find", selector ),
-			length, n, r;
-
-		for ( i = 0, l = this.length; i < l; i++ ) {
-			length = ret.length;
-			jQuery.find( selector, this[i], ret );
-
-			if ( i > 0 ) {
-				// Make sure that the results are unique
-				for ( n = length; n < ret.length; n++ ) {
-					for ( r = 0; r < length; r++ ) {
-						if ( ret[r] === ret[n] ) {
-							ret.splice(n--, 1);
-							break;
-						}
-					}
-				}
-			}
-		}
-
-		return ret;
-	},
-
-	has: function( target ) {
-		var targets = jQuery( target );
-		return this.filter(function() {
-			for ( var i = 0, l = targets.length; i < l; i++ ) {
-				if ( jQuery.contains( this, targets[i] ) ) {
-					return true;
-				}
-			}
-		});
-	},
-
-	not: function( selector ) {
-		return this.pushStack( winnow(this, selector, false), "not", selector);
-	},
-
-	filter: function( selector ) {
-		return this.pushStack( winnow(this, selector, true), "filter", selector );
-	},
-
-	is: function( selector ) {
-		return !!selector && ( typeof selector === "string" ?
-			jQuery.filter( selector, this ).length > 0 :
-			this.filter( selector ).length > 0 );
-	},
-
-	closest: function( selectors, context ) {
-		var ret = [], i, l, cur = this[0];
-		
-		// Array
-		if ( jQuery.isArray( selectors ) ) {
-			var match, selector,
-				matches = {},
-				level = 1;
-
-			if ( cur && selectors.length ) {
-				for ( i = 0, l = selectors.length; i < l; i++ ) {
-					selector = selectors[i];
-
-					if ( !matches[ selector ] ) {
-						matches[ selector ] = POS.test( selector ) ?
-							jQuery( selector, context || this.context ) :
-							selector;
-					}
-				}
-
-				while ( cur && cur.ownerDocument && cur !== context ) {
-					for ( selector in matches ) {
-						match = matches[ selector ];
-
-						if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) {
-							ret.push({ selector: selector, elem: cur, level: level });
-						}
-					}
-
-					cur = cur.parentNode;
-					level++;
-				}
-			}
-
-			return ret;
-		}
-
-		// String
-		var pos = POS.test( selectors ) || typeof selectors !== "string" ?
-				jQuery( selectors, context || this.context ) :
-				0;
-
-		for ( i = 0, l = this.length; i < l; i++ ) {
-			cur = this[i];
-
-			while ( cur ) {
-				if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
-					ret.push( cur );
-					break;
-
-				} else {
-					cur = cur.parentNode;
-					if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
-						break;
-					}
-				}
-			}
-		}
-
-		ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
-
-		return this.pushStack( ret, "closest", selectors );
-	},
-
-	// Determine the position of an element within
-	// the matched set of elements
-	index: function( elem ) {
-		if ( !elem || typeof elem === "string" ) {
-			return jQuery.inArray( this[0],
-				// If it receives a string, the selector is used
-				// If it receives nothing, the siblings are used
-				elem ? jQuery( elem ) : this.parent().children() );
-		}
-		// Locate the position of the desired element
-		return jQuery.inArray(
-			// If it receives a jQuery object, the first element is used
-			elem.jquery ? elem[0] : elem, this );
-	},
-
-	add: function( selector, context ) {
-		var set = typeof selector === "string" ?
-				jQuery( selector, context ) :
-				jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
-			all = jQuery.merge( this.get(), set );
-
-		return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
-			all :
-			jQuery.unique( all ) );
-	},
-
-	andSelf: function() {
-		return this.add( this.prevObject );
-	}
-});
-
-// A painfully simple check to see if an element is disconnected
-// from a document (should be improved, where feasible).
-function isDisconnected( node ) {
-	return !node || !node.parentNode || node.parentNode.nodeType === 11;
-}
-
-jQuery.each({
-	parent: function( elem ) {
-		var parent = elem.parentNode;
-		return parent && parent.nodeType !== 11 ? parent : null;
-	},
-	parents: function( elem ) {
-		return jQuery.dir( elem, "parentNode" );
-	},
-	parentsUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "parentNode", until );
-	},
-	next: function( elem ) {
-		return jQuery.nth( elem, 2, "nextSibling" );
-	},
-	prev: function( elem ) {
-		return jQuery.nth( elem, 2, "previousSibling" );
-	},
-	nextAll: function( elem ) {
-		return jQuery.dir( elem, "nextSibling" );
-	},
-	prevAll: function( elem ) {
-		return jQuery.dir( elem, "previousSibling" );
-	},
-	nextUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "nextSibling", until );
-	},
-	prevUntil: function( elem, i, until ) {
-		return jQuery.dir( elem, "previousSibling", until );
-	},
-	siblings: function( elem ) {
-		return jQuery.sibling( elem.parentNode.firstChild, elem );
-	},
-	children: function( elem ) {
-		return jQuery.sibling( elem.firstChild );
-	},
-	contents: function( elem ) {
-		return jQuery.nodeName( elem, "iframe" ) ?
-			elem.contentDocument || elem.contentWindow.document :
-			jQuery.makeArray( elem.childNodes );
-	}
-}, function( name, fn ) {
-	jQuery.fn[ name ] = function( until, selector ) {
-		var ret = jQuery.map( this, fn, until ),
-			// The variable 'args' was introduced in
-			// https://github.com/jquery/jquery/commit/52a0238
-			// to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
-			// http://code.google.com/p/v8/issues/detail?id=1050
-			args = slice.call(arguments);
-
-		if ( !runtil.test( name ) ) {
-			selector = until;
-		}
-
-		if ( selector && typeof selector === "string" ) {
-			ret = jQuery.filter( selector, ret );
-		}
-
-		ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
-
-		if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
-			ret = ret.reverse();
-		}
-
-		return this.pushStack( ret, name, args.join(",") );
-	};
-});
-
-jQuery.extend({
-	filter: function( expr, elems, not ) {
-		if ( not ) {
-			expr = ":not(" + expr + ")";
-		}
-
-		return elems.length === 1 ?
-			jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
-			jQuery.find.matches(expr, elems);
-	},
-
-	dir: function( elem, dir, until ) {
-		var matched = [],
-			cur = elem[ dir ];
-
-		while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
-			if ( cur.nodeType === 1 ) {
-				matched.push( cur );
-			}
-			cur = cur[dir];
-		}
-		return matched;
-	},
-
-	nth: function( cur, result, dir, elem ) {
-		result = result || 1;
-		var num = 0;
-
-		for ( ; cur; cur = cur[dir] ) {
-			if ( cur.nodeType === 1 && ++num === result ) {
-				break;
-			}
-		}
-
-		return cur;
-	},
-
-	sibling: function( n, elem ) {
-		var r = [];
-
-		for ( ; n; n = n.nextSibling ) {
-			if ( n.nodeType === 1 && n !== elem ) {
-				r.push( n );
-			}
-		}
-
-		return r;
-	}
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, keep ) {
-
-	// Can't pass null or undefined to indexOf in Firefox 4
-	// Set to 0 to skip string check
-	qualifier = qualifier || 0;
-
-	if ( jQuery.isFunction( qualifier ) ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			var retVal = !!qualifier.call( elem, i, elem );
-			return retVal === keep;
-		});
-
-	} else if ( qualifier.nodeType ) {
-		return jQuery.grep(elements, function( elem, i ) {
-			return (elem === qualifier) === keep;
-		});
-
-	} else if ( typeof qualifier === "string" ) {
-		var filtered = jQuery.grep(elements, function( elem ) {
-			return elem.nodeType === 1;
-		});
-
-		if ( isSimple.test( qualifier ) ) {
-			return jQuery.filter(qualifier, filtered, !keep);
-		} else {
-			qualifier = jQuery.filter( qualifier, filtered );
-		}
-	}
-
-	return jQuery.grep(elements, function( elem, i ) {
-		return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
-	});
-}
-
-
-
-
-var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
-	rleadingWhitespace = /^\s+/,
-	rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
-	rtagName = /<([\w:]+)/,
-	rtbody = /<tbody/i,
-	rhtml = /<|&#?\w+;/,
-	rnocache = /<(?:script|object|embed|option|style)/i,
-	// checked="checked" or checked
-	rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-	rscriptType = /\/(java|ecma)script/i,
-	rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
-	wrapMap = {
-		option: [ 1, "<select multiple='multiple'>", "</select>" ],
-		legend: [ 1, "<fieldset>", "</fieldset>" ],
-		thead: [ 1, "<table>", "</table>" ],
-		tr: [ 2, "<table><tbody>", "</tbody></table>" ],
-		td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-		col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
-		area: [ 1, "<map>", "</map>" ],
-		_default: [ 0, "", "" ]
-	};
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-// IE can't serialize <link> and <script> tags normally
-if ( !jQuery.support.htmlSerialize ) {
-	wrapMap._default = [ 1, "div<div>", "</div>" ];
-}
-
-jQuery.fn.extend({
-	text: function( text ) {
-		if ( jQuery.isFunction(text) ) {
-			return this.each(function(i) {
-				var self = jQuery( this );
-
-				self.text( text.call(this, i, self.text()) );
-			});
-		}
-
-		if ( typeof text !== "object" && text !== undefined ) {
-			return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-		}
-
-		return jQuery.text( this );
-	},
-
-	wrapAll: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapAll( html.call(this, i) );
-			});
-		}
-
-		if ( this[0] ) {
-			// The elements to wrap the target around
-			var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
-
-			if ( this[0].parentNode ) {
-				wrap.insertBefore( this[0] );
-			}
-
-			wrap.map(function() {
-				var elem = this;
-
-				while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
-					elem = elem.firstChild;
-				}
-
-				return elem;
-			}).append( this );
-		}
-
-		return this;
-	},
-
-	wrapInner: function( html ) {
-		if ( jQuery.isFunction( html ) ) {
-			return this.each(function(i) {
-				jQuery(this).wrapInner( html.call(this, i) );
-			});
-		}
-
-		return this.each(function() {
-			var self = jQuery( this ),
-				contents = self.contents();
-
-			if ( contents.length ) {
-				contents.wrapAll( html );
-
-			} else {
-				self.append( html );
-			}
-		});
-	},
-
-	wrap: function( html ) {
-		return this.each(function() {
-			jQuery( this ).wrapAll( html );
-		});
-	},
-
-	unwrap: function() {
-		return this.parent().each(function() {
-			if ( !jQuery.nodeName( this, "body" ) ) {
-				jQuery( this ).replaceWith( this.childNodes );
-			}
-		}).end();
-	},
-
-	append: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.appendChild( elem );
-			}
-		});
-	},
-
-	prepend: function() {
-		return this.domManip(arguments, true, function( elem ) {
-			if ( this.nodeType === 1 ) {
-				this.insertBefore( elem, this.firstChild );
-			}
-		});
-	},
-
-	before: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this );
-			});
-		} else if ( arguments.length ) {
-			var set = jQuery(arguments[0]);
-			set.push.apply( set, this.toArray() );
-			return this.pushStack( set, "before", arguments );
-		}
-	},
-
-	after: function() {
-		if ( this[0] && this[0].parentNode ) {
-			return this.domManip(arguments, false, function( elem ) {
-				this.parentNode.insertBefore( elem, this.nextSibling );
-			});
-		} else if ( arguments.length ) {
-			var set = this.pushStack( this, "after", arguments );
-			set.push.apply( set, jQuery(arguments[0]).toArray() );
-			return set;
-		}
-	},
-
-	// keepData is for internal use only--do not document
-	remove: function( selector, keepData ) {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
-				if ( !keepData && elem.nodeType === 1 ) {
-					jQuery.cleanData( elem.getElementsByTagName("*") );
-					jQuery.cleanData( [ elem ] );
-				}
-
-				if ( elem.parentNode ) {
-					elem.parentNode.removeChild( elem );
-				}
-			}
-		}
-
-		return this;
-	},
-
-	empty: function() {
-		for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-			// Remove element nodes and prevent memory leaks
-			if ( elem.nodeType === 1 ) {
-				jQuery.cleanData( elem.getElementsByTagName("*") );
-			}
-
-			// Remove any remaining nodes
-			while ( elem.firstChild ) {
-				elem.removeChild( elem.firstChild );
-			}
-		}
-
-		return this;
-	},
-
-	clone: function( dataAndEvents, deepDataAndEvents ) {
-		dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
-		deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
-		return this.map( function () {
-			return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
-		});
-	},
-
-	html: function( value ) {
-		if ( value === undefined ) {
-			return this[0] && this[0].nodeType === 1 ?
-				this[0].innerHTML.replace(rinlinejQuery, "") :
-				null;
-
-		// See if we can take a shortcut and just use innerHTML
-		} else if ( typeof value === "string" && !rnocache.test( value ) &&
-			(jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
-			!wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
-
-			value = value.replace(rxhtmlTag, "<$1></$2>");
-
-			try {
-				for ( var i = 0, l = this.length; i < l; i++ ) {
-					// Remove element nodes and prevent memory leaks
-					if ( this[i].nodeType === 1 ) {
-						jQuery.cleanData( this[i].getElementsByTagName("*") );
-						this[i].innerHTML = value;
-					}
-				}
-
-			// If using innerHTML throws an exception, use the fallback method
-			} catch(e) {
-				this.empty().append( value );
-			}
-
-		} else if ( jQuery.isFunction( value ) ) {
-			this.each(function(i){
-				var self = jQuery( this );
-
-				self.html( value.call(this, i, self.html()) );
-			});
-
-		} else {
-			this.empty().append( value );
-		}
-
-		return this;
-	},
-
-	replaceWith: function( value ) {
-		if ( this[0] && this[0].parentNode ) {
-			// Make sure that the elements are removed from the DOM before they are inserted
-			// this can help fix replacing a parent with child elements
-			if ( jQuery.isFunction( value ) ) {
-				return this.each(function(i) {
-					var self = jQuery(this), old = self.html();
-					self.replaceWith( value.call( this, i, old ) );
-				});
-			}
-
-			if ( typeof value !== "string" ) {
-				value = jQuery( value ).detach();
-			}
-
-			return this.each(function() {
-				var next = this.nextSibling,
-					parent = this.parentNode;
-
-				jQuery( this ).remove();
-
-				if ( next ) {
-					jQuery(next).before( value );
-				} else {
-					jQuery(parent).append( value );
-				}
-			});
-		} else {
-			return this.length ?
-				this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
-				this;
-		}
-	},
-
-	detach: function( selector ) {
-		return this.remove( selector, true );
-	},
-
-	domManip: function( args, table, callback ) {
-		var results, first, fragment, parent,
-			value = args[0],
-			scripts = [];
-
-		// We can't cloneNode fragments that contain checked, in WebKit
-		if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
-			return this.each(function() {
-				jQuery(this).domManip( args, table, callback, true );
-			});
-		}
-
-		if ( jQuery.isFunction(value) ) {
-			return this.each(function(i) {
-				var self = jQuery(this);
-				args[0] = value.call(this, i, table ? self.html() : undefined);
-				self.domManip( args, table, callback );
-			});
-		}
-
-		if ( this[0] ) {
-			parent = value && value.parentNode;
-
-			// If we're in a fragment, just use that instead of building a new one
-			if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
-				results = { fragment: parent };
-
-			} else {
-				results = jQuery.buildFragment( args, this, scripts );
-			}
-
-			fragment = results.fragment;
-
-			if ( fragment.childNodes.length === 1 ) {
-				first = fragment = fragment.firstChild;
-			} else {
-				first = fragment.firstChild;
-			}
-
-			if ( first ) {
-				table = table && jQuery.nodeName( first, "tr" );
-
-				for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
-					callback.call(
-						table ?
-							root(this[i], first) :
-							this[i],
-						// Make sure that we do not leak memory by inadvertently discarding
-						// the original fragment (which might have attached data) instead of
-						// using it; in addition, use the original fragment object for the last
-						// item instead of first because it can end up being emptied incorrectly
-						// in certain situations (Bug #8070).
-						// Fragments from the fragment cache must always be cloned and never used
-						// in place.
-						results.cacheable || (l > 1 && i < lastIndex) ?
-							jQuery.clone( fragment, true, true ) :
-							fragment
-					);
-				}
-			}
-
-			if ( scripts.length ) {
-				jQuery.each( scripts, evalScript );
-			}
-		}
-
-		return this;
-	}
-});
-
-function root( elem, cur ) {
-	return jQuery.nodeName(elem, "table") ?
-		(elem.getElementsByTagName("tbody")[0] ||
-		elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
-		elem;
-}
-
-function cloneCopyEvent( src, dest ) {
-
-	if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
-		return;
-	}
-
-	var internalKey = jQuery.expando,
-		oldData = jQuery.data( src ),
-		curData = jQuery.data( dest, oldData );
-
-	// Switch to use the internal data object, if it exists, for the next
-	// stage of data copying
-	if ( (oldData = oldData[ internalKey ]) ) {
-		var events = oldData.events;
-				curData = curData[ internalKey ] = jQuery.extend({}, oldData);
-
-		if ( events ) {
-			delete curData.handle;
-			curData.events = {};
-
-			for ( var type in events ) {
-				for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
-					jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
-				}
-			}
-		}
-	}
-}
-
-function cloneFixAttributes( src, dest ) {
-	var nodeName;
-
-	// We do not need to do anything for non-Elements
-	if ( dest.nodeType !== 1 ) {
-		return;
-	}
-
-	// clearAttributes removes the attributes, which we don't want,
-	// but also removes the attachEvent events, which we *do* want
-	if ( dest.clearAttributes ) {
-		dest.clearAttributes();
-	}
-
-	// mergeAttributes, in contrast, only merges back on the
-	// original attributes, not the events
-	if ( dest.mergeAttributes ) {
-		dest.mergeAttributes( src );
-	}
-
-	nodeName = dest.nodeName.toLowerCase();
-
-	// IE6-8 fail to clone children inside object elements that use
-	// the proprietary classid attribute value (rather than the type
-	// attribute) to identify the type of content to display
-	if ( nodeName === "object" ) {
-		dest.outerHTML = src.outerHTML;
-
-	} else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
-		// IE6-8 fails to persist the checked state of a cloned checkbox
-		// or radio button. Worse, IE6-7 fail to give the cloned element
-		// a checked appearance if the defaultChecked value isn't also set
-		if ( src.checked ) {
-			dest.defaultChecked = dest.checked = src.checked;
-		}
-
-		// IE6-7 get confused and end up setting the value of a cloned
-		// checkbox/radio button to an empty string instead of "on"
-		if ( dest.value !== src.value ) {
-			dest.value = src.value;
-		}
-
-	// IE6-8 fails to return the selected option to the default selected
-	// state when cloning options
-	} else if ( nodeName === "option" ) {
-		dest.selected = src.defaultSelected;
-
-	// IE6-8 fails to set the defaultValue to the correct value when
-	// cloning other types of input fields
-	} else if ( nodeName === "input" || nodeName === "textarea" ) {
-		dest.defaultValue = src.defaultValue;
-	}
-
-	// Event data gets referenced instead of copied if the expando
-	// gets copied too
-	dest.removeAttribute( jQuery.expando );
-}
-
-jQuery.buildFragment = function( args, nodes, scripts ) {
-	var fragment, cacheable, cacheresults, doc;
-
-  // nodes may contain either an explicit document object,
-  // a jQuery collection or context object.
-  // If nodes[0] contains a valid object to assign to doc
-  if ( nodes && nodes[0] ) {
-    doc = nodes[0].ownerDocument || nodes[0];
-  }
-
-  // Ensure that an attr object doesn't incorrectly stand in as a document object
-	// Chrome and Firefox seem to allow this to occur and will throw exception
-	// Fixes #8950
-	if ( !doc.createDocumentFragment ) {
-		doc = document;
-	}
-
-	// Only cache "small" (1/2 KB) HTML strings that are associated with the main document
-	// Cloning options loses the selected state, so don't cache them
-	// IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
-	// Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
-	if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
-		args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
-
-		cacheable = true;
-
-		cacheresults = jQuery.fragments[ args[0] ];
-		if ( cacheresults && cacheresults !== 1 ) {
-			fragment = cacheresults;
-		}
-	}
-
-	if ( !fragment ) {
-		fragment = doc.createDocumentFragment();
-		jQuery.clean( args, doc, fragment, scripts );
-	}
-
-	if ( cacheable ) {
-		jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
-	}
-
-	return { fragment: fragment, cacheable: cacheable };
-};
-
-jQuery.fragments = {};
-
-jQuery.each({
-	appendTo: "append",
-	prependTo: "prepend",
-	insertBefore: "before",
-	insertAfter: "after",
-	replaceAll: "replaceWith"
-}, function( name, original ) {
-	jQuery.fn[ name ] = function( selector ) {
-		var ret = [],
-			insert = jQuery( selector ),
-			parent = this.length === 1 && this[0].parentNode;
-
-		if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
-			insert[ original ]( this[0] );
-			return this;
-
-		} else {
-			for ( var i = 0, l = insert.length; i < l; i++ ) {
-				var elems = (i > 0 ? this.clone(true) : this).get();
-				jQuery( insert[i] )[ original ]( elems );
-				ret = ret.concat( elems );
-			}
-
-			return this.pushStack( ret, name, insert.selector );
-		}
-	};
-});
-
-function getAll( elem ) {
-	if ( "getElementsByTagName" in elem ) {
-		return elem.getElementsByTagName( "*" );
-
-	} else if ( "querySelectorAll" in elem ) {
-		return elem.querySelectorAll( "*" );
-
-	} else {
-		return [];
-	}
-}
-
-// Used in clean, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
-	if ( elem.type === "checkbox" || elem.type === "radio" ) {
-		elem.defaultChecked = elem.checked;
-	}
-}
-// Finds all inputs and passes them to fixDefaultChecked
-function findInputs( elem ) {
-	if ( jQuery.nodeName( elem, "input" ) ) {
-		fixDefaultChecked( elem );
-	} else if ( "getElementsByTagName" in elem ) {
-		jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
-	}
-}
-
-jQuery.extend({
-	clone: function( elem, dataAndEvents, deepDataAndEvents ) {
-		var clone = elem.cloneNode(true),
-				srcElements,
-				destElements,
-				i;
-
-		if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
-				(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-			// IE copies events bound via attachEvent when using cloneNode.
-			// Calling detachEvent on the clone will also remove the events
-			// from the original. In order to get around this, we use some
-			// proprietary methods to clear the events. Thanks to MooTools
-			// guys for this hotness.
-
-			cloneFixAttributes( elem, clone );
-
-			// Using Sizzle here is crazy slow, so we use getElementsByTagName
-			// instead
-			srcElements = getAll( elem );
-			destElements = getAll( clone );
-
-			// Weird iteration because IE will replace the length property
-			// with an element if you are cloning the body and one of the
-			// elements on the page has a name or id of "length"
-			for ( i = 0; srcElements[i]; ++i ) {
-				cloneFixAttributes( srcElements[i], destElements[i] );
-			}
-		}
-
-		// Copy the events from the original to the clone
-		if ( dataAndEvents ) {
-			cloneCopyEvent( elem, clone );
-
-			if ( deepDataAndEvents ) {
-				srcElements = getAll( elem );
-				destElements = getAll( clone );
-
-				for ( i = 0; srcElements[i]; ++i ) {
-					cloneCopyEvent( srcElements[i], destElements[i] );
-				}
-			}
-		}
-
-		srcElements = destElements = null;
-
-		// Return the cloned set
-		return clone;
-	},
-
-	clean: function( elems, context, fragment, scripts ) {
-		var checkScriptType;
-
-		context = context || document;
-
-		// !context.createElement fails in IE with an error but returns typeof 'object'
-		if ( typeof context.createElement === "undefined" ) {
-			context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-		}
-
-		var ret = [], j;
-
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( typeof elem === "number" ) {
-				elem += "";
-			}
-
-			if ( !elem ) {
-				continue;
-			}
-
-			// Convert html string into DOM nodes
-			if ( typeof elem === "string" ) {
-				if ( !rhtml.test( elem ) ) {
-					elem = context.createTextNode( elem );
-				} else {
-					// Fix "XHTML"-style tags in all browsers
-					elem = elem.replace(rxhtmlTag, "<$1></$2>");
-
-					// Trim whitespace, otherwise indexOf won't work as expected
-					var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
-						wrap = wrapMap[ tag ] || wrapMap._default,
-						depth = wrap[0],
-						div = context.createElement("div");
-
-					// Go to html and back, then peel off extra wrappers
-					div.innerHTML = wrap[1] + elem + wrap[2];
-
-					// Move to the right depth
-					while ( depth-- ) {
-						div = div.lastChild;
-					}
-
-					// Remove IE's autoinserted <tbody> from table fragments
-					if ( !jQuery.support.tbody ) {
-
-						// String was a <table>, *may* have spurious <tbody>
-						var hasBody = rtbody.test(elem),
-							tbody = tag === "table" && !hasBody ?
-								div.firstChild && div.firstChild.childNodes :
-
-								// String was a bare <thead> or <tfoot>
-								wrap[1] === "<table>" && !hasBody ?
-									div.childNodes :
-									[];
-
-						for ( j = tbody.length - 1; j >= 0 ; --j ) {
-							if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
-								tbody[ j ].parentNode.removeChild( tbody[ j ] );
-							}
-						}
-					}
-
-					// IE completely kills leading whitespace when innerHTML is used
-					if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
-						div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
-					}
-
-					elem = div.childNodes;
-				}
-			}
-
-			// Resets defaultChecked for any radios and checkboxes
-			// about to be appended to the DOM in IE 6/7 (#8060)
-			var len;
-			if ( !jQuery.support.appendChecked ) {
-				if ( elem[0] && typeof (len = elem.length) === "number" ) {
-					for ( j = 0; j < len; j++ ) {
-						findInputs( elem[j] );
-					}
-				} else {
-					findInputs( elem );
-				}
-			}
-
-			if ( elem.nodeType ) {
-				ret.push( elem );
-			} else {
-				ret = jQuery.merge( ret, elem );
-			}
-		}
-
-		if ( fragment ) {
-			checkScriptType = function( elem ) {
-				return !elem.type || rscriptType.test( elem.type );
-			};
-			for ( i = 0; ret[i]; i++ ) {
-				if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
-					scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
-
-				} else {
-					if ( ret[i].nodeType === 1 ) {
-						var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
-
-						ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
-					}
-					fragment.appendChild( ret[i] );
-				}
-			}
-		}
-
-		return ret;
-	},
-
-	cleanData: function( elems ) {
-		var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special,
-			deleteExpando = jQuery.support.deleteExpando;
-
-		for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-			if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
-				continue;
-			}
-
-			id = elem[ jQuery.expando ];
-
-			if ( id ) {
-				data = cache[ id ] && cache[ id ][ internalKey ];
-
-				if ( data && data.events ) {
-					for ( var type in data.events ) {
-						if ( special[ type ] ) {
-							jQuery.event.remove( elem, type );
-
-						// This is a shortcut to avoid jQuery.event.remove's overhead
-						} else {
-							jQuery.removeEvent( elem, type, data.handle );
-						}
-					}
-
-					// Null the DOM reference to avoid IE6/7/8 leak (#7054)
-					if ( data.handle ) {
-						data.handle.elem = null;
-					}
-				}
-
-				if ( deleteExpando ) {
-					delete elem[ jQuery.expando ];
-
-				} else if ( elem.removeAttribute ) {
-					elem.removeAttribute( jQuery.expando );
-				}
-
-				delete cache[ id ];
-			}
-		}
-	}
-});
-
-function evalScript( i, elem ) {
-	if ( elem.src ) {
-		jQuery.ajax({
-			url: elem.src,
-			async: false,
-			dataType: "script"
-		});
-	} else {
-		jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
-	}
-
-	if ( elem.parentNode ) {
-		elem.parentNode.removeChild( elem );
-	}
-}
-
-
-
-var ralpha = /alpha\([^)]*\)/i,
-	ropacity = /opacity=([^)]*)/,
-	// fixed for IE9, see #8346
-	rupper = /([A-Z]|^ms)/g,
-	rnumpx = /^-?\d+(?:px)?$/i,
-	rnum = /^-?\d/,
-	rrelNum = /^[+\-]=/,
-	rrelNumFilter = /[^+\-\.\de]+/g,
-
-	cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-	cssWidth = [ "Left", "Right" ],
-	cssHeight = [ "Top", "Bottom" ],
-	curCSS,
-
-	getComputedStyle,
-	currentStyle;
-
-jQuery.fn.css = function( name, value ) {
-	// Setting 'undefined' is a no-op
-	if ( arguments.length === 2 && value === undefined ) {
-		return this;
-	}
-
-	return jQuery.access( this, name, value, true, function( elem, name, value ) {
-		return value !== undefined ?
-			jQuery.style( elem, name, value ) :
-			jQuery.css( elem, name );
-	});
-};
-
-jQuery.extend({
-	// Add in style property hooks for overriding the default
-	// behavior of getting and setting a style property
-	cssHooks: {
-		opacity: {
-			get: function( elem, computed ) {
-				if ( computed ) {
-					// We should always get a number back from opacity
-					var ret = curCSS( elem, "opacity", "opacity" );
-					return ret === "" ? "1" : ret;
-
-				} else {
-					return elem.style.opacity;
-				}
-			}
-		}
-	},
-
-	// Exclude the following css properties to add px
-	cssNumber: {
-		"fillOpacity": true,
-		"fontWeight": true,
-		"lineHeight": true,
-		"opacity": true,
-		"orphans": true,
-		"widows": true,
-		"zIndex": true,
-		"zoom": true
-	},
-
-	// Add in properties whose names you wish to fix before
-	// setting or getting the value
-	cssProps: {
-		// normalize float css property
-		"float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
-	},
-
-	// Get and set the style property on a DOM Node
-	style: function( elem, name, value, extra ) {
-		// Don't set styles on text and comment nodes
-		if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
-			return;
-		}
-
-		// Make sure that we're working with the right name
-		var ret, type, origName = jQuery.camelCase( name ),
-			style = elem.style, hooks = jQuery.cssHooks[ origName ];
-
-		name = jQuery.cssProps[ origName ] || origName;
-
-		// Check if we're setting a value
-		if ( value !== undefined ) {
-			type = typeof value;
-
-			// Make sure that NaN and null values aren't set. See: #7116
-			if ( type === "number" && isNaN( value ) || value == null ) {
-				return;
-			}
-
-			// convert relative number strings (+= or -=) to relative numbers. #7345
-			if ( type === "string" && rrelNum.test( value ) ) {
-				value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) );
-				// Fixes bug #9237
-				type = "number";
-			}
-
-			// If a number was passed in, add 'px' to the (except for certain CSS properties)
-			if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
-				value += "px";
-			}
-
-			// If a hook was provided, use that value, otherwise just set the specified value
-			if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
-				// Wrapped to prevent IE from throwing errors when 'invalid' values are provided
-				// Fixes bug #5509
-				try {
-					style[ name ] = value;
-				} catch(e) {}
-			}
-
-		} else {
-			// If a hook was provided get the non-computed value from there
-			if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
-				return ret;
-			}
-
-			// Otherwise just get the value from the style object
-			return style[ name ];
-		}
-	},
-
-	css: function( elem, name, extra ) {
-		var ret, hooks;
-
-		// Make sure that we're working with the right name
-		name = jQuery.camelCase( name );
-		hooks = jQuery.cssHooks[ name ];
-		name = jQuery.cssProps[ name ] || name;
-
-		// cssFloat needs a special treatment
-		if ( name === "cssFloat" ) {
-			name = "float";
-		}
-
-		// If a hook was provided get the computed value from there
-		if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
-			return ret;
-
-		// Otherwise, if a way to get the computed value exists, use that
-		} else if ( curCSS ) {
-			return curCSS( elem, name );
-		}
-	},
-
-	// A method for quickly swapping in/out CSS properties to get correct calculations
-	swap: function( elem, options, callback ) {
-		var old = {};
-
-		// Remember the old values, and insert the new ones
-		for ( var name in options ) {
-			old[ name ] = elem.style[ name ];
-			elem.style[ name ] = options[ name ];
-		}
-
-		callback.call( elem );
-
-		// Revert the old values
-		for ( name in options ) {
-			elem.style[ name ] = old[ name ];
-		}
-	}
-});
-
-// DEPRECATED, Use jQuery.css() instead
-jQuery.curCSS = jQuery.css;
-
-jQuery.each(["height", "width"], function( i, name ) {
-	jQuery.cssHooks[ name ] = {
-		get: function( elem, computed, extra ) {
-			var val;
-
-			if ( computed ) {
-				if ( elem.offsetWidth !== 0 ) {
-					return getWH( elem, name, extra );
-				} else {
-					jQuery.swap( elem, cssShow, function() {
-						val = getWH( elem, name, extra );
-					});
-				}
-
-				return val;
-			}
-		},
-
-		set: function( elem, value ) {
-			if ( rnumpx.test( value ) ) {
-				// ignore negative width and height values #1599
-				value = parseFloat( value );
-
-				if ( value >= 0 ) {
-					return value + "px";
-				}
-
-			} else {
-				return value;
-			}
-		}
-	};
-});
-
-if ( !jQuery.support.opacity ) {
-	jQuery.cssHooks.opacity = {
-		get: function( elem, computed ) {
-			// IE uses filters for opacity
-			return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
-				( parseFloat( RegExp.$1 ) / 100 ) + "" :
-				computed ? "1" : "";
-		},
-
-		set: function( elem, value ) {
-			var style = elem.style,
-				currentStyle = elem.currentStyle;
-
-			// IE has trouble with opacity if it does not have layout
-			// Force it by setting the zoom level
-			style.zoom = 1;
-
-			// Set the alpha filter to set the opacity
-			var opacity = jQuery.isNaN( value ) ?
-				"" :
-				"alpha(opacity=" + value * 100 + ")",
-				filter = currentStyle && currentStyle.filter || style.filter || "";
-
-			style.filter = ralpha.test( filter ) ?
-				filter.replace( ralpha, opacity ) :
-				filter + " " + opacity;
-		}
-	};
-}
-
-jQuery(function() {
-	// This hook cannot be added until DOM ready because the support test
-	// for it is not run until after DOM ready
-	if ( !jQuery.support.reliableMarginRight ) {
-		jQuery.cssHooks.marginRight = {
-			get: function( elem, computed ) {
-				// WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-				// Work around by temporarily setting element display to inline-block
-				var ret;
-				jQuery.swap( elem, { "display": "inline-block" }, function() {
-					if ( computed ) {
-						ret = curCSS( elem, "margin-right", "marginRight" );
-					} else {
-						ret = elem.style.marginRight;
-					}
-				});
-				return ret;
-			}
-		};
-	}
-});
-
-if ( document.defaultView && document.defaultView.getComputedStyle ) {
-	getComputedStyle = function( elem, name ) {
-		var ret, defaultView, computedStyle;
-
-		name = name.replace( rupper, "-$1" ).toLowerCase();
-
-		if ( !(defaultView = elem.ownerDocument.defaultView) ) {
-			return undefined;
-		}
-
-		if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
-			ret = computedStyle.getPropertyValue( name );
-			if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
-				ret = jQuery.style( elem, name );
-			}
-		}
-
-		return ret;
-	};
-}
-
-if ( document.documentElement.currentStyle ) {
-	currentStyle = function( elem, name ) {
-		var left,
-			ret = elem.currentStyle && elem.currentStyle[ name ],
-			rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
-			style = elem.style;
-
-		// From the awesome hack by Dean Edwards
-		// http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-		// If we're not dealing with a regular pixel number
-		// but a number that has a weird ending, we need to convert it to pixels
-		if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
-			// Remember the original values
-			left = style.left;
-
-			// Put in the new values to get a computed value out
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = elem.currentStyle.left;
-			}
-			style.left = name === "fontSize" ? "1em" : (ret || 0);
-			ret = style.pixelLeft + "px";
-
-			// Revert the changed values
-			style.left = left;
-			if ( rsLeft ) {
-				elem.runtimeStyle.left = rsLeft;
-			}
-		}
-
-		return ret === "" ? "auto" : ret;
-	};
-}
-
-curCSS = getComputedStyle || currentStyle;
-
-function getWH( elem, name, extra ) {
-
-	// Start with offset property
-	var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
-		which = name === "width" ? cssWidth : cssHeight;
-
-	if ( val > 0 ) {
-		if ( extra !== "border" ) {
-			jQuery.each( which, function() {
-				if ( !extra ) {
-					val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
-				}
-				if ( extra === "margin" ) {
-					val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
-				} else {
-					val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
-				}
-			});
-		}
-
-		return val + "px";
-	}
-
-	// Fall back to computed then uncomputed css if necessary
-	val = curCSS( elem, name, name );
-	if ( val < 0 || val == null ) {
-		val = elem.style[ name ] || 0;
-	}
-	// Normalize "", auto, and prepare for extra
-	val = parseFloat( val ) || 0;
-
-	// Add padding, border, margin
-	if ( extra ) {
-		jQuery.each( which, function() {
-			val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
-			if ( extra !== "padding" ) {
-				val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
-			}
-			if ( extra === "margin" ) {
-				val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
-			}
-		});
-	}
-
-	return val + "px";
-}
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.hidden = function( elem ) {
-		var width = elem.offsetWidth,
-			height = elem.offsetHeight;
-
-		return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none");
-	};
-
-	jQuery.expr.filters.visible = function( elem ) {
-		return !jQuery.expr.filters.hidden( elem );
-	};
-}
-
-
-
-
-var r20 = /%20/g,
-	rbracket = /\[\]$/,
-	rCRLF = /\r?\n/g,
-	rhash = /#.*$/,
-	rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
-	rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
-	// #7653, #8125, #8152: local protocol detection
-	rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/,
-	rnoContent = /^(?:GET|HEAD)$/,
-	rprotocol = /^\/\//,
-	rquery = /\?/,
-	rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
-	rselectTextarea = /^(?:select|textarea)/i,
-	rspacesAjax = /\s+/,
-	rts = /([?&])_=[^&]*/,
-	rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
-
-	// Keep a copy of the old load method
-	_load = jQuery.fn.load,
-
-	/* Prefilters
-	 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
-	 * 2) These are called:
-	 *    - BEFORE asking for a transport
-	 *    - AFTER param serialization (s.data is a string if s.processData is true)
-	 * 3) key is the dataType
-	 * 4) the catchall symbol "*" can be used
-	 * 5) execution will start with transport dataType and THEN continue down to "*" if needed
-	 */
-	prefilters = {},
-
-	/* Transports bindings
-	 * 1) key is the dataType
-	 * 2) the catchall symbol "*" can be used
-	 * 3) selection will start with transport dataType and THEN go to "*" if needed
-	 */
-	transports = {},
-
-	// Document location
-	ajaxLocation,
-
-	// Document location segments
-	ajaxLocParts;
-
-// #8138, IE may throw an exception when accessing
-// a field from window.location if document.domain has been set
-try {
-	ajaxLocation = location.href;
-} catch( e ) {
-	// Use the href attribute of an A element
-	// since IE will modify it given document.location
-	ajaxLocation = document.createElement( "a" );
-	ajaxLocation.href = "";
-	ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
-	// dataTypeExpression is optional and defaults to "*"
-	return function( dataTypeExpression, func ) {
-
-		if ( typeof dataTypeExpression !== "string" ) {
-			func = dataTypeExpression;
-			dataTypeExpression = "*";
-		}
-
-		if ( jQuery.isFunction( func ) ) {
-			var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
-				i = 0,
-				length = dataTypes.length,
-				dataType,
-				list,
-				placeBefore;
-
-			// For each dataType in the dataTypeExpression
-			for(; i < length; i++ ) {
-				dataType = dataTypes[ i ];
-				// We control if we're asked to add before
-				// any existing element
-				placeBefore = /^\+/.test( dataType );
-				if ( placeBefore ) {
-					dataType = dataType.substr( 1 ) || "*";
-				}
-				list = structure[ dataType ] = structure[ dataType ] || [];
-				// then we add to the structure accordingly
-				list[ placeBefore ? "unshift" : "push" ]( func );
-			}
-		}
-	};
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
-		dataType /* internal */, inspected /* internal */ ) {
-
-	dataType = dataType || options.dataTypes[ 0 ];
-	inspected = inspected || {};
-
-	inspected[ dataType ] = true;
-
-	var list = structure[ dataType ],
-		i = 0,
-		length = list ? list.length : 0,
-		executeOnly = ( structure === prefilters ),
-		selection;
-
-	for(; i < length && ( executeOnly || !selection ); i++ ) {
-		selection = list[ i ]( options, originalOptions, jqXHR );
-		// If we got redirected to another dataType
-		// we try there if executing only and not done already
-		if ( typeof selection === "string" ) {
-			if ( !executeOnly || inspected[ selection ] ) {
-				selection = undefined;
-			} else {
-				options.dataTypes.unshift( selection );
-				selection = inspectPrefiltersOrTransports(
-						structure, options, originalOptions, jqXHR, selection, inspected );
-			}
-		}
-	}
-	// If we're only executing or nothing was selected
-	// we try the catchall dataType if not done already
-	if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
-		selection = inspectPrefiltersOrTransports(
-				structure, options, originalOptions, jqXHR, "*", inspected );
-	}
-	// unnecessary when only executing (prefilters)
-	// but it'll be ignored by the caller in that case
-	return selection;
-}
-
-jQuery.fn.extend({
-	load: function( url, params, callback ) {
-		if ( typeof url !== "string" && _load ) {
-			return _load.apply( this, arguments );
-
-		// Don't do a request if no elements are being requested
-		} else if ( !this.length ) {
-			return this;
-		}
-
-		var off = url.indexOf( " " );
-		if ( off >= 0 ) {
-			var selector = url.slice( off, url.length );
-			url = url.slice( 0, off );
-		}
-
-		// Default to a GET request
-		var type = "GET";
-
-		// If the second parameter was provided
-		if ( params ) {
-			// If it's a function
-			if ( jQuery.isFunction( params ) ) {
-				// We assume that it's the callback
-				callback = params;
-				params = undefined;
-
-			// Otherwise, build a param string
-			} else if ( typeof params === "object" ) {
-				params = jQuery.param( params, jQuery.ajaxSettings.traditional );
-				type = "POST";
-			}
-		}
-
-		var self = this;
-
-		// Request the remote document
-		jQuery.ajax({
-			url: url,
-			type: type,
-			dataType: "html",
-			data: params,
-			// Complete callback (responseText is used internally)
-			complete: function( jqXHR, status, responseText ) {
-				// Store the response as specified by the jqXHR object
-				responseText = jqXHR.responseText;
-				// If successful, inject the HTML into all the matched elements
-				if ( jqXHR.isResolved() ) {
-					// #4825: Get the actual response in case
-					// a dataFilter is present in ajaxSettings
-					jqXHR.done(function( r ) {
-						responseText = r;
-					});
-					// See if a selector was specified
-					self.html( selector ?
-						// Create a dummy div to hold the results
-						jQuery("<div>")
-							// inject the contents of the document in, removing the scripts
-							// to avoid any 'Permission Denied' errors in IE
-							.append(responseText.replace(rscript, ""))
-
-							// Locate the specified elements
-							.find(selector) :
-
-						// If not, just inject the full result
-						responseText );
-				}
-
-				if ( callback ) {
-					self.each( callback, [ responseText, status, jqXHR ] );
-				}
-			}
-		});
-
-		return this;
-	},
-
-	serialize: function() {
-		return jQuery.param( this.serializeArray() );
-	},
-
-	serializeArray: function() {
-		return this.map(function(){
-			return this.elements ? jQuery.makeArray( this.elements ) : this;
-		})
-		.filter(function(){
-			return this.name && !this.disabled &&
-				( this.checked || rselectTextarea.test( this.nodeName ) ||
-					rinput.test( this.type ) );
-		})
-		.map(function( i, elem ){
-			var val = jQuery( this ).val();
-
-			return val == null ?
-				null :
-				jQuery.isArray( val ) ?
-					jQuery.map( val, function( val, i ){
-						return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-					}) :
-					{ name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-		}).get();
-	}
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
-	jQuery.fn[ o ] = function( f ){
-		return this.bind( o, f );
-	};
-});
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
-	jQuery[ method ] = function( url, data, callback, type ) {
-		// shift arguments if data argument was omitted
-		if ( jQuery.isFunction( data ) ) {
-			type = type || callback;
-			callback = data;
-			data = undefined;
-		}
-
-		return jQuery.ajax({
-			type: method,
-			url: url,
-			data: data,
-			success: callback,
-			dataType: type
-		});
-	};
-});
-
-jQuery.extend({
-
-	getScript: function( url, callback ) {
-		return jQuery.get( url, undefined, callback, "script" );
-	},
-
-	getJSON: function( url, data, callback ) {
-		return jQuery.get( url, data, callback, "json" );
-	},
-
-	// Creates a full fledged settings object into target
-	// with both ajaxSettings and settings fields.
-	// If target is omitted, writes into ajaxSettings.
-	ajaxSetup: function ( target, settings ) {
-		if ( !settings ) {
-			// Only one parameter, we extend ajaxSettings
-			settings = target;
-			target = jQuery.extend( true, jQuery.ajaxSettings, settings );
-		} else {
-			// target was provided, we extend into it
-			jQuery.extend( true, target, jQuery.ajaxSettings, settings );
-		}
-		// Flatten fields we don't want deep extended
-		for( var field in { context: 1, url: 1 } ) {
-			if ( field in settings ) {
-				target[ field ] = settings[ field ];
-			} else if( field in jQuery.ajaxSettings ) {
-				target[ field ] = jQuery.ajaxSettings[ field ];
-			}
-		}
-		return target;
-	},
-
-	ajaxSettings: {
-		url: ajaxLocation,
-		isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
-		global: true,
-		type: "GET",
-		contentType: "application/x-www-form-urlencoded",
-		processData: true,
-		async: true,
-		/*
-		timeout: 0,
-		data: null,
-		dataType: null,
-		username: null,
-		password: null,
-		cache: null,
-		traditional: false,
-		headers: {},
-		*/
-
-		accepts: {
-			xml: "application/xml, text/xml",
-			html: "text/html",
-			text: "text/plain",
-			json: "application/json, text/javascript",
-			"*": "*/*"
-		},
-
-		contents: {
-			xml: /xml/,
-			html: /html/,
-			json: /json/
-		},
-
-		responseFields: {
-			xml: "responseXML",
-			text: "responseText"
-		},
-
-		// List of data converters
-		// 1) key format is "source_type destination_type" (a single space in-between)
-		// 2) the catchall symbol "*" can be used for source_type
-		converters: {
-
-			// Convert anything to text
-			"* text": window.String,
-
-			// Text to html (true = no transformation)
-			"text html": true,
-
-			// Evaluate text as a json expression
-			"text json": jQuery.parseJSON,
-
-			// Parse text as xml
-			"text xml": jQuery.parseXML
-		}
-	},
-
-	ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
-	ajaxTransport: addToPrefiltersOrTransports( transports ),
-
-	// Main method
-	ajax: function( url, options ) {
-
-		// If url is an object, simulate pre-1.5 signature
-		if ( typeof url === "object" ) {
-			options = url;
-			url = undefined;
-		}
-
-		// Force options to be an object
-		options = options || {};
-
-		var // Create the final options object
-			s = jQuery.ajaxSetup( {}, options ),
-			// Callbacks context
-			callbackContext = s.context || s,
-			// Context for global events
-			// It's the callbackContext if one was provided in the options
-			// and if it's a DOM node or a jQuery collection
-			globalEventContext = callbackContext !== s &&
-				( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
-						jQuery( callbackContext ) : jQuery.event,
-			// Deferreds
-			deferred = jQuery.Deferred(),
-			completeDeferred = jQuery._Deferred(),
-			// Status-dependent callbacks
-			statusCode = s.statusCode || {},
-			// ifModified key
-			ifModifiedKey,
-			// Headers (they are sent all at once)
-			requestHeaders = {},
-			requestHeadersNames = {},
-			// Response headers
-			responseHeadersString,
-			responseHeaders,
-			// transport
-			transport,
-			// timeout handle
-			timeoutTimer,
-			// Cross-domain detection vars
-			parts,
-			// The jqXHR state
-			state = 0,
-			// To know if global events are to be dispatched
-			fireGlobals,
-			// Loop variable
-			i,
-			// Fake xhr
-			jqXHR = {
-
-				readyState: 0,
-
-				// Caches the header
-				setRequestHeader: function( name, value ) {
-					if ( !state ) {
-						var lname = name.toLowerCase();
-						name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
-						requestHeaders[ name ] = value;
-					}
-					return this;
-				},
-
-				// Raw string
-				getAllResponseHeaders: function() {
-					return state === 2 ? responseHeadersString : null;
-				},
-
-				// Builds headers hashtable if needed
-				getResponseHeader: function( key ) {
-					var match;
-					if ( state === 2 ) {
-						if ( !responseHeaders ) {
-							responseHeaders = {};
-							while( ( match = rheaders.exec( responseHeadersString ) ) ) {
-								responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
-							}
-						}
-						match = responseHeaders[ key.toLowerCase() ];
-					}
-					return match === undefined ? null : match;
-				},
-
-				// Overrides response content-type header
-				overrideMimeType: function( type ) {
-					if ( !state ) {
-						s.mimeType = type;
-					}
-					return this;
-				},
-
-				// Cancel the request
-				abort: function( statusText ) {
-					statusText = statusText || "abort";
-					if ( transport ) {
-						transport.abort( statusText );
-					}
-					done( 0, statusText );
-					return this;
-				}
-			};
-
-		// Callback for when everything is done
-		// It is defined here because jslint complains if it is declared
-		// at the end of the function (which would be more logical and readable)
-		function done( status, statusText, responses, headers ) {
-
-			// Called once
-			if ( state === 2 ) {
-				return;
-			}
-
-			// State is "done" now
-			state = 2;
-
-			// Clear timeout if it exists
-			if ( timeoutTimer ) {
-				clearTimeout( timeoutTimer );
-			}
-
-			// Dereference transport for early garbage collection
-			// (no matter how long the jqXHR object will be used)
-			transport = undefined;
-
-			// Cache response headers
-			responseHeadersString = headers || "";
-
-			// Set readyState
-			jqXHR.readyState = status ? 4 : 0;
-
-			var isSuccess,
-				success,
-				error,
-				response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
-				lastModified,
-				etag;
-
-			// If successful, handle type chaining
-			if ( status >= 200 && status < 300 || status === 304 ) {
-
-				// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-				if ( s.ifModified ) {
-
-					if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
-						jQuery.lastModified[ ifModifiedKey ] = lastModified;
-					}
-					if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
-						jQuery.etag[ ifModifiedKey ] = etag;
-					}
-				}
-
-				// If not modified
-				if ( status === 304 ) {
-
-					statusText = "notmodified";
-					isSuccess = true;
-
-				// If we have data
-				} else {
-
-					try {
-						success = ajaxConvert( s, response );
-						statusText = "success";
-						isSuccess = true;
-					} catch(e) {
-						// We have a parsererror
-						statusText = "parsererror";
-						error = e;
-					}
-				}
-			} else {
-				// We extract error from statusText
-				// then normalize statusText and status for non-aborts
-				error = statusText;
-				if( !statusText || status ) {
-					statusText = "error";
-					if ( status < 0 ) {
-						status = 0;
-					}
-				}
-			}
-
-			// Set data for the fake xhr object
-			jqXHR.status = status;
-			jqXHR.statusText = statusText;
-
-			// Success/Error
-			if ( isSuccess ) {
-				deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
-			} else {
-				deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
-			}
-
-			// Status-dependent callbacks
-			jqXHR.statusCode( statusCode );
-			statusCode = undefined;
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
-						[ jqXHR, s, isSuccess ? success : error ] );
-			}
-
-			// Complete
-			completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
-
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );
-				// Handle the global AJAX counter
-				if ( !( --jQuery.active ) ) {
-					jQuery.event.trigger( "ajaxStop" );
-				}
-			}
-		}
-
-		// Attach deferreds
-		deferred.promise( jqXHR );
-		jqXHR.success = jqXHR.done;
-		jqXHR.error = jqXHR.fail;
-		jqXHR.complete = completeDeferred.done;
-
-		// Status-dependent callbacks
-		jqXHR.statusCode = function( map ) {
-			if ( map ) {
-				var tmp;
-				if ( state < 2 ) {
-					for( tmp in map ) {
-						statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
-					}
-				} else {
-					tmp = map[ jqXHR.status ];
-					jqXHR.then( tmp, tmp );
-				}
-			}
-			return this;
-		};
-
-		// Remove hash character (#7531: and string promotion)
-		// Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
-		// We also use the url parameter if available
-		s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
-		// Extract dataTypes list
-		s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
-
-		// Determine if a cross-domain request is in order
-		if ( s.crossDomain == null ) {
-			parts = rurl.exec( s.url.toLowerCase() );
-			s.crossDomain = !!( parts &&
-				( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
-					( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
-						( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
-			);
-		}
-
-		// Convert data if not already a string
-		if ( s.data && s.processData && typeof s.data !== "string" ) {
-			s.data = jQuery.param( s.data, s.traditional );
-		}
-
-		// Apply prefilters
-		inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
-		// If request was aborted inside a prefiler, stop there
-		if ( state === 2 ) {
-			return false;
-		}
-
-		// We can fire global events as of now if asked to
-		fireGlobals = s.global;
-
-		// Uppercase the type
-		s.type = s.type.toUpperCase();
-
-		// Determine if request has content
-		s.hasContent = !rnoContent.test( s.type );
-
-		// Watch for a new set of requests
-		if ( fireGlobals && jQuery.active++ === 0 ) {
-			jQuery.event.trigger( "ajaxStart" );
-		}
-
-		// More options handling for requests with no content
-		if ( !s.hasContent ) {
-
-			// If data is available, append data to url
-			if ( s.data ) {
-				s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
-			}
-
-			// Get ifModifiedKey before adding the anti-cache parameter
-			ifModifiedKey = s.url;
-
-			// Add anti-cache in url if needed
-			if ( s.cache === false ) {
-
-				var ts = jQuery.now(),
-					// try replacing _= if it is there
-					ret = s.url.replace( rts, "$1_=" + ts );
-
-				// if nothing was replaced, add timestamp to the end
-				s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
-			}
-		}
-
-		// Set the correct header, if data is being sent
-		if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
-			jqXHR.setRequestHeader( "Content-Type", s.contentType );
-		}
-
-		// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-		if ( s.ifModified ) {
-			ifModifiedKey = ifModifiedKey || s.url;
-			if ( jQuery.lastModified[ ifModifiedKey ] ) {
-				jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
-			}
-			if ( jQuery.etag[ ifModifiedKey ] ) {
-				jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
-			}
-		}
-
-		// Set the Accepts header for the server, depending on the dataType
-		jqXHR.setRequestHeader(
-			"Accept",
-			s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
-				s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
-				s.accepts[ "*" ]
-		);
-
-		// Check for headers option
-		for ( i in s.headers ) {
-			jqXHR.setRequestHeader( i, s.headers[ i ] );
-		}
-
-		// Allow custom headers/mimetypes and early abort
-		if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-				// Abort if not done already
-				jqXHR.abort();
-				return false;
-
-		}
-
-		// Install callbacks on deferreds
-		for ( i in { success: 1, error: 1, complete: 1 } ) {
-			jqXHR[ i ]( s[ i ] );
-		}
-
-		// Get transport
-		transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
-		// If no transport, we auto-abort
-		if ( !transport ) {
-			done( -1, "No Transport" );
-		} else {
-			jqXHR.readyState = 1;
-			// Send global event
-			if ( fireGlobals ) {
-				globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
-			}
-			// Timeout
-			if ( s.async && s.timeout > 0 ) {
-				timeoutTimer = setTimeout( function(){
-					jqXHR.abort( "timeout" );
-				}, s.timeout );
-			}
-
-			try {
-				state = 1;
-				transport.send( requestHeaders, done );
-			} catch (e) {
-				// Propagate exception as error if not done
-				if ( status < 2 ) {
-					done( -1, e );
-				// Simply rethrow otherwise
-				} else {
-					jQuery.error( e );
-				}
-			}
-		}
-
-		return jqXHR;
-	},
-
-	// Serialize an array of form elements or a set of
-	// key/values into a query string
-	param: function( a, traditional ) {
-		var s = [],
-			add = function( key, value ) {
-				// If value is a function, invoke it and return its value
-				value = jQuery.isFunction( value ) ? value() : value;
-				s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
-			};
-
-		// Set traditional to true for jQuery <= 1.3.2 behavior.
-		if ( traditional === undefined ) {
-			traditional = jQuery.ajaxSettings.traditional;
-		}
-
-		// If an array was passed in, assume that it is an array of form elements.
-		if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-			// Serialize the form elements
-			jQuery.each( a, function() {
-				add( this.name, this.value );
-			});
-
-		} else {
-			// If traditional, encode the "old" way (the way 1.3.2 or older
-			// did it), otherwise encode params recursively.
-			for ( var prefix in a ) {
-				buildParams( prefix, a[ prefix ], traditional, add );
-			}
-		}
-
-		// Return the resulting serialization
-		return s.join( "&" ).replace( r20, "+" );
-	}
-});
-
-function buildParams( prefix, obj, traditional, add ) {
-	if ( jQuery.isArray( obj ) ) {
-		// Serialize array item.
-		jQuery.each( obj, function( i, v ) {
-			if ( traditional || rbracket.test( prefix ) ) {
-				// Treat each array item as a scalar.
-				add( prefix, v );
-
-			} else {
-				// If array item is non-scalar (array or object), encode its
-				// numeric index to resolve deserialization ambiguity issues.
-				// Note that rack (as of 1.0.0) can't currently deserialize
-				// nested arrays properly, and attempting to do so may cause
-				// a server error. Possible fixes are to modify rack's
-				// deserialization algorithm or to provide an option or flag
-				// to force array serialization to be shallow.
-				buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
-			}
-		});
-
-	} else if ( !traditional && obj != null && typeof obj === "object" ) {
-		// Serialize object item.
-		for ( var name in obj ) {
-			buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
-		}
-
-	} else {
-		// Serialize scalar item.
-		add( prefix, obj );
-	}
-}
-
-// This is still on the jQuery object... for now
-// Want to move this to jQuery.ajax some day
-jQuery.extend({
-
-	// Counter for holding the number of active queries
-	active: 0,
-
-	// Last-Modified header cache for next request
-	lastModified: {},
-	etag: {}
-
-});
-
-/* Handles responses to an ajax request:
- * - sets all responseXXX fields accordingly
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-
-	var contents = s.contents,
-		dataTypes = s.dataTypes,
-		responseFields = s.responseFields,
-		ct,
-		type,
-		finalDataType,
-		firstDataType;
-
-	// Fill responseXXX fields
-	for( type in responseFields ) {
-		if ( type in responses ) {
-			jqXHR[ responseFields[type] ] = responses[ type ];
-		}
-	}
-
-	// Remove auto dataType and get content-type in the process
-	while( dataTypes[ 0 ] === "*" ) {
-		dataTypes.shift();
-		if ( ct === undefined ) {
-			ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
-		}
-	}
-
-	// Check if we're dealing with a known content-type
-	if ( ct ) {
-		for ( type in contents ) {
-			if ( contents[ type ] && contents[ type ].test( ct ) ) {
-				dataTypes.unshift( type );
-				break;
-			}
-		}
-	}
-
-	// Check to see if we have a response for the expected dataType
-	if ( dataTypes[ 0 ] in responses ) {
-		finalDataType = dataTypes[ 0 ];
-	} else {
-		// Try convertible dataTypes
-		for ( type in responses ) {
-			if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
-				finalDataType = type;
-				break;
-			}
-			if ( !firstDataType ) {
-				firstDataType = type;
-			}
-		}
-		// Or just use first one
-		finalDataType = finalDataType || firstDataType;
-	}
-
-	// If we found a dataType
-	// We add the dataType to the list if needed
-	// and return the corresponding response
-	if ( finalDataType ) {
-		if ( finalDataType !== dataTypes[ 0 ] ) {
-			dataTypes.unshift( finalDataType );
-		}
-		return responses[ finalDataType ];
-	}
-}
-
-// Chain conversions given the request and the original response
-function ajaxConvert( s, response ) {
-
-	// Apply the dataFilter if provided
-	if ( s.dataFilter ) {
-		response = s.dataFilter( response, s.dataType );
-	}
-
-	var dataTypes = s.dataTypes,
-		converters = {},
-		i,
-		key,
-		length = dataTypes.length,
-		tmp,
-		// Current and previous dataTypes
-		current = dataTypes[ 0 ],
-		prev,
-		// Conversion expression
-		conversion,
-		// Conversion function
-		conv,
-		// Conversion functions (transitive conversion)
-		conv1,
-		conv2;
-
-	// For each dataType in the chain
-	for( i = 1; i < length; i++ ) {
-
-		// Create converters map
-		// with lowercased keys
-		if ( i === 1 ) {
-			for( key in s.converters ) {
-				if( typeof key === "string" ) {
-					converters[ key.toLowerCase() ] = s.converters[ key ];
-				}
-			}
-		}
-
-		// Get the dataTypes
-		prev = current;
-		current = dataTypes[ i ];
-
-		// If current is auto dataType, update it to prev
-		if( current === "*" ) {
-			current = prev;
-		// If no auto and dataTypes are actually different
-		} else if ( prev !== "*" && prev !== current ) {
-
-			// Get the converter
-			conversion = prev + " " + current;
-			conv = converters[ conversion ] || converters[ "* " + current ];
-
-			// If there is no direct converter, search transitively
-			if ( !conv ) {
-				conv2 = undefined;
-				for( conv1 in converters ) {
-					tmp = conv1.split( " " );
-					if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
-						conv2 = converters[ tmp[1] + " " + current ];
-						if ( conv2 ) {
-							conv1 = converters[ conv1 ];
-							if ( conv1 === true ) {
-								conv = conv2;
-							} else if ( conv2 === true ) {
-								conv = conv1;
-							}
-							break;
-						}
-					}
-				}
-			}
-			// If we found no converter, dispatch an error
-			if ( !( conv || conv2 ) ) {
-				jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
-			}
-			// If found converter is not an equivalence
-			if ( conv !== true ) {
-				// Convert with 1 or 2 converters accordingly
-				response = conv ? conv( response ) : conv2( conv1(response) );
-			}
-		}
-	}
-	return response;
-}
-
-
-
-
-var jsc = jQuery.now(),
-	jsre = /(\=)\?(&|$)|\?\?/i;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
-	jsonp: "callback",
-	jsonpCallback: function() {
-		return jQuery.expando + "_" + ( jsc++ );
-	}
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
-	var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
-		( typeof s.data === "string" );
-
-	if ( s.dataTypes[ 0 ] === "jsonp" ||
-		s.jsonp !== false && ( jsre.test( s.url ) ||
-				inspectData && jsre.test( s.data ) ) ) {
-
-		var responseContainer,
-			jsonpCallback = s.jsonpCallback =
-				jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
-			previous = window[ jsonpCallback ],
-			url = s.url,
-			data = s.data,
-			replace = "$1" + jsonpCallback + "$2";
-
-		if ( s.jsonp !== false ) {
-			url = url.replace( jsre, replace );
-			if ( s.url === url ) {
-				if ( inspectData ) {
-					data = data.replace( jsre, replace );
-				}
-				if ( s.data === data ) {
-					// Add callback manually
-					url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
-				}
-			}
-		}
-
-		s.url = url;
-		s.data = data;
-
-		// Install callback
-		window[ jsonpCallback ] = function( response ) {
-			responseContainer = [ response ];
-		};
-
-		// Clean-up function
-		jqXHR.always(function() {
-			// Set callback back to previous value
-			window[ jsonpCallback ] = previous;
-			// Call if it was a function and we have a response
-			if ( responseContainer && jQuery.isFunction( previous ) ) {
-				window[ jsonpCallback ]( responseContainer[ 0 ] );
-			}
-		});
-
-		// Use data converter to retrieve json after script execution
-		s.converters["script json"] = function() {
-			if ( !responseContainer ) {
-				jQuery.error( jsonpCallback + " was not called" );
-			}
-			return responseContainer[ 0 ];
-		};
-
-		// force json dataType
-		s.dataTypes[ 0 ] = "json";
-
-		// Delegate to script
-		return "script";
-	}
-});
-
-
-
-
-// Install script dataType
-jQuery.ajaxSetup({
-	accepts: {
-		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
-	},
-	contents: {
-		script: /javascript|ecmascript/
-	},
-	converters: {
-		"text script": function( text ) {
-			jQuery.globalEval( text );
-			return text;
-		}
-	}
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
-	if ( s.cache === undefined ) {
-		s.cache = false;
-	}
-	if ( s.crossDomain ) {
-		s.type = "GET";
-		s.global = false;
-	}
-});
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
-	// This transport only deals with cross domain requests
-	if ( s.crossDomain ) {
-
-		var script,
-			head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
-
-		return {
-
-			send: function( _, callback ) {
-
-				script = document.createElement( "script" );
-
-				script.async = "async";
-
-				if ( s.scriptCharset ) {
-					script.charset = s.scriptCharset;
-				}
-
-				script.src = s.url;
-
-				// Attach handlers for all browsers
-				script.onload = script.onreadystatechange = function( _, isAbort ) {
-
-					if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
-						// Handle memory leak in IE
-						script.onload = script.onreadystatechange = null;
-
-						// Remove the script
-						if ( head && script.parentNode ) {
-							head.removeChild( script );
-						}
-
-						// Dereference the script
-						script = undefined;
-
-						// Callback if not abort
-						if ( !isAbort ) {
-							callback( 200, "success" );
-						}
-					}
-				};
-				// Use insertBefore instead of appendChild  to circumvent an IE6 bug.
-				// This arises when a base node is used (#2709 and #4378).
-				head.insertBefore( script, head.firstChild );
-			},
-
-			abort: function() {
-				if ( script ) {
-					script.onload( 0, 1 );
-				}
-			}
-		};
-	}
-});
-
-
-
-
-var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
-	xhrOnUnloadAbort = window.ActiveXObject ? function() {
-		// Abort all pending requests
-		for ( var key in xhrCallbacks ) {
-			xhrCallbacks[ key ]( 0, 1 );
-		}
-	} : false,
-	xhrId = 0,
-	xhrCallbacks;
-
-// Functions to create xhrs
-function createStandardXHR() {
-	try {
-		return new window.XMLHttpRequest();
-	} catch( e ) {}
-}
-
-function createActiveXHR() {
-	try {
-		return new window.ActiveXObject( "Microsoft.XMLHTTP" );
-	} catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
-	/* Microsoft failed to properly
-	 * implement the XMLHttpRequest in IE7 (can't request local files),
-	 * so we use the ActiveXObject when it is available
-	 * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
-	 * we need a fallback.
-	 */
-	function() {
-		return !this.isLocal && createStandardXHR() || createActiveXHR();
-	} :
-	// For all other browsers, use the standard XMLHttpRequest object
-	createStandardXHR;
-
-// Determine support properties
-(function( xhr ) {
-	jQuery.extend( jQuery.support, {
-		ajax: !!xhr,
-		cors: !!xhr && ( "withCredentials" in xhr )
-	});
-})( jQuery.ajaxSettings.xhr() );
-
-// Create transport if the browser can provide an xhr
-if ( jQuery.support.ajax ) {
-
-	jQuery.ajaxTransport(function( s ) {
-		// Cross domain only allowed if supported through XMLHttpRequest
-		if ( !s.crossDomain || jQuery.support.cors ) {
-
-			var callback;
-
-			return {
-				send: function( headers, complete ) {
-
-					// Get a new xhr
-					var xhr = s.xhr(),
-						handle,
-						i;
-
-					// Open the socket
-					// Passing null username, generates a login popup on Opera (#2865)
-					if ( s.username ) {
-						xhr.open( s.type, s.url, s.async, s.username, s.password );
-					} else {
-						xhr.open( s.type, s.url, s.async );
-					}
-
-					// Apply custom fields if provided
-					if ( s.xhrFields ) {
-						for ( i in s.xhrFields ) {
-							xhr[ i ] = s.xhrFields[ i ];
-						}
-					}
-
-					// Override mime type if needed
-					if ( s.mimeType && xhr.overrideMimeType ) {
-						xhr.overrideMimeType( s.mimeType );
-					}
-
-					// X-Requested-With header
-					// For cross-domain requests, seeing as conditions for a preflight are
-					// akin to a jigsaw puzzle, we simply never set it to be sure.
-					// (it can always be set on a per-request basis or even using ajaxSetup)
-					// For same-domain requests, won't change header if already provided.
-					if ( !s.crossDomain && !headers["X-Requested-With"] ) {
-						headers[ "X-Requested-With" ] = "XMLHttpRequest";
-					}
-
-					// Need an extra try/catch for cross domain requests in Firefox 3
-					try {
-						for ( i in headers ) {
-							xhr.setRequestHeader( i, headers[ i ] );
-						}
-					} catch( _ ) {}
-
-					// Do send the request
-					// This may raise an exception which is actually
-					// handled in jQuery.ajax (so no try/catch here)
-					xhr.send( ( s.hasContent && s.data ) || null );
-
-					// Listener
-					callback = function( _, isAbort ) {
-
-						var status,
-							statusText,
-							responseHeaders,
-							responses,
-							xml;
-
-						// Firefox throws exceptions when accessing properties
-						// of an xhr when a network error occured
-						// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
-						try {
-
-							// Was never called and is aborted or complete
-							if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
-								// Only called once
-								callback = undefined;
-
-								// Do not keep as active anymore
-								if ( handle ) {
-									xhr.onreadystatechange = jQuery.noop;
-									if ( xhrOnUnloadAbort ) {
-										delete xhrCallbacks[ handle ];
-									}
-								}
-
-								// If it's an abort
-								if ( isAbort ) {
-									// Abort it manually if needed
-									if ( xhr.readyState !== 4 ) {
-										xhr.abort();
-									}
-								} else {
-									status = xhr.status;
-									responseHeaders = xhr.getAllResponseHeaders();
-									responses = {};
-									xml = xhr.responseXML;
-
-									// Construct response list
-									if ( xml && xml.documentElement /* #4958 */ ) {
-										responses.xml = xml;
-									}
-									responses.text = xhr.responseText;
-
-									// Firefox throws an exception when accessing
-									// statusText for faulty cross-domain requests
-									try {
-										statusText = xhr.statusText;
-									} catch( e ) {
-										// We normalize with Webkit giving an empty statusText
-										statusText = "";
-									}
-
-									// Filter status for non standard behaviors
-
-									// If the request is local and we have data: assume a success
-									// (success with no data won't get notified, that's the best we
-									// can do given current implementations)
-									if ( !status && s.isLocal && !s.crossDomain ) {
-										status = responses.text ? 200 : 404;
-									// IE - #1450: sometimes returns 1223 when it should be 204
-									} else if ( status === 1223 ) {
-										status = 204;
-									}
-								}
-							}
-						} catch( firefoxAccessException ) {
-							if ( !isAbort ) {
-								complete( -1, firefoxAccessException );
-							}
-						}
-
-						// Call complete if needed
-						if ( responses ) {
-							complete( status, statusText, responses, responseHeaders );
-						}
-					};
-
-					// if we're in sync mode or it's in cache
-					// and has been retrieved directly (IE6 & IE7)
-					// we need to manually fire the callback
-					if ( !s.async || xhr.readyState === 4 ) {
-						callback();
-					} else {
-						handle = ++xhrId;
-						if ( xhrOnUnloadAbort ) {
-							// Create the active xhrs callbacks list if needed
-							// and attach the unload handler
-							if ( !xhrCallbacks ) {
-								xhrCallbacks = {};
-								jQuery( window ).unload( xhrOnUnloadAbort );
-							}
-							// Add to list of active xhrs callbacks
-							xhrCallbacks[ handle ] = callback;
-						}
-						xhr.onreadystatechange = callback;
-					}
-				},
-
-				abort: function() {
-					if ( callback ) {
-						callback(0,1);
-					}
-				}
-			};
-		}
-	});
-}
-
-
-
-
-var elemdisplay = {},
-	iframe, iframeDoc,
-	rfxtypes = /^(?:toggle|show|hide)$/,
-	rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
-	timerId,
-	fxAttrs = [
-		// height animations
-		[ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
-		// width animations
-		[ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
-		// opacity animations
-		[ "opacity" ]
-	],
-	fxNow,
-	requestAnimationFrame = window.webkitRequestAnimationFrame ||
-		window.mozRequestAnimationFrame ||
-		window.oRequestAnimationFrame;
-
-jQuery.fn.extend({
-	show: function( speed, easing, callback ) {
-		var elem, display;
-
-		if ( speed || speed === 0 ) {
-			return this.animate( genFx("show", 3), speed, easing, callback);
-
-		} else {
-			for ( var i = 0, j = this.length; i < j; i++ ) {
-				elem = this[i];
-
-				if ( elem.style ) {
-					display = elem.style.display;
-
-					// Reset the inline display of this element to learn if it is
-					// being hidden by cascaded rules or not
-					if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
-						display = elem.style.display = "";
-					}
-
-					// Set elements which have been overridden with display: none
-					// in a stylesheet to whatever the default browser style is
-					// for such an element
-					if ( display === "" && jQuery.css( elem, "display" ) === "none" ) {
-						jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));
-					}
-				}
-			}
-
-			// Set the display of most of the elements in a second loop
-			// to avoid the constant reflow
-			for ( i = 0; i < j; i++ ) {
-				elem = this[i];
-
-				if ( elem.style ) {
-					display = elem.style.display;
-
-					if ( display === "" || display === "none" ) {
-						elem.style.display = jQuery._data(elem, "olddisplay") || "";
-					}
-				}
-			}
-
-			return this;
-		}
-	},
-
-	hide: function( speed, easing, callback ) {
-		if ( speed || speed === 0 ) {
-			return this.animate( genFx("hide", 3), speed, easing, callback);
-
-		} else {
-			for ( var i = 0, j = this.length; i < j; i++ ) {
-				if ( this[i].style ) {
-					var display = jQuery.css( this[i], "display" );
-
-					if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {
-						jQuery._data( this[i], "olddisplay", display );
-					}
-				}
-			}
-
-			// Set the display of the elements in a second loop
-			// to avoid the constant reflow
-			for ( i = 0; i < j; i++ ) {
-				if ( this[i].style ) {
-					this[i].style.display = "none";
-				}
-			}
-
-			return this;
-		}
-	},
-
-	// Save the old toggle function
-	_toggle: jQuery.fn.toggle,
-
-	toggle: function( fn, fn2, callback ) {
-		var bool = typeof fn === "boolean";
-
-		if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
-			this._toggle.apply( this, arguments );
-
-		} else if ( fn == null || bool ) {
-			this.each(function() {
-				var state = bool ? fn : jQuery(this).is(":hidden");
-				jQuery(this)[ state ? "show" : "hide" ]();
-			});
-
-		} else {
-			this.animate(genFx("toggle", 3), fn, fn2, callback);
-		}
-
-		return this;
-	},
-
-	fadeTo: function( speed, to, easing, callback ) {
-		return this.filter(":hidden").css("opacity", 0).show().end()
-					.animate({opacity: to}, speed, easing, callback);
-	},
-
-	animate: function( prop, speed, easing, callback ) {
-		var optall = jQuery.speed(speed, easing, callback);
-
-		if ( jQuery.isEmptyObject( prop ) ) {
-			return this.each( optall.complete, [ false ] );
-		}
-
-		// Do not change referenced properties as per-property easing will be lost
-		prop = jQuery.extend( {}, prop );
-
-		return this[ optall.queue === false ? "each" : "queue" ](function() {
-			// XXX 'this' does not always have a nodeName when running the
-			// test suite
-
-			if ( optall.queue === false ) {
-				jQuery._mark( this );
-			}
-
-			var opt = jQuery.extend( {}, optall ),
-				isElement = this.nodeType === 1,
-				hidden = isElement && jQuery(this).is(":hidden"),
-				name, val, p,
-				display, e,
-				parts, start, end, unit;
-
-			// will store per property easing and be used to determine when an animation is complete
-			opt.animatedProperties = {};
-
-			for ( p in prop ) {
-
-				// property name normalization
-				name = jQuery.camelCase( p );
-				if ( p !== name ) {
-					prop[ name ] = prop[ p ];
-					delete prop[ p ];
-				}
-
-				val = prop[ name ];
-
-				// easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
-				if ( jQuery.isArray( val ) ) {
-					opt.animatedProperties[ name ] = val[ 1 ];
-					val = prop[ name ] = val[ 0 ];
-				} else {
-					opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
-				}
-
-				if ( val === "hide" && hidden || val === "show" && !hidden ) {
-					return opt.complete.call( this );
-				}
-
-				if ( isElement && ( name === "height" || name === "width" ) ) {
-					// Make sure that nothing sneaks out
-					// Record all 3 overflow attributes because IE does not
-					// change the overflow attribute when overflowX and
-					// overflowY are set to the same value
-					opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
-
-					// Set display property to inline-block for height/width
-					// animations on inline elements that are having width/height
-					// animated
-					if ( jQuery.css( this, "display" ) === "inline" &&
-							jQuery.css( this, "float" ) === "none" ) {
-						if ( !jQuery.support.inlineBlockNeedsLayout ) {
-							this.style.display = "inline-block";
-
-						} else {
-							display = defaultDisplay( this.nodeName );
-
-							// inline-level elements accept inline-block;
-							// block-level elements need to be inline with layout
-							if ( display === "inline" ) {
-								this.style.display = "inline-block";
-
-							} else {
-								this.style.display = "inline";
-								this.style.zoom = 1;
-							}
-						}
-					}
-				}
-			}
-
-			if ( opt.overflow != null ) {
-				this.style.overflow = "hidden";
-			}
-
-			for ( p in prop ) {
-				e = new jQuery.fx( this, opt, p );
-				val = prop[ p ];
-
-				if ( rfxtypes.test(val) ) {
-					e[ val === "toggle" ? hidden ? "show" : "hide" : val ]();
-
-				} else {
-					parts = rfxnum.exec( val );
-					start = e.cur();
-
-					if ( parts ) {
-						end = parseFloat( parts[2] );
-						unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
-
-						// We need to compute starting value
-						if ( unit !== "px" ) {
-							jQuery.style( this, p, (end || 1) + unit);
-							start = ((end || 1) / e.cur()) * start;
-							jQuery.style( this, p, start + unit);
-						}
-
-						// If a +=/-= token was provided, we're doing a relative animation
-						if ( parts[1] ) {
-							end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
-						}
-
-						e.custom( start, end, unit );
-
-					} else {
-						e.custom( start, val, "" );
-					}
-				}
-			}
-
-			// For JS strict compliance
-			return true;
-		});
-	},
-
-	stop: function( clearQueue, gotoEnd ) {
-		if ( clearQueue ) {
-			this.queue([]);
-		}
-
-		this.each(function() {
-			var timers = jQuery.timers,
-				i = timers.length;
-			// clear marker counters if we know they won't be
-			if ( !gotoEnd ) {
-				jQuery._unmark( true, this );
-			}
-			while ( i-- ) {
-				if ( timers[i].elem === this ) {
-					if (gotoEnd) {
-						// force the next step to be the last
-						timers[i](true);
-					}
-
-					timers.splice(i, 1);
-				}
-			}
-		});
-
-		// start the next in the queue if the last step wasn't forced
-		if ( !gotoEnd ) {
-			this.dequeue();
-		}
-
-		return this;
-	}
-
-});
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
-	setTimeout( clearFxNow, 0 );
-	return ( fxNow = jQuery.now() );
-}
-
-function clearFxNow() {
-	fxNow = undefined;
-}
-
-// Generate parameters to create a standard animation
-function genFx( type, num ) {
-	var obj = {};
-
-	jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() {
-		obj[ this ] = type;
-	});
-
-	return obj;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
-	slideDown: genFx("show", 1),
-	slideUp: genFx("hide", 1),
-	slideToggle: genFx("toggle", 1),
-	fadeIn: { opacity: "show" },
-	fadeOut: { opacity: "hide" },
-	fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
-	jQuery.fn[ name ] = function( speed, easing, callback ) {
-		return this.animate( props, speed, easing, callback );
-	};
-});
-
-jQuery.extend({
-	speed: function( speed, easing, fn ) {
-		var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : {
-			complete: fn || !fn && easing ||
-				jQuery.isFunction( speed ) && speed,
-			duration: speed,
-			easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
-		};
-
-		opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-			opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default;
-
-		// Queueing
-		opt.old = opt.complete;
-		opt.complete = function( noUnmark ) {
-			if ( jQuery.isFunction( opt.old ) ) {
-				opt.old.call( this );
-			}
-
-			if ( opt.queue !== false ) {
-				jQuery.dequeue( this );
-			} else if ( noUnmark !== false ) {
-				jQuery._unmark( this );
-			}
-		};
-
-		return opt;
-	},
-
-	easing: {
-		linear: function( p, n, firstNum, diff ) {
-			return firstNum + diff * p;
-		},
-		swing: function( p, n, firstNum, diff ) {
-			return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
-		}
-	},
-
-	timers: [],
-
-	fx: function( elem, options, prop ) {
-		this.options = options;
-		this.elem = elem;
-		this.prop = prop;
-
-		options.orig = options.orig || {};
-	}
-
-});
-
-jQuery.fx.prototype = {
-	// Simple function for setting a style value
-	update: function() {
-		if ( this.options.step ) {
-			this.options.step.call( this.elem, this.now, this );
-		}
-
-		(jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
-	},
-
-	// Get the current size
-	cur: function() {
-		if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
-			return this.elem[ this.prop ];
-		}
-
-		var parsed,
-			r = jQuery.css( this.elem, this.prop );
-		// Empty strings, null, undefined and "auto" are converted to 0,
-		// complex values such as "rotate(1rad)" are returned as is,
-		// simple values such as "10px" are parsed to Float.
-		return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
-	},
-
-	// Start an animation from one number to another
-	custom: function( from, to, unit ) {
-		var self = this,
-			fx = jQuery.fx,
-			raf;
-
-		this.startTime = fxNow || createFxNow();
-		this.start = from;
-		this.end = to;
-		this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
-		this.now = this.start;
-		this.pos = this.state = 0;
-
-		function t( gotoEnd ) {
-			return self.step(gotoEnd);
-		}
-
-		t.elem = this.elem;
-
-		if ( t() && jQuery.timers.push(t) && !timerId ) {
-			// Use requestAnimationFrame instead of setInterval if available
-			if ( requestAnimationFrame ) {
-				timerId = true;
-				raf = function() {
-					// When timerId gets set to null at any point, this stops
-					if ( timerId ) {
-						requestAnimationFrame( raf );
-						fx.tick();
-					}
-				};
-				requestAnimationFrame( raf );
-			} else {
-				timerId = setInterval( fx.tick, fx.interval );
-			}
-		}
-	},
-
-	// Simple 'show' function
-	show: function() {
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
-		this.options.show = true;
-
-		// Begin the animation
-		// Make sure that we start at a small width/height to avoid any
-		// flash of content
-		this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
-
-		// Start by showing the element
-		jQuery( this.elem ).show();
-	},
-
-	// Simple 'hide' function
-	hide: function() {
-		// Remember where we started, so that we can go back to it later
-		this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
-		this.options.hide = true;
-
-		// Begin the animation
-		this.custom(this.cur(), 0);
-	},
-
-	// Each step of an animation
-	step: function( gotoEnd ) {
-		var t = fxNow || createFxNow(),
-			done = true,
-			elem = this.elem,
-			options = this.options,
-			i, n;
-
-		if ( gotoEnd || t >= options.duration + this.startTime ) {
-			this.now = this.end;
-			this.pos = this.state = 1;
-			this.update();
-
-			options.animatedProperties[ this.prop ] = true;
-
-			for ( i in options.animatedProperties ) {
-				if ( options.animatedProperties[i] !== true ) {
-					done = false;
-				}
-			}
-
-			if ( done ) {
-				// Reset the overflow
-				if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
-
-					jQuery.each( [ "", "X", "Y" ], function (index, value) {
-						elem.style[ "overflow" + value ] = options.overflow[index];
-					});
-				}
-
-				// Hide the element if the "hide" operation was done
-				if ( options.hide ) {
-					jQuery(elem).hide();
-				}
-
-				// Reset the properties, if the item has been hidden or shown
-				if ( options.hide || options.show ) {
-					for ( var p in options.animatedProperties ) {
-						jQuery.style( elem, p, options.orig[p] );
-					}
-				}
-
-				// Execute the complete function
-				options.complete.call( elem );
-			}
-
-			return false;
-
-		} else {
-			// classical easing cannot be used with an Infinity duration
-			if ( options.duration == Infinity ) {
-				this.now = t;
-			} else {
-				n = t - this.startTime;
-				this.state = n / options.duration;
-
-				// Perform the easing function, defaults to swing
-				this.pos = jQuery.easing[ options.animatedProperties[ this.prop ] ]( this.state, n, 0, 1, options.duration );
-				this.now = this.start + ((this.end - this.start) * this.pos);
-			}
-			// Perform the next step of the animation
-			this.update();
-		}
-
-		return true;
-	}
-};
-
-jQuery.extend( jQuery.fx, {
-	tick: function() {
-		for ( var timers = jQuery.timers, i = 0 ; i < timers.length ; ++i ) {
-			if ( !timers[i]() ) {
-				timers.splice(i--, 1);
-			}
-		}
-
-		if ( !timers.length ) {
-			jQuery.fx.stop();
-		}
-	},
-
-	interval: 13,
-
-	stop: function() {
-		clearInterval( timerId );
-		timerId = null;
-	},
-
-	speeds: {
-		slow: 600,
-		fast: 200,
-		// Default speed
-		_default: 400
-	},
-
-	step: {
-		opacity: function( fx ) {
-			jQuery.style( fx.elem, "opacity", fx.now );
-		},
-
-		_default: function( fx ) {
-			if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
-				fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;
-			} else {
-				fx.elem[ fx.prop ] = fx.now;
-			}
-		}
-	}
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-	jQuery.expr.filters.animated = function( elem ) {
-		return jQuery.grep(jQuery.timers, function( fn ) {
-			return elem === fn.elem;
-		}).length;
-	};
-}
-
-// Try to restore the default display value of an element
-function defaultDisplay( nodeName ) {
-
-	if ( !elemdisplay[ nodeName ] ) {
-
-		var body = document.body,
-			elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
-			display = elem.css( "display" );
-
-		elem.remove();
-
-		// If the simple way fails,
-		// get element's real default display by attaching it to a temp iframe
-		if ( display === "none" || display === "" ) {
-			// No iframe to use yet, so create it
-			if ( !iframe ) {
-				iframe = document.createElement( "iframe" );
-				iframe.frameBorder = iframe.width = iframe.height = 0;
-			}
-
-			body.appendChild( iframe );
-
-			// Create a cacheable copy of the iframe document on first call.
-			// IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
-			// document to it; WebKit & Firefox won't allow reusing the iframe document.
-			if ( !iframeDoc || !iframe.createElement ) {
-				iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
-				iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
-				iframeDoc.close();
-			}
-
-			elem = iframeDoc.createElement( nodeName );
-
-			iframeDoc.body.appendChild( elem );
-
-			display = jQuery.css( elem, "display" );
-
-			body.removeChild( iframe );
-		}
-
-		// Store the correct default display
-		elemdisplay[ nodeName ] = display;
-	}
-
-	return elemdisplay[ nodeName ];
-}
-
-
-
-
-var rtable = /^t(?:able|d|h)$/i,
-	rroot = /^(?:body|html)$/i;
-
-if ( "getBoundingClientRect" in document.documentElement ) {
-	jQuery.fn.offset = function( options ) {
-		var elem = this[0], box;
-
-		if ( options ) {
-			return this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-		}
-
-		if ( !elem || !elem.ownerDocument ) {
-			return null;
-		}
-
-		if ( elem === elem.ownerDocument.body ) {
-			return jQuery.offset.bodyOffset( elem );
-		}
-
-		try {
-			box = elem.getBoundingClientRect();
-		} catch(e) {}
-
-		var doc = elem.ownerDocument,
-			docElem = doc.documentElement;
-
-		// Make sure we're not dealing with a disconnected DOM node
-		if ( !box || !jQuery.contains( docElem, elem ) ) {
-			return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
-		}
-
-		var body = doc.body,
-			win = getWindow(doc),
-			clientTop  = docElem.clientTop  || body.clientTop  || 0,
-			clientLeft = docElem.clientLeft || body.clientLeft || 0,
-			scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
-			scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
-			top  = box.top  + scrollTop  - clientTop,
-			left = box.left + scrollLeft - clientLeft;
-
-		return { top: top, left: left };
-	};
-
-} else {
-	jQuery.fn.offset = function( options ) {
-		var elem = this[0];
-
-		if ( options ) {
-			return this.each(function( i ) {
-				jQuery.offset.setOffset( this, options, i );
-			});
-		}
-
-		if ( !elem || !elem.ownerDocument ) {
-			return null;
-		}
-
-		if ( elem === elem.ownerDocument.body ) {
-			return jQuery.offset.bodyOffset( elem );
-		}
-
-		jQuery.offset.initialize();
-
-		var computedStyle,
-			offsetParent = elem.offsetParent,
-			prevOffsetParent = elem,
-			doc = elem.ownerDocument,
-			docElem = doc.documentElement,
-			body = doc.body,
-			defaultView = doc.defaultView,
-			prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
-			top = elem.offsetTop,
-			left = elem.offsetLeft;
-
-		while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
-			if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
-				break;
-			}
-
-			computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
-			top  -= elem.scrollTop;
-			left -= elem.scrollLeft;
-
-			if ( elem === offsetParent ) {
-				top  += elem.offsetTop;
-				left += elem.offsetLeft;
-
-				if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
-					top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-					left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-				}
-
-				prevOffsetParent = offsetParent;
-				offsetParent = elem.offsetParent;
-			}
-
-			if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
-				top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-				left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-			}
-
-			prevComputedStyle = computedStyle;
-		}
-
-		if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
-			top  += body.offsetTop;
-			left += body.offsetLeft;
-		}
-
-		if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
-			top  += Math.max( docElem.scrollTop, body.scrollTop );
-			left += Math.max( docElem.scrollLeft, body.scrollLeft );
-		}
-
-		return { top: top, left: left };
-	};
-}
-
-jQuery.offset = {
-	initialize: function() {
-		var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0,
-			html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
-
-		jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } );
-
-		container.innerHTML = html;
-		body.insertBefore( container, body.firstChild );
-		innerDiv = container.firstChild;
-		checkDiv = innerDiv.firstChild;
-		td = innerDiv.nextSibling.firstChild.firstChild;
-
-		this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
-		this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
-
-		checkDiv.style.position = "fixed";
-		checkDiv.style.top = "20px";
-
-		// safari subtracts parent border width here which is 5px
-		this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15);
-		checkDiv.style.position = checkDiv.style.top = "";
-
-		innerDiv.style.overflow = "hidden";
-		innerDiv.style.position = "relative";
-
-		this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
-
-		this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
-
-		body.removeChild( container );
-		jQuery.offset.initialize = jQuery.noop;
-	},
-
-	bodyOffset: function( body ) {
-		var top = body.offsetTop,
-			left = body.offsetLeft;
-
-		jQuery.offset.initialize();
-
-		if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
-			top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
-			left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
-		}
-
-		return { top: top, left: left };
-	},
-
-	setOffset: function( elem, options, i ) {
-		var position = jQuery.css( elem, "position" );
-
-		// set position first, in-case top/left are set even on static elem
-		if ( position === "static" ) {
-			elem.style.position = "relative";
-		}
-
-		var curElem = jQuery( elem ),
-			curOffset = curElem.offset(),
-			curCSSTop = jQuery.css( elem, "top" ),
-			curCSSLeft = jQuery.css( elem, "left" ),
-			calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
-			props = {}, curPosition = {}, curTop, curLeft;
-
-		// need to be able to calculate position if either top or left is auto and position is either absolute or fixed
-		if ( calculatePosition ) {
-			curPosition = curElem.position();
-			curTop = curPosition.top;
-			curLeft = curPosition.left;
-		} else {
-			curTop = parseFloat( curCSSTop ) || 0;
-			curLeft = parseFloat( curCSSLeft ) || 0;
-		}
-
-		if ( jQuery.isFunction( options ) ) {
-			options = options.call( elem, i, curOffset );
-		}
-
-		if (options.top != null) {
-			props.top = (options.top - curOffset.top) + curTop;
-		}
-		if (options.left != null) {
-			props.left = (options.left - curOffset.left) + curLeft;
-		}
-
-		if ( "using" in options ) {
-			options.using.call( elem, props );
-		} else {
-			curElem.css( props );
-		}
-	}
-};
-
-
-jQuery.fn.extend({
-	position: function() {
-		if ( !this[0] ) {
-			return null;
-		}
-
-		var elem = this[0],
-
-		// Get *real* offsetParent
-		offsetParent = this.offsetParent(),
-
-		// Get correct offsets
-		offset       = this.offset(),
-		parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
-
-		// Subtract element margins
-		// note: when an element has margin: auto the offsetLeft and marginLeft
-		// are the same in Safari causing offset.left to incorrectly be 0
-		offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
-		offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
-
-		// Add offsetParent borders
-		parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
-		parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
-
-		// Subtract the two offsets
-		return {
-			top:  offset.top  - parentOffset.top,
-			left: offset.left - parentOffset.left
-		};
-	},
-
-	offsetParent: function() {
-		return this.map(function() {
-			var offsetParent = this.offsetParent || document.body;
-			while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
-				offsetParent = offsetParent.offsetParent;
-			}
-			return offsetParent;
-		});
-	}
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( ["Left", "Top"], function( i, name ) {
-	var method = "scroll" + name;
-
-	jQuery.fn[ method ] = function( val ) {
-		var elem, win;
-
-		if ( val === undefined ) {
-			elem = this[ 0 ];
-
-			if ( !elem ) {
-				return null;
-			}
-
-			win = getWindow( elem );
-
-			// Return the scroll offset
-			return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
-				jQuery.support.boxModel && win.document.documentElement[ method ] ||
-					win.document.body[ method ] :
-				elem[ method ];
-		}
-
-		// Set the scroll offset
-		return this.each(function() {
-			win = getWindow( this );
-
-			if ( win ) {
-				win.scrollTo(
-					!i ? val : jQuery( win ).scrollLeft(),
-					 i ? val : jQuery( win ).scrollTop()
-				);
-
-			} else {
-				this[ method ] = val;
-			}
-		});
-	};
-});
-
-function getWindow( elem ) {
-	return jQuery.isWindow( elem ) ?
-		elem :
-		elem.nodeType === 9 ?
-			elem.defaultView || elem.parentWindow :
-			false;
-}
-
-
-
-
-// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each([ "Height", "Width" ], function( i, name ) {
-
-	var type = name.toLowerCase();
-
-	// innerHeight and innerWidth
-	jQuery.fn[ "inner" + name ] = function() {
-		var elem = this[0];
-		return elem && elem.style ?
-			parseFloat( jQuery.css( elem, type, "padding" ) ) :
-			null;
-	};
-
-	// outerHeight and outerWidth
-	jQuery.fn[ "outer" + name ] = function( margin ) {
-		var elem = this[0];
-		return elem && elem.style ?
-			parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
-			null;
-	};
-
-	jQuery.fn[ type ] = function( size ) {
-		// Get window width or height
-		var elem = this[0];
-		if ( !elem ) {
-			return size == null ? null : this;
-		}
-
-		if ( jQuery.isFunction( size ) ) {
-			return this.each(function( i ) {
-				var self = jQuery( this );
-				self[ type ]( size.call( this, i, self[ type ]() ) );
-			});
-		}
-
-		if ( jQuery.isWindow( elem ) ) {
-			// Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
-			// 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
-			var docElemProp = elem.document.documentElement[ "client" + name ];
-			return elem.document.compatMode === "CSS1Compat" && docElemProp ||
-				elem.document.body[ "client" + name ] || docElemProp;
-
-		// Get document width or height
-		} else if ( elem.nodeType === 9 ) {
-			// Either scroll[Width/Height] or offset[Width/Height], whichever is greater
-			return Math.max(
-				elem.documentElement["client" + name],
-				elem.body["scroll" + name], elem.documentElement["scroll" + name],
-				elem.body["offset" + name], elem.documentElement["offset" + name]
-			);
-
-		// Get or set width or height on the element
-		} else if ( size === undefined ) {
-			var orig = jQuery.css( elem, type ),
-				ret = parseFloat( orig );
-
-			return jQuery.isNaN( ret ) ? orig : ret;
-
-		// Set the width or height on the element (default to pixels if value is unitless)
-		} else {
-			return this.css( type, typeof size === "string" ? size : size + "px" );
-		}
-	};
-
-});
-
-
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
-})(window);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.min.js b/src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.min.js
deleted file mode 100644
index f80294e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/jquery-1.6.2.min.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/*!
- * jQuery JavaScript Library v1.6.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu Jun 30 14:16:56 2011 -0400
- */
-(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bC.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bR,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bX(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bX(a,c,d,e,"*",g));return l}function bW(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bN),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bA(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bv:bw;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bg(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function W(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(R.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(x,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(H)return H.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:|^on/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.
-shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,N(a.origType,a.selector),f.extend({},a,{handler:M,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,N(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?E:D):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=E;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=E;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=E,this.stopPropagation()},isDefaultPrevented:D,isPropagationStopped:D,isImmediatePropagationStopped:D};var F=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},G=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?G:F,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?G:F)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&K("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&K("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var H,I=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var L={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||D,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=x.exec(h),k="",j&&(k=j[0],h=h.replace(x,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,L[h]?(a.push(L[h]+k),h=h+k):h=(L[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+N(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+N(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)}s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var O=/Until$/,P=/^(?:parents|prevUntil|prevAll)/,Q=/,/,R=/^.[^:#\[\.,]*$/,S=Array.prototype.slice,T=f.expr.match.POS,U={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(W(this,a,!1),"not",a)},filter:function(a){return this.pushStack(W(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=T.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/<tbody/i,ba=/<|&#?\w+;/,bb=/<(?:script|object|embed|option|style)/i,bc=/checked\s*(?:[^=]|=\s*.checked.)/i,bd=/\/(java|ecma)script/i,be=/^\s*<!(?:\[CDATA\[|\-\-)/,bf={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bc.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bg(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bm)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bb.test(a[0])&&(f.support.checkClone||!bc.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j
-)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1></$2>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bl(k[i]);else bl(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bd.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bn=/alpha\([^)]*\)/i,bo=/opacity=([^)]*)/,bp=/([A-Z]|^ms)/g,bq=/^-?\d+(?:px)?$/i,br=/^-?\d/,bs=/^[+\-]=/,bt=/[^+\-\.\de]+/g,bu={position:"absolute",visibility:"hidden",display:"block"},bv=["Left","Right"],bw=["Top","Bottom"],bx,by,bz;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bx(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bs.test(d)&&(d=+d.replace(bt,"")+parseFloat(f.css(a,c)),h="number"),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bx)return bx(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bA(a,b,d);f.swap(a,bu,function(){e=bA(a,b,d)});return e}},set:function(a,b){if(!bq.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cs(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cr("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cr("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cs(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cr("show",1),slideUp:cr("hide",1),slideToggle:cr("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cn||cp(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!cl&&(co?(cl=!0,g=function(){cl&&(co(g),e.tick())},co(g)):cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||cp(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var ct=/^t(?:able|d|h)$/i,cu=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cv(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!ct.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/API.txt b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/API.txt
deleted file mode 100644
index 8a8dbc2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/API.txt
+++ /dev/null
@@ -1,1201 +0,0 @@
-Flot Reference
---------------
-
-Consider a call to the plot function:
-
-   var plot = $.plot(placeholder, data, options)
-
-The placeholder is a jQuery object or DOM element or jQuery expression
-that the plot will be put into. This placeholder needs to have its
-width and height set as explained in the README (go read that now if
-you haven't, it's short). The plot will modify some properties of the
-placeholder so it's recommended you simply pass in a div that you
-don't use for anything else. Make sure you check any fancy styling
-you apply to the div, e.g. background images have been reported to be a
-problem on IE 7.
-
-The format of the data is documented below, as is the available
-options. The plot object returned from the call has some methods you
-can call. These are documented separately below.
-
-Note that in general Flot gives no guarantees if you change any of the
-objects you pass in to the plot function or get out of it since
-they're not necessarily deep-copied.
-
-
-Data Format
------------
-
-The data is an array of data series:
-
-  [ series1, series2, ... ]
-
-A series can either be raw data or an object with properties. The raw
-data format is an array of points:
-
-  [ [x1, y1], [x2, y2], ... ]
-
-E.g.
-
-  [ [1, 3], [2, 14.01], [3.5, 3.14] ]
-
-Note that to simplify the internal logic in Flot both the x and y
-values must be numbers (even if specifying time series, see below for
-how to do this). This is a common problem because you might retrieve
-data from the database and serialize them directly to JSON without
-noticing the wrong type. If you're getting mysterious errors, double
-check that you're inputting numbers and not strings.
-
-If a null is specified as a point or if one of the coordinates is null
-or couldn't be converted to a number, the point is ignored when
-drawing. As a special case, a null value for lines is interpreted as a
-line segment end, i.e. the points before and after the null value are
-not connected.
-
-Lines and points take two coordinates. For filled lines and bars, you
-can specify a third coordinate which is the bottom of the filled
-area/bar (defaults to 0).
-
-The format of a single series object is as follows:
-
-  {
-    color: color or number
-    data: rawdata
-    label: string
-    lines: specific lines options
-    bars: specific bars options
-    points: specific points options
-    xaxis: number
-    yaxis: number
-    clickable: boolean
-    hoverable: boolean
-    shadowSize: number
-  }
-
-You don't have to specify any of them except the data, the rest are
-options that will get default values. Typically you'd only specify
-label and data, like this:
-
-  {
-    label: "y = 3",
-    data: [[0, 3], [10, 3]]
-  }
-
-The label is used for the legend, if you don't specify one, the series
-will not show up in the legend.
-
-If you don't specify color, the series will get a color from the
-auto-generated colors. The color is either a CSS color specification
-(like "rgb(255, 100, 123)") or an integer that specifies which of
-auto-generated colors to select, e.g. 0 will get color no. 0, etc.
-
-The latter is mostly useful if you let the user add and remove series,
-in which case you can hard-code the color index to prevent the colors
-from jumping around between the series.
-
-The "xaxis" and "yaxis" options specify which axis to use. The axes
-are numbered from 1 (default), so { yaxis: 2} means that the series
-should be plotted against the second y axis.
-
-"clickable" and "hoverable" can be set to false to disable
-interactivity for specific series if interactivity is turned on in
-the plot, see below.
-
-The rest of the options are all documented below as they are the same
-as the default options passed in via the options parameter in the plot
-commmand. When you specify them for a specific data series, they will
-override the default options for the plot for that data series.
-
-Here's a complete example of a simple data specification:
-
-  [ { label: "Foo", data: [ [10, 1], [17, -14], [30, 5] ] },
-    { label: "Bar", data: [ [11, 13], [19, 11], [30, -7] ] } ]
-
-
-Plot Options
-------------
-
-All options are completely optional. They are documented individually
-below, to change them you just specify them in an object, e.g.
-
-  var options = {
-    series: {
-      lines: { show: true },
-      points: { show: true }
-    }
-  };
-
-  $.plot(placeholder, data, options);
-
-
-Customizing the legend
-======================
-
-  legend: {
-    show: boolean
-    labelFormatter: null or (fn: string, series object -> string)
-    labelBoxBorderColor: color
-    noColumns: number
-    position: "ne" or "nw" or "se" or "sw"
-    margin: number of pixels or [x margin, y margin]
-    backgroundColor: null or color
-    backgroundOpacity: number between 0 and 1
-    container: null or jQuery object/DOM element/jQuery expression
-  }
-
-The legend is generated as a table with the data series labels and
-small label boxes with the color of the series. If you want to format
-the labels in some way, e.g. make them to links, you can pass in a
-function for "labelFormatter". Here's an example that makes them
-clickable:
-
-  labelFormatter: function(label, series) {
-    // series is the series object for the label
-    return '<a href="#' + label + '">' + label + '</a>';
-  }
-
-"noColumns" is the number of columns to divide the legend table into.
-"position" specifies the overall placement of the legend within the
-plot (top-right, top-left, etc.) and margin the distance to the plot
-edge (this can be either a number or an array of two numbers like [x,
-y]). "backgroundColor" and "backgroundOpacity" specifies the
-background. The default is a partly transparent auto-detected
-background.
-
-If you want the legend to appear somewhere else in the DOM, you can
-specify "container" as a jQuery object/expression to put the legend
-table into. The "position" and "margin" etc. options will then be
-ignored. Note that Flot will overwrite the contents of the container.
-
-
-Customizing the axes
-====================
-
-  xaxis, yaxis: {
-    show: null or true/false
-    position: "bottom" or "top" or "left" or "right"
-    mode: null or "time"
-
-    color: null or color spec
-    tickColor: null or color spec
-    
-    min: null or number
-    max: null or number
-    autoscaleMargin: null or number
-    
-    transform: null or fn: number -> number
-    inverseTransform: null or fn: number -> number
-    
-    ticks: null or number or ticks array or (fn: range -> ticks array)
-    tickSize: number or array
-    minTickSize: number or array
-    tickFormatter: (fn: number, object -> string) or string
-    tickDecimals: null or number
-
-    labelWidth: null or number
-    labelHeight: null or number
-    reserveSpace: null or true
-    
-    tickLength: null or number
-
-    alignTicksWithAxis: null or number
-  }
-
-All axes have the same kind of options. The following describes how to
-configure one axis, see below for what to do if you've got more than
-one x axis or y axis.
-
-If you don't set the "show" option (i.e. it is null), visibility is
-auto-detected, i.e. the axis will show up if there's data associated
-with it. You can override this by setting the "show" option to true or
-false.
-
-The "position" option specifies where the axis is placed, bottom or
-top for x axes, left or right for y axes. The "mode" option determines
-how the data is interpreted, the default of null means as decimal
-numbers. Use "time" for time series data, see the time series data
-section.
-
-The "color" option determines the color of the labels and ticks for
-the axis (default is the grid color). For more fine-grained control
-you can also set the color of the ticks separately with "tickColor"
-(otherwise it's autogenerated as the base color with some
-transparency).
-
-The options "min"/"max" are the precise minimum/maximum value on the
-scale. If you don't specify either of them, a value will automatically
-be chosen based on the minimum/maximum data values. Note that Flot
-always examines all the data values you feed to it, even if a
-restriction on another axis may make some of them invisible (this
-makes interactive use more stable).
-
-The "autoscaleMargin" is a bit esoteric: it's the fraction of margin
-that the scaling algorithm will add to avoid that the outermost points
-ends up on the grid border. Note that this margin is only applied when
-a min or max value is not explicitly set. If a margin is specified,
-the plot will furthermore extend the axis end-point to the nearest
-whole tick. The default value is "null" for the x axes and 0.02 for y
-axes which seems appropriate for most cases.
-
-"transform" and "inverseTransform" are callbacks you can put in to
-change the way the data is drawn. You can design a function to
-compress or expand certain parts of the axis non-linearly, e.g.
-suppress weekends or compress far away points with a logarithm or some
-other means. When Flot draws the plot, each value is first put through
-the transform function. Here's an example, the x axis can be turned
-into a natural logarithm axis with the following code:
-
-  xaxis: {
-    transform: function (v) { return Math.log(v); },
-    inverseTransform: function (v) { return Math.exp(v); }
-  }
-
-Similarly, for reversing the y axis so the values appear in inverse
-order:
-  
-  yaxis: {
-    transform: function (v) { return -v; },
-    inverseTransform: function (v) { return -v; }
-  }
-
-Note that for finding extrema, Flot assumes that the transform
-function does not reorder values (it should be monotone).
-
-The inverseTransform is simply the inverse of the transform function
-(so v == inverseTransform(transform(v)) for all relevant v). It is
-required for converting from canvas coordinates to data coordinates,
-e.g. for a mouse interaction where a certain pixel is clicked. If you
-don't use any interactive features of Flot, you may not need it.
-
-
-The rest of the options deal with the ticks.
-
-If you don't specify any ticks, a tick generator algorithm will make
-some for you. The algorithm has two passes. It first estimates how
-many ticks would be reasonable and uses this number to compute a nice
-round tick interval size. Then it generates the ticks.
-
-You can specify how many ticks the algorithm aims for by setting
-"ticks" to a number. The algorithm always tries to generate reasonably
-round tick values so even if you ask for three ticks, you might get
-five if that fits better with the rounding. If you don't want any
-ticks at all, set "ticks" to 0 or an empty array.
-
-Another option is to skip the rounding part and directly set the tick
-interval size with "tickSize". If you set it to 2, you'll get ticks at
-2, 4, 6, etc. Alternatively, you can specify that you just don't want
-ticks at a size less than a specific tick size with "minTickSize".
-Note that for time series, the format is an array like [2, "month"],
-see the next section.
-
-If you want to completely override the tick algorithm, you can specify
-an array for "ticks", either like this:
-
-  ticks: [0, 1.2, 2.4]
-
-Or like this where the labels are also customized:
-
-  ticks: [[0, "zero"], [1.2, "one mark"], [2.4, "two marks"]]
-
-You can mix the two if you like.
-  
-For extra flexibility you can specify a function as the "ticks"
-parameter. The function will be called with an object with the axis
-min and max and should return a ticks array. Here's a simplistic tick
-generator that spits out intervals of pi, suitable for use on the x
-axis for trigonometric functions:
-
-  function piTickGenerator(axis) {
-    var res = [], i = Math.floor(axis.min / Math.PI);
-    do {
-      var v = i * Math.PI;
-      res.push([v, i + "\u03c0"]);
-      ++i;
-    } while (v < axis.max);
-    
-    return res;
-  }
-
-You can control how the ticks look like with "tickDecimals", the
-number of decimals to display (default is auto-detected).
-
-Alternatively, for ultimate control over how ticks are formatted you can
-provide a function to "tickFormatter". The function is passed two
-parameters, the tick value and an axis object with information, and
-should return a string. The default formatter looks like this:
-
-  function formatter(val, axis) {
-    return val.toFixed(axis.tickDecimals);
-  }
-
-The axis object has "min" and "max" with the range of the axis,
-"tickDecimals" with the number of decimals to round the value to and
-"tickSize" with the size of the interval between ticks as calculated
-by the automatic axis scaling algorithm (or specified by you). Here's
-an example of a custom formatter:
-
-  function suffixFormatter(val, axis) {
-    if (val > 1000000)
-      return (val / 1000000).toFixed(axis.tickDecimals) + " MB";
-    else if (val > 1000)
-      return (val / 1000).toFixed(axis.tickDecimals) + " kB";
-    else
-      return val.toFixed(axis.tickDecimals) + " B";
-  }
-
-"labelWidth" and "labelHeight" specifies a fixed size of the tick
-labels in pixels. They're useful in case you need to align several
-plots. "reserveSpace" means that even if an axis isn't shown, Flot
-should reserve space for it - it is useful in combination with
-labelWidth and labelHeight for aligning multi-axis charts.
-
-"tickLength" is the length of the tick lines in pixels. By default, the
-innermost axes will have ticks that extend all across the plot, while
-any extra axes use small ticks. A value of null means use the default,
-while a number means small ticks of that length - set it to 0 to hide
-the lines completely.
-
-If you set "alignTicksWithAxis" to the number of another axis, e.g.
-alignTicksWithAxis: 1, Flot will ensure that the autogenerated ticks
-of this axis are aligned with the ticks of the other axis. This may
-improve the looks, e.g. if you have one y axis to the left and one to
-the right, because the grid lines will then match the ticks in both
-ends. The trade-off is that the forced ticks won't necessarily be at
-natural places.
-
-
-Multiple axes
-=============
-
-If you need more than one x axis or y axis, you need to specify for
-each data series which axis they are to use, as described under the
-format of the data series, e.g. { data: [...], yaxis: 2 } specifies
-that a series should be plotted against the second y axis.
-
-To actually configure that axis, you can't use the xaxis/yaxis options
-directly - instead there are two arrays in the options:
-
-   xaxes: []
-   yaxes: []
-
-Here's an example of configuring a single x axis and two y axes (we
-can leave options of the first y axis empty as the defaults are fine):
-
-  {
-    xaxes: [ { position: "top" } ],
-    yaxes: [ { }, { position: "right", min: 20 } ]
-  }
-
-The arrays get their default values from the xaxis/yaxis settings, so
-say you want to have all y axes start at zero, you can simply specify
-yaxis: { min: 0 } instead of adding a min parameter to all the axes.
-
-Generally, the various interfaces in Flot dealing with data points
-either accept an xaxis/yaxis parameter to specify which axis number to
-use (starting from 1), or lets you specify the coordinate directly as
-x2/x3/... or x2axis/x3axis/... instead of "x" or "xaxis".
-
-  
-Time series data
-================
-
-Time series are a bit more difficult than scalar data because
-calendars don't follow a simple base 10 system. For many cases, Flot
-abstracts most of this away, but it can still be a bit difficult to
-get the data into Flot. So we'll first discuss the data format.
-
-The time series support in Flot is based on Javascript timestamps,
-i.e. everywhere a time value is expected or handed over, a Javascript
-timestamp number is used. This is a number, not a Date object. A
-Javascript timestamp is the number of milliseconds since January 1,
-1970 00:00:00 UTC. This is almost the same as Unix timestamps, except it's
-in milliseconds, so remember to multiply by 1000!
-
-You can see a timestamp like this
-
-  alert((new Date()).getTime())
-
-Normally you want the timestamps to be displayed according to a
-certain time zone, usually the time zone in which the data has been
-produced. However, Flot always displays timestamps according to UTC.
-It has to as the only alternative with core Javascript is to interpret
-the timestamps according to the time zone that the visitor is in,
-which means that the ticks will shift unpredictably with the time zone
-and daylight savings of each visitor.
-
-So given that there's no good support for custom time zones in
-Javascript, you'll have to take care of this server-side.
-
-The easiest way to think about it is to pretend that the data
-production time zone is UTC, even if it isn't. So if you have a
-datapoint at 2002-02-20 08:00, you can generate a timestamp for eight
-o'clock UTC even if it really happened eight o'clock UTC+0200.
-
-In PHP you can get an appropriate timestamp with
-'strtotime("2002-02-20 UTC") * 1000', in Python with
-'calendar.timegm(datetime_object.timetuple()) * 1000', in .NET with
-something like:
-
-  public static int GetJavascriptTimestamp(System.DateTime input)
-  {
-    System.TimeSpan span = new System.TimeSpan(System.DateTime.Parse("1/1/1970").Ticks);
-    System.DateTime time = input.Subtract(span);
-    return (long)(time.Ticks / 10000);
-  }
-
-Javascript also has some support for parsing date strings, so it is
-possible to generate the timestamps manually client-side.
-
-If you've already got the real UTC timestamp, it's too late to use the
-pretend trick described above. But you can fix up the timestamps by
-adding the time zone offset, e.g. for UTC+0200 you would add 2 hours
-to the UTC timestamp you got. Then it'll look right on the plot. Most
-programming environments have some means of getting the timezone
-offset for a specific date (note that you need to get the offset for
-each individual timestamp to account for daylight savings).
-
-Once you've gotten the timestamps into the data and specified "time"
-as the axis mode, Flot will automatically generate relevant ticks and
-format them. As always, you can tweak the ticks via the "ticks" option
-- just remember that the values should be timestamps (numbers), not
-Date objects.
-
-Tick generation and formatting can also be controlled separately
-through the following axis options:
-
-  minTickSize: array
-  timeformat: null or format string
-  monthNames: null or array of size 12 of strings
-  twelveHourClock: boolean
-
-Here "timeformat" is a format string to use. You might use it like
-this:
-
-  xaxis: {
-    mode: "time"
-    timeformat: "%y/%m/%d"
-  }
-  
-This will result in tick labels like "2000/12/24". The following
-specifiers are supported
-
-  %h: hours
-  %H: hours (left-padded with a zero)
-  %M: minutes (left-padded with a zero)
-  %S: seconds (left-padded with a zero)
-  %d: day of month (1-31), use %0d for zero-padding
-  %m: month (1-12), use %0m for zero-padding
-  %y: year (four digits)
-  %b: month name (customizable)
-  %p: am/pm, additionally switches %h/%H to 12 hour instead of 24
-  %P: AM/PM (uppercase version of %p)
-
-Inserting a zero like %0m or %0d means that the specifier will be
-left-padded with a zero if it's only single-digit. So %y-%0m-%0d
-results in unambigious ISO timestamps like 2007-05-10 (for May 10th).
-
-You can customize the month names with the "monthNames" option. For
-instance, for Danish you might specify:
-
-  monthNames: ["jan", "feb", "mar", "apr", "maj", "jun", "jul", "aug", "sep", "okt", "nov", "dec"]
-
-If you set "twelveHourClock" to true, the autogenerated timestamps
-will use 12 hour AM/PM timestamps instead of 24 hour.
-  
-The format string and month names are used by a very simple built-in
-format function that takes a date object, a format string (and
-optionally an array of month names) and returns the formatted string.
-If needed, you can access it as $.plot.formatDate(date, formatstring,
-monthNames) or even replace it with another more advanced function
-from a date library if you're feeling adventurous.
-
-If everything else fails, you can control the formatting by specifying
-a custom tick formatter function as usual. Here's a simple example
-which will format December 24 as 24/12:
-
-  tickFormatter: function (val, axis) {
-    var d = new Date(val);
-    return d.getUTCDate() + "/" + (d.getUTCMonth() + 1);
-  }
-
-Note that for the time mode "tickSize" and "minTickSize" are a bit
-special in that they are arrays on the form "[value, unit]" where unit
-is one of "second", "minute", "hour", "day", "month" and "year". So
-you can specify
-
-  minTickSize: [1, "month"]
-
-to get a tick interval size of at least 1 month and correspondingly,
-if axis.tickSize is [2, "day"] in the tick formatter, the ticks have
-been produced with two days in-between.
-
-
-
-Customizing the data series
-===========================
-
-  series: {
-    lines, points, bars: {
-      show: boolean
-      lineWidth: number
-      fill: boolean or number
-      fillColor: null or color/gradient
-    }
-
-    points: {
-      radius: number
-      symbol: "circle" or function
-    }
-
-    bars: {
-      barWidth: number
-      align: "left" or "center"
-      horizontal: boolean
-    }
-
-    lines: {
-      steps: boolean
-    }
-
-    shadowSize: number
-  }
-  
-  colors: [ color1, color2, ... ]
-
-The options inside "series: {}" are copied to each of the series. So
-you can specify that all series should have bars by putting it in the
-global options, or override it for individual series by specifying
-bars in a particular the series object in the array of data.
-  
-The most important options are "lines", "points" and "bars" that
-specify whether and how lines, points and bars should be shown for
-each data series. In case you don't specify anything at all, Flot will
-default to showing lines (you can turn this off with
-lines: { show: false }). You can specify the various types
-independently of each other, and Flot will happily draw each of them
-in turn (this is probably only useful for lines and points), e.g.
-
-  var options = {
-    series: {
-      lines: { show: true, fill: true, fillColor: "rgba(255, 255, 255, 0.8)" },
-      points: { show: true, fill: false }
-    }
-  };
-
-"lineWidth" is the thickness of the line or outline in pixels. You can
-set it to 0 to prevent a line or outline from being drawn; this will
-also hide the shadow.
-
-"fill" is whether the shape should be filled. For lines, this produces
-area graphs. You can use "fillColor" to specify the color of the fill.
-If "fillColor" evaluates to false (default for everything except
-points which are filled with white), the fill color is auto-set to the
-color of the data series. You can adjust the opacity of the fill by
-setting fill to a number between 0 (fully transparent) and 1 (fully
-opaque).
-
-For bars, fillColor can be a gradient, see the gradient documentation
-below. "barWidth" is the width of the bars in units of the x axis (or
-the y axis if "horizontal" is true), contrary to most other measures
-that are specified in pixels. For instance, for time series the unit
-is milliseconds so 24 * 60 * 60 * 1000 produces bars with the width of
-a day. "align" specifies whether a bar should be left-aligned
-(default) or centered on top of the value it represents. When
-"horizontal" is on, the bars are drawn horizontally, i.e. from the y
-axis instead of the x axis; note that the bar end points are still
-defined in the same way so you'll probably want to swap the
-coordinates if you've been plotting vertical bars first.
-
-For lines, "steps" specifies whether two adjacent data points are
-connected with a straight (possibly diagonal) line or with first a
-horizontal and then a vertical line. Note that this transforms the
-data by adding extra points.
-
-For points, you can specify the radius and the symbol. The only
-built-in symbol type is circles, for other types you can use a plugin
-or define them yourself by specifying a callback:
-
-  function cross(ctx, x, y, radius, shadow) {
-      var size = radius * Math.sqrt(Math.PI) / 2;
-      ctx.moveTo(x - size, y - size);
-      ctx.lineTo(x + size, y + size);
-      ctx.moveTo(x - size, y + size);
-      ctx.lineTo(x + size, y - size);
-  }
-
-The parameters are the drawing context, x and y coordinates of the
-center of the point, a radius which corresponds to what the circle
-would have used and whether the call is to draw a shadow (due to
-limited canvas support, shadows are currently faked through extra
-draws). It's good practice to ensure that the area covered by the
-symbol is the same as for the circle with the given radius, this
-ensures that all symbols have approximately the same visual weight.
-
-"shadowSize" is the default size of shadows in pixels. Set it to 0 to
-remove shadows.
-
-The "colors" array specifies a default color theme to get colors for
-the data series from. You can specify as many colors as you like, like
-this:
-
-  colors: ["#d18b2c", "#dba255", "#919733"]
-
-If there are more data series than colors, Flot will try to generate
-extra colors by lightening and darkening colors in the theme.
-
-
-Customizing the grid
-====================
-
-  grid: {
-    show: boolean
-    aboveData: boolean
-    color: color
-    backgroundColor: color/gradient or null
-    labelMargin: number
-    axisMargin: number
-    markings: array of markings or (fn: axes -> array of markings)
-    borderWidth: number
-    borderColor: color or null
-    minBorderMargin: number or null
-    clickable: boolean
-    hoverable: boolean
-    autoHighlight: boolean
-    mouseActiveRadius: number
-  }
-
-The grid is the thing with the axes and a number of ticks. Many of the
-things in the grid are configured under the individual axes, but not
-all. "color" is the color of the grid itself whereas "backgroundColor"
-specifies the background color inside the grid area, here null means
-that the background is transparent. You can also set a gradient, see
-the gradient documentation below.
-
-You can turn off the whole grid including tick labels by setting
-"show" to false. "aboveData" determines whether the grid is drawn
-above the data or below (below is default).
-
-"labelMargin" is the space in pixels between tick labels and axis
-line, and "axisMargin" is the space in pixels between axes when there
-are two next to each other. Note that you can style the tick labels
-with CSS, e.g. to change the color. They have class "tickLabel".
-
-"borderWidth" is the width of the border around the plot. Set it to 0
-to disable the border. You can also set "borderColor" if you want the
-border to have a different color than the grid lines.
-"minBorderMargin" controls the default minimum margin around the
-border - it's used to make sure that points aren't accidentally
-clipped by the canvas edge so by default the value is computed from
-the point radius.
-
-"markings" is used to draw simple lines and rectangular areas in the
-background of the plot. You can either specify an array of ranges on
-the form { xaxis: { from, to }, yaxis: { from, to } } (with multiple
-axes, you can specify coordinates for other axes instead, e.g. as
-x2axis/x3axis/...) or with a function that returns such an array given
-the axes for the plot in an object as the first parameter.
-
-You can set the color of markings by specifying "color" in the ranges
-object. Here's an example array:
-
-  markings: [ { xaxis: { from: 0, to: 2 }, yaxis: { from: 10, to: 10 }, color: "#bb0000" }, ... ]
-
-If you leave out one of the values, that value is assumed to go to the
-border of the plot. So for example if you only specify { xaxis: {
-from: 0, to: 2 } } it means an area that extends from the top to the
-bottom of the plot in the x range 0-2.
-
-A line is drawn if from and to are the same, e.g.
-
-  markings: [ { yaxis: { from: 1, to: 1 } }, ... ]
-
-would draw a line parallel to the x axis at y = 1. You can control the
-line width with "lineWidth" in the range object.
-
-An example function that makes vertical stripes might look like this:
-
-  markings: function (axes) {
-    var markings = [];
-    for (var x = Math.floor(axes.xaxis.min); x < axes.xaxis.max; x += 2)
-      markings.push({ xaxis: { from: x, to: x + 1 } });
-    return markings;
-  }
-
-
-If you set "clickable" to true, the plot will listen for click events
-on the plot area and fire a "plotclick" event on the placeholder with
-a position and a nearby data item object as parameters. The coordinates
-are available both in the unit of the axes (not in pixels) and in
-global screen coordinates.
-
-Likewise, if you set "hoverable" to true, the plot will listen for
-mouse move events on the plot area and fire a "plothover" event with
-the same parameters as the "plotclick" event. If "autoHighlight" is
-true (the default), nearby data items are highlighted automatically.
-If needed, you can disable highlighting and control it yourself with
-the highlight/unhighlight plot methods described elsewhere.
-
-You can use "plotclick" and "plothover" events like this:
-
-    $.plot($("#placeholder"), [ d ], { grid: { clickable: true } });
-
-    $("#placeholder").bind("plotclick", function (event, pos, item) {
-        alert("You clicked at " + pos.x + ", " + pos.y);
-        // axis coordinates for other axes, if present, are in pos.x2, pos.x3, ...
-        // if you need global screen coordinates, they are pos.pageX, pos.pageY
-
-        if (item) {
-          highlight(item.series, item.datapoint);
-          alert("You clicked a point!");
-        }
-    });
-
-The item object in this example is either null or a nearby object on the form:
-
-  item: {
-      datapoint: the point, e.g. [0, 2]
-      dataIndex: the index of the point in the data array
-      series: the series object
-      seriesIndex: the index of the series
-      pageX, pageY: the global screen coordinates of the point
-  }
-
-For instance, if you have specified the data like this 
-
-    $.plot($("#placeholder"), [ { label: "Foo", data: [[0, 10], [7, 3]] } ], ...);
-
-and the mouse is near the point (7, 3), "datapoint" is [7, 3],
-"dataIndex" will be 1, "series" is a normalized series object with
-among other things the "Foo" label in series.label and the color in
-series.color, and "seriesIndex" is 0. Note that plugins and options
-that transform the data can shift the indexes from what you specified
-in the original data array.
-
-If you use the above events to update some other information and want
-to clear out that info in case the mouse goes away, you'll probably
-also need to listen to "mouseout" events on the placeholder div.
-
-"mouseActiveRadius" specifies how far the mouse can be from an item
-and still activate it. If there are two or more points within this
-radius, Flot chooses the closest item. For bars, the top-most bar
-(from the latest specified data series) is chosen.
-
-If you want to disable interactivity for a specific data series, you
-can set "hoverable" and "clickable" to false in the options for that
-series, like this { data: [...], label: "Foo", clickable: false }.
-
-
-Specifying gradients
-====================
-
-A gradient is specified like this:
-
-  { colors: [ color1, color2, ... ] }
-
-For instance, you might specify a background on the grid going from
-black to gray like this:
-
-  grid: {
-    backgroundColor: { colors: ["#000", "#999"] }
-  }
-
-For the series you can specify the gradient as an object that
-specifies the scaling of the brightness and the opacity of the series
-color, e.g.
-
-  { colors: [{ opacity: 0.8 }, { brightness: 0.6, opacity: 0.8 } ] }
-
-where the first color simply has its alpha scaled, whereas the second
-is also darkened. For instance, for bars the following makes the bars
-gradually disappear, without outline:
-
-  bars: {
-      show: true,
-      lineWidth: 0,
-      fill: true,
-      fillColor: { colors: [ { opacity: 0.8 }, { opacity: 0.1 } ] }
-  }
-  
-Flot currently only supports vertical gradients drawn from top to
-bottom because that's what works with IE.
-
-
-Plot Methods
-------------
-
-The Plot object returned from the plot function has some methods you
-can call:
-
-  - highlight(series, datapoint)
-
-    Highlight a specific datapoint in the data series. You can either
-    specify the actual objects, e.g. if you got them from a
-    "plotclick" event, or you can specify the indices, e.g.
-    highlight(1, 3) to highlight the fourth point in the second series
-    (remember, zero-based indexing).
-
-  
-  - unhighlight(series, datapoint) or unhighlight()
-
-    Remove the highlighting of the point, same parameters as
-    highlight.
-
-    If you call unhighlight with no parameters, e.g. as
-    plot.unhighlight(), all current highlights are removed.
-
-
-  - setData(data)
-
-    You can use this to reset the data used. Note that axis scaling,
-    ticks, legend etc. will not be recomputed (use setupGrid() to do
-    that). You'll probably want to call draw() afterwards.
-
-    You can use this function to speed up redrawing a small plot if
-    you know that the axes won't change. Put in the new data with
-    setData(newdata), call draw(), and you're good to go. Note that
-    for large datasets, almost all the time is consumed in draw()
-    plotting the data so in this case don't bother.
-
-    
-  - setupGrid()
-
-    Recalculate and set axis scaling, ticks, legend etc.
-
-    Note that because of the drawing model of the canvas, this
-    function will immediately redraw (actually reinsert in the DOM)
-    the labels and the legend, but not the actual tick lines because
-    they're drawn on the canvas. You need to call draw() to get the
-    canvas redrawn.
-    
-  - draw()
-
-    Redraws the plot canvas.
-
-  - triggerRedrawOverlay()
-
-    Schedules an update of an overlay canvas used for drawing
-    interactive things like a selection and point highlights. This
-    is mostly useful for writing plugins. The redraw doesn't happen
-    immediately, instead a timer is set to catch multiple successive
-    redraws (e.g. from a mousemove). You can get to the overlay by
-    setting up a drawOverlay hook.
-
-  - width()/height()
-
-    Gets the width and height of the plotting area inside the grid.
-    This is smaller than the canvas or placeholder dimensions as some
-    extra space is needed (e.g. for labels).
-
-  - offset()
-
-    Returns the offset of the plotting area inside the grid relative
-    to the document, useful for instance for calculating mouse
-    positions (event.pageX/Y minus this offset is the pixel position
-    inside the plot).
-
-  - pointOffset({ x: xpos, y: ypos })
-
-    Returns the calculated offset of the data point at (x, y) in data
-    space within the placeholder div. If you are working with multiple axes, you
-    can specify the x and y axis references, e.g. 
-
-      o = pointOffset({ x: xpos, y: ypos, xaxis: 2, yaxis: 3 })
-      // o.left and o.top now contains the offset within the div
-
-  - resize()
-
-    Tells Flot to resize the drawing canvas to the size of the
-    placeholder. You need to run setupGrid() and draw() afterwards as
-    canvas resizing is a destructive operation. This is used
-    internally by the resize plugin.
-
-  - shutdown()
-
-    Cleans up any event handlers Flot has currently registered. This
-    is used internally.
-
-
-There are also some members that let you peek inside the internal
-workings of Flot which is useful in some cases. Note that if you change
-something in the objects returned, you're changing the objects used by
-Flot to keep track of its state, so be careful.
-
-  - getData()
-
-    Returns an array of the data series currently used in normalized
-    form with missing settings filled in according to the global
-    options. So for instance to find out what color Flot has assigned
-    to the data series, you could do this:
-
-      var series = plot.getData();
-      for (var i = 0; i < series.length; ++i)
-        alert(series[i].color);
-
-    A notable other interesting field besides color is datapoints
-    which has a field "points" with the normalized data points in a
-    flat array (the field "pointsize" is the increment in the flat
-    array to get to the next point so for a dataset consisting only of
-    (x,y) pairs it would be 2).
-
-  - getAxes()
-
-    Gets an object with the axes. The axes are returned as the
-    attributes of the object, so for instance getAxes().xaxis is the
-    x axis.
-
-    Various things are stuffed inside an axis object, e.g. you could
-    use getAxes().xaxis.ticks to find out what the ticks are for the
-    xaxis. Two other useful attributes are p2c and c2p, functions for
-    transforming from data point space to the canvas plot space and
-    back. Both returns values that are offset with the plot offset.
-    Check the Flot source code for the complete set of attributes (or
-    output an axis with console.log() and inspect it).
-
-    With multiple axes, the extra axes are returned as x2axis, x3axis,
-    etc., e.g. getAxes().y2axis is the second y axis. You can check
-    y2axis.used to see whether the axis is associated with any data
-    points and y2axis.show to see if it is currently shown. 
- 
-  - getPlaceholder()
-
-    Returns placeholder that the plot was put into. This can be useful
-    for plugins for adding DOM elements or firing events.
-
-  - getCanvas()
-
-    Returns the canvas used for drawing in case you need to hack on it
-    yourself. You'll probably need to get the plot offset too.
-  
-  - getPlotOffset()
-
-    Gets the offset that the grid has within the canvas as an object
-    with distances from the canvas edges as "left", "right", "top",
-    "bottom". I.e., if you draw a circle on the canvas with the center
-    placed at (left, top), its center will be at the top-most, left
-    corner of the grid.
-
-  - getOptions()
-
-    Gets the options for the plot, normalized, with default values
-    filled in. You get a reference to actual values used by Flot, so
-    if you modify the values in here, Flot will use the new values.
-    If you change something, you probably have to call draw() or
-    setupGrid() or triggerRedrawOverlay() to see the change.
-    
-
-Hooks
-=====
-
-In addition to the public methods, the Plot object also has some hooks
-that can be used to modify the plotting process. You can install a
-callback function at various points in the process, the function then
-gets access to the internal data structures in Flot.
-
-Here's an overview of the phases Flot goes through:
-
-  1. Plugin initialization, parsing options
-  
-  2. Constructing the canvases used for drawing
-
-  3. Set data: parsing data specification, calculating colors,
-     copying raw data points into internal format,
-     normalizing them, finding max/min for axis auto-scaling
-
-  4. Grid setup: calculating axis spacing, ticks, inserting tick
-     labels, the legend
-
-  5. Draw: drawing the grid, drawing each of the series in turn
-
-  6. Setting up event handling for interactive features
-
-  7. Responding to events, if any
-
-  8. Shutdown: this mostly happens in case a plot is overwritten 
-
-Each hook is simply a function which is put in the appropriate array.
-You can add them through the "hooks" option, and they are also available
-after the plot is constructed as the "hooks" attribute on the returned
-plot object, e.g.
-
-  // define a simple draw hook
-  function hellohook(plot, canvascontext) { alert("hello!"); };
-
-  // pass it in, in an array since we might want to specify several
-  var plot = $.plot(placeholder, data, { hooks: { draw: [hellohook] } });
-
-  // we can now find it again in plot.hooks.draw[0] unless a plugin
-  // has added other hooks
-
-The available hooks are described below. All hook callbacks get the
-plot object as first parameter. You can find some examples of defined
-hooks in the plugins bundled with Flot.
-
- - processOptions  [phase 1]
-
-   function(plot, options)
-   
-   Called after Flot has parsed and merged options. Useful in the
-   instance where customizations beyond simple merging of default
-   values is needed. A plugin might use it to detect that it has been
-   enabled and then turn on or off other options.
-
- 
- - processRawData  [phase 3]
-
-   function(plot, series, data, datapoints)
- 
-   Called before Flot copies and normalizes the raw data for the given
-   series. If the function fills in datapoints.points with normalized
-   points and sets datapoints.pointsize to the size of the points,
-   Flot will skip the copying/normalization step for this series.
-   
-   In any case, you might be interested in setting datapoints.format,
-   an array of objects for specifying how a point is normalized and
-   how it interferes with axis scaling.
-
-   The default format array for points is something along the lines of:
-
-     [
-       { x: true, number: true, required: true },
-       { y: true, number: true, required: true }
-     ]
-
-   The first object means that for the first coordinate it should be
-   taken into account when scaling the x axis, that it must be a
-   number, and that it is required - so if it is null or cannot be
-   converted to a number, the whole point will be zeroed out with
-   nulls. Beyond these you can also specify "defaultValue", a value to
-   use if the coordinate is null. This is for instance handy for bars
-   where one can omit the third coordinate (the bottom of the bar)
-   which then defaults to 0.
-
-
- - processDatapoints  [phase 3]
-
-   function(plot, series, datapoints)
- 
-   Called after normalization of the given series but before finding
-   min/max of the data points. This hook is useful for implementing data
-   transformations. "datapoints" contains the normalized data points in
-   a flat array as datapoints.points with the size of a single point
-   given in datapoints.pointsize. Here's a simple transform that
-   multiplies all y coordinates by 2:
-
-     function multiply(plot, series, datapoints) {
-         var points = datapoints.points, ps = datapoints.pointsize;
-         for (var i = 0; i < points.length; i += ps)
-             points[i + 1] *= 2;
-     }
-
-   Note that you must leave datapoints in a good condition as Flot
-   doesn't check it or do any normalization on it afterwards.
-
-
- - drawSeries  [phase 5]
-
-   function(plot, canvascontext, series)
-
-   Hook for custom drawing of a single series. Called just before the
-   standard drawing routine has been called in the loop that draws
-   each series.
-   
- 
- - draw  [phase 5]
-
-   function(plot, canvascontext)
- 
-   Hook for drawing on the canvas. Called after the grid is drawn
-   (unless it's disabled or grid.aboveData is set) and the series have
-   been plotted (in case any points, lines or bars have been turned
-   on). For examples of how to draw things, look at the source code.
-   
- 
- - bindEvents  [phase 6]
-
-   function(plot, eventHolder)
-
-   Called after Flot has setup its event handlers. Should set any
-   necessary event handlers on eventHolder, a jQuery object with the
-   canvas, e.g.
-
-     function (plot, eventHolder) {
-         eventHolder.mousedown(function (e) {
-             alert("You pressed the mouse at " + e.pageX + " " + e.pageY);
-         });
-     }
-
-   Interesting events include click, mousemove, mouseup/down. You can
-   use all jQuery events. Usually, the event handlers will update the
-   state by drawing something (add a drawOverlay hook and call
-   triggerRedrawOverlay) or firing an externally visible event for
-   user code. See the crosshair plugin for an example.
-     
-   Currently, eventHolder actually contains both the static canvas
-   used for the plot itself and the overlay canvas used for
-   interactive features because some versions of IE get the stacking
-   order wrong. The hook only gets one event, though (either for the
-   overlay or for the static canvas).
-
-   Note that custom plot events generated by Flot are not generated on
-   eventHolder, but on the div placeholder supplied as the first
-   argument to the plot call. You can get that with
-   plot.getPlaceholder() - that's probably also the one you should use
-   if you need to fire a custom event.
-
-
- - drawOverlay  [phase 7]
-
-   function (plot, canvascontext)
-
-   The drawOverlay hook is used for interactive things that need a
-   canvas to draw on. The model currently used by Flot works the way
-   that an extra overlay canvas is positioned on top of the static
-   canvas. This overlay is cleared and then completely redrawn
-   whenever something interesting happens. This hook is called when
-   the overlay canvas is to be redrawn.
-
-   "canvascontext" is the 2D context of the overlay canvas. You can
-   use this to draw things. You'll most likely need some of the
-   metrics computed by Flot, e.g. plot.width()/plot.height(). See the
-   crosshair plugin for an example.
-
-
- - shutdown  [phase 8]
-
-   function (plot, eventHolder)
-
-   Run when plot.shutdown() is called, which usually only happens in
-   case a plot is overwritten by a new plot. If you're writing a
-   plugin that adds extra DOM elements or event handlers, you should
-   add a callback to clean up after you. Take a look at the section in
-   PLUGINS.txt for more info.
-
-   
-Plugins
--------
-
-Plugins extend the functionality of Flot. To use a plugin, simply
-include its Javascript file after Flot in the HTML page.
-
-If you're worried about download size/latency, you can concatenate all
-the plugins you use, and Flot itself for that matter, into one big file
-(make sure you get the order right), then optionally run it through a
-Javascript minifier such as YUI Compressor.
-
-Here's a brief explanation of how the plugin plumbings work:
-
-Each plugin registers itself in the global array $.plot.plugins. When
-you make a new plot object with $.plot, Flot goes through this array
-calling the "init" function of each plugin and merging default options
-from the "option" attribute of the plugin. The init function gets a
-reference to the plot object created and uses this to register hooks
-and add new public methods if needed.
-
-See the PLUGINS.txt file for details on how to write a plugin. As the
-above description hints, it's actually pretty easy.
-
-
-Version number
---------------
-
-The version number of Flot is available in $.plot.version.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/FAQ.txt b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/FAQ.txt
deleted file mode 100644
index e02b761..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/FAQ.txt
+++ /dev/null
@@ -1,76 +0,0 @@
-Frequently asked questions
---------------------------
-
-Q: How much data can Flot cope with?
-
-A: Flot will happily draw everything you send to it so the answer
-depends on the browser. The excanvas emulation used for IE (built with
-VML) makes IE by far the slowest browser so be sure to test with that
-if IE users are in your target group.
-
-1000 points is not a problem, but as soon as you start having more
-points than the pixel width, you should probably start thinking about
-downsampling/aggregation as this is near the resolution limit of the
-chart anyway. If you downsample server-side, you also save bandwidth.
-
-
-Q: Flot isn't working when I'm using JSON data as source!
-
-A: Actually, Flot loves JSON data, you just got the format wrong.
-Double check that you're not inputting strings instead of numbers,
-like [["0", "-2.13"], ["5", "4.3"]]. This is most common mistake, and
-the error might not show up immediately because Javascript can do some
-conversion automatically.
-
-
-Q: Can I export the graph?
-
-A: This is a limitation of the canvas technology. There's a hook in
-the canvas object for getting an image out, but you won't get the tick
-labels. And it's not likely to be supported by IE. At this point, your
-best bet is probably taking a screenshot, e.g. with PrtScn.
-
-
-Q: The bars are all tiny in time mode?
-
-A: It's not really possible to determine the bar width automatically.
-So you have to set the width with the barWidth option which is NOT in
-pixels, but in the units of the x axis (or the y axis for horizontal
-bars). For time mode that's milliseconds so the default value of 1
-makes the bars 1 millisecond wide.
-
-
-Q: Can I use Flot with libraries like Mootools or Prototype?
-
-A: Yes, Flot supports it out of the box and it's easy! Just use jQuery
-instead of $, e.g. call jQuery.plot instead of $.plot and use
-jQuery(something) instead of $(something). As a convenience, you can
-put in a DOM element for the graph placeholder where the examples and
-the API documentation are using jQuery objects.
-
-Depending on how you include jQuery, you may have to add one line of
-code to prevent jQuery from overwriting functions from the other
-libraries, see the documentation in jQuery ("Using jQuery with other
-libraries") for details.
-
-
-Q: Flot doesn't work with [insert name of Javascript UI framework]!
-
-A: The only non-standard thing used by Flot is the canvas tag;
-otherwise it is simply a series of absolute positioned divs within the
-placeholder tag you put in. If this is not working, it's probably
-because the framework you're using is doing something weird with the
-DOM, or you're using it the wrong way.
-
-A common problem is that there's display:none on a container until the
-user does something. Many tab widgets work this way, and there's
-nothing wrong with it - you just can't call Flot inside a display:none
-container as explained in the README so you need to hold off the Flot
-call until the container is actually displayed (or use
-visibility:hidden instead of display:none or move the container
-off-screen).
-
-If you find there's a specific thing we can do to Flot to help, feel
-free to submit a bug report. Otherwise, you're welcome to ask for help
-on the forum/mailing list, but please don't submit a bug report to
-Flot.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/LICENSE.txt b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/LICENSE.txt
deleted file mode 100644
index 07d5b20..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2007-2009 IOLA and Ole Laursen
-
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/Makefile b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/Makefile
deleted file mode 100644
index b300f1a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
-# Makefile for generating minified files
-
-.PHONY: all
-
-# we cheat and process all .js files instead of an exhaustive list
-all: $(patsubst %.js,%.min.js,$(filter-out %.min.js,$(wildcard *.js)))
-
-%.min.js: %.js
-	yui-compressor $< -o $@
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/NEWS.txt b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/NEWS.txt
deleted file mode 100644
index 5f8e1a0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/NEWS.txt
+++ /dev/null
@@ -1,508 +0,0 @@
-Flot 0.7
---------
-
-API changes:
-
-Multiple axes support. Code using dual axes should be changed from
-using x2axis/y2axis in the options to using an array (although
-backwards-compatibility hooks are in place). For instance,
-
-  {
-    xaxis: { ... }, x2axis: { ... },
-    yaxis: { ... }, y2axis: { ... }
-  }
-
-becomes
-
-  {
-    xaxes: [ { ... }, { ... } ],
-    yaxes: [ { ... }, { ... } ]
-  }
-
-Note that if you're just using one axis, continue to use the
-xaxis/yaxis directly (it now sets the default settings for the
-arrays). Plugins touching the axes must be ported to take the extra
-axes into account, check the source to see some examples.
-
-A related change is that the visibility of axes is now auto-detected.
-So if you were relying on an axis to show up even without any data in
-the chart, you now need to set the axis "show" option explicitly.
-
-"tickColor" on the grid options is now deprecated in favour of a
-corresponding option on the axes, so { grid: { tickColor: "#000" }}
-becomes { xaxis: { tickColor: "#000"}, yaxis: { tickColor: "#000"} },
-but if you just configure a base color Flot will now autogenerate a
-tick color by adding transparency. Backwards-compatibility hooks are
-in place.
-
-Final note: now that IE 9 is coming out with canvas support, you may
-want to adapt the excanvas include to skip loading it in IE 9 (the
-examples have been adapted thanks to Ryley Breiddal). An alternative
-to excanvas using Flash has also surfaced, if your graphs are slow in
-IE, you may want to give it a spin:
-
-  http://code.google.com/p/flashcanvas/
-
-
-Changes:
-
-- Support for specifying a bottom for each point for line charts when
-  filling them, this means that an arbitrary bottom can be used
-  instead of just the x axis (based on patches patiently provided by
-  Roman V. Prikhodchenko).
-- New fillbetween plugin that can compute a bottom for a series from
-  another series, useful for filling areas between lines (see new
-  example percentiles.html for a use case).
-- More predictable handling of gaps for the stacking plugin, now all
-  undefined ranges are skipped.
-- Stacking plugin can stack horizontal bar charts.
-- Navigate plugin now redraws the plot while panning instead of only
-  after the fact (can be disabled by setting the pan.frameRate option
-  to null), raised by lastthemy (issue 235).
-- Date formatter now accepts %0m and %0d to get a zero-padded month or
-  day (issue raised by Maximillian Dornseif).
-- Revamped internals to support an unlimited number of axes, not just
-  dual (sponsored by Flight Data Services,
-  www.flightdataservices.com).
-- New setting on axes, "tickLength", to control the size of ticks or
-  turn them off without turning off the labels.
-- Axis labels are now put in container divs with classes, for instance
-  labels in the x axes can be reached via ".xAxis .tickLabel".
-- Support for setting the color of an axis (sponsored by Flight Data
-  Services, www.flightdataservices.com).
-- Tick color is now auto-generated as the base color with some
-  transparency (unless you override it).
-- Support for aligning ticks in the axes with "alignTicksWithAxis" to
-  ensure that they appear next to each other rather than in between,
-  at the expense of possibly awkward tick steps (sponsored by Flight
-  Data Services, www.flightdataservices.com).
-- Support for customizing the point type through a callback when
-  plotting points and new symbol plugin with some predefined point
-  types (sponsored by Utility Data Corporation).
-- Resize plugin for automatically redrawing when the placeholder
-  changes size, e.g. on window resizes (sponsored by Novus Partners).
-  A resize() method has been added to plot object facilitate this.
-- Support Infinity/-Infinity for plotting asymptotes by hacking it
-  into +/-Number.MAX_VALUE (reported by rabaea.mircea).
-- Support for restricting navigate plugin to not pan/zoom an axis (based
-  on patch by kkaefer).
-- Support for providing the drag cursor for the navigate plugin as an
-  option (based on patch by Kelly T. Moore).
-- Options for controlling whether an axis is shown or not (suggestion
-  by Timo Tuominen) and whether to reserve space for it even if it
-  isn't shown.
-- New attribute $.plot.version with the Flot version as a string.
-- The version comment is now included in the minified jquery.flot.min.js.
-- New options.grid.minBorderMargin for adjusting the minimum margin
-  provided around the border (based on patch by corani, issue 188).
-- Refactor replot behaviour so Flot tries to reuse the existing
-  canvas, adding shutdown() methods to the plot (based on patch by
-  Ryley Breiddal, issue 269). This prevents a memory leak in Chrome
-  and hopefully makes replotting faster for those who are using $.plot
-  instead of .setData()/.draw(). Also update jQuery to 1.5.1 to
-  prevent IE leaks fixed in jQuery.
-- New real-time line chart example.
-
-- New hooks: drawSeries, shutdown
-
-Bug fixes:
-
-- Fixed problem with findNearbyItem and bars on top of each other
-  (reported by ragingchikn, issue 242).
-- Fixed problem with ticks and the border (based on patch from
-  ultimatehustler69, issue 236).
-- Fixed problem with plugins adding options to the series objects.
-- Fixed a problem introduced in 0.6 with specifying a gradient with {
-  brightness: x, opacity: y }.
-- Don't use $.browser.msie, check for getContext on the created canvas
-  element instead and try to use excanvas if it's not found (fixes IE
-  9 compatibility).
-- highlight(s, index) was looking up the point in the original s.data
-  instead of in the computed datapoints array, which breaks with
-  plugins that modify the datapoints (such as the stacking plugin).
-  Issue 316 reported by curlypaul924.
-- More robust handling of axis from data passed in from getData()
-  (problem reported by Morgan).
-- Fixed problem with turning off bar outline (issue 253, fix by Jordi
-  Castells).
-- Check the selection passed into setSelection in the selection
-  plugin, to guard against errors when synchronizing plots (fix by Lau
-  Bech Lauritzen).
-- Fix bug in crosshair code with mouseout resetting the crosshair even
-  if it is locked (fix by Lau Bech Lauritzen and Banko Adam).
-- Fix bug with points plotting using line width from lines rather than
-  points.
-- Fix bug with passing non-array 0 data (for plugins that don't expect
-  arrays, patch by vpapp1).
-- Fix errors in JSON in examples so they work with jQuery 1.4.2
-  (fix reported by honestbleeps, issue 357).
-- Fix bug with tooltip in interacting.html, this makes the tooltip
-  much smoother (fix by bdkahn). Fix related bug inside highlighting
-  handler in Flot.
-- Use closure trick to make inline colorhelpers plugin respect
-  jQuery.noConflict(true), renaming the global jQuery object (reported
-  by Nick Stielau).
-- Listen for mouseleave events and fire a plothover event with empty
-  item when it occurs to drop highlights when the mouse leaves the
-  plot (reported by by outspirit).
-- Fix bug with using aboveData with a background (reported by
-  amitayd).
-- Fix possible excanvas leak (report and suggested fix by tom9729).
-- Fix bug with backwards compatibility for shadowSize = 0 (report and
-  suggested fix by aspinak).
-- Adapt examples to skip loading excanvas (fix by Ryley Breiddal).
-- Fix bug that prevent a simple f(x) = -x transform from working
-  correctly (fix by Mike, issue 263).
-- Fix bug in restoring cursor in navigate plugin (reported by Matteo
-  Gattanini, issue 395).
-- Fix bug in picking items when transform/inverseTransform is in use
-  (reported by Ofri Raviv, and patches and analysis by Jan and Tom
-  Paton, issue 334 and 467).
-- Fix problem with unaligned ticks and hover/click events caused by
-  padding on the placeholder by hardcoding the placeholder padding to
-  0 (reported by adityadineshsaxena, Matt Sommer, Daniel Atos and some
-  other people, issue 301).
-- Update colorhelpers plugin to avoid dying when trying to parse an
-  invalid string (reported by cadavor, issue 483).
-
-
-Flot 0.6
---------
-
-API changes:
-
-1. Selection support has been moved to a plugin. Thus if you're
-passing selection: { mode: something }, you MUST include the file
-jquery.flot.selection.js after jquery.flot.js. This reduces the size
-of base Flot and makes it easier to customize the selection as well as
-improving code clarity. The change is based on a patch from andershol.
-
-2. In the global options specified in the $.plot command,
-"lines", "points", "bars" and "shadowSize" have been moved to a
-sub-object called "series", i.e.
-
-  $.plot(placeholder, data, { lines: { show: true }})
-
-should be changed to
-
-  $.plot(placeholder, data, { series: { lines: { show: true }}})
-
-All future series-specific options will go into this sub-object to
-simplify plugin writing. Backward-compatibility code is in place, so
-old code should not break.
-
-3. "plothover" no longer provides the original data point, but instead
-a normalized one, since there may be no corresponding original point.
-
-4. Due to a bug in previous versions of jQuery, you now need at least
-jQuery 1.2.6. But if you can, try jQuery 1.3.2 as it got some
-improvements in event handling speed.
-
-
-Changes:
-
-- Added support for disabling interactivity for specific data series
-  (request from Ronald Schouten and Steve Upton).
-
-- Flot now calls $() on the placeholder and optional legend container
-  passed in so you can specify DOM elements or CSS expressions to make
-  it easier to use Flot with libraries like Prototype or Mootools or
-  through raw JSON from Ajax responses.
-
-- A new "plotselecting" event is now emitted while the user is making
-  a selection.
-
-- The "plothover" event is now emitted immediately instead of at most
-  10 times per second, you'll have to put in a setTimeout yourself if
-  you're doing something really expensive on this event.
-
-- The built-in date formatter can now be accessed as
-  $.plot.formatDate(...) (suggestion by Matt Manela) and even
-  replaced.
-
-- Added "borderColor" option to the grid (patch from Amaury Chamayou
-  and patch from Mike R. Williamson).
-
-- Added support for gradient backgrounds for the grid, take a look at
-  the "setting options" example (based on patch from Amaury Chamayou,
-  issue 90).
-
-- Gradient bars (suggestion by stefpet).
-  
-- Added a "plotunselected" event which is triggered when the selection
-  is removed, see "selection" example (suggestion by Meda Ugo);
-
-- The option legend.margin can now specify horizontal and vertical
-  margins independently (suggestion by someone who's annoyed).
-
-- Data passed into Flot is now copied to a new canonical format to
-  enable further processing before it hits the drawing routines. As a
-  side-effect, this should make Flot more robust in the face of bad
-  data (and fixes issue 112).
-
-- Step-wise charting: line charts have a new option "steps" that when
-  set to true connects the points with horizontal/vertical steps
-  instead of diagonal lines.
-
-- The legend labelFormatter now passes the series in addition to just
-  the label (suggestion by Vincent Lemeltier).
-
-- Horizontal bars (based on patch by Jason LeBrun).
-
-- Support for partial bars by specifying a third coordinate, i.e. they
-  don't have to start from the axis. This can be used to make stacked
-  bars.
-
-- New option to disable the (grid.show).
-
-- Added pointOffset method for converting a point in data space to an
-  offset within the placeholder.
-  
-- Plugin system: register an init method in the $.flot.plugins array
-  to get started, see PLUGINS.txt for details on how to write plugins
-  (it's easy). There are also some extra methods to enable access to
-  internal state.
-
-- Hooks: you can register functions that are called while Flot is
-  crunching the data and doing the plot. This can be used to modify
-  Flot without changing the source, useful for writing plugins. Some
-  hooks are defined, more are likely to come.
-  
-- Threshold plugin: you can set a threshold and a color, and the data
-  points below that threshold will then get the color. Useful for
-  marking data below 0, for instance.
-
-- Stack plugin: you can specify a stack key for each series to have
-  them summed. This is useful for drawing additive/cumulative graphs
-  with bars and (currently unfilled) lines.
-
-- Crosshairs plugin: trace the mouse position on the axes, enable with
-  crosshair: { mode: "x"} (see the new tracking example for a use).
-
-- Image plugin: plot prerendered images.
-
-- Navigation plugin for panning and zooming a plot.
-
-- More configurable grid.
-
-- Axis transformation support, useful for non-linear plots, e.g. log
-  axes and compressed time axes (like omitting weekends).
-
-- Support for twelve-hour date formatting (patch by Forrest Aldridge).
-
-- The color parsing code in Flot has been cleaned up and split out so
-  it's now available as a separate jQuery plugin. It's included inline
-  in the Flot source to make dependency managing easier. This also
-  makes it really easy to use the color helpers in Flot plugins.
-
-Bug fixes:
-
-- Fixed two corner-case bugs when drawing filled curves (report and
-  analysis by Joshua Varner).
-- Fix auto-adjustment code when setting min to 0 for an axis where the
-  dataset is completely flat on that axis (report by chovy).
-- Fixed a bug with passing in data from getData to setData when the
-  secondary axes are used (issue 65, reported by nperelman).
-- Fixed so that it is possible to turn lines off when no other chart
-  type is shown (based on problem reported by Glenn Vanderburg), and
-  fixed so that setting lineWidth to 0 also hides the shadow (based on
-  problem reported by Sergio Nunes).
-- Updated mousemove position expression to the latest from jQuery (bug
-  reported by meyuchas).
-- Use CSS borders instead of background in legend (fix printing issue 25
-  and 45).
-- Explicitly convert axis min/max to numbers.
-- Fixed a bug with drawing marking lines with different colors
-  (reported by Khurram).
-- Fixed a bug with returning y2 values in the selection event (fix
-  by exists, issue 75).
-- Only set position relative on placeholder if it hasn't already a
-  position different from static (reported by kyberneticist, issue 95).
-- Don't round markings to prevent sub-pixel problems (reported by Dan
-  Lipsitt).
-- Make the grid border act similarly to a regular CSS border, i.e.
-  prevent it from overlapping the plot itself. This also fixes a
-  problem with anti-aliasing when the width is 1 pixel (reported by
-  Anthony Ettinger).
-- Imported version 3 of excanvas and fixed two issues with the newer
-  version. Hopefully, this will make Flot work with IE8 (nudge by
-  Fabien Menager, further analysis by Booink, issue 133).
-- Changed the shadow code for lines to hopefully look a bit better
-  with vertical lines.
-- Round tick positions to avoid possible problems with fractions
-  (suggestion by Fred, issue 130).
-- Made the heuristic for determining how many ticks to aim for a bit
-  smarter.
-- Fix for uneven axis margins (report and patch by Paul Kienzle) and
-  snapping to ticks (concurrent report and patch by lifthrasiir).
-- Fixed bug with slicing in findNearbyItems (patch by zollman).
-- Make heuristic for x axis label widths more dynamic (patch by
-  rickinhethuis).
-- Make sure points on top take precedence when finding nearby points
-  when hovering (reported by didroe, issue 224).
-
-Flot 0.5
---------
-
-Backwards API change summary: Timestamps are now in UTC. Also
-"selected" event -> becomes "plotselected" with new data, the
-parameters for setSelection are now different (but backwards
-compatibility hooks are in place), coloredAreas becomes markings with
-a new interface (but backwards compatibility hooks are in place).
-
-
-Interactivity: added a new "plothover" event and this and the
-"plotclick" event now returns the closest data item (based on patch by
-/david, patch by Mark Byers for bar support). See the revamped
-"interacting with the data" example for some hints on what you can do.
-
-Highlighting: you can now highlight points and datapoints are
-autohighlighted when you hover over them (if hovering is turned on).
-
-Support for dual axis has been added (based on patch by someone who's
-annoyed and /david). For each data series you can specify which axes
-it belongs to, and there are two more axes, x2axis and y2axis, to
-customize. This affects the "selected" event which has been renamed to
-"plotselected" and spews out { xaxis: { from: -10, to: 20 } ... },
-setSelection in which the parameters are on a new form (backwards
-compatible hooks are in place so old code shouldn't break) and
-markings (formerly coloredAreas).
-
-Timestamps in time mode are now displayed according to
-UTC instead of the time zone of the visitor. This affects the way the
-timestamps should be input; you'll probably have to offset the
-timestamps according to your local time zone. It also affects any
-custom date handling code (which basically now should use the
-equivalent UTC date mehods, e.g. .setUTCMonth() instead of
-.setMonth().
-
-Added support for specifying the size of tick labels (axis.labelWidth,
-axis.labelHeight). Useful for specifying a max label size to keep
-multiple plots aligned.
-
-Markings, previously coloredAreas, are now specified as ranges on the
-axes, like { xaxis: { from: 0, to: 10 }}. Furthermore with markings
-you can now draw horizontal/vertical lines by setting from and to to
-the same coordinate (idea from line support patch by by Ryan Funduk).
-
-The "fill" option can now be a number that specifies the opacity of
-the fill.
-
-You can now specify a coordinate as null (like [2, null]) and Flot
-will take the other coordinate into account when scaling the axes
-(based on patch by joebno).
-
-New option for bars "align". Set it to "center" to center the bars on
-the value they represent.
-
-setSelection now takes a second parameter which you can use to prevent
-the method from firing the "plotselected" handler. 
-
-Using the "container" option in legend now overwrites the container
-element instead of just appending to it (fixes infinite legend bug,
-reported by several people, fix by Brad Dewey).
-
-Fixed a bug in calculating spacing around the plot (reported by
-timothytoe). Fixed a bug in finding max values for all-negative data
-sets. Prevent the possibility of eternal looping in tick calculations.
-Fixed a bug when borderWidth is set to 0 (reported by
-Rob/sanchothefat). Fixed a bug with drawing bars extending below 0
-(reported by James Hewitt, patch by Ryan Funduk). Fixed a
-bug with line widths of bars (reported by MikeM). Fixed a bug with
-'nw' and 'sw' legend positions. Improved the handling of axis
-auto-scaling with bars. Fixed a bug with multi-line x-axis tick
-labels (reported by Luca Ciano). IE-fix help by Savage Zhang.
-
-
-Flot 0.4
---------
-
-API changes: deprecated axis.noTicks in favor of just specifying the
-number as axis.ticks. So "xaxis: { noTicks: 10 }" becomes
-"xaxis: { ticks: 10 }"
-
-Time series support. Specify axis.mode: "time", put in Javascript
-timestamps as data, and Flot will automatically spit out sensible
-ticks. Take a look at the two new examples. The format can be
-customized with axis.timeformat and axis.monthNames, or if that fails
-with axis.tickFormatter.
-
-Support for colored background areas via grid.coloredAreas. Specify an
-array of { x1, y1, x2, y2 } objects or a function that returns these
-given { xmin, xmax, ymin, ymax }.
-
-More members on the plot object (report by Chris Davies and others).
-"getData" for inspecting the assigned settings on data series (e.g.
-color) and "setData", "setupGrid" and "draw" for updating the contents
-without a total replot.
-
-The default number of ticks to aim for is now dependent on the size of
-the plot in pixels. Support for customizing tick interval sizes
-directly with axis.minTickSize and axis.tickSize.
-
-Cleaned up the automatic axis scaling algorithm and fixed how it
-interacts with ticks. Also fixed a couple of tick-related corner case
-bugs (one reported by mainstreetmark, another reported by timothytoe).
-
-The option axis.tickFormatter now takes a function with two
-parameters, the second parameter is an optional object with
-information about the axis. It has min, max, tickDecimals, tickSize.
-
-Added support for segmented lines (based on patch from Michael
-MacDonald) and for ignoring null and bad values (suggestion from Nick
-Konidaris and joshwaihi). 
-
-Added support for changing the border width (joebno and safoo).
-Label colors can be changed via CSS by selecting the tickLabel class.
-
-Fixed a bug in handling single-item bar series (reported by Emil
-Filipov). Fixed erratic behaviour when interacting with the plot
-with IE 7 (reported by Lau Bech Lauritzen). Prevent IE/Safari text
-selection when selecting stuff on the canvas.
-
-
-
-Flot 0.3
---------
-
-This is mostly a quick-fix release because jquery.js wasn't included
-in the previous zip/tarball.
-
-Support clicking on the plot. Turn it on with grid: { clickable: true },
-then you get a "plotclick" event on the graph placeholder with the
-position in units of the plot.
-
-Fixed a bug in dealing with data where min = max, thanks to Michael
-Messinides.
-
-Include jquery.js in the zip/tarball.
-
-
-Flot 0.2
---------
-
-Added support for putting a background behind the default legend. The
-default is the partly transparent background color. Added
-backgroundColor and backgroundOpacity to the legend options to control
-this.
-
-The ticks options can now be a callback function that takes one
-parameter, an object with the attributes min and max. The function
-should return a ticks array.
-
-Added labelFormatter option in legend, useful for turning the legend
-labels into links.
-
-Fixed a couple of bugs.
-
-The API should now be fully documented.
-
-Patch from Guy Fraser to make parts of the code smaller.
-
-API changes: Moved labelMargin option to grid from x/yaxis.
-
-
-Flot 0.1
---------
-
-First public release.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/PLUGINS.txt b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/PLUGINS.txt
deleted file mode 100644
index af3d90b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/PLUGINS.txt
+++ /dev/null
@@ -1,137 +0,0 @@
-Writing plugins
----------------
-
-All you need to do to make a new plugin is creating an init function
-and a set of options (if needed), stuffing it into an object and
-putting it in the $.plot.plugins array. For example:
-
-  function myCoolPluginInit(plot) {
-    plot.coolstring = "Hello!";
-  };
-
-  $.plot.plugins.push({ init: myCoolPluginInit, options: { ... } });
-
-  // if $.plot is called, it will return a plot object with the
-  // attribute "coolstring"
-
-Now, given that the plugin might run in many different places, it's
-a good idea to avoid leaking names. The usual trick here is wrap the
-above lines in an anonymous function which is called immediately, like
-this: (function () { inner code ... })(). To make it even more robust
-in case $ is not bound to jQuery but some other Javascript library, we
-can write it as
-
-  (function ($) {
-    // plugin definition
-    // ...
-  })(jQuery);
-
-There's a complete example below, but you should also check out the
-plugins bundled with Flot.
-
-
-Complete example
-----------------
-  
-Here is a simple debug plugin which alerts each of the series in the
-plot. It has a single option that control whether it is enabled and
-how much info to output:
-
-  (function ($) {
-    function init(plot) {
-      var debugLevel = 1;
-    
-      function checkDebugEnabled(plot, options) {
-        if (options.debug) {
-          debugLevel = options.debug;
-            
-          plot.hooks.processDatapoints.push(alertSeries);
-        }
-      }
-
-      function alertSeries(plot, series, datapoints) {
-        var msg = "series " + series.label;
-        if (debugLevel > 1)
-          msg += " with " + series.data.length + " points";
-        alert(msg);
-      }
-    
-      plot.hooks.processOptions.push(checkDebugEnabled);
-    }
-
-    var options = { debug: 0 };
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: "simpledebug",
-        version: "0.1"
-    });
-  })(jQuery);
-
-We also define "name" and "version". It's not used by Flot, but might
-be helpful for other plugins in resolving dependencies.
-  
-Put the above in a file named "jquery.flot.debug.js", include it in an
-HTML page and then it can be used with:
-
-  $.plot($("#placeholder"), [...], { debug: 2 });
-
-This simple plugin illustrates a couple of points:
-
- - It uses the anonymous function trick to avoid name pollution.
- - It can be enabled/disabled through an option.
- - Variables in the init function can be used to store plot-specific
-   state between the hooks.
-
-The two last points are important because there may be multiple plots
-on the same page, and you'd want to make sure they are not mixed up.
-
-
-Shutting down a plugin
-----------------------
-
-Each plot object has a shutdown hook which is run when plot.shutdown()
-is called. This usually mostly happens in case another plot is made on
-top of an existing one.
-
-The purpose of the hook is to give you a chance to unbind any event
-handlers you've registered and remove any extra DOM things you've
-inserted.
-
-The problem with event handlers is that you can have registered a
-handler which is run in some point in the future, e.g. with
-setTimeout(). Meanwhile, the plot may have been shutdown and removed,
-but because your event handler is still referencing it, it can't be
-garbage collected yet, and worse, if your handler eventually runs, it
-may overwrite stuff on a completely different plot.
-
- 
-Some hints on the options
--------------------------
-   
-Plugins should always support appropriate options to enable/disable
-them because the plugin user may have several plots on the same page
-where only one should use the plugin. In most cases it's probably a
-good idea if the plugin is turned off rather than on per default, just
-like most of the powerful features in Flot.
-
-If the plugin needs options that are specific to each series, like the
-points or lines options in core Flot, you can put them in "series" in
-the options object, e.g.
-
-  var options = {
-    series: {
-      downsample: {
-        algorithm: null,
-        maxpoints: 1000
-      }
-    }
-  }
-
-Then they will be copied by Flot into each series, providing default
-values in case none are specified.
-
-Think hard and long about naming the options. These names are going to
-be public API, and code is going to depend on them if the plugin is
-successful.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/README.txt b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/README.txt
deleted file mode 100644
index 1e49787..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/README.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-About
------
-
-Flot is a Javascript plotting library for jQuery. Read more at the
-website:
-
-  http://code.google.com/p/flot/
-
-Take a look at the examples linked from above, they should give a good
-impression of what Flot can do and the source code of the examples is
-probably the fastest way to learn how to use Flot.
-  
-
-Installation
-------------
-
-Just include the Javascript file after you've included jQuery.
-
-Generally, all browsers that support the HTML5 canvas tag are
-supported.
-
-For support for Internet Explorer < 9, you can use Excanvas, a canvas
-emulator; this is used in the examples bundled with Flot. You just
-include the excanvas script like this:
-
-  <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="excanvas.min.js"></script><![endif]-->
-
-If it's not working on your development IE 6.0, check that it has
-support for VML which Excanvas is relying on. It appears that some
-stripped down versions used for test environments on virtual machines
-lack the VML support.
-
-You can also try using Flashcanvas (see
-http://code.google.com/p/flashcanvas/), which uses Flash to do the
-emulation. Although Flash can be a bit slower to load than VML, if
-you've got a lot of points, the Flash version can be much faster
-overall. Flot contains some wrapper code for activating Excanvas which
-Flashcanvas is compatible with.
-
-You need at least jQuery 1.2.6, but try at least 1.3.2 for interactive
-charts because of performance improvements in event handling.
-
-
-Basic usage
------------
-
-Create a placeholder div to put the graph in:
-
-   <div id="placeholder"></div>
-
-You need to set the width and height of this div, otherwise the plot
-library doesn't know how to scale the graph. You can do it inline like
-this:
-
-   <div id="placeholder" style="width:600px;height:300px"></div>
-
-You can also do it with an external stylesheet. Make sure that the
-placeholder isn't within something with a display:none CSS property -
-in that case, Flot has trouble measuring label dimensions which
-results in garbled looks and might have trouble measuring the
-placeholder dimensions which is fatal (it'll throw an exception).
-
-Then when the div is ready in the DOM, which is usually on document
-ready, run the plot function:
-
-  $.plot($("#placeholder"), data, options);
-
-Here, data is an array of data series and options is an object with
-settings if you want to customize the plot. Take a look at the
-examples for some ideas of what to put in or look at the reference
-in the file "API.txt". Here's a quick example that'll draw a line from
-(0, 0) to (1, 1):
-
-  $.plot($("#placeholder"), [ [[0, 0], [1, 1]] ], { yaxis: { max: 1 } });
-
-The plot function immediately draws the chart and then returns a plot
-object with a couple of methods.
-
-
-What's with the name?
----------------------
-
-First: it's pronounced with a short o, like "plot". Not like "flawed".
-
-So "Flot" rhymes with "plot".
-
-And if you look up "flot" in a Danish-to-English dictionary, some up
-the words that come up are "good-looking", "attractive", "stylish",
-"smart", "impressive", "extravagant". One of the main goals with Flot
-is pretty looks.
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/ajax.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/ajax.html
deleted file mode 100644
index 9b5ec85..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/ajax.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>Example of loading data dynamically with AJAX. Percentage change in GDP (source: <a href="http://epp.eurostat.ec.europa.eu/tgm/table.do?tab=table&init=1&plugin=1&language=en&pcode=tsieb020">Eurostat</a>). Click the buttons below.</p>
-
-    <p>The data is fetched over HTTP, in this case directly from text
-    files. Usually the URL would point to some web server handler
-    (e.g. a PHP page or Java/.NET/Python/Ruby on Rails handler) that
-    extracts it from a database and serializes it to JSON.</p>
-
-    <p>
-      <input class="fetchSeries" type="button" value="First dataset"> -
-      <a href="data-eu-gdp-growth.json">data</a> -
-      <span></span>
-    </p>
-
-    <p>
-      <input class="fetchSeries" type="button" value="Second dataset"> -
-      <a href="data-japan-gdp-growth.json">data</a> -
-      <span></span>
-    </p>
-
-    <p>
-      <input class="fetchSeries" type="button" value="Third dataset"> -
-      <a href="data-usa-gdp-growth.json">data</a> -
-      <span></span>
-    </p>
-
-    <p>If you combine AJAX with setTimeout, you can poll the server
-       for new data.</p>
-
-    <p>
-      <input class="dataUpdate" type="button" value="Poll for data">
-    </p>
-
-<script type="text/javascript">
-$(function () {
-    var options = {
-        lines: { show: true },
-        points: { show: true },
-        xaxis: { tickDecimals: 0, tickSize: 1 }
-    };
-    var data = [];
-    var placeholder = $("#placeholder");
-    
-    $.plot(placeholder, data, options);
-
-    
-    // fetch one series, adding to what we got
-    var alreadyFetched = {};
-    
-    $("input.fetchSeries").click(function () {
-        var button = $(this);
-        
-        // find the URL in the link right next to us 
-        var dataurl = button.siblings('a').attr('href');
-
-        // then fetch the data with jQuery
-        function onDataReceived(series) {
-            // extract the first coordinate pair so you can see that
-            // data is now an ordinary Javascript object
-            var firstcoordinate = '(' + series.data[0][0] + ', ' + series.data[0][1] + ')';
-
-            button.siblings('span').text('Fetched ' + series.label + ', first point: ' + firstcoordinate);
-
-            // let's add it to our current data
-            if (!alreadyFetched[series.label]) {
-                alreadyFetched[series.label] = true;
-                data.push(series);
-            }
-            
-            // and plot all we got
-            $.plot(placeholder, data, options);
-         }
-        
-        $.ajax({
-            url: dataurl,
-            method: 'GET',
-            dataType: 'json',
-            success: onDataReceived
-        });
-    });
-
-
-    // initiate a recurring data update
-    $("input.dataUpdate").click(function () {
-        // reset data
-        data = [];
-        alreadyFetched = {};
-        
-        $.plot(placeholder, data, options);
-
-        var iteration = 0;
-        
-        function fetchData() {
-            ++iteration;
-
-            function onDataReceived(series) {
-                // we get all the data in one go, if we only got partial
-                // data, we could merge it with what we already got
-                data = [ series ];
-                
-                $.plot($("#placeholder"), data, options);
-            }
-        
-            $.ajax({
-                // usually, we'll just call the same URL, a script
-                // connected to a database, but in this case we only
-                // have static example files so we need to modify the
-                // URL
-                url: "data-eu-gdp-growth-" + iteration + ".json",
-                method: 'GET',
-                dataType: 'json',
-                success: onDataReceived
-            });
-            
-            if (iteration < 5)
-                setTimeout(fetchData, 1000);
-            else {
-                data = [];
-                alreadyFetched = {};
-            }
-        }
-
-        setTimeout(fetchData, 1000);
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/annotating.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/annotating.html
deleted file mode 100644
index 72c212b..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/annotating.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>Flot has support for simple background decorations such as
-    lines and rectangles. They can be useful for marking up certain
-    areas. You can easily add any HTML you need with standard DOM
-    manipulation, e.g. for labels. For drawing custom shapes there is
-    also direct access to the canvas.</p>
-
-<script type="text/javascript">
-$(function () {
-    // generate a dataset
-    var d1 = [];
-    for (var i = 0; i < 20; ++i)
-        d1.push([i, Math.sin(i)]);
-    
-    var data = [{ data: d1, label: "Pressure", color: "#333" }];
-
-    // setup background areas
-    var markings = [
-        { color: '#f6f6f6', yaxis: { from: 1 } },
-        { color: '#f6f6f6', yaxis: { to: -1 } },
-        { color: '#000', lineWidth: 1, xaxis: { from: 2, to: 2 } },
-        { color: '#000', lineWidth: 1, xaxis: { from: 8, to: 8 } }
-    ];
-    
-    var placeholder = $("#placeholder");
-    
-    // plot it
-    var plot = $.plot(placeholder, data, {
-        bars: { show: true, barWidth: 0.5, fill: 0.9 },
-        xaxis: { ticks: [], autoscaleMargin: 0.02 },
-        yaxis: { min: -2, max: 2 },
-        grid: { markings: markings }
-    });
-
-    // add labels
-    var o;
-
-    o = plot.pointOffset({ x: 2, y: -1.2});
-    // we just append it to the placeholder which Flot already uses
-    // for positioning
-    placeholder.append('<div style="position:absolute;left:' + (o.left + 4) + 'px;top:' + o.top + 'px;color:#666;font-size:smaller">Warming up</div>');
-
-    o = plot.pointOffset({ x: 8, y: -1.2});
-    placeholder.append('<div style="position:absolute;left:' + (o.left + 4) + 'px;top:' + o.top + 'px;color:#666;font-size:smaller">Actual measurements</div>');
-
-    // draw a little arrow on top of the last label to demonstrate
-    // canvas drawing
-    var ctx = plot.getCanvas().getContext("2d");
-    ctx.beginPath();
-    o.left += 4;
-    ctx.moveTo(o.left, o.top);
-    ctx.lineTo(o.left, o.top - 10);
-    ctx.lineTo(o.left + 10, o.top - 5);
-    ctx.lineTo(o.left, o.top);
-    ctx.fillStyle = "#000";
-    ctx.fill();
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-down.gif b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-down.gif
deleted file mode 100644
index e239d11aa65b7f9e65978ea1306ee0d8562ff66e..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-left.gif b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-left.gif
deleted file mode 100644
index 93ffd5a9e0ddd08a790c3da95a228b2235aae7f7..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-right.gif b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-right.gif
deleted file mode 100644
index 5fd053085c1870355bbe1ebadd35e5ec61ecd097..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-up.gif b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/arrow-up.gif
deleted file mode 100644
index 7d196267ebff0e127db6ad9a4fc42a75ff7a348e..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/basic.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/basic.html
deleted file mode 100644
index b116d94..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/basic.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>Simple example. You don't need to specify much to get an
-       attractive look. Put in a placeholder, make sure you set its
-       dimensions (otherwise the plot library will barf) and call the
-       plot function with the data. The axes are automatically
-       scaled.</p>
-
-<script type="text/javascript">
-$(function () {
-    var d1 = [];
-    for (var i = 0; i < 14; i += 0.5)
-        d1.push([i, Math.sin(i)]);
-
-    var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
-
-    // a null signifies separate line segments
-    var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];
-    
-    $.plot($("#placeholder"), [ d1, d2, d3 ]);
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-1.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-1.json
deleted file mode 100644
index 51952cf..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-1.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "Europe (EU27)",
-    "data": [[1999, 3.0], [2000, 3.9]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-2.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-2.json
deleted file mode 100644
index 82004d6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-2.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "Europe (EU27)",
-    "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-3.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-3.json
deleted file mode 100644
index 8684479..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-3.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "Europe (EU27)",
-    "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-4.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-4.json
deleted file mode 100644
index b363578..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-4.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "Europe (EU27)",
-    "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-5.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-5.json
deleted file mode 100644
index a7e1e13..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-5.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "Europe (EU27)",
-    "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth.json
deleted file mode 100644
index a7e1e13..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "Europe (EU27)",
-    "data": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-japan-gdp-growth.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-japan-gdp-growth.json
deleted file mode 100644
index 855477c..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-japan-gdp-growth.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "Japan",
-    "data": [[1999, -0.1], [2000, 2.9], [2001, 0.2], [2002, 0.3], [2003, 1.4], [2004, 2.7], [2005, 1.9], [2006, 2.0], [2007, 2.3], [2008, -0.7]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-usa-gdp-growth.json b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-usa-gdp-growth.json
deleted file mode 100644
index 33f66c6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/data-usa-gdp-growth.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-    "label": "USA",
-    "data": [[1999, 4.4], [2000, 3.7], [2001, 0.8], [2002, 1.6], [2003, 2.5], [2004, 3.6], [2005, 2.9], [2006, 2.8], [2007, 2.0], [2008, 1.1]]
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/graph-types.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/graph-types.html
deleted file mode 100644
index dd21a31..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/graph-types.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px"></div>
-
-    <p>Flot supports lines, points, filled areas, bars and any
-    combinations of these, in the same plot and even on the same data
-    series.</p>
-
-<script type="text/javascript">
-$(function () {
-    var d1 = [];
-    for (var i = 0; i < 14; i += 0.5)
-        d1.push([i, Math.sin(i)]);
-
-    var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
-
-    var d3 = [];
-    for (var i = 0; i < 14; i += 0.5)
-        d3.push([i, Math.cos(i)]);
-
-    var d4 = [];
-    for (var i = 0; i < 14; i += 0.1)
-        d4.push([i, Math.sqrt(i * 10)]);
-    
-    var d5 = [];
-    for (var i = 0; i < 14; i += 0.5)
-        d5.push([i, Math.sqrt(i)]);
-
-    var d6 = [];
-    for (var i = 0; i < 14; i += 0.5 + Math.random())
-        d6.push([i, Math.sqrt(2*i + Math.sin(i) + 5)]);
-                        
-    $.plot($("#placeholder"), [
-        {
-            data: d1,
-            lines: { show: true, fill: true }
-        },
-        {
-            data: d2,
-            bars: { show: true }
-        },
-        {
-            data: d3,
-            points: { show: true }
-        },
-        {
-            data: d4,
-            lines: { show: true }
-        },
-        {
-            data: d5,
-            lines: { show: true },
-            points: { show: true }
-        },
-        {
-            data: d6,
-            lines: { show: true, steps: true }
-        }
-    ]);
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/hs-2004-27-a-large_web.jpg b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/hs-2004-27-a-large_web.jpg
deleted file mode 100644
index a1d5c05837576a37a8a7631d8549472154a74807..0000000000000000000000000000000000000000
GIT binary patch
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/image.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/image.html
deleted file mode 100644
index 073ad43..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/image.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.image.js"></script>
- </head>
- <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:400px;height:400px;"></div>
-
-    <p>The Cat's Eye Nebula (<a href="http://hubblesite.org/gallery/album/nebula/pr2004027a/">picture from Hubble</a>).</p>
-    
-    <p>With the image plugin, you can plot images. This is for example
-    useful for getting ticks on complex prerendered visualizations.
-    Instead of inputting data points, you put in the images and where
-    their two opposite corners are supposed to be in plot space.</p>
-
-    <p>Images represent a little further complication because you need
-    to make sure they are loaded before you can use them (Flot skips
-    incomplete images). The plugin comes with a couple of helpers
-    for doing that.</p>
-
-<script type="text/javascript">
-$(function () {
-    var data = [ [ ["hs-2004-27-a-large_web.jpg", -10, -10, 10, 10] ] ];
-    var options = {
-            series: { images: { show: true } },
-            xaxis: { min: -8, max: 4 },
-            yaxis: { min: -8, max: 4 }
-    };
-
-    $.plot.image.loadDataImages(data, options, function () {
-        $.plot($("#placeholder"), data, options);
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/index.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/index.html
deleted file mode 100644
index f24f750..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/index.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
- </head>
- <body>
-    <h1>Flot Examples</h1>
-
-    <p>Here are some examples for <a href="http://code.google.com/p/flot/">Flot</a>, the Javascript charting library for jQuery:</p>
-
-    <ul>
-      <li><a href="basic.html">Basic example</a></li>
-      <li><a href="graph-types.html">Different graph types</a></li>
-      <li><a href="setting-options.html">Setting various options</a> and <a href="annotating.html">annotating a chart</a></li>
-      <li><a href="ajax.html">Updating graphs with AJAX</a> and <a href="realtime.html">real-time updates</a></li>
-    </ul>
-
-    <p>Being interactive:</p>
-    
-    <ul>
-      <li><a href="turning-series.html">Turning series on/off</a></li>
-      <li><a href="selection.html">Rectangular selection support and zooming</a> and <a href="zooming.html">zooming with overview</a> (both with selection plugin)</li>
-      <li><a href="interacting.html">Interacting with the data points</a></li>
-      <li><a href="navigate.html">Panning and zooming</a> (with navigation plugin)</li>
-      <li><a href="resize.html">Automatically redraw when window is resized</a> (with resize plugin)</li>
-    </ul>
-
-    <p>Various features:</p>
-    
-    <ul>
-      <li><a href="symbols.html">Using other symbols than circles for points</a> (with symbol plugin)</li>
-      <li><a href="time.html">Plotting time series</a> and <a href="visitors.html">visitors per day with zooming and weekends</a> (with selection plugin)</li>
-      <li><a href="multiple-axes.html">Multiple axes</a> and <a href="interacting-axes.html">interacting with the axes</a></li>
-      <li><a href="thresholding.html">Thresholding the data</a> (with threshold plugin)</li>
-      <li><a href="stacking.html">Stacked charts</a> (with stacking plugin)</li>
-      <li><a href="percentiles.html">Using filled areas to plot percentiles</a> (with fillbetween plugin)</li>
-      <li><a href="tracking.html">Tracking curves with crosshair</a> (with crosshair plugin)</li>
-      <li><a href="image.html">Plotting prerendered images</a> (with image plugin)</li>
-      <li><a href="pie.html">Pie charts</a> (with pie plugin)</li>
-    </ul>
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting-axes.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting-axes.html
deleted file mode 100644
index 5b6e3bb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting-axes.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>With multiple axes, you sometimes need to interact with them. A
-    simple way to do this is to draw the plot, deduce the axis
-    placements and insert a couple of divs on top to catch events.
-    Try clicking an axis.</p>
-
-    <p id="click"></p>
-
-<script type="text/javascript">
-$(function () {
-    function generate(start, end, fn) {
-        var res = [];
-        for (var i = 0; i <= 100; ++i) {
-            var x = start + i / 100 * (end - start);
-            res.push([x, fn(x)]);
-        }
-        return res;
-    }
-
-    var data = [
-        { data: generate(0, 10, function (x) { return Math.sqrt(x)}), xaxis: 1, yaxis:1 },
-        { data: generate(0, 10, function (x) { return Math.sin(x)}), xaxis: 1, yaxis:2 },
-        { data: generate(0, 10, function (x) { return Math.cos(x)}), xaxis: 1, yaxis:3 },
-        { data: generate(2, 10, function (x) { return Math.tan(x)}), xaxis: 2, yaxis: 4 }
-    ];
-
-    var plot = $.plot($("#placeholder"),
-                      data,
-                      {
-                          xaxes: [
-                              { position: 'bottom' },
-                              { position: 'top'}
-                          ],
-                          yaxes: [
-                              { position: 'left' },
-                              { position: 'left' },
-                              { position: 'right' },
-                              { position: 'left' }
-                          ]
-                      });
-
-    // now for each axis, create a div
-
-    function getBoundingBoxForAxis(plot, axis) {
-        var left = axis.box.left, top = axis.box.top,
-            right = left + axis.box.width, bottom = top + axis.box.height;
-
-        // some ticks may stick out, enlarge the box to encompass all ticks
-        var cls = axis.direction + axis.n + 'Axis';
-        plot.getPlaceholder().find('.' + cls + ' .tickLabel').each(function () {
-            var pos = $(this).position();
-            left = Math.min(pos.left, left);
-            top = Math.min(pos.top, top);
-            right = Math.max(Math.round(pos.left) + $(this).outerWidth(), right);
-            bottom = Math.max(Math.round(pos.top) + $(this).outerHeight(), bottom);
-        });
-        
-        return { left: left, top: top, width: right - left, height: bottom - top };
-    }
-    
-    $.each(plot.getAxes(), function (i, axis) {
-        if (!axis.show)
-            return;
-        
-        var box = getBoundingBoxForAxis(plot, axis);
-        
-        $('<div class="axisTarget" style="position:absolute;left:' + box.left + 'px;top:' + box.top + 'px;width:' + box.width +  'px;height:' + box.height + 'px"></div>')
-            .data('axis.direction', axis.direction)
-            .data('axis.n', axis.n)
-            .css({ backgroundColor: "#f00", opacity: 0, cursor: "pointer" })
-            .appendTo(plot.getPlaceholder())
-            .hover(
-                function () { $(this).css({ opacity: 0.10 }) },
-                function () { $(this).css({ opacity: 0 }) }
-            )
-            .click(function () {
-                $("#click").text("You clicked the " + axis.direction + axis.n + "axis!")
-            });
-    });
-});
-</script>
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting.html
deleted file mode 100644
index d04eedd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/interacting.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px"></div>
-
-    <p>One of the goals of Flot is to support user interactions. Try
-    pointing and clicking on the points.</p>
-
-    <p id="hoverdata">Mouse hovers at
-    (<span id="x">0</span>, <span id="y">0</span>). <span id="clickdata"></span></p>
-
-    <p>A tooltip is easy to build with a bit of jQuery code and the
-    data returned from the plot.</p>
-
-    <p><input id="enableTooltip" type="checkbox">Enable tooltip</p>
-
-<script type="text/javascript">
-$(function () {
-    var sin = [], cos = [];
-    for (var i = 0; i < 14; i += 0.5) {
-        sin.push([i, Math.sin(i)]);
-        cos.push([i, Math.cos(i)]);
-    }
-
-    var plot = $.plot($("#placeholder"),
-           [ { data: sin, label: "sin(x)"}, { data: cos, label: "cos(x)" } ], {
-               series: {
-                   lines: { show: true },
-                   points: { show: true }
-               },
-               grid: { hoverable: true, clickable: true },
-               yaxis: { min: -1.2, max: 1.2 }
-             });
-
-    function showTooltip(x, y, contents) {
-        $('<div id="tooltip">' + contents + '</div>').css( {
-            position: 'absolute',
-            display: 'none',
-            top: y + 5,
-            left: x + 5,
-            border: '1px solid #fdd',
-            padding: '2px',
-            'background-color': '#fee',
-            opacity: 0.80
-        }).appendTo("body").fadeIn(200);
-    }
-
-    var previousPoint = null;
-    $("#placeholder").bind("plothover", function (event, pos, item) {
-        $("#x").text(pos.x.toFixed(2));
-        $("#y").text(pos.y.toFixed(2));
-
-        if ($("#enableTooltip:checked").length > 0) {
-            if (item) {
-                if (previousPoint != item.dataIndex) {
-                    previousPoint = item.dataIndex;
-                    
-                    $("#tooltip").remove();
-                    var x = item.datapoint[0].toFixed(2),
-                        y = item.datapoint[1].toFixed(2);
-                    
-                    showTooltip(item.pageX, item.pageY,
-                                item.series.label + " of " + x + " = " + y);
-                }
-            }
-            else {
-                $("#tooltip").remove();
-                previousPoint = null;            
-            }
-        }
-    });
-
-    $("#placeholder").bind("plotclick", function (event, pos, item) {
-        if (item) {
-            $("#clickdata").text("You clicked point " + item.dataIndex + " in " + item.series.label + ".");
-            plot.highlight(item.series, item.datapoint);
-        }
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/layout.css b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/layout.css
deleted file mode 100644
index 7ef7dd4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/layout.css
+++ /dev/null
@@ -1,6 +0,0 @@
-body {
-  font-family: sans-serif;
-  font-size: 16px;
-  margin: 50px;
-  max-width: 800px;
-}
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/multiple-axes.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/multiple-axes.html
deleted file mode 100644
index 4b32e64..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/multiple-axes.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>Multiple axis support showing the raw oil price in US $/barrel of
-    crude oil vs. the exchange rate from US $ to €.</p>
-
-    <p>As illustrated, you can put in multiple axes if you
-    need to. For each data series, simply specify the axis number.
-    In the options, you can then configure where you want the extra
-    axes to appear.</p>
-
-    <p>Position axis <button>left</button> or <button>right</button>.</p>
-
-<script type="text/javascript">
-$(function () {
-    var oilprices = [[1167692400000,61.05], [1167778800000,58.32], [1167865200000,57.35], [1167951600000,56.31], [1168210800000,55.55], [1168297200000,55.64], [1168383600000,54.02], [1168470000000,51.88], [1168556400000,52.99], [1168815600000,52.99], [1168902000000,51.21], [1168988400000,52.24], [1169074800000,50.48], [1169161200000,51.99], [1169420400000,51.13], [1169506800000,55.04], [1169593200000,55.37], [1169679600000,54.23], [1169766000000,55.42], [1170025200000,54.01], [1170111600000,56.97], [1170198000000,58.14], [1170284400000,58.14], [1170370800000,59.02], [1170630000000,58.74], [1170716400000,58.88], [1170802800000,57.71], [1170889200000,59.71], [1170975600000,59.89], [1171234800000,57.81], [1171321200000,59.06], [1171407600000,58.00], [1171494000000,57.99], [1171580400000,59.39], [1171839600000,59.39], [1171926000000,58.07], [1172012400000,60.07], [1172098800000,61.14], [1172444400000,61.39], [1172530800000,61.46], [1172617200000,61.79], [1172703600000,62.00], [1172790000000,60.07], [1173135600000,60.69], [1173222000000,61.82], [1173308400000,60.05], [1173654000000,58.91], [1173740400000,57.93], [1173826800000,58.16], [1173913200000,57.55], [1173999600000,57.11], [1174258800000,56.59], [1174345200000,59.61], [1174518000000,61.69], [1174604400000,62.28], [1174860000000,62.91], [1174946400000,62.93], [1175032800000,64.03], [1175119200000,66.03], [1175205600000,65.87], [1175464800000,64.64], [1175637600000,64.38], [1175724000000,64.28], [1175810400000,64.28], [1176069600000,61.51], [1176156000000,61.89], [1176242400000,62.01], [1176328800000,63.85], [1176415200000,63.63], [1176674400000,63.61], [1176760800000,63.10], [1176847200000,63.13], [1176933600000,61.83], [1177020000000,63.38], [1177279200000,64.58], [1177452000000,65.84], [1177538400000,65.06], [1177624800000,66.46], [1177884000000,64.40], [1178056800000,63.68], [1178143200000,63.19], [1178229600000,61.93], [1178488800000,61.47], [1178575200000,61.55], [1178748000000,61.81], [1178834400000,62.37], [1179093600000,62.46], [1179180000000,63.17], [1179266400000,62.55], [1179352800000,64.94], [1179698400000,66.27], [1179784800000,65.50], [1179871200000,65.77], [1179957600000,64.18], [1180044000000,65.20], [1180389600000,63.15], [1180476000000,63.49], [1180562400000,65.08], [1180908000000,66.30], [1180994400000,65.96], [1181167200000,66.93], [1181253600000,65.98], [1181599200000,65.35], [1181685600000,66.26], [1181858400000,68.00], [1182117600000,69.09], [1182204000000,69.10], [1182290400000,68.19], [1182376800000,68.19], [1182463200000,69.14], [1182722400000,68.19], [1182808800000,67.77], [1182895200000,68.97], [1182981600000,69.57], [1183068000000,70.68], [1183327200000,71.09], [1183413600000,70.92], [1183586400000,71.81], [1183672800000,72.81], [1183932000000,72.19], [1184018400000,72.56], [1184191200000,72.50], [1184277600000,74.15], [1184623200000,75.05], [1184796000000,75.92], [1184882400000,75.57], [1185141600000,74.89], [1185228000000,73.56], [1185314400000,75.57], [1185400800000,74.95], [1185487200000,76.83], [1185832800000,78.21], [1185919200000,76.53], [1186005600000,76.86], [1186092000000,76.00], [1186437600000,71.59], [1186696800000,71.47], [1186956000000,71.62], [1187042400000,71.00], [1187301600000,71.98], [1187560800000,71.12], [1187647200000,69.47], [1187733600000,69.26], [1187820000000,69.83], [1187906400000,71.09], [1188165600000,71.73], [1188338400000,73.36], [1188511200000,74.04], [1188856800000,76.30], [1189116000000,77.49], [1189461600000,78.23], [1189548000000,79.91], [1189634400000,80.09], [1189720800000,79.10], [1189980000000,80.57], [1190066400000,81.93], [1190239200000,83.32], [1190325600000,81.62], [1190584800000,80.95], [1190671200000,79.53], [1190757600000,80.30], [1190844000000,82.88], [1190930400000,81.66], [1191189600000,80.24], [1191276000000,80.05], [1191362400000,79.94], [1191448800000,81.44], [1191535200000,81.22], [1191794400000,79.02], [1191880800000,80.26], [1191967200000,80.30], [1192053600000,83.08], [1192140000000,83.69], [1192399200000,86.13], [1192485600000,87.61], [1192572000000,87.40], [1192658400000,89.47], [1192744800000,88.60], [1193004000000,87.56], [1193090400000,87.56], [1193176800000,87.10], [1193263200000,91.86], [1193612400000,93.53], [1193698800000,94.53], [1193871600000,95.93], [1194217200000,93.98], [1194303600000,96.37], [1194476400000,95.46], [1194562800000,96.32], [1195081200000,93.43], [1195167600000,95.10], [1195426800000,94.64], [1195513200000,95.10], [1196031600000,97.70], [1196118000000,94.42], [1196204400000,90.62], [1196290800000,91.01], [1196377200000,88.71], [1196636400000,88.32], [1196809200000,90.23], [1196982000000,88.28], [1197241200000,87.86], [1197327600000,90.02], [1197414000000,92.25], [1197586800000,90.63], [1197846000000,90.63], [1197932400000,90.49], [1198018800000,91.24], [1198105200000,91.06], [1198191600000,90.49], [1198710000000,96.62], [1198796400000,96.00], [1199142000000,99.62], [1199314800000,99.18], [1199401200000,95.09], [1199660400000,96.33], [1199833200000,95.67], [1200351600000,91.90], [1200438000000,90.84], [1200524400000,90.13], [1200610800000,90.57], [1200956400000,89.21], [1201042800000,86.99], [1201129200000,89.85], [1201474800000,90.99], [1201561200000,91.64], [1201647600000,92.33], [1201734000000,91.75], [1202079600000,90.02], [1202166000000,88.41], [1202252400000,87.14], [1202338800000,88.11], [1202425200000,91.77], [1202770800000,92.78], [1202857200000,93.27], [1202943600000,95.46], [1203030000000,95.46], [1203289200000,101.74], [1203462000000,98.81], [1203894000000,100.88], [1204066800000,99.64], [1204153200000,102.59], [1204239600000,101.84], [1204498800000,99.52], [1204585200000,99.52], [1204671600000,104.52], [1204758000000,105.47], [1204844400000,105.15], [1205103600000,108.75], [1205276400000,109.92], [1205362800000,110.33], [1205449200000,110.21], [1205708400000,105.68], [1205967600000,101.84], [1206313200000,100.86], [1206399600000,101.22], [1206486000000,105.90], [1206572400000,107.58], [1206658800000,105.62], [1206914400000,101.58], [1207000800000,100.98], [1207173600000,103.83], [1207260000000,106.23], [1207605600000,108.50], [1207778400000,110.11], [1207864800000,110.14], [1208210400000,113.79], [1208296800000,114.93], [1208383200000,114.86], [1208728800000,117.48], [1208815200000,118.30], [1208988000000,116.06], [1209074400000,118.52], [1209333600000,118.75], [1209420000000,113.46], [1209592800000,112.52], [1210024800000,121.84], [1210111200000,123.53], [1210197600000,123.69], [1210543200000,124.23], [1210629600000,125.80], [1210716000000,126.29], [1211148000000,127.05], [1211320800000,129.07], [1211493600000,132.19], [1211839200000,128.85], [1212357600000,127.76], [1212703200000,138.54], [1212962400000,136.80], [1213135200000,136.38], [1213308000000,134.86], [1213653600000,134.01], [1213740000000,136.68], [1213912800000,135.65], [1214172000000,134.62], [1214258400000,134.62], [1214344800000,134.62], [1214431200000,139.64], [1214517600000,140.21], [1214776800000,140.00], [1214863200000,140.97], [1214949600000,143.57], [1215036000000,145.29], [1215381600000,141.37], [1215468000000,136.04], [1215727200000,146.40], [1215986400000,145.18], [1216072800000,138.74], [1216159200000,134.60], [1216245600000,129.29], [1216332000000,130.65], [1216677600000,127.95], [1216850400000,127.95], [1217282400000,122.19], [1217455200000,124.08], [1217541600000,125.10], [1217800800000,121.41], [1217887200000,119.17], [1217973600000,118.58], [1218060000000,120.02], [1218405600000,114.45], [1218492000000,113.01], [1218578400000,116.00], [1218751200000,113.77], [1219010400000,112.87], [1219096800000,114.53], [1219269600000,114.98], [1219356000000,114.98], [1219701600000,116.27], [1219788000000,118.15], [1219874400000,115.59], [1219960800000,115.46], [1220306400000,109.71], [1220392800000,109.35], [1220565600000,106.23], [1220824800000,106.34]];
-    var exchangerates = [[1167606000000,0.7580], [1167692400000,0.7580], [1167778800000,0.75470], [1167865200000,0.75490], [1167951600000,0.76130], [1168038000000,0.76550], [1168124400000,0.76930], [1168210800000,0.76940], [1168297200000,0.76880], [1168383600000,0.76780], [1168470000000,0.77080], [1168556400000,0.77270], [1168642800000,0.77490], [1168729200000,0.77410], [1168815600000,0.77410], [1168902000000,0.77320], [1168988400000,0.77270], [1169074800000,0.77370], [1169161200000,0.77240], [1169247600000,0.77120], [1169334000000,0.7720], [1169420400000,0.77210], [1169506800000,0.77170], [1169593200000,0.77040], [1169679600000,0.7690], [1169766000000,0.77110], [1169852400000,0.7740], [1169938800000,0.77450], [1170025200000,0.77450], [1170111600000,0.7740], [1170198000000,0.77160], [1170284400000,0.77130], [1170370800000,0.76780], [1170457200000,0.76880], [1170543600000,0.77180], [1170630000000,0.77180], [1170716400000,0.77280], [1170802800000,0.77290], [1170889200000,0.76980], [1170975600000,0.76850], [1171062000000,0.76810], [1171148400000,0.7690], [1171234800000,0.7690], [1171321200000,0.76980], [1171407600000,0.76990], [1171494000000,0.76510], [1171580400000,0.76130], [1171666800000,0.76160], [1171753200000,0.76140], [1171839600000,0.76140], [1171926000000,0.76070], [1172012400000,0.76020], [1172098800000,0.76110], [1172185200000,0.76220], [1172271600000,0.76150], [1172358000000,0.75980], [1172444400000,0.75980], [1172530800000,0.75920], [1172617200000,0.75730], [1172703600000,0.75660], [1172790000000,0.75670], [1172876400000,0.75910], [1172962800000,0.75820], [1173049200000,0.75850], [1173135600000,0.76130], [1173222000000,0.76310], [1173308400000,0.76150], [1173394800000,0.760], [1173481200000,0.76130], [1173567600000,0.76270], [1173654000000,0.76270], [1173740400000,0.76080], [1173826800000,0.75830], [1173913200000,0.75750], [1173999600000,0.75620], [1174086000000,0.7520], [1174172400000,0.75120], [1174258800000,0.75120], [1174345200000,0.75170], [1174431600000,0.7520], [1174518000000,0.75110], [1174604400000,0.7480], [1174690800000,0.75090], [1174777200000,0.75310], [1174860000000,0.75310], [1174946400000,0.75270], [1175032800000,0.74980], [1175119200000,0.74930], [1175205600000,0.75040], [1175292000000,0.750], [1175378400000,0.74910], [1175464800000,0.74910], [1175551200000,0.74850], [1175637600000,0.74840], [1175724000000,0.74920], [1175810400000,0.74710], [1175896800000,0.74590], [1175983200000,0.74770], [1176069600000,0.74770], [1176156000000,0.74830], [1176242400000,0.74580], [1176328800000,0.74480], [1176415200000,0.7430], [1176501600000,0.73990], [1176588000000,0.73950], [1176674400000,0.73950], [1176760800000,0.73780], [1176847200000,0.73820], [1176933600000,0.73620], [1177020000000,0.73550], [1177106400000,0.73480], [1177192800000,0.73610], [1177279200000,0.73610], [1177365600000,0.73650], [1177452000000,0.73620], [1177538400000,0.73310], [1177624800000,0.73390], [1177711200000,0.73440], [1177797600000,0.73270], [1177884000000,0.73270], [1177970400000,0.73360], [1178056800000,0.73330], [1178143200000,0.73590], [1178229600000,0.73590], [1178316000000,0.73720], [1178402400000,0.7360], [1178488800000,0.7360], [1178575200000,0.7350], [1178661600000,0.73650], [1178748000000,0.73840], [1178834400000,0.73950], [1178920800000,0.74130], [1179007200000,0.73970], [1179093600000,0.73960], [1179180000000,0.73850], [1179266400000,0.73780], [1179352800000,0.73660], [1179439200000,0.740], [1179525600000,0.74110], [1179612000000,0.74060], [1179698400000,0.74050], [1179784800000,0.74140], [1179871200000,0.74310], [1179957600000,0.74310], [1180044000000,0.74380], [1180130400000,0.74430], [1180216800000,0.74430], [1180303200000,0.74430], [1180389600000,0.74340], [1180476000000,0.74290], [1180562400000,0.74420], [1180648800000,0.7440], [1180735200000,0.74390], [1180821600000,0.74370], [1180908000000,0.74370], [1180994400000,0.74290], [1181080800000,0.74030], [1181167200000,0.73990], [1181253600000,0.74180], [1181340000000,0.74680], [1181426400000,0.7480], [1181512800000,0.7480], [1181599200000,0.7490], [1181685600000,0.74940], [1181772000000,0.75220], [1181858400000,0.75150], [1181944800000,0.75020], [1182031200000,0.74720], [1182117600000,0.74720], [1182204000000,0.74620], [1182290400000,0.74550], [1182376800000,0.74490], [1182463200000,0.74670], [1182549600000,0.74580], [1182636000000,0.74270], [1182722400000,0.74270], [1182808800000,0.7430], [1182895200000,0.74290], [1182981600000,0.7440], [1183068000000,0.7430], [1183154400000,0.74220], [1183240800000,0.73880], [1183327200000,0.73880], [1183413600000,0.73690], [1183500000000,0.73450], [1183586400000,0.73450], [1183672800000,0.73450], [1183759200000,0.73520], [1183845600000,0.73410], [1183932000000,0.73410], [1184018400000,0.7340], [1184104800000,0.73240], [1184191200000,0.72720], [1184277600000,0.72640], [1184364000000,0.72550], [1184450400000,0.72580], [1184536800000,0.72580], [1184623200000,0.72560], [1184709600000,0.72570], [1184796000000,0.72470], [1184882400000,0.72430], [1184968800000,0.72440], [1185055200000,0.72350], [1185141600000,0.72350], [1185228000000,0.72350], [1185314400000,0.72350], [1185400800000,0.72620], [1185487200000,0.72880], [1185573600000,0.73010], [1185660000000,0.73370], [1185746400000,0.73370], [1185832800000,0.73240], [1185919200000,0.72970], [1186005600000,0.73170], [1186092000000,0.73150], [1186178400000,0.72880], [1186264800000,0.72630], [1186351200000,0.72630], [1186437600000,0.72420], [1186524000000,0.72530], [1186610400000,0.72640], [1186696800000,0.7270], [1186783200000,0.73120], [1186869600000,0.73050], [1186956000000,0.73050], [1187042400000,0.73180], [1187128800000,0.73580], [1187215200000,0.74090], [1187301600000,0.74540], [1187388000000,0.74370], [1187474400000,0.74240], [1187560800000,0.74240], [1187647200000,0.74150], [1187733600000,0.74190], [1187820000000,0.74140], [1187906400000,0.73770], [1187992800000,0.73550], [1188079200000,0.73150], [1188165600000,0.73150], [1188252000000,0.7320], [1188338400000,0.73320], [1188424800000,0.73460], [1188511200000,0.73280], [1188597600000,0.73230], [1188684000000,0.7340], [1188770400000,0.7340], [1188856800000,0.73360], [1188943200000,0.73510], [1189029600000,0.73460], [1189116000000,0.73210], [1189202400000,0.72940], [1189288800000,0.72660], [1189375200000,0.72660], [1189461600000,0.72540], [1189548000000,0.72420], [1189634400000,0.72130], [1189720800000,0.71970], [1189807200000,0.72090], [1189893600000,0.7210], [1189980000000,0.7210], [1190066400000,0.7210], [1190152800000,0.72090], [1190239200000,0.71590], [1190325600000,0.71330], [1190412000000,0.71050], [1190498400000,0.70990], [1190584800000,0.70990], [1190671200000,0.70930], [1190757600000,0.70930], [1190844000000,0.70760], [1190930400000,0.7070], [1191016800000,0.70490], [1191103200000,0.70120], [1191189600000,0.70110], [1191276000000,0.70190], [1191362400000,0.70460], [1191448800000,0.70630], [1191535200000,0.70890], [1191621600000,0.70770], [1191708000000,0.70770], [1191794400000,0.70770], [1191880800000,0.70910], [1191967200000,0.71180], [1192053600000,0.70790], [1192140000000,0.70530], [1192226400000,0.7050], [1192312800000,0.70550], [1192399200000,0.70550], [1192485600000,0.70450], [1192572000000,0.70510], [1192658400000,0.70510], [1192744800000,0.70170], [1192831200000,0.70], [1192917600000,0.69950], [1193004000000,0.69940], [1193090400000,0.70140], [1193176800000,0.70360], [1193263200000,0.70210], [1193349600000,0.70020], [1193436000000,0.69670], [1193522400000,0.6950], [1193612400000,0.6950], [1193698800000,0.69390], [1193785200000,0.6940], [1193871600000,0.69220], [1193958000000,0.69190], [1194044400000,0.69140], [1194130800000,0.68940], [1194217200000,0.68910], [1194303600000,0.69040], [1194390000000,0.6890], [1194476400000,0.68340], [1194562800000,0.68230], [1194649200000,0.68070], [1194735600000,0.68150], [1194822000000,0.68150], [1194908400000,0.68470], [1194994800000,0.68590], [1195081200000,0.68220], [1195167600000,0.68270], [1195254000000,0.68370], [1195340400000,0.68230], [1195426800000,0.68220], [1195513200000,0.68220], [1195599600000,0.67920], [1195686000000,0.67460], [1195772400000,0.67350], [1195858800000,0.67310], [1195945200000,0.67420], [1196031600000,0.67440], [1196118000000,0.67390], [1196204400000,0.67310], [1196290800000,0.67610], [1196377200000,0.67610], [1196463600000,0.67850], [1196550000000,0.68180], [1196636400000,0.68360], [1196722800000,0.68230], [1196809200000,0.68050], [1196895600000,0.67930], [1196982000000,0.68490], [1197068400000,0.68330], [1197154800000,0.68250], [1197241200000,0.68250], [1197327600000,0.68160], [1197414000000,0.67990], [1197500400000,0.68130], [1197586800000,0.68090], [1197673200000,0.68680], [1197759600000,0.69330], [1197846000000,0.69330], [1197932400000,0.69450], [1198018800000,0.69440], [1198105200000,0.69460], [1198191600000,0.69640], [1198278000000,0.69650], [1198364400000,0.69560], [1198450800000,0.69560], [1198537200000,0.6950], [1198623600000,0.69480], [1198710000000,0.69280], [1198796400000,0.68870], [1198882800000,0.68240], [1198969200000,0.67940], [1199055600000,0.67940], [1199142000000,0.68030], [1199228400000,0.68550], [1199314800000,0.68240], [1199401200000,0.67910], [1199487600000,0.67830], [1199574000000,0.67850], [1199660400000,0.67850], [1199746800000,0.67970], [1199833200000,0.680], [1199919600000,0.68030], [1200006000000,0.68050], [1200092400000,0.6760], [1200178800000,0.6770], [1200265200000,0.6770], [1200351600000,0.67360], [1200438000000,0.67260], [1200524400000,0.67640], [1200610800000,0.68210], [1200697200000,0.68310], [1200783600000,0.68420], [1200870000000,0.68420], [1200956400000,0.68870], [1201042800000,0.69030], [1201129200000,0.68480], [1201215600000,0.68240], [1201302000000,0.67880], [1201388400000,0.68140], [1201474800000,0.68140], [1201561200000,0.67970], [1201647600000,0.67690], [1201734000000,0.67650], [1201820400000,0.67330], [1201906800000,0.67290], [1201993200000,0.67580], [1202079600000,0.67580], [1202166000000,0.6750], [1202252400000,0.6780], [1202338800000,0.68330], [1202425200000,0.68560], [1202511600000,0.69030], [1202598000000,0.68960], [1202684400000,0.68960], [1202770800000,0.68820], [1202857200000,0.68790], [1202943600000,0.68620], [1203030000000,0.68520], [1203116400000,0.68230], [1203202800000,0.68130], [1203289200000,0.68130], [1203375600000,0.68220], [1203462000000,0.68020], [1203548400000,0.68020], [1203634800000,0.67840], [1203721200000,0.67480], [1203807600000,0.67470], [1203894000000,0.67470], [1203980400000,0.67480], [1204066800000,0.67330], [1204153200000,0.6650], [1204239600000,0.66110], [1204326000000,0.65830], [1204412400000,0.6590], [1204498800000,0.6590], [1204585200000,0.65810], [1204671600000,0.65780], [1204758000000,0.65740], [1204844400000,0.65320], [1204930800000,0.65020], [1205017200000,0.65140], [1205103600000,0.65140], [1205190000000,0.65070], [1205276400000,0.6510], [1205362800000,0.64890], [1205449200000,0.64240], [1205535600000,0.64060], [1205622000000,0.63820], [1205708400000,0.63820], [1205794800000,0.63410], [1205881200000,0.63440], [1205967600000,0.63780], [1206054000000,0.64390], [1206140400000,0.64780], [1206226800000,0.64810], [1206313200000,0.64810], [1206399600000,0.64940], [1206486000000,0.64380], [1206572400000,0.63770], [1206658800000,0.63290], [1206745200000,0.63360], [1206831600000,0.63330], [1206914400000,0.63330], [1207000800000,0.6330], [1207087200000,0.63710], [1207173600000,0.64030], [1207260000000,0.63960], [1207346400000,0.63640], [1207432800000,0.63560], [1207519200000,0.63560], [1207605600000,0.63680], [1207692000000,0.63570], [1207778400000,0.63540], [1207864800000,0.6320], [1207951200000,0.63320], [1208037600000,0.63280], [1208124000000,0.63310], [1208210400000,0.63420], [1208296800000,0.63210], [1208383200000,0.63020], [1208469600000,0.62780], [1208556000000,0.63080], [1208642400000,0.63240], [1208728800000,0.63240], [1208815200000,0.63070], [1208901600000,0.62770], [1208988000000,0.62690], [1209074400000,0.63350], [1209160800000,0.63920], [1209247200000,0.640], [1209333600000,0.64010], [1209420000000,0.63960], [1209506400000,0.64070], [1209592800000,0.64230], [1209679200000,0.64290], [1209765600000,0.64720], [1209852000000,0.64850], [1209938400000,0.64860], [1210024800000,0.64670], [1210111200000,0.64440], [1210197600000,0.64670], [1210284000000,0.65090], [1210370400000,0.64780], [1210456800000,0.64610], [1210543200000,0.64610], [1210629600000,0.64680], [1210716000000,0.64490], [1210802400000,0.6470], [1210888800000,0.64610], [1210975200000,0.64520], [1211061600000,0.64220], [1211148000000,0.64220], [1211234400000,0.64250], [1211320800000,0.64140], [1211407200000,0.63660], [1211493600000,0.63460], [1211580000000,0.6350], [1211666400000,0.63460], [1211752800000,0.63460], [1211839200000,0.63430], [1211925600000,0.63460], [1212012000000,0.63790], [1212098400000,0.64160], [1212184800000,0.64420], [1212271200000,0.64310], [1212357600000,0.64310], [1212444000000,0.64350], [1212530400000,0.6440], [1212616800000,0.64730], [1212703200000,0.64690], [1212789600000,0.63860], [1212876000000,0.63560], [1212962400000,0.6340], [1213048800000,0.63460], [1213135200000,0.6430], [1213221600000,0.64520], [1213308000000,0.64670], [1213394400000,0.65060], [1213480800000,0.65040], [1213567200000,0.65030], [1213653600000,0.64810], [1213740000000,0.64510], [1213826400000,0.6450], [1213912800000,0.64410], [1213999200000,0.64140], [1214085600000,0.64090], [1214172000000,0.64090], [1214258400000,0.64280], [1214344800000,0.64310], [1214431200000,0.64180], [1214517600000,0.63710], [1214604000000,0.63490], [1214690400000,0.63330], [1214776800000,0.63340], [1214863200000,0.63380], [1214949600000,0.63420], [1215036000000,0.6320], [1215122400000,0.63180], [1215208800000,0.6370], [1215295200000,0.63680], [1215381600000,0.63680], [1215468000000,0.63830], [1215554400000,0.63710], [1215640800000,0.63710], [1215727200000,0.63550], [1215813600000,0.6320], [1215900000000,0.62770], [1215986400000,0.62760], [1216072800000,0.62910], [1216159200000,0.62740], [1216245600000,0.62930], [1216332000000,0.63110], [1216418400000,0.6310], [1216504800000,0.63120], [1216591200000,0.63120], [1216677600000,0.63040], [1216764000000,0.62940], [1216850400000,0.63480], [1216936800000,0.63780], [1217023200000,0.63680], [1217109600000,0.63680], [1217196000000,0.63680], [1217282400000,0.6360], [1217368800000,0.6370], [1217455200000,0.64180], [1217541600000,0.64110], [1217628000000,0.64350], [1217714400000,0.64270], [1217800800000,0.64270], [1217887200000,0.64190], [1217973600000,0.64460], [1218060000000,0.64680], [1218146400000,0.64870], [1218232800000,0.65940], [1218319200000,0.66660], [1218405600000,0.66660], [1218492000000,0.66780], [1218578400000,0.67120], [1218664800000,0.67050], [1218751200000,0.67180], [1218837600000,0.67840], [1218924000000,0.68110], [1219010400000,0.68110], [1219096800000,0.67940], [1219183200000,0.68040], [1219269600000,0.67810], [1219356000000,0.67560], [1219442400000,0.67350], [1219528800000,0.67630], [1219615200000,0.67620], [1219701600000,0.67770], [1219788000000,0.68150], [1219874400000,0.68020], [1219960800000,0.6780], [1220047200000,0.67960], [1220133600000,0.68170], [1220220000000,0.68170], [1220306400000,0.68320], [1220392800000,0.68770], [1220479200000,0.69120], [1220565600000,0.69140], [1220652000000,0.70090], [1220738400000,0.70120], [1220824800000,0.7010], [1220911200000,0.70050]];
-
-    function euroFormatter(v, axis) {
-        return v.toFixed(axis.tickDecimals) +"€";
-    }
-    
-    function doPlot(position) {
-        $.plot($("#placeholder"),
-           [ { data: oilprices, label: "Oil price ($)" },
-             { data: exchangerates, label: "USD/EUR exchange rate", yaxis: 2 }],
-           { 
-               xaxes: [ { mode: 'time' } ],
-               yaxes: [ { min: 0 },
-                        {
-                          // align if we are to the right
-                          alignTicksWithAxis: position == "right" ? 1 : null,
-                          position: position,
-                          tickFormatter: euroFormatter
-                        } ],
-               legend: { position: 'sw' }
-           });
-    }
-
-    doPlot("right");
-    
-    $("button").click(function () {
-        doPlot($(this).text());
-    });
-});
-</script>
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/navigate.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/navigate.html
deleted file mode 100644
index c916ef2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/navigate.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.navigate.js"></script>
-    <style type="text/css">
-    #placeholder .button {
-        position: absolute;
-        cursor: pointer;
-    }
-    #placeholder div.button {
-        font-size: smaller;
-        color: #999;
-        background-color: #eee;
-        padding: 2px;
-    }
-    .message {
-        padding-left: 50px;
-        font-size: smaller;
-    }
-    </style>
- </head>
- <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p class="message"></p>
-
-    <p>With the navigate plugin it is easy to add panning and zooming.
-    Drag to pan, double click to zoom (or use the mouse scrollwheel).</p>
-
-    <p>The plugin fires events (useful for synchronizing several
-    plots) and adds a couple of public methods so you can easily build
-    a little user interface around it, like the little buttons at the
-    top right in the plot.</p>
-    
-
-<script type="text/javascript">
-$(function () {
-    // generate data set from a parametric function with a fractal
-    // look
-    function sumf(f, t, m) {
-        var res = 0;
-        for (var i = 1; i < m; ++i)
-            res += f(i * i * t) / (i * i);
-        return res;
-    }
-    
-    var d1 = [];
-    for (var t = 0; t <= 2 * Math.PI; t += 0.01)
-        d1.push([sumf(Math.cos, t, 10), sumf(Math.sin, t, 10)]);
-    var data = [ d1 ];
-
-    
-    var placeholder = $("#placeholder");
-    var options = {
-        series: { lines: { show: true }, shadowSize: 0 },
-        xaxis: { zoomRange: [0.1, 10], panRange: [-10, 10] },
-        yaxis: { zoomRange: [0.1, 10], panRange: [-10, 10] },
-        zoom: {
-            interactive: true
-        },
-        pan: {
-            interactive: true
-        }
-    };
-
-    var plot = $.plot(placeholder, data, options);
-
-    // show pan/zoom messages to illustrate events 
-    placeholder.bind('plotpan', function (event, plot) {
-        var axes = plot.getAxes();
-        $(".message").html("Panning to x: "  + axes.xaxis.min.toFixed(2)
-                           + " &ndash; " + axes.xaxis.max.toFixed(2)
-                           + " and y: " + axes.yaxis.min.toFixed(2)
-                           + " &ndash; " + axes.yaxis.max.toFixed(2));
-    });
-
-    placeholder.bind('plotzoom', function (event, plot) {
-        var axes = plot.getAxes();
-        $(".message").html("Zooming to x: "  + axes.xaxis.min.toFixed(2)
-                           + " &ndash; " + axes.xaxis.max.toFixed(2)
-                           + " and y: " + axes.yaxis.min.toFixed(2)
-                           + " &ndash; " + axes.yaxis.max.toFixed(2));
-    });
-
-    // add zoom out button 
-    $('<div class="button" style="right:20px;top:20px">zoom out</div>').appendTo(placeholder).click(function (e) {
-        e.preventDefault();
-        plot.zoomOut();
-    });
-
-    // and add panning buttons
-    
-    // little helper for taking the repetitive work out of placing
-    // panning arrows
-    function addArrow(dir, right, top, offset) {
-        $('<img class="button" src="arrow-' + dir + '.gif" style="right:' + right + 'px;top:' + top + 'px">').appendTo(placeholder).click(function (e) {
-            e.preventDefault();
-            plot.pan(offset);
-        });
-    }
-
-    addArrow('left', 55, 60, { left: -100 });
-    addArrow('right', 25, 60, { left: 100 });
-    addArrow('up', 40, 45, { top: -100 });
-    addArrow('down', 40, 75, { top: 100 });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/percentiles.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/percentiles.html
deleted file mode 100644
index 9f2ba3a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/percentiles.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.fillbetween.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:400px;"></div>
-
-    <p>Height in centimeters of individuals from the US (2003-2006) as function of
-    age in years (source: <a href="http://www.cdc.gov/nchs/data/nhsr/nhsr010.pdf">CDC</a>).
-    The 15%-85%, 25%-75% and 50% percentiles are indicated.</p>
-
-    <p>For each point of a filled curve, you can specify an arbitrary
-    bottom. As this example illustrates, this can be useful for
-    plotting percentiles. If you have the data sets available without
-    appropriate fill bottoms, you can use the fillbetween plugin to
-    compute the data point bottoms automatically.</p>
-    
-<script type="text/javascript">
-$(function () {
-    var males = {'15%': [[2, 88.0], [3, 93.3], [4, 102.0], [5, 108.5], [6, 115.7], [7, 115.6], [8, 124.6], [9, 130.3], [10, 134.3], [11, 141.4], [12, 146.5], [13, 151.7], [14, 159.9], [15, 165.4], [16, 167.8], [17, 168.7], [18, 169.5], [19, 168.0]], '90%': [[2, 96.8], [3, 105.2], [4, 113.9], [5, 120.8], [6, 127.0], [7, 133.1], [8, 139.1], [9, 143.9], [10, 151.3], [11, 161.1], [12, 164.8], [13, 173.5], [14, 179.0], [15, 182.0], [16, 186.9], [17, 185.2], [18, 186.3], [19, 186.6]], '25%': [[2, 89.2], [3, 94.9], [4, 104.4], [5, 111.4], [6, 117.5], [7, 120.2], [8, 127.1], [9, 132.9], [10, 136.8], [11, 144.4], [12, 149.5], [13, 154.1], [14, 163.1], [15, 169.2], [16, 170.4], [17, 171.2], [18, 172.4], [19, 170.8]], '10%': [[2, 86.9], [3, 92.6], [4, 99.9], [5, 107.0], [6, 114.0], [7, 113.5], [8, 123.6], [9, 129.2], [10, 133.0], [11, 140.6], [12, 145.2], [13, 149.7], [14, 158.4], [15, 163.5], [16, 166.9], [17, 167.5], [18, 167.1], [19, 165.3]], 'mean': [[2, 91.9], [3, 98.5], [4, 107.1], [5, 114.4], [6, 120.6], [7, 124.7], [8, 131.1], [9, 136.8], [10, 142.3], [11, 150.0], [12, 154.7], [13, 161.9], [14, 168.7], [15, 173.6], [16, 175.9], [17, 176.6], [18, 176.8], [19, 176.7]], '75%': [[2, 94.5], [3, 102.1], [4, 110.8], [5, 117.9], [6, 124.0], [7, 129.3], [8, 134.6], [9, 141.4], [10, 147.0], [11, 156.1], [12, 160.3], [13, 168.3], [14, 174.7], [15, 178.0], [16, 180.2], [17, 181.7], [18, 181.3], [19, 182.5]], '85%': [[2, 96.2], [3, 103.8], [4, 111.8], [5, 119.6], [6, 125.6], [7, 131.5], [8, 138.0], [9, 143.3], [10, 149.3], [11, 159.8], [12, 162.5], [13, 171.3], [14, 177.5], [15, 180.2], [16, 183.8], [17, 183.4], [18, 183.5], [19, 185.5]], '50%': [[2, 91.9], [3, 98.2], [4, 106.8], [5, 114.6], [6, 120.8], [7, 125.2], [8, 130.3], [9, 137.1], [10, 141.5], [11, 149.4], [12, 153.9], [13, 162.2], [14, 169.0], [15, 174.8], [16, 176.0], [17, 176.8], [18, 176.4], [19, 177.4]]};
-    var females = {'15%': [[2, 84.8], [3, 93.7], [4, 100.6], [5, 105.8], [6, 113.3], [7, 119.3], [8, 124.3], [9, 131.4], [10, 136.9], [11, 143.8], [12, 149.4], [13, 151.2], [14, 152.3], [15, 155.9], [16, 154.7], [17, 157.0], [18, 156.1], [19, 155.4]], '90%': [[2, 95.6], [3, 104.1], [4, 111.9], [5, 119.6], [6, 127.6], [7, 133.1], [8, 138.7], [9, 147.1], [10, 152.8], [11, 161.3], [12, 166.6], [13, 167.9], [14, 169.3], [15, 170.1], [16, 172.4], [17, 169.2], [18, 171.1], [19, 172.4]], '25%': [[2, 87.2], [3, 95.9], [4, 101.9], [5, 107.4], [6, 114.8], [7, 121.4], [8, 126.8], [9, 133.4], [10, 138.6], [11, 146.2], [12, 152.0], [13, 153.8], [14, 155.7], [15, 158.4], [16, 157.0], [17, 158.5], [18, 158.4], [19, 158.1]], '10%': [[2, 84.0], [3, 91.9], [4, 99.2], [5, 105.2], [6, 112.7], [7, 118.0], [8, 123.3], [9, 130.2], [10, 135.0], [11, 141.1], [12, 148.3], [13, 150.0], [14, 150.7], [15, 154.3], [16, 153.6], [17, 155.6], [18, 154.7], [19, 153.1]], 'mean': [[2, 90.2], [3, 98.3], [4, 105.2], [5, 112.2], [6, 119.0], [7, 125.8], [8, 131.3], [9, 138.6], [10, 144.2], [11, 151.3], [12, 156.7], [13, 158.6], [14, 160.5], [15, 162.1], [16, 162.9], [17, 162.2], [18, 163.0], [19, 163.1]], '75%': [[2, 93.2], [3, 101.5], [4, 107.9], [5, 116.6], [6, 122.8], [7, 129.3], [8, 135.2], [9, 143.7], [10, 148.7], [11, 156.9], [12, 160.8], [13, 163.0], [14, 165.0], [15, 165.8], [16, 168.7], [17, 166.2], [18, 167.6], [19, 168.0]], '85%': [[2, 94.5], [3, 102.8], [4, 110.4], [5, 119.0], [6, 125.7], [7, 131.5], [8, 137.9], [9, 146.0], [10, 151.3], [11, 159.9], [12, 164.0], [13, 166.5], [14, 167.5], [15, 168.5], [16, 171.5], [17, 168.0], [18, 169.8], [19, 170.3]], '50%': [[2, 90.2], [3, 98.1], [4, 105.2], [5, 111.7], [6, 118.2], [7, 125.6], [8, 130.5], [9, 138.3], [10, 143.7], [11, 151.4], [12, 156.7], [13, 157.7], [14, 161.0], [15, 162.0], [16, 162.8], [17, 162.2], [18, 162.8], [19, 163.3]]};
-
-    var dataset = [
-       { label: 'Female mean', data: females['mean'], lines: { show: true }, color: "rgb(255,50,50)" },
-       { id: 'f15%', data: females['15%'], lines: { show: true, lineWidth: 0, fill: false }, color: "rgb(255,50,50)" },
-       { id: 'f25%', data: females['25%'], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(255,50,50)", fillBetween: 'f15%' },
-       { id: 'f50%', data: females['50%'], lines: { show: true, lineWidth: 0.5, fill: 0.4, shadowSize: 0 }, color: "rgb(255,50,50)", fillBetween: 'f25%' },
-       { id: 'f75%', data: females['75%'], lines: { show: true, lineWidth: 0, fill: 0.4 }, color: "rgb(255,50,50)", fillBetween: 'f50%' },
-       { id: 'f85%', data: females['85%'], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(255,50,50)", fillBetween: 'f75%' },
-       
-       { label: 'Male mean', data: males['mean'], lines: { show: true }, color: "rgb(50,50,255)" },
-       { id: 'm15%', data: males['15%'], lines: { show: true, lineWidth: 0, fill: false }, color: "rgb(50,50,255)" },
-       { id: 'm25%', data: males['25%'], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(50,50,255)", fillBetween: 'm15%' },
-       { id: 'm50%', data: males['50%'], lines: { show: true, lineWidth: 0.5, fill: 0.4, shadowSize: 0 }, color: "rgb(50,50,255)", fillBetween: 'm25%' },
-       { id: 'm75%', data: males['75%'], lines: { show: true, lineWidth: 0, fill: 0.4 }, color: "rgb(50,50,255)", fillBetween: 'm50%' },
-       { id: 'm85%', data: males['85%'], lines: { show: true, lineWidth: 0, fill: 0.2 }, color: "rgb(50,50,255)", fillBetween: 'm75%' }
-    ]
-
-    $.plot($("#placeholder"), dataset, {
-            xaxis: { tickDecimals: 0 },
-            yaxis: { tickFormatter: function (v) { return v + " cm"; } },
-            legend: { position: 'se' }
-        });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/pie.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/pie.html
deleted file mode 100644
index 8f51411..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/pie.html
+++ /dev/null
@@ -1,756 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Pie Examples</title>
-	<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-	<script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.pie.js"></script>
-	
-<script type="text/javascript">
-$(function () {
-	// data
-	/*var data = [
-		{ label: "Series1",  data: 10},
-		{ label: "Series2",  data: 30},
-		{ label: "Series3",  data: 90},
-		{ label: "Series4",  data: 70},
-		{ label: "Series5",  data: 80},
-		{ label: "Series6",  data: 110}
-	];*/
-	/*var data = [
-		{ label: "Series1",  data: [[1,10]]},
-		{ label: "Series2",  data: [[1,30]]},
-		{ label: "Series3",  data: [[1,90]]},
-		{ label: "Series4",  data: [[1,70]]},
-		{ label: "Series5",  data: [[1,80]]},
-		{ label: "Series6",  data: [[1,0]]}
-	];*/
-	var data = [];
-	var series = Math.floor(Math.random()*10)+1;
-	for( var i = 0; i<series; i++)
-	{
-		data[i] = { label: "Series"+(i+1), data: Math.floor(Math.random()*100)+1 }
-	}
-
-	// DEFAULT
-    $.plot($("#default"), data, 
-	{
-		series: {
-			pie: { 
-				show: true
-			}
-		}
-	});
-	
-	// GRAPH 1
-	$.plot($("#graph1"), data, 
-	{
-		series: {
-			pie: { 
-				show: true
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 2
-	$.plot($("#graph2"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				radius: 1,
-				label: {
-					show: true,
-					radius: 1,
-					formatter: function(label, series){
-						return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
-					},
-					background: { opacity: 0.8 }
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 3
-	$.plot($("#graph3"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				radius: 1,
-				label: {
-					show: true,
-					radius: 3/4,
-					formatter: function(label, series){
-						return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
-					},
-					background: { opacity: 0.5 }
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 4
-	$.plot($("#graph4"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				radius: 1,
-				label: {
-					show: true,
-					radius: 3/4,
-					formatter: function(label, series){
-						return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
-					},
-					background: { 
-						opacity: 0.5,
-						color: '#000'
-					}
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 5
-	$.plot($("#graph5"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				radius: 3/4,
-				label: {
-					show: true,
-					radius: 3/4,
-					formatter: function(label, series){
-						return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
-					},
-					background: { 
-						opacity: 0.5,
-						color: '#000'
-					}
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 6
-	$.plot($("#graph6"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				radius: 1,
-				label: {
-					show: true,
-					radius: 2/3,
-					formatter: function(label, series){
-						return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
-					},
-					threshold: 0.1
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 7
-	$.plot($("#graph7"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				combine: {
-					color: '#999',
-					threshold: 0.1
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 8
-	$.plot($("#graph8"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				radius:300,
-				label: {
-					show: true,
-					formatter: function(label, series){
-						return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
-					},
-					threshold: 0.1
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// GRAPH 9
-	$.plot($("#graph9"), data, 
-	{
-		series: {
-			pie: { 
-				show: true,
-				radius: 1,
-				tilt: 0.5,
-				label: {
-					show: true,
-					radius: 1,
-					formatter: function(label, series){
-						return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
-					},
-					background: { opacity: 0.8 }
-				},
-				combine: {
-					color: '#999',
-					threshold: 0.1
-				}
-			}
-		},
-		legend: {
-			show: false
-		}
-	});
-	
-	// DONUT
-    $.plot($("#donut"), data, 
-	{
-		series: {
-			pie: { 
-				innerRadius: 0.5,
-				show: true
-			}
-		}
-	});
-
-	// INTERACTIVE
-    $.plot($("#interactive"), data, 
-	{
-		series: {
-			pie: { 
-				show: true
-			}
-		},
-		grid: {
-			hoverable: true,
-			clickable: true
-		}
-	});
-	$("#interactive").bind("plothover", pieHover);
-	$("#interactive").bind("plotclick", pieClick);
-
-});
-
-function pieHover(event, pos, obj) 
-{
-	if (!obj)
-                return;
-	percent = parseFloat(obj.series.percent).toFixed(2);
-	$("#hover").html('<span style="font-weight: bold; color: '+obj.series.color+'">'+obj.series.label+' ('+percent+'%)</span>');
-}
-
-function pieClick(event, pos, obj) 
-{
-	if (!obj)
-                return;
-	percent = parseFloat(obj.series.percent).toFixed(2);
-	alert(''+obj.series.label+': '+percent+'%');
-}
-</script>
-	<style type="text/css">
-		* {
-		  font-family: sans-serif;
-		}
-		
-		body
-		{
-			padding: 0 1em 1em 1em;
-		}
-		
-		div.graph
-		{
-			width: 400px;
-			height: 300px;
-			float: left;
-			border: 1px dashed gainsboro;
-		}
-		
-		label
-		{
-			display: block;
-			margin-left: 400px;
-			padding-left: 1em;
-		}
-		
-		h2
-		{
-			padding-top: 1em;
-			margin-bottom: 0;
-			clear: both;
-			color: #ccc;
-		}
-		
-		code
-		{
-			display: block;
-			background-color: #eee;
-			border: 1px dashed #999;
-			padding: 0.5em;
-			margin: 0.5em;
-			color: #666;
-			font-size: 10pt;
-		}
-		
-		code b
-		{
-			color: black;
-		}
-		
-		ul
-		{
-			font-size: 10pt;
-		}
-		
-		ul li
-		{
-			margin-bottom: 0.5em;
-		}
-		
-		ul.options li
-		{
-			list-style: none;
-			margin-bottom: 1em;
-		}
-		
-		ul li i
-		{
-			color: #999;
-		}
-	</style>
- </head>
-    <body>
-    <h1>Flot Pie Examples</h1>
-
-	<h2>Default with Legend</h2>
-    <div id="default" class="graph"></div>
-	<label for="default">
-		Default pie graph with no options set.
-		<code>
-$.plot($("#default"), data,<br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-
-	<h2>Default without Legend</h2>
-    <div id="graph1" class="graph"></div>
-	<label for="graph1">
-		Default pie graph when legend is disabled. Since the labels would normally be outside the container, the graph is resized to fit.
-		<code>
-$.plot($("#graph1"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</b><br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Graph2</h2>
-    <div id="graph2" class="graph"></div>
-	<label for="graph2">
-		Added a semi-transparent background to the labels and a custom labelFormatter function.
-		<code>
-$.plot($("#graph2"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 1,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>label: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 1,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter: function(label, series){<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return '&lt;div style="font-size:8pt;text-align:center;padding:2px;color:white;"&gt;'+label+'&lt;br/&gt;'+Math.round(series.percent)+'%&lt;/div&gt;';<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background: { opacity: 0.8 }<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Graph3</h2>
-    <div id="graph3" class="graph"></div>
-	<label for="graph3">
-		Slightly more transparent label backgrounds and adjusted the radius values to place them within the pie.
-		<code>
-$.plot($("#graph3"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 1,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radius: 3/4,</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter: function(label, series){<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return '&lt;div style="font-size:8pt;text-align:center;padding:2px;color:white;"&gt;'+label+'&lt;br/&gt;'+Math.round(series.percent)+'%&lt;/div&gt;';<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>background: { opacity: 0.5 }</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Graph4</h2>
-    <div id="graph4" class="graph"></div>
-	<label for="graph4">
-		Semi-transparent, black-colored label background.
-		<code>
-$.plot($("#graph4"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 1,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 3/4,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter: function(label, series){<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return '&lt;div style="font-size:8pt;text-align:center;padding:2px;color:white;"&gt;'+label+'&lt;br/&gt;'+Math.round(series.percent)+'%&lt;/div&gt;';<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opacity: 0.5,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>color: '#000'</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Graph5</h2>
-    <div id="graph5" class="graph"></div>
-	<label for="graph5">
-		Semi-transparent, black-colored label background placed at pie edge.
-		<code>
-$.plot($("#graph5"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radius: 3/4,</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 3/4,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter: function(label, series){<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return '&lt;div style="font-size:8pt;text-align:center;padding:2px;color:white;"&gt;'+label+'&lt;br/&gt;'+Math.round(series.percent)+'%&lt;/div&gt;';<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;opacity: 0.5,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color: '#000'<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Graph6</h2>
-    <div id="graph6" class="graph"></div>
-	<label for="graph6">
-		Labels can be hidden if the slice is less than a given percentage of the pie (10% in this case).
-		<br><span style="color: red">Note: you may need to refresh the page to see this effect.</span>
-		<code>
-$.plot($("#graph6"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radius: 1,</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radius: 2/3,</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter: function(label, series){<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return '&lt;div style="font-size:8pt;text-align:center;padding:2px;color:white;"&gt;'+label+'&lt;br/&gt;'+Math.round(series.percent)+'%&lt;/div&gt;';<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>threshold: 0.1</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Graph7</h2>
-    <div id="graph7" class="graph"></div>
-	<label for="graph7">
-		All slices less than a given percentage of the pie can be combined into a single, larger slice (10% in this case).
-		<br><span style="color: red">Note: you may need to refresh the page to see this effect.</span>
-		<code>
-$.plot($("#graph7"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>combine: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color: '#999',<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;threshold: 0.1<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Graph8</h2>
-    <div id="graph8" class="graph"></div>
-	<label for="graph8">
-		The radius can also be set to a specific size (even larger than the container itself).
-		<code>
-$.plot($("#graph8"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>radius:300,</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter: function(label, series){<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return '&lt;div style="font-size:8pt;text-align:center;padding:2px;color:white;"&gt;'+label+'&lt;br/&gt;'+Math.round(series.percent)+'%&lt;/div&gt;';<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;threshold: 0.1<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-
-	<h2>Graph9</h2>
-    <div id="graph9" class="graph" style="height: 250px;"></div>
-	<label for="graph9">
-		The pie can be tilted at an angle.
-		<code>
-$.plot($("#graph9"), data, <br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 1,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>tilt: 0.5,</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;label: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;radius: 1,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formatter: function(label, series){<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return '&lt;div style="font-size:8pt;text-align:center;padding:2px;color:white;"&gt;'+label+'&lt;br/&gt;'+Math.round(series.percent)+'%&lt;/div&gt;';<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background: { opacity: 0.8 }<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;combine: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;color: '#999',<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;threshold: 0.1<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;legend: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: false<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Donut</h2>
-    <div id="donut" class="graph"></div>
-	<label for="donut">
-		A donut hole can be added.
-		<code>
-$.plot($("#donut"), data,<br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>innerRadius: 0.5,</b><br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-});<br/>
-		</code>
-	</label>
-	
-	<h2>Interactive</h2>
-    <div id="interactive" class="graph"></div>
-	<label for="interactive">
-		The pie can be made interactive with hover and click events.
-		<code>
-$.plot($("#interactive"), data,<br/>
-{<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;series: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pie: { <br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show: true<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>grid: {<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hoverable: true,<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clickable: true<br/>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</b><br/>
-});<br/>
-<b>$("#interactive").bind("plothover", pieHover);<br/>
-$("#interactive").bind("plotclick", pieClick);</b><br/>
-		</code>
-		<div id="hover"></div>
-	</label>
-		
-	<h2>Pie Options</h2>
-	<ul class="options">
-		<li style="border-bottom: 1px dotted #ccc;"><b>option:</b> <i>default value</i> - Description of option</li>
-		<li><b>show:</b> <i>false</i> - Enable the plugin and draw as a pie.</li>
-		<li><b>radius:</b> <i>'auto'</i> - Sets the radius of the pie. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length. If set to 'auto', it will be set to 1 if the legend is enabled and 3/4 if not.</li>
-		<li><b>innerRadius:</b> <i>0</i> - Sets the radius of the donut hole. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the radius, otherwise it will use the value as a direct pixel length.</li>
-		<li><b>startAngle:</b> <i>3/2</i> - Factor of PI used for the starting angle (in radians) It can range between 0 and 2 (where 0 and 2 have the same result).</li>
-		<li><b>tilt:</b> <i>1</i> - Percentage of tilt ranging from 0 and 1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn).</li>
-		<li><b>offset:</b> <ul>
-			<li><b>top:</b> <i>0</i> - Pixel distance to move the pie up and down (relative to the center).</li>
-			<li><b>left:</b> <i>'auto'</i> - Pixel distance to move the pie left and right (relative to the center).</li>
-		</ul>
-		<li><b>stroke:</b> <ul>
-			<li><b>color:</b> <i>'#FFF'</i> - Color of the border of each slice. Hexadecimal color definitions are prefered (other formats may or may not work).</li>
-			<li><b>width:</b> <i>1</i> - Pixel width of the border of each slice.</li>
-		</ul>
-		<li><b>label:</b> <ul>
-			<li><b>show:</b> <i>'auto'</i> - Enable/Disable the labels. This can be set to true, false, or 'auto'. When set to 'auto', it will be set to false if the legend is enabled and true if not.</li>
-			<li><b>radius:</b> <i>1</i> - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.</li>
-			<li><b>threshold:</b> <i>0</i> - Hides the labels of any pie slice that is smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will hide all slices 3% or less of the total.</li>
-			<li><b>formatter:</b> <i>[function]</i> - This function specifies how the positioned labels should be formatted, and is applied after the legend's labelFormatter function. The labels can also still be styled using the class "pieLabel" (i.e. ".pieLabel" or "#graph1 .pieLabel").</li>
-			<li><b>radius:</b> <i>1</i> - Sets the radius at which to place the labels. If value is between 0 and 1 (inclusive) then it will use that as a percentage of the available space (size of the container), otherwise it will use the value as a direct pixel length.</li>
-			<li><b>background:</b> <ul>
-				<li><b>color:</b> <i>null</i> - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the slice.</li>
-				<li><b>opacity:</b> <i>0</i> - Opacity of the background for the positioned labels. Acceptable values range from 0 to 1, where 0 is completely transparent and 1 is completely opaque.</li>
-			</ul>
-		</ul>
-		<li><b>combine:</b> <ul>
-			<li><b>threshold:</b> <i>0</i> - Combines all slices that are smaller than the specified percentage (ranging from 0 to 1) i.e. a value of '0.03' will combine all slices 3% or less into one slice).</li>
-			<li><b>color:</b> <i>null</i> - Backgound color of the positioned labels. If null, the plugin will automatically use the color of the first slice to be combined.</li>
-			<li><b>label:</b> <i>'Other'</i> - Label text for the combined slice.</li>
-		</ul>
-		<li><b>highlight:</b> <ul>
-			<li><b>opacity:</b> <i>0.5</i> - Opacity of the highlight overlay on top of the current pie slice. Currently this just uses a white overlay, but support for changing the color of the overlay will also be added at a later date.
-		</ul>
-	</ul>
-	
-	<h2>Changes/Features</h2>
-	<ul>
-		<li style="list-style: none;"><i>v1.0 - November 20th, 2009 - Brian Medendorp</i></li>
-		<li>The pie plug-in is now part of the Flot repository! This should make it a lot easier to deal with.</li>
-		<li>Added a new option (innerRadius) to add a "donut hole" to the center of the pie, based on comtributions from Anthony Aragues. I was a little reluctant to add this feature because it doesn't work very well with the shadow created for the tilted pie, but figured it was worthwhile for non-tilted pies. Also, excanvas apparently doesn't support compositing, so it will fall back to using the stroke color to fill in the center (but I recommend setting the stroke color to the background color anyway).</li>
-		<li>Changed the lineJoin for the border of the pie slices to use the 'round' option. This should make the center of the pie look better, particularly when there are numerous thin slices.</li>
-		<li>Included a bug fix submitted by btburnett3 to display a slightly smaller slice in the event that the slice is 100% and being rendered with Internet Explorer. I haven't experienced this bug myself, but it doesn't seem to hurt anything so I've included it.</li>
-		<li>The tilt value is now used when calculating the maximum radius of the pie in relation to the height of the container. This should prevent the pie from being smaller than it needed to in some cases, as well as reducing the amount of extra white space generated above and below the pie.</li>
-		<li><b>Hover and Click functionality are now availabe!</b><ul>
-			<li>Thanks to btburnett3 for the original hover functionality and Anthony Aragues for the modification that makes it compatable with excanvas, this was a huge help!</li>
-			<li>Added a new option (highlight opacity) to modify the highlight created when mousing over a slice. Currently this just uses a white overlay, but an option to change the hightlight color will be added when the appropriate functionality becomes available.
-			<li>I had a major setback that required me to practically rebuild the hover/click events from scratch one piece at a time (I discovered that it only worked with a single pie on a page at a time), but the end result ended up being virtually identical to the original, so I'm not quite sure what exactly made it work.</li>
-			<li><span style="color: red;">Warning:</span> There are some minor issues with using this functionality in conjuction with some of the other more advanced features (tilt and donut). When using a donut hole, the inner portion still triggers the events even though that portion of the pie is no longer visible. When tilted, the interactive portions still use the original, untilted version of the pie when determining mouse position (this is because the isPointInPath function apparently doesn't work with transformations), however hover and click both work this way, so the appropriate slice is still highlighted when clicking, and it isn't as noticable of a problem.</li>
-		</ul></li>
-		<li>Included a bug fix submitted by Xavi Ivars to fix array issues when other javascript libraries are included in addition to jQuery</li>
-		<br/>
-		<li style="list-style: none;"><i>v0.4 - July 1st, 2009 - Brian Medendorp</i></li>
-		<li>Each series will now be shown in the legend, even if it's value is zero. The series will not get a positioned label because it will overlap with the other labels present and often makes them unreadable.</li>
-		<li>Data can now be passed in using the standard Flot method using an array of datapoints, the pie plugin will simply use the first y-value that it finds for each series in this case. The plugin uses this datastructure internally, but you can still use the old method of passing in a single numerical value for each series (the plugin will convert it as necessary). This should make it easier to transition from other types of graphs (such as a stacked bar graph) to a pie.</li>
-		<li>The pie can now be tilted at an angle with a new "tilt" option. Acceptable values range from 0-1, where 1 has no change (fully vertical) and 0 is completely flat (fully horizontal -- in which case nothing actually gets drawn). If the plugin determines that it will fit within the canvas, a drop shadow will be drawn under the tilted pie (this also requires a tilt value of 0.8 or less).</li>
-		<br/>
-		<li style="list-style: none;"><i>v0.3.2 - June 25th, 2009 - Brian Medendorp</i></li>
-		<li>Fixed a bug that was causing the pie to be shifted too far left or right when the legend is showing in some cases.</li>
-		<br/>
-		<li style="list-style: none;"><i>v0.3.1 - June 24th, 2009 - Brian Medendorp</i></li>
-		<li>Fixed a bug that was causing nothing to be drawn and generating a javascript error if any of the data values were set to zero.</li>
-		<br/>
-		<li style="list-style: none;"><i>v0.3 - June 23rd, 2009 - Brian Medendorp</i></li>
-		<li>The legend now works without any modifications! Because of changes made to flot and the plugin system (thanks Ole Laursen!) I was able to simplify a number of things and am now able to use the legend without the direct access hack that was required in the previous version.</li>
-		<br/>
-		<li style="list-style: none;"><i>v0.2 - June 22nd, 2009 - Brian Medendorp</i></li>
-		<li>The legend now works but only if you make the necessary changes to jquery.flot.js. Because of this, I changed the default values for pie.radius and pie.label.show to new 'auto' settings that change the default behavior of the size and labels depending on whether the legend functionality is available or not.</li>
-		<br/>
-		<li style="list-style: none;"><i>v0.1 - June 18th, 2009 - Brian Medendorp</i></li>
-		<li>Rewrote the entire pie code into a flot plugin (since that is now an option), so it should be much easier to use and the code is cleaned up a bit. However, the (standard flot) legend is no longer available because the only way to prevent the grid lines from being displayed also prevents the legend from being displayed. Hopefully this can be fixed at a later date.</li>
-		<li>Restructured and combined some of the options. It should be much easier to deal with now.</li>
-		<li>Added the ability to change the starting point of the pie (still defaults to the top).</li>
-		<li>Modified the default options to show the labels to compensate for the lack of a legend.</li>
-		<li>Modified this page to use a random dataset. <span style="color: red">Note: you may need to refresh the page to see the effects of some of the examples.</span></li>
-		<br/>
-		<li style="list-style: none;"><i>May 21st, 2009 - Brian Medendorp</i></li>
-		<li>Merged original pie modifications by Sergey Nosenko into the latest SVN version <i>(as of May 15th, 2009)</i> so that it will work with ie8.</li>
-		<li>Pie graph will now be centered in the canvas unless moved because of the legend or manually via the options. Additionally it prevents the pie from being moved beyond the edge of the canvas.</li>
-		<li>Modified the code related to the labelFormatter option to apply flot's legend labelFormatter first. This is so that the labels will be consistent, but still provide extra formatting for the positioned labels (such as adding the percentage value).</li>
-		<li>Positioned labels now have their backgrounds applied as a seperate element (much like the legend background) so that the opacity value can be set independently from the label itself (foreground). Additionally, the background color defaults to that of the matching slice.</li>
-		<li>As long as the labelOffset and radiusLimit are not set to hard values, the pie will be shrunk if the labels will extend outside the edge of the canvas</li>
-		<li>Added new options "radiusLimitFactor" and "radiusLimit" which limits how large the (visual) radius of the pie is in relation to the full radius (as calculated from the canvas dimensions) or a hard-pixel value (respectively). This allows for pushing the labels "outside" the pie.</li>
-		<li>Added a new option "labelHidePercent" that does not show the positioned labels of slices smaller than the specified percentage. This is to help prevent a bunch of overlapping labels from small slices.</li>
-		<li>Added a new option "sliceCombinePercent" that combines all slices smaller than the specified percentage into one larger slice. This is to help make the pie more attractive when there are a number of tiny slices. The options "sliceCombineColor" and "sliceCombineLabel" have also been added to change the color and name of the new slice if desired.</li>
-		<li>Tested in Firefox (3.0.10, 3.5b4), Internet Explorer (6.0.2900, 7.0.5730, 8.0.6001), Chrome (1.0.154), Opera (9.64), and Safari (3.1.1, 4 beta 5528.16).
-	</ul>
-
-	
- </body>
-</html>
-
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/realtime.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/realtime.html
deleted file mode 100644
index 3b427e1..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/realtime.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>You can update a chart periodically to get a real-time effect
-    by using a timer to insert the new data in the plot and redraw it.</p>
-
-    <p>Time between updates: <input id="updateInterval" type="text" value="" style="text-align: right; width:5em"> milliseconds</p>
-
-<script type="text/javascript">
-$(function () {
-    // we use an inline data source in the example, usually data would
-    // be fetched from a server
-    var data = [], totalPoints = 300;
-    function getRandomData() {
-        if (data.length > 0)
-            data = data.slice(1);
-
-        // do a random walk
-        while (data.length < totalPoints) {
-            var prev = data.length > 0 ? data[data.length - 1] : 50;
-            var y = prev + Math.random() * 10 - 5;
-            if (y < 0)
-                y = 0;
-            if (y > 100)
-                y = 100;
-            data.push(y);
-        }
-
-        // zip the generated y values with the x values
-        var res = [];
-        for (var i = 0; i < data.length; ++i)
-            res.push([i, data[i]])
-        return res;
-    }
-
-    // setup control widget
-    var updateInterval = 30;
-    $("#updateInterval").val(updateInterval).change(function () {
-        var v = $(this).val();
-        if (v && !isNaN(+v)) {
-            updateInterval = +v;
-            if (updateInterval < 1)
-                updateInterval = 1;
-            if (updateInterval > 2000)
-                updateInterval = 2000;
-            $(this).val("" + updateInterval);
-        }
-    });
-
-    // setup plot
-    var options = {
-        series: { shadowSize: 0 }, // drawing is faster without shadows
-        yaxis: { min: 0, max: 100 },
-        xaxis: { show: false }
-    };
-    var plot = $.plot($("#placeholder"), [ getRandomData() ], options);
-
-    function update() {
-        plot.setData([ getRandomData() ]);
-        // since the axes don't change, we don't need to call plot.setupGrid()
-        plot.draw();
-        
-        setTimeout(update, updateInterval);
-    }
-
-    update();
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/resize.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/resize.html
deleted file mode 100644
index d1e18c3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/resize.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.resize.js"></script>
-    <style type="text/css">
-    html, body {
-        height: 100%; /* make the percentage height on placeholder work */
-    }
-    .message {
-        padding-left: 50px;
-        font-size: smaller;
-    }
-    </style>
- </head>
- <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:80%;height:40%;"></div>
-
-    <p class="message"></p>
-
-    <p>Sometimes it makes more sense to just let the plot take up the
-    available space. In that case, we need to redraw the plot each
-    time the placeholder changes its size. If you include the resize
-    plugin, this is handled automatically.</p>
-
-    <p>Try resizing the window.</p>
-
-
-<script type="text/javascript">
-$(function () {
-    var d1 = [];
-    for (var i = 0; i < 14; i += 0.5)
-        d1.push([i, Math.sin(i)]);
-
-    var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
-    var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];
-
-    var placeholder = $("#placeholder");
-    
-    var plot = $.plot(placeholder, [d1, d2, d3]);
-    
-    // the plugin includes a jQuery plugin for adding resize events to
-    // any element, let's just add a callback so we can display the
-    // placeholder size
-    placeholder.resize(function () {
-        $(".message").text("Placeholder is now "
-                           + $(this).width() + "x" + $(this).height()
-                           + " pixels");
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/selection.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/selection.html
deleted file mode 100644
index 1646f5a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/selection.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.selection.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px"></div>
-
-    <p>1000 kg. CO<sub>2</sub> emissions per year per capita for various countries (source: <a href="http://en.wikipedia.org/wiki/List_of_countries_by_carbon_dioxide_emissions_per_capita">Wikipedia</a>).</p>
-
-    <p>Flot supports selections through the selection plugin.
-       You can enable rectangular selection
-       or one-dimensional selection if the user should only be able to
-       select on one axis. Try left-click and drag on the plot above
-       where selection on the x axis is enabled.</p>
-
-    <p>You selected: <span id="selection"></span></p>
-
-    <p>The plot command returns a plot object you can use to control
-       the selection. Click the buttons below.</p>
-
-    <p><input id="clearSelection" type="button" value="Clear selection" />
-       <input id="setSelection" type="button" value="Select year 1994" /></p>
-
-    <p>Selections are really useful for zooming. Just replot the
-       chart with min and max values for the axes set to the values
-       in the "plotselected" event triggered. Enable the checkbox
-       below and select a region again.</p>
-
-    <p><label><input id="zoom" type="checkbox" />Zoom to selection.</label></p>
-
-<script type="text/javascript">
-$(function () {
-    var data = [
-        {
-            label: "United States",
-            data: [[1990, 18.9], [1991, 18.7], [1992, 18.4], [1993, 19.3], [1994, 19.5], [1995, 19.3], [1996, 19.4], [1997, 20.2], [1998, 19.8], [1999, 19.9], [2000, 20.4], [2001, 20.1], [2002, 20.0], [2003, 19.8], [2004, 20.4]]
-        },
-        {
-            label: "Russia", 
-            data: [[1992, 13.4], [1993, 12.2], [1994, 10.6], [1995, 10.2], [1996, 10.1], [1997, 9.7], [1998, 9.5], [1999, 9.7], [2000, 9.9], [2001, 9.9], [2002, 9.9], [2003, 10.3], [2004, 10.5]]
-        },
-        {
-            label: "United Kingdom",
-            data: [[1990, 10.0], [1991, 11.3], [1992, 9.9], [1993, 9.6], [1994, 9.5], [1995, 9.5], [1996, 9.9], [1997, 9.3], [1998, 9.2], [1999, 9.2], [2000, 9.5], [2001, 9.6], [2002, 9.3], [2003, 9.4], [2004, 9.79]]
-        },
-        {
-            label: "Germany",
-            data: [[1990, 12.4], [1991, 11.2], [1992, 10.8], [1993, 10.5], [1994, 10.4], [1995, 10.2], [1996, 10.5], [1997, 10.2], [1998, 10.1], [1999, 9.6], [2000, 9.7], [2001, 10.0], [2002, 9.7], [2003, 9.8], [2004, 9.79]]
-        },
-        {
-            label: "Denmark",
- 	    data: [[1990, 9.7], [1991, 12.1], [1992, 10.3], [1993, 11.3], [1994, 11.7], [1995, 10.6], [1996, 12.8], [1997, 10.8], [1998, 10.3], [1999, 9.4], [2000, 8.7], [2001, 9.0], [2002, 8.9], [2003, 10.1], [2004, 9.80]]
-        },
-        {
-            label: "Sweden",
-            data: [[1990, 5.8], [1991, 6.0], [1992, 5.9], [1993, 5.5], [1994, 5.7], [1995, 5.3], [1996, 6.1], [1997, 5.4], [1998, 5.4], [1999, 5.1], [2000, 5.2], [2001, 5.4], [2002, 6.2], [2003, 5.9], [2004, 5.89]]
-        },
-        {
-            label: "Norway",
-            data: [[1990, 8.3], [1991, 8.3], [1992, 7.8], [1993, 8.3], [1994, 8.4], [1995, 5.9], [1996, 6.4], [1997, 6.7], [1998, 6.9], [1999, 7.6], [2000, 7.4], [2001, 8.1], [2002, 12.5], [2003, 9.9], [2004, 19.0]]
-        }
-    ];
-
-    var options = {
-        series: {
-            lines: { show: true },
-            points: { show: true }
-        },
-        legend: { noColumns: 2 },
-        xaxis: { tickDecimals: 0 },
-        yaxis: { min: 0 },
-        selection: { mode: "x" }
-    };
-
-    var placeholder = $("#placeholder");
-
-    placeholder.bind("plotselected", function (event, ranges) {
-        $("#selection").text(ranges.xaxis.from.toFixed(1) + " to " + ranges.xaxis.to.toFixed(1));
-
-        var zoom = $("#zoom").attr("checked");
-        if (zoom)
-            plot = $.plot(placeholder, data,
-                          $.extend(true, {}, options, {
-                              xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
-                          }));
-    });
-
-    placeholder.bind("plotunselected", function (event) {
-        $("#selection").text("");
-    });
-    
-    var plot = $.plot(placeholder, data, options);
-
-    $("#clearSelection").click(function () {
-        plot.clearSelection();
-    });
-
-    $("#setSelection").click(function () {
-        plot.setSelection({ xaxis: { from: 1994, to: 1995 } });
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/setting-options.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/setting-options.html
deleted file mode 100644
index 8d1967e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/setting-options.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px"></div>
-
-    <p>There are plenty of options you can set to control the precise
-    looks of your plot. You can control the ticks on the axes, the
-    legend, the graph type, etc. The idea is that Flot goes to great
-    lengths to provide sensible defaults so that you don't have to
-    customize much for a good result.</p>
-
-<script type="text/javascript">
-$(function () {
-    var d1 = [];
-    for (var i = 0; i < Math.PI * 2; i += 0.25)
-        d1.push([i, Math.sin(i)]);
-    
-    var d2 = [];
-    for (var i = 0; i < Math.PI * 2; i += 0.25)
-        d2.push([i, Math.cos(i)]);
-
-    var d3 = [];
-    for (var i = 0; i < Math.PI * 2; i += 0.1)
-        d3.push([i, Math.tan(i)]);
-    
-    $.plot($("#placeholder"), [
-        { label: "sin(x)",  data: d1},
-        { label: "cos(x)",  data: d2},
-        { label: "tan(x)",  data: d3}
-    ], {
-        series: {
-            lines: { show: true },
-            points: { show: true }
-        },
-        xaxis: {
-            ticks: [0, [Math.PI/2, "\u03c0/2"], [Math.PI, "\u03c0"], [Math.PI * 3/2, "3\u03c0/2"], [Math.PI * 2, "2\u03c0"]]
-        },
-        yaxis: {
-            ticks: 10,
-            min: -2,
-            max: 2
-        },
-        grid: {
-            backgroundColor: { colors: ["#fff", "#eee"] }
-        }
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/stacking.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/stacking.html
deleted file mode 100644
index b7de391..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/stacking.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.stack.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>With the stack plugin, you can have Flot stack the
-    series. This is useful if you wish to display both a total and the
-    constituents it is made of. The only requirement is that you provide
-    the input sorted on x.</p>
-
-    <p class="stackControls">
-    <input type="button" value="With stacking">
-    <input type="button" value="Without stacking">
-    </p>
-
-    <p class="graphControls">
-    <input type="button" value="Bars">
-    <input type="button" value="Lines">
-    <input type="button" value="Lines with steps">
-    </p>
-
-<script id="source">
-$(function () {
-    var d1 = [];
-    for (var i = 0; i <= 10; i += 1)
-        d1.push([i, parseInt(Math.random() * 30)]);
-
-    var d2 = [];
-    for (var i = 0; i <= 10; i += 1)
-        d2.push([i, parseInt(Math.random() * 30)]);
-
-    var d3 = [];
-    for (var i = 0; i <= 10; i += 1)
-        d3.push([i, parseInt(Math.random() * 30)]);
-
-    var stack = 0, bars = true, lines = false, steps = false;
-    
-    function plotWithOptions() {
-        $.plot($("#placeholder"), [ d1, d2, d3 ], {
-            series: {
-                stack: stack,
-                lines: { show: lines, fill: true, steps: steps },
-                bars: { show: bars, barWidth: 0.6 }
-            }
-        });
-    }
-
-    plotWithOptions();
-    
-    $(".stackControls input").click(function (e) {
-        e.preventDefault();
-        stack = $(this).val() == "With stacking" ? true : null;
-        plotWithOptions();
-    });
-    $(".graphControls input").click(function (e) {
-        e.preventDefault();
-        bars = $(this).val().indexOf("Bars") != -1;
-        lines = $(this).val().indexOf("Lines") != -1;
-        steps = $(this).val().indexOf("steps") != -1;
-        plotWithOptions();
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/symbols.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/symbols.html
deleted file mode 100644
index e71b1aa..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/symbols.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.symbol.js"></script>
- </head>
- <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px"></div>
-
-    <p>Various point types. Circles are built-in. For other
-    point types, you can define a little callback function to draw the
-    symbol; some common ones are available in the symbol plugin.</p>
-
-<script type="text/javascript">
-$(function () {
-    function generate(offset, amplitude) {
-        var res = [];
-        var start = 0, end = 10;
-        for (var i = 0; i <= 50; ++i) {
-            var x = start + i / 50 * (end - start);
-            res.push([x, amplitude * Math.sin(x + offset)]);
-        }
-        return res;
-    }
-
-    var data = [
-        { data: generate(2, 1.8), points: { symbol: "circle" } },
-        { data: generate(3, 1.5), points: { symbol: "square" } },
-        { data: generate(4, 0.9), points: { symbol: "diamond" } },
-        { data: generate(6, 1.4), points: { symbol: "triangle" } },
-        { data: generate(7, 1.1), points: { symbol: "cross" } }
-    ];
-
-    $.plot($("#placeholder"), data, {
-        series: { points: { show: true, radius: 3 } },
-        grid: { hoverable: true }
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/thresholding.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/thresholding.html
deleted file mode 100644
index f10144a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/thresholding.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.threshold.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>With the threshold plugin, you can apply a specific color to
-    the part of a data series below a threshold. This is can be useful
-    for highlighting negative values, e.g. when displaying net results
-    or what's in stock.</p>
-
-    <p class="controls">
-    <input type="button" value="Threshold at 5">
-    <input type="button" value="Threshold at 0">
-    <input type="button" value="Threshold at -2.5">
-    </p>
-
-<script type="text/javascript">
-$(function () {
-    var d1 = [];
-    for (var i = 0; i <= 60; i += 1)
-        d1.push([i, parseInt(Math.random() * 30 - 10)]);
-
-    function plotWithOptions(t) {
-        $.plot($("#placeholder"), [ {
-            data: d1,
-            color: "rgb(30, 180, 20)",
-            threshold: { below: t, color: "rgb(200, 20, 30)" },
-            lines: { steps: true }
-        } ]);
-    }
-
-    plotWithOptions(0);
-    
-    $(".controls input").click(function (e) {
-        e.preventDefault();
-        var t = parseFloat($(this).val().replace('Threshold at ', ''));
-        plotWithOptions(t);
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/time.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/time.html
deleted file mode 100644
index da62347..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/time.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>Monthly mean atmospheric CO<sub>2</sub> in PPM at Mauna Loa, Hawaii (source: <a href="http://www.esrl.noaa.gov/gmd/ccgg/trends/">NOAA/ESRL</a>).</p>
-
-    <p>If you tell Flot that an axis represents time, the data will
-      be interpreted as timestamps and the ticks adjusted and
-      formatted accordingly.</p>
-
-    <p>Zoom to: <button id="whole">Whole period</button>
-      <button id="nineties">1990-2000</button>
-      <button id="ninetynine">1999</button></p>
-
-    <p>The timestamps must be specified as Javascript timestamps, as
-      milliseconds since January 1, 1970 00:00. This is like Unix
-      timestamps, but in milliseconds instead of seconds (remember to
-      multiply with 1000!).</p>
-
-    <p>As an extra caveat, the timestamps are interpreted according to
-      UTC to avoid having the graph shift with each visitor's local
-      time zone. So you might have to add your local time zone offset
-      to the timestamps or simply pretend that the data was produced
-      in UTC instead of your local time zone.</p>
-
-<script id="source">
-$(function () {
-    var d = [[-373597200000, 315.71], [-370918800000, 317.45], [-368326800000, 317.50], [-363056400000, 315.86], [-360378000000, 314.93], [-357699600000, 313.19], [-352429200000, 313.34], [-349837200000, 314.67], [-347158800000, 315.58], [-344480400000, 316.47], [-342061200000, 316.65], [-339382800000, 317.71], [-336790800000, 318.29], [-334112400000, 318.16], [-331520400000, 316.55], [-328842000000, 314.80], [-326163600000, 313.84], [-323571600000, 313.34], [-320893200000, 314.81], [-318301200000, 315.59], [-315622800000, 316.43], [-312944400000, 316.97], [-310438800000, 317.58], [-307760400000, 319.03], [-305168400000, 320.03], [-302490000000, 319.59], [-299898000000, 318.18], [-297219600000, 315.91], [-294541200000, 314.16], [-291949200000, 313.83], [-289270800000, 315.00], [-286678800000, 316.19], [-284000400000, 316.89], [-281322000000, 317.70], [-278902800000, 318.54], [-276224400000, 319.48], [-273632400000, 320.58], [-270954000000, 319.78], [-268362000000, 318.58], [-265683600000, 316.79], [-263005200000, 314.99], [-260413200000, 315.31], [-257734800000, 316.10], [-255142800000, 317.01], [-252464400000, 317.94], [-249786000000, 318.56], [-247366800000, 319.69], [-244688400000, 320.58], [-242096400000, 321.01], [-239418000000, 320.61], [-236826000000, 319.61], [-234147600000, 317.40], [-231469200000, 316.26], [-228877200000, 315.42], [-226198800000, 316.69], [-223606800000, 317.69], [-220928400000, 318.74], [-218250000000, 319.08], [-215830800000, 319.86], [-213152400000, 321.39], [-210560400000, 322.24], [-207882000000, 321.47], [-205290000000, 319.74], [-202611600000, 317.77], [-199933200000, 316.21], [-197341200000, 315.99], [-194662800000, 317.07], [-192070800000, 318.36], [-189392400000, 319.57], [-178938000000, 322.23], [-176259600000, 321.89], [-173667600000, 320.44], [-170989200000, 318.70], [-168310800000, 316.70], [-165718800000, 316.87], [-163040400000, 317.68], [-160448400000, 318.71], [-157770000000, 319.44], [-155091600000, 320.44], [-152672400000, 320.89], [-149994000000, 322.13], [-147402000000, 322.16], [-144723600000, 321.87], [-142131600000, 321.21], [-139453200000, 318.87], [-136774800000, 317.81], [-134182800000, 317.30], [-131504400000, 318.87], [-128912400000, 319.42], [-126234000000, 320.62], [-123555600000, 321.59], [-121136400000, 322.39], [-118458000000, 323.70], [-115866000000, 324.07], [-113187600000, 323.75], [-110595600000, 322.40], [-107917200000, 320.37], [-105238800000, 318.64], [-102646800000, 318.10], [-99968400000, 319.79], [-97376400000, 321.03], [-94698000000, 322.33], [-92019600000, 322.50], [-89600400000, 323.04], [-86922000000, 324.42], [-84330000000, 325.00], [-81651600000, 324.09], [-79059600000, 322.55], [-76381200000, 320.92], [-73702800000, 319.26], [-71110800000, 319.39], [-68432400000, 320.72], [-65840400000, 321.96], [-63162000000, 322.57], [-60483600000, 323.15], [-57978000000, 323.89], [-55299600000, 325.02], [-52707600000, 325.57], [-50029200000, 325.36], [-47437200000, 324.14], [-44758800000, 322.11], [-42080400000, 320.33], [-39488400000, 320.25], [-36810000000, 321.32], [-34218000000, 322.90], [-31539600000, 324.00], [-28861200000, 324.42], [-26442000000, 325.64], [-23763600000, 326.66], [-21171600000, 327.38], [-18493200000, 326.70], [-15901200000, 325.89], [-13222800000, 323.67], [-10544400000, 322.38], [-7952400000, 321.78], [-5274000000, 322.85], [-2682000000, 324.12], [-3600000, 325.06], [2674800000, 325.98], [5094000000, 326.93], [7772400000, 328.13], [10364400000, 328.07], [13042800000, 327.66], [15634800000, 326.35], [18313200000, 324.69], [20991600000, 323.10], [23583600000, 323.07], [26262000000, 324.01], [28854000000, 325.13], [31532400000, 326.17], [34210800000, 326.68], [36630000000, 327.18], [39308400000, 327.78], [41900400000, 328.92], [44578800000, 328.57], [47170800000, 327.37], [49849200000, 325.43], [52527600000, 323.36], [55119600000, 323.56], [57798000000, 324.80], [60390000000, 326.01], [63068400000, 326.77], [65746800000, 327.63], [68252400000, 327.75], [70930800000, 329.72], [73522800000, 330.07], [76201200000, 329.09], [78793200000, 328.05], [81471600000, 326.32], [84150000000, 324.84], [86742000000, 325.20], [89420400000, 326.50], [92012400000, 327.55], [94690800000, 328.54], [97369200000, 329.56], [99788400000, 330.30], [102466800000, 331.50], [105058800000, 332.48], [107737200000, 332.07], [110329200000, 330.87], [113007600000, 329.31], [115686000000, 327.51], [118278000000, 327.18], [120956400000, 328.16], [123548400000, 328.64], [126226800000, 329.35], [128905200000, 330.71], [131324400000, 331.48], [134002800000, 332.65], [136594800000, 333.16], [139273200000, 332.06], [141865200000, 330.99], [144543600000, 329.17], [147222000000, 327.41], [149814000000, 327.20], [152492400000, 328.33], [155084400000, 329.50], [157762800000, 330.68], [160441200000, 331.41], [162860400000, 331.85], [165538800000, 333.29], [168130800000, 333.91], [170809200000, 333.40], [173401200000, 331.78], [176079600000, 329.88], [178758000000, 328.57], [181350000000, 328.46], [184028400000, 329.26], [189298800000, 331.71], [191977200000, 332.76], [194482800000, 333.48], [197161200000, 334.78], [199753200000, 334.78], [202431600000, 334.17], [205023600000, 332.78], [207702000000, 330.64], [210380400000, 328.95], [212972400000, 328.77], [215650800000, 330.23], [218242800000, 331.69], [220921200000, 332.70], [223599600000, 333.24], [226018800000, 334.96], [228697200000, 336.04], [231289200000, 336.82], [233967600000, 336.13], [236559600000, 334.73], [239238000000, 332.52], [241916400000, 331.19], [244508400000, 331.19], [247186800000, 332.35], [249778800000, 333.47], [252457200000, 335.11], [255135600000, 335.26], [257554800000, 336.60], [260233200000, 337.77], [262825200000, 338.00], [265503600000, 337.99], [268095600000, 336.48], [270774000000, 334.37], [273452400000, 332.27], [276044400000, 332.41], [278722800000, 333.76], [281314800000, 334.83], [283993200000, 336.21], [286671600000, 336.64], [289090800000, 338.12], [291769200000, 339.02], [294361200000, 339.02], [297039600000, 339.20], [299631600000, 337.58], [302310000000, 335.55], [304988400000, 333.89], [307580400000, 334.14], [310258800000, 335.26], [312850800000, 336.71], [315529200000, 337.81], [318207600000, 338.29], [320713200000, 340.04], [323391600000, 340.86], [325980000000, 341.47], [328658400000, 341.26], [331250400000, 339.29], [333928800000, 337.60], [336607200000, 336.12], [339202800000, 336.08], [341881200000, 337.22], [344473200000, 338.34], [347151600000, 339.36], [349830000000, 340.51], [352249200000, 341.57], [354924000000, 342.56], [357516000000, 343.01], [360194400000, 342.47], [362786400000, 340.71], [365464800000, 338.52], [368143200000, 336.96], [370738800000, 337.13], [373417200000, 338.58], [376009200000, 339.89], [378687600000, 340.93], [381366000000, 341.69], [383785200000, 342.69], [389052000000, 344.30], [391730400000, 343.43], [394322400000, 341.88], [397000800000, 339.89], [399679200000, 337.95], [402274800000, 338.10], [404953200000, 339.27], [407545200000, 340.67], [410223600000, 341.42], [412902000000, 342.68], [415321200000, 343.46], [417996000000, 345.10], [420588000000, 345.76], [423266400000, 345.36], [425858400000, 343.91], [428536800000, 342.05], [431215200000, 340.00], [433810800000, 340.12], [436489200000, 341.33], [439081200000, 342.94], [441759600000, 343.87], [444438000000, 344.60], [446943600000, 345.20], [452210400000, 347.36], [454888800000, 346.74], [457480800000, 345.41], [460159200000, 343.01], [462837600000, 341.23], [465433200000, 341.52], [468111600000, 342.86], [470703600000, 344.41], [473382000000, 345.09], [476060400000, 345.89], [478479600000, 347.49], [481154400000, 348.00], [483746400000, 348.75], [486424800000, 348.19], [489016800000, 346.54], [491695200000, 344.63], [494373600000, 343.03], [496969200000, 342.92], [499647600000, 344.24], [502239600000, 345.62], [504918000000, 346.43], [507596400000, 346.94], [510015600000, 347.88], [512690400000, 349.57], [515282400000, 350.35], [517960800000, 349.72], [520552800000, 347.78], [523231200000, 345.86], [525909600000, 344.84], [528505200000, 344.32], [531183600000, 345.67], [533775600000, 346.88], [536454000000, 348.19], [539132400000, 348.55], [541551600000, 349.52], [544226400000, 351.12], [546818400000, 351.84], [549496800000, 351.49], [552088800000, 349.82], [554767200000, 347.63], [557445600000, 346.38], [560041200000, 346.49], [562719600000, 347.75], [565311600000, 349.03], [567990000000, 350.20], [570668400000, 351.61], [573174000000, 352.22], [575848800000, 353.53], [578440800000, 354.14], [581119200000, 353.62], [583711200000, 352.53], [586389600000, 350.41], [589068000000, 348.84], [591663600000, 348.94], [594342000000, 350.04], [596934000000, 351.29], [599612400000, 352.72], [602290800000, 353.10], [604710000000, 353.65], [607384800000, 355.43], [609976800000, 355.70], [612655200000, 355.11], [615247200000, 353.79], [617925600000, 351.42], [620604000000, 349.81], [623199600000, 350.11], [625878000000, 351.26], [628470000000, 352.63], [631148400000, 353.64], [633826800000, 354.72], [636246000000, 355.49], [638920800000, 356.09], [641512800000, 357.08], [644191200000, 356.11], [646783200000, 354.70], [649461600000, 352.68], [652140000000, 351.05], [654735600000, 351.36], [657414000000, 352.81], [660006000000, 354.22], [662684400000, 354.85], [665362800000, 355.66], [667782000000, 357.04], [670456800000, 358.40], [673048800000, 359.00], [675727200000, 357.99], [678319200000, 356.00], [680997600000, 353.78], [683676000000, 352.20], [686271600000, 352.22], [688950000000, 353.70], [691542000000, 354.98], [694220400000, 356.09], [696898800000, 356.85], [699404400000, 357.73], [702079200000, 358.91], [704671200000, 359.45], [707349600000, 359.19], [709941600000, 356.72], [712620000000, 354.79], [715298400000, 352.79], [717894000000, 353.20], [720572400000, 354.15], [723164400000, 355.39], [725842800000, 356.77], [728521200000, 357.17], [730940400000, 358.26], [733615200000, 359.16], [736207200000, 360.07], [738885600000, 359.41], [741477600000, 357.44], [744156000000, 355.30], [746834400000, 353.87], [749430000000, 354.04], [752108400000, 355.27], [754700400000, 356.70], [757378800000, 358.00], [760057200000, 358.81], [762476400000, 359.68], [765151200000, 361.13], [767743200000, 361.48], [770421600000, 360.60], [773013600000, 359.20], [775692000000, 357.23], [778370400000, 355.42], [780966000000, 355.89], [783644400000, 357.41], [786236400000, 358.74], [788914800000, 359.73], [791593200000, 360.61], [794012400000, 361.58], [796687200000, 363.05], [799279200000, 363.62], [801957600000, 363.03], [804549600000, 361.55], [807228000000, 358.94], [809906400000, 357.93], [812502000000, 357.80], [815180400000, 359.22], [817772400000, 360.44], [820450800000, 361.83], [823129200000, 362.95], [825634800000, 363.91], [828309600000, 364.28], [830901600000, 364.94], [833580000000, 364.70], [836172000000, 363.31], [838850400000, 361.15], [841528800000, 359.40], [844120800000, 359.34], [846802800000, 360.62], [849394800000, 361.96], [852073200000, 362.81], [854751600000, 363.87], [857170800000, 364.25], [859845600000, 366.02], [862437600000, 366.46], [865116000000, 365.32], [867708000000, 364.07], [870386400000, 361.95], [873064800000, 360.06], [875656800000, 360.49], [878338800000, 362.19], [880930800000, 364.12], [883609200000, 364.99], [886287600000, 365.82], [888706800000, 366.95], [891381600000, 368.42], [893973600000, 369.33], [896652000000, 368.78], [899244000000, 367.59], [901922400000, 365.84], [904600800000, 363.83], [907192800000, 364.18], [909874800000, 365.34], [912466800000, 366.93], [915145200000, 367.94], [917823600000, 368.82], [920242800000, 369.46], [922917600000, 370.77], [925509600000, 370.66], [928188000000, 370.10], [930780000000, 369.08], [933458400000, 366.66], [936136800000, 364.60], [938728800000, 365.17], [941410800000, 366.51], [944002800000, 367.89], [946681200000, 369.04], [949359600000, 369.35], [951865200000, 370.38], [954540000000, 371.63], [957132000000, 371.32], [959810400000, 371.53], [962402400000, 369.75], [965080800000, 368.23], [967759200000, 366.87], [970351200000, 366.94], [973033200000, 368.27], [975625200000, 369.64], [978303600000, 370.46], [980982000000, 371.44], [983401200000, 372.37], [986076000000, 373.33], [988668000000, 373.77], [991346400000, 373.09], [993938400000, 371.51], [996616800000, 369.55], [999295200000, 368.12], [1001887200000, 368.38], [1004569200000, 369.66], [1007161200000, 371.11], [1009839600000, 372.36], [1012518000000, 373.09], [1014937200000, 373.81], [1017612000000, 374.93], [1020204000000, 375.58], [1022882400000, 375.44], [1025474400000, 373.86], [1028152800000, 371.77], [1030831200000, 370.73], [1033423200000, 370.50], [1036105200000, 372.18], [1038697200000, 373.70], [1041375600000, 374.92], [1044054000000, 375.62], [1046473200000, 376.51], [1049148000000, 377.75], [1051740000000, 378.54], [1054418400000, 378.20], [1057010400000, 376.68], [1059688800000, 374.43], [1062367200000, 373.11], [1064959200000, 373.10], [1067641200000, 374.77], [1070233200000, 375.97], [1072911600000, 377.03], [1075590000000, 377.87], [1078095600000, 378.88], [1080770400000, 380.42], [1083362400000, 380.62], [1086040800000, 379.70], [1088632800000, 377.43], [1091311200000, 376.32], [1093989600000, 374.19], [1096581600000, 374.47], [1099263600000, 376.15], [1101855600000, 377.51], [1104534000000, 378.43], [1107212400000, 379.70], [1109631600000, 380.92], [1112306400000, 382.18], [1114898400000, 382.45], [1117576800000, 382.14], [1120168800000, 380.60], [1122847200000, 378.64], [1125525600000, 376.73], [1128117600000, 376.84], [1130799600000, 378.29], [1133391600000, 380.06], [1136070000000, 381.40], [1138748400000, 382.20], [1141167600000, 382.66], [1143842400000, 384.69], [1146434400000, 384.94], [1149112800000, 384.01], [1151704800000, 382.14], [1154383200000, 380.31], [1157061600000, 378.81], [1159653600000, 379.03], [1162335600000, 380.17], [1164927600000, 381.85], [1167606000000, 382.94], [1170284400000, 383.86], [1172703600000, 384.49], [1175378400000, 386.37], [1177970400000, 386.54], [1180648800000, 385.98], [1183240800000, 384.36], [1185919200000, 381.85], [1188597600000, 380.74], [1191189600000, 381.15], [1193871600000, 382.38], [1196463600000, 383.94], [1199142000000, 385.44]]; 
-
-    $.plot($("#placeholder"), [d], { xaxis: { mode: "time" } });
-
-    $("#whole").click(function () {
-        $.plot($("#placeholder"), [d], { xaxis: { mode: "time" } });
-    });
-
-    $("#nineties").click(function () {
-        $.plot($("#placeholder"), [d], {
-            xaxis: {
-                mode: "time",
-                min: (new Date(1990, 1, 1)).getTime(),
-                max: (new Date(2000, 1, 1)).getTime()
-            }
-        });
-    });
-
-    $("#ninetynine").click(function () {
-        $.plot($("#placeholder"), [d], {
-            xaxis: {
-                mode: "time",
-                minTickSize: [1, "month"],
-                min: (new Date(1999, 1, 1)).getTime(),
-                max: (new Date(2000, 1, 1)).getTime()
-            }
-        });
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/tracking.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/tracking.html
deleted file mode 100644
index c116159..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/tracking.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.crosshair.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px"></div>
-
-    <p>You can add crosshairs that'll track the mouse position, either
-    on both axes or as here on only one.</p>
-
-    <p>If you combine it with listening on hover events, you can use
-    it to track the intersection on the curves by interpolating
-    the data points (look at the legend).</p>
-
-    <p id="hoverdata"></p>
-
-<script type="text/javascript">
-var plot;
-$(function () {
-    var sin = [], cos = [];
-    for (var i = 0; i < 14; i += 0.1) {
-        sin.push([i, Math.sin(i)]);
-        cos.push([i, Math.cos(i)]);
-    }
-
-    plot = $.plot($("#placeholder"),
-                      [ { data: sin, label: "sin(x) = -0.00"},
-                        { data: cos, label: "cos(x) = -0.00" } ], {
-                            series: {
-                                lines: { show: true }
-                            },
-                            crosshair: { mode: "x" },
-                            grid: { hoverable: true, autoHighlight: false },
-                            yaxis: { min: -1.2, max: 1.2 }
-                        });
-    var legends = $("#placeholder .legendLabel");
-    legends.each(function () {
-        // fix the widths so they don't jump around
-        $(this).css('width', $(this).width());
-    });
-
-    var updateLegendTimeout = null;
-    var latestPosition = null;
-    
-    function updateLegend() {
-        updateLegendTimeout = null;
-        
-        var pos = latestPosition;
-        
-        var axes = plot.getAxes();
-        if (pos.x < axes.xaxis.min || pos.x > axes.xaxis.max ||
-            pos.y < axes.yaxis.min || pos.y > axes.yaxis.max)
-            return;
-
-        var i, j, dataset = plot.getData();
-        for (i = 0; i < dataset.length; ++i) {
-            var series = dataset[i];
-
-            // find the nearest points, x-wise
-            for (j = 0; j < series.data.length; ++j)
-                if (series.data[j][0] > pos.x)
-                    break;
-            
-            // now interpolate
-            var y, p1 = series.data[j - 1], p2 = series.data[j];
-            if (p1 == null)
-                y = p2[1];
-            else if (p2 == null)
-                y = p1[1];
-            else
-                y = p1[1] + (p2[1] - p1[1]) * (pos.x - p1[0]) / (p2[0] - p1[0]);
-
-            legends.eq(i).text(series.label.replace(/=.*/, "= " + y.toFixed(2)));
-        }
-    }
-    
-    $("#placeholder").bind("plothover",  function (event, pos, item) {
-        latestPosition = pos;
-        if (!updateLegendTimeout)
-            updateLegendTimeout = setTimeout(updateLegend, 50);
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/turning-series.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/turning-series.html
deleted file mode 100644
index bc6fd9f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/turning-series.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>Here is an example with real data: military budgets for
-        various countries in constant (2005) million US dollars (source: <a href="http://www.sipri.org/">SIPRI</a>).</p>
-
-    <p>Since all data is available client-side, it's pretty easy to
-       make the plot interactive. Try turning countries on/off with the
-       checkboxes below.</p>
-
-    <p id="choices">Show:</p>
-
-<script type="text/javascript">
-$(function () {
-    var datasets = {
-        "usa": {
-            label: "USA",
-            data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]]
-        },        
-        "russia": {
-            label: "Russia",
-            data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]]
-        },
-        "uk": {
-            label: "UK",
-            data: [[1988, 62982], [1989, 62027], [1990, 60696], [1991, 62348], [1992, 58560], [1993, 56393], [1994, 54579], [1995, 50818], [1996, 50554], [1997, 48276], [1998, 47691], [1999, 47529], [2000, 47778], [2001, 48760], [2002, 50949], [2003, 57452], [2004, 60234], [2005, 60076], [2006, 59213]]
-        },
-        "germany": {
-            label: "Germany",
-            data: [[1988, 55627], [1989, 55475], [1990, 58464], [1991, 55134], [1992, 52436], [1993, 47139], [1994, 43962], [1995, 43238], [1996, 42395], [1997, 40854], [1998, 40993], [1999, 41822], [2000, 41147], [2001, 40474], [2002, 40604], [2003, 40044], [2004, 38816], [2005, 38060], [2006, 36984]]
-        },
-        "denmark": {
-            label: "Denmark",
-            data: [[1988, 3813], [1989, 3719], [1990, 3722], [1991, 3789], [1992, 3720], [1993, 3730], [1994, 3636], [1995, 3598], [1996, 3610], [1997, 3655], [1998, 3695], [1999, 3673], [2000, 3553], [2001, 3774], [2002, 3728], [2003, 3618], [2004, 3638], [2005, 3467], [2006, 3770]]
-        },
-        "sweden": {
-            label: "Sweden",
-            data: [[1988, 6402], [1989, 6474], [1990, 6605], [1991, 6209], [1992, 6035], [1993, 6020], [1994, 6000], [1995, 6018], [1996, 3958], [1997, 5780], [1998, 5954], [1999, 6178], [2000, 6411], [2001, 5993], [2002, 5833], [2003, 5791], [2004, 5450], [2005, 5521], [2006, 5271]]
-        },
-        "norway": {
-            label: "Norway",
-            data: [[1988, 4382], [1989, 4498], [1990, 4535], [1991, 4398], [1992, 4766], [1993, 4441], [1994, 4670], [1995, 4217], [1996, 4275], [1997, 4203], [1998, 4482], [1999, 4506], [2000, 4358], [2001, 4385], [2002, 5269], [2003, 5066], [2004, 5194], [2005, 4887], [2006, 4891]]
-        }
-    };
-
-    // hard-code color indices to prevent them from shifting as
-    // countries are turned on/off
-    var i = 0;
-    $.each(datasets, function(key, val) {
-        val.color = i;
-        ++i;
-    });
-    
-    // insert checkboxes 
-    var choiceContainer = $("#choices");
-    $.each(datasets, function(key, val) {
-        choiceContainer.append('<br/><input type="checkbox" name="' + key +
-                               '" checked="checked" id="id' + key + '">' +
-                               '<label for="id' + key + '">'
-                                + val.label + '</label>');
-    });
-    choiceContainer.find("input").click(plotAccordingToChoices);
-
-    
-    function plotAccordingToChoices() {
-        var data = [];
-
-        choiceContainer.find("input:checked").each(function () {
-            var key = $(this).attr("name");
-            if (key && datasets[key])
-                data.push(datasets[key]);
-        });
-
-        if (data.length > 0)
-            $.plot($("#placeholder"), data, {
-                yaxis: { min: 0 },
-                xaxis: { tickDecimals: 0 }
-            });
-    }
-
-    plotAccordingToChoices();
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/visitors.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/visitors.html
deleted file mode 100644
index 8a9d4d7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/visitors.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.selection.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div id="placeholder" style="width:600px;height:300px;"></div>
-
-    <p>Visitors per day to the Flot homepage. Weekends are colored. Try zooming.
-      The plot below shows an overview.</p>
-
-    <div id="overview" style="margin-left:50px;margin-top:20px;width:400px;height:50px"></div>
-
-<script id="source">
-$(function () {
-    var d = [[1196463600000, 0], [1196550000000, 0], [1196636400000, 0], [1196722800000, 77], [1196809200000, 3636], [1196895600000, 3575], [1196982000000, 2736], [1197068400000, 1086], [1197154800000, 676], [1197241200000, 1205], [1197327600000, 906], [1197414000000, 710], [1197500400000, 639], [1197586800000, 540], [1197673200000, 435], [1197759600000, 301], [1197846000000, 575], [1197932400000, 481], [1198018800000, 591], [1198105200000, 608], [1198191600000, 459], [1198278000000, 234], [1198364400000, 1352], [1198450800000, 686], [1198537200000, 279], [1198623600000, 449], [1198710000000, 468], [1198796400000, 392], [1198882800000, 282], [1198969200000, 208], [1199055600000, 229], [1199142000000, 177], [1199228400000, 374], [1199314800000, 436], [1199401200000, 404], [1199487600000, 253], [1199574000000, 218], [1199660400000, 476], [1199746800000, 462], [1199833200000, 448], [1199919600000, 442], [1200006000000, 403], [1200092400000, 204], [1200178800000, 194], [1200265200000, 327], [1200351600000, 374], [1200438000000, 507], [1200524400000, 546], [1200610800000, 482], [1200697200000, 283], [1200783600000, 221], [1200870000000, 483], [1200956400000, 523], [1201042800000, 528], [1201129200000, 483], [1201215600000, 452], [1201302000000, 270], [1201388400000, 222], [1201474800000, 439], [1201561200000, 559], [1201647600000, 521], [1201734000000, 477], [1201820400000, 442], [1201906800000, 252], [1201993200000, 236], [1202079600000, 525], [1202166000000, 477], [1202252400000, 386], [1202338800000, 409], [1202425200000, 408], [1202511600000, 237], [1202598000000, 193], [1202684400000, 357], [1202770800000, 414], [1202857200000, 393], [1202943600000, 353], [1203030000000, 364], [1203116400000, 215], [1203202800000, 214], [1203289200000, 356], [1203375600000, 399], [1203462000000, 334], [1203548400000, 348], [1203634800000, 243], [1203721200000, 126], [1203807600000, 157], [1203894000000, 288]];
-
-    // first correct the timestamps - they are recorded as the daily
-    // midnights in UTC+0100, but Flot always displays dates in UTC
-    // so we have to add one hour to hit the midnights in the plot
-    for (var i = 0; i < d.length; ++i)
-      d[i][0] += 60 * 60 * 1000;
-
-    // helper for returning the weekends in a period
-    function weekendAreas(axes) {
-        var markings = [];
-        var d = new Date(axes.xaxis.min);
-        // go to the first Saturday
-        d.setUTCDate(d.getUTCDate() - ((d.getUTCDay() + 1) % 7))
-        d.setUTCSeconds(0);
-        d.setUTCMinutes(0);
-        d.setUTCHours(0);
-        var i = d.getTime();
-        do {
-            // when we don't set yaxis, the rectangle automatically
-            // extends to infinity upwards and downwards
-            markings.push({ xaxis: { from: i, to: i + 2 * 24 * 60 * 60 * 1000 } });
-            i += 7 * 24 * 60 * 60 * 1000;
-        } while (i < axes.xaxis.max);
-
-        return markings;
-    }
-    
-    var options = {
-        xaxis: { mode: "time", tickLength: 5 },
-        selection: { mode: "x" },
-        grid: { markings: weekendAreas }
-    };
-    
-    var plot = $.plot($("#placeholder"), [d], options);
-    
-    var overview = $.plot($("#overview"), [d], {
-        series: {
-            lines: { show: true, lineWidth: 1 },
-            shadowSize: 0
-        },
-        xaxis: { ticks: [], mode: "time" },
-        yaxis: { ticks: [], min: 0, autoscaleMargin: 0.1 },
-        selection: { mode: "x" }
-    });
-
-    // now connect the two
-    
-    $("#placeholder").bind("plotselected", function (event, ranges) {
-        // do the zooming
-        plot = $.plot($("#placeholder"), [d],
-                      $.extend(true, {}, options, {
-                          xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }
-                      }));
-
-        // don't fire event on the overview to prevent eternal loop
-        overview.setSelection(ranges, true);
-    });
-    
-    $("#overview").bind("plotselected", function (event, ranges) {
-        plot.setSelection(ranges);
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/zooming.html b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/zooming.html
deleted file mode 100644
index 9a4ef22..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/examples/zooming.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
- <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-    <title>Flot Examples</title>
-    <link href="layout.css" rel="stylesheet" type="text/css">
-    <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../excanvas.min.js"></script><![endif]-->
-    <script language="javascript" type="text/javascript" src="../jquery.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.js"></script>
-    <script language="javascript" type="text/javascript" src="../jquery.flot.selection.js"></script>
- </head>
-    <body>
-    <h1>Flot Examples</h1>
-
-    <div style="float:left">
-      <div id="placeholder" style="width:500px;height:300px"></div>
-    </div>
-    
-    <div id="miniature" style="float:left;margin-left:20px">
-      <div id="overview" style="width:166px;height:100px"></div>
-
-      <p id="overviewLegend" style="margin-left:10px"></p>
-    </div>
-
-    <p style="clear:left">The selection support makes it easy to
-    construct flexible zooming schemes. With a few lines of code, the
-    small overview plot to the right has been connected to the large
-    plot. Try selecting a rectangle on either of them.</p>
-
-<script id="source">
-$(function () {
-    // setup plot
-    function getData(x1, x2) {
-        var d = [];
-        for (var i = 0; i <= 100; ++i) {
-            var x = x1 + i * (x2 - x1) / 100;
-            d.push([x, Math.sin(x * Math.sin(x))]);
-        }
-
-        return [
-            { label: "sin(x sin(x))", data: d }
-        ];
-    }
-
-    var options = {
-        legend: { show: false },
-        series: {
-            lines: { show: true },
-            points: { show: true }
-        },
-        yaxis: { ticks: 10 },
-        selection: { mode: "xy" }
-    };
-
-    var startData = getData(0, 3 * Math.PI);
-    
-    var plot = $.plot($("#placeholder"), startData, options);
-
-    // setup overview
-    var overview = $.plot($("#overview"), startData, {
-        legend: { show: true, container: $("#overviewLegend") },
-        series: {
-            lines: { show: true, lineWidth: 1 },
-            shadowSize: 0
-        },
-        xaxis: { ticks: 4 },
-        yaxis: { ticks: 3, min: -2, max: 2 },
-        grid: { color: "#999" },
-        selection: { mode: "xy" }
-    });
-
-    // now connect the two
-    
-    $("#placeholder").bind("plotselected", function (event, ranges) {
-        // clamp the zooming to prevent eternal zoom
-        if (ranges.xaxis.to - ranges.xaxis.from < 0.00001)
-            ranges.xaxis.to = ranges.xaxis.from + 0.00001;
-        if (ranges.yaxis.to - ranges.yaxis.from < 0.00001)
-            ranges.yaxis.to = ranges.yaxis.from + 0.00001;
-        
-        // do the zooming
-        plot = $.plot($("#placeholder"), getData(ranges.xaxis.from, ranges.xaxis.to),
-                      $.extend(true, {}, options, {
-                          xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
-                          yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
-                      }));
-        
-        // don't fire event on the overview to prevent eternal loop
-        overview.setSelection(ranges, true);
-    });
-    $("#overview").bind("plotselected", function (event, ranges) {
-        plot.setSelection(ranges);
-    });
-});
-</script>
-
- </body>
-</html>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.js
deleted file mode 100644
index c40d6f7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.js
+++ /dev/null
@@ -1,1427 +0,0 @@
-// Copyright 2006 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//   http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-
-// Known Issues:
-//
-// * Patterns only support repeat.
-// * Radial gradient are not implemented. The VML version of these look very
-//   different from the canvas one.
-// * Clipping paths are not implemented.
-// * Coordsize. The width and height attribute have higher priority than the
-//   width and height style values which isn't correct.
-// * Painting mode isn't implemented.
-// * Canvas width/height should is using content-box by default. IE in
-//   Quirks mode will draw the canvas using border-box. Either change your
-//   doctype to HTML5
-//   (http://www.whatwg.org/specs/web-apps/current-work/#the-doctype)
-//   or use Box Sizing Behavior from WebFX
-//   (http://webfx.eae.net/dhtml/boxsizing/boxsizing.html)
-// * Non uniform scaling does not correctly scale strokes.
-// * Filling very large shapes (above 5000 points) is buggy.
-// * Optimize. There is always room for speed improvements.
-
-// Only add this code if we do not already have a canvas implementation
-if (!document.createElement('canvas').getContext) {
-
-(function() {
-
-  // alias some functions to make (compiled) code shorter
-  var m = Math;
-  var mr = m.round;
-  var ms = m.sin;
-  var mc = m.cos;
-  var abs = m.abs;
-  var sqrt = m.sqrt;
-
-  // this is used for sub pixel precision
-  var Z = 10;
-  var Z2 = Z / 2;
-
-  /**
-   * This funtion is assigned to the <canvas> elements as element.getContext().
-   * @this {HTMLElement}
-   * @return {CanvasRenderingContext2D_}
-   */
-  function getContext() {
-    return this.context_ ||
-        (this.context_ = new CanvasRenderingContext2D_(this));
-  }
-
-  var slice = Array.prototype.slice;
-
-  /**
-   * Binds a function to an object. The returned function will always use the
-   * passed in {@code obj} as {@code this}.
-   *
-   * Example:
-   *
-   *   g = bind(f, obj, a, b)
-   *   g(c, d) // will do f.call(obj, a, b, c, d)
-   *
-   * @param {Function} f The function to bind the object to
-   * @param {Object} obj The object that should act as this when the function
-   *     is called
-   * @param {*} var_args Rest arguments that will be used as the initial
-   *     arguments when the function is called
-   * @return {Function} A new function that has bound this
-   */
-  function bind(f, obj, var_args) {
-    var a = slice.call(arguments, 2);
-    return function() {
-      return f.apply(obj, a.concat(slice.call(arguments)));
-    };
-  }
-
-  function encodeHtmlAttribute(s) {
-    return String(s).replace(/&/g, '&amp;').replace(/"/g, '&quot;');
-  }
-
-  function addNamespacesAndStylesheet(doc) {
-    // create xmlns
-    if (!doc.namespaces['g_vml_']) {
-      doc.namespaces.add('g_vml_', 'urn:schemas-microsoft-com:vml',
-                         '#default#VML');
-
-    }
-    if (!doc.namespaces['g_o_']) {
-      doc.namespaces.add('g_o_', 'urn:schemas-microsoft-com:office:office',
-                         '#default#VML');
-    }
-
-    // Setup default CSS.  Only add one style sheet per document
-    if (!doc.styleSheets['ex_canvas_']) {
-      var ss = doc.createStyleSheet();
-      ss.owningElement.id = 'ex_canvas_';
-      ss.cssText = 'canvas{display:inline-block;overflow:hidden;' +
-          // default size is 300x150 in Gecko and Opera
-          'text-align:left;width:300px;height:150px}';
-    }
-  }
-
-  // Add namespaces and stylesheet at startup.
-  addNamespacesAndStylesheet(document);
-
-  var G_vmlCanvasManager_ = {
-    init: function(opt_doc) {
-      if (/MSIE/.test(navigator.userAgent) && !window.opera) {
-        var doc = opt_doc || document;
-        // Create a dummy element so that IE will allow canvas elements to be
-        // recognized.
-        doc.createElement('canvas');
-        doc.attachEvent('onreadystatechange', bind(this.init_, this, doc));
-      }
-    },
-
-    init_: function(doc) {
-      // find all canvas elements
-      var els = doc.getElementsByTagName('canvas');
-      for (var i = 0; i < els.length; i++) {
-        this.initElement(els[i]);
-      }
-    },
-
-    /**
-     * Public initializes a canvas element so that it can be used as canvas
-     * element from now on. This is called automatically before the page is
-     * loaded but if you are creating elements using createElement you need to
-     * make sure this is called on the element.
-     * @param {HTMLElement} el The canvas element to initialize.
-     * @return {HTMLElement} the element that was created.
-     */
-    initElement: function(el) {
-      if (!el.getContext) {
-        el.getContext = getContext;
-
-        // Add namespaces and stylesheet to document of the element.
-        addNamespacesAndStylesheet(el.ownerDocument);
-
-        // Remove fallback content. There is no way to hide text nodes so we
-        // just remove all childNodes. We could hide all elements and remove
-        // text nodes but who really cares about the fallback content.
-        el.innerHTML = '';
-
-        // do not use inline function because that will leak memory
-        el.attachEvent('onpropertychange', onPropertyChange);
-        el.attachEvent('onresize', onResize);
-
-        var attrs = el.attributes;
-        if (attrs.width && attrs.width.specified) {
-          // TODO: use runtimeStyle and coordsize
-          // el.getContext().setWidth_(attrs.width.nodeValue);
-          el.style.width = attrs.width.nodeValue + 'px';
-        } else {
-          el.width = el.clientWidth;
-        }
-        if (attrs.height && attrs.height.specified) {
-          // TODO: use runtimeStyle and coordsize
-          // el.getContext().setHeight_(attrs.height.nodeValue);
-          el.style.height = attrs.height.nodeValue + 'px';
-        } else {
-          el.height = el.clientHeight;
-        }
-        //el.getContext().setCoordsize_()
-      }
-      return el;
-    }
-  };
-
-  function onPropertyChange(e) {
-    var el = e.srcElement;
-
-    switch (e.propertyName) {
-      case 'width':
-        el.getContext().clearRect();
-        el.style.width = el.attributes.width.nodeValue + 'px';
-        // In IE8 this does not trigger onresize.
-        el.firstChild.style.width =  el.clientWidth + 'px';
-        break;
-      case 'height':
-        el.getContext().clearRect();
-        el.style.height = el.attributes.height.nodeValue + 'px';
-        el.firstChild.style.height = el.clientHeight + 'px';
-        break;
-    }
-  }
-
-  function onResize(e) {
-    var el = e.srcElement;
-    if (el.firstChild) {
-      el.firstChild.style.width =  el.clientWidth + 'px';
-      el.firstChild.style.height = el.clientHeight + 'px';
-    }
-  }
-
-  G_vmlCanvasManager_.init();
-
-  // precompute "00" to "FF"
-  var decToHex = [];
-  for (var i = 0; i < 16; i++) {
-    for (var j = 0; j < 16; j++) {
-      decToHex[i * 16 + j] = i.toString(16) + j.toString(16);
-    }
-  }
-
-  function createMatrixIdentity() {
-    return [
-      [1, 0, 0],
-      [0, 1, 0],
-      [0, 0, 1]
-    ];
-  }
-
-  function matrixMultiply(m1, m2) {
-    var result = createMatrixIdentity();
-
-    for (var x = 0; x < 3; x++) {
-      for (var y = 0; y < 3; y++) {
-        var sum = 0;
-
-        for (var z = 0; z < 3; z++) {
-          sum += m1[x][z] * m2[z][y];
-        }
-
-        result[x][y] = sum;
-      }
-    }
-    return result;
-  }
-
-  function copyState(o1, o2) {
-    o2.fillStyle     = o1.fillStyle;
-    o2.lineCap       = o1.lineCap;
-    o2.lineJoin      = o1.lineJoin;
-    o2.lineWidth     = o1.lineWidth;
-    o2.miterLimit    = o1.miterLimit;
-    o2.shadowBlur    = o1.shadowBlur;
-    o2.shadowColor   = o1.shadowColor;
-    o2.shadowOffsetX = o1.shadowOffsetX;
-    o2.shadowOffsetY = o1.shadowOffsetY;
-    o2.strokeStyle   = o1.strokeStyle;
-    o2.globalAlpha   = o1.globalAlpha;
-    o2.font          = o1.font;
-    o2.textAlign     = o1.textAlign;
-    o2.textBaseline  = o1.textBaseline;
-    o2.arcScaleX_    = o1.arcScaleX_;
-    o2.arcScaleY_    = o1.arcScaleY_;
-    o2.lineScale_    = o1.lineScale_;
-  }
-
-  var colorData = {
-    aliceblue: '#F0F8FF',
-    antiquewhite: '#FAEBD7',
-    aquamarine: '#7FFFD4',
-    azure: '#F0FFFF',
-    beige: '#F5F5DC',
-    bisque: '#FFE4C4',
-    black: '#000000',
-    blanchedalmond: '#FFEBCD',
-    blueviolet: '#8A2BE2',
-    brown: '#A52A2A',
-    burlywood: '#DEB887',
-    cadetblue: '#5F9EA0',
-    chartreuse: '#7FFF00',
-    chocolate: '#D2691E',
-    coral: '#FF7F50',
-    cornflowerblue: '#6495ED',
-    cornsilk: '#FFF8DC',
-    crimson: '#DC143C',
-    cyan: '#00FFFF',
-    darkblue: '#00008B',
-    darkcyan: '#008B8B',
-    darkgoldenrod: '#B8860B',
-    darkgray: '#A9A9A9',
-    darkgreen: '#006400',
-    darkgrey: '#A9A9A9',
-    darkkhaki: '#BDB76B',
-    darkmagenta: '#8B008B',
-    darkolivegreen: '#556B2F',
-    darkorange: '#FF8C00',
-    darkorchid: '#9932CC',
-    darkred: '#8B0000',
-    darksalmon: '#E9967A',
-    darkseagreen: '#8FBC8F',
-    darkslateblue: '#483D8B',
-    darkslategray: '#2F4F4F',
-    darkslategrey: '#2F4F4F',
-    darkturquoise: '#00CED1',
-    darkviolet: '#9400D3',
-    deeppink: '#FF1493',
-    deepskyblue: '#00BFFF',
-    dimgray: '#696969',
-    dimgrey: '#696969',
-    dodgerblue: '#1E90FF',
-    firebrick: '#B22222',
-    floralwhite: '#FFFAF0',
-    forestgreen: '#228B22',
-    gainsboro: '#DCDCDC',
-    ghostwhite: '#F8F8FF',
-    gold: '#FFD700',
-    goldenrod: '#DAA520',
-    grey: '#808080',
-    greenyellow: '#ADFF2F',
-    honeydew: '#F0FFF0',
-    hotpink: '#FF69B4',
-    indianred: '#CD5C5C',
-    indigo: '#4B0082',
-    ivory: '#FFFFF0',
-    khaki: '#F0E68C',
-    lavender: '#E6E6FA',
-    lavenderblush: '#FFF0F5',
-    lawngreen: '#7CFC00',
-    lemonchiffon: '#FFFACD',
-    lightblue: '#ADD8E6',
-    lightcoral: '#F08080',
-    lightcyan: '#E0FFFF',
-    lightgoldenrodyellow: '#FAFAD2',
-    lightgreen: '#90EE90',
-    lightgrey: '#D3D3D3',
-    lightpink: '#FFB6C1',
-    lightsalmon: '#FFA07A',
-    lightseagreen: '#20B2AA',
-    lightskyblue: '#87CEFA',
-    lightslategray: '#778899',
-    lightslategrey: '#778899',
-    lightsteelblue: '#B0C4DE',
-    lightyellow: '#FFFFE0',
-    limegreen: '#32CD32',
-    linen: '#FAF0E6',
-    magenta: '#FF00FF',
-    mediumaquamarine: '#66CDAA',
-    mediumblue: '#0000CD',
-    mediumorchid: '#BA55D3',
-    mediumpurple: '#9370DB',
-    mediumseagreen: '#3CB371',
-    mediumslateblue: '#7B68EE',
-    mediumspringgreen: '#00FA9A',
-    mediumturquoise: '#48D1CC',
-    mediumvioletred: '#C71585',
-    midnightblue: '#191970',
-    mintcream: '#F5FFFA',
-    mistyrose: '#FFE4E1',
-    moccasin: '#FFE4B5',
-    navajowhite: '#FFDEAD',
-    oldlace: '#FDF5E6',
-    olivedrab: '#6B8E23',
-    orange: '#FFA500',
-    orangered: '#FF4500',
-    orchid: '#DA70D6',
-    palegoldenrod: '#EEE8AA',
-    palegreen: '#98FB98',
-    paleturquoise: '#AFEEEE',
-    palevioletred: '#DB7093',
-    papayawhip: '#FFEFD5',
-    peachpuff: '#FFDAB9',
-    peru: '#CD853F',
-    pink: '#FFC0CB',
-    plum: '#DDA0DD',
-    powderblue: '#B0E0E6',
-    rosybrown: '#BC8F8F',
-    royalblue: '#4169E1',
-    saddlebrown: '#8B4513',
-    salmon: '#FA8072',
-    sandybrown: '#F4A460',
-    seagreen: '#2E8B57',
-    seashell: '#FFF5EE',
-    sienna: '#A0522D',
-    skyblue: '#87CEEB',
-    slateblue: '#6A5ACD',
-    slategray: '#708090',
-    slategrey: '#708090',
-    snow: '#FFFAFA',
-    springgreen: '#00FF7F',
-    steelblue: '#4682B4',
-    tan: '#D2B48C',
-    thistle: '#D8BFD8',
-    tomato: '#FF6347',
-    turquoise: '#40E0D0',
-    violet: '#EE82EE',
-    wheat: '#F5DEB3',
-    whitesmoke: '#F5F5F5',
-    yellowgreen: '#9ACD32'
-  };
-
-
-  function getRgbHslContent(styleString) {
-    var start = styleString.indexOf('(', 3);
-    var end = styleString.indexOf(')', start + 1);
-    var parts = styleString.substring(start + 1, end).split(',');
-    // add alpha if needed
-    if (parts.length == 4 && styleString.substr(3, 1) == 'a') {
-      alpha = Number(parts[3]);
-    } else {
-      parts[3] = 1;
-    }
-    return parts;
-  }
-
-  function percent(s) {
-    return parseFloat(s) / 100;
-  }
-
-  function clamp(v, min, max) {
-    return Math.min(max, Math.max(min, v));
-  }
-
-  function hslToRgb(parts){
-    var r, g, b;
-    h = parseFloat(parts[0]) / 360 % 360;
-    if (h < 0)
-      h++;
-    s = clamp(percent(parts[1]), 0, 1);
-    l = clamp(percent(parts[2]), 0, 1);
-    if (s == 0) {
-      r = g = b = l; // achromatic
-    } else {
-      var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
-      var p = 2 * l - q;
-      r = hueToRgb(p, q, h + 1 / 3);
-      g = hueToRgb(p, q, h);
-      b = hueToRgb(p, q, h - 1 / 3);
-    }
-
-    return '#' + decToHex[Math.floor(r * 255)] +
-        decToHex[Math.floor(g * 255)] +
-        decToHex[Math.floor(b * 255)];
-  }
-
-  function hueToRgb(m1, m2, h) {
-    if (h < 0)
-      h++;
-    if (h > 1)
-      h--;
-
-    if (6 * h < 1)
-      return m1 + (m2 - m1) * 6 * h;
-    else if (2 * h < 1)
-      return m2;
-    else if (3 * h < 2)
-      return m1 + (m2 - m1) * (2 / 3 - h) * 6;
-    else
-      return m1;
-  }
-
-  function processStyle(styleString) {
-    var str, alpha = 1;
-
-    styleString = String(styleString);
-    if (styleString.charAt(0) == '#') {
-      str = styleString;
-    } else if (/^rgb/.test(styleString)) {
-      var parts = getRgbHslContent(styleString);
-      var str = '#', n;
-      for (var i = 0; i < 3; i++) {
-        if (parts[i].indexOf('%') != -1) {
-          n = Math.floor(percent(parts[i]) * 255);
-        } else {
-          n = Number(parts[i]);
-        }
-        str += decToHex[clamp(n, 0, 255)];
-      }
-      alpha = parts[3];
-    } else if (/^hsl/.test(styleString)) {
-      var parts = getRgbHslContent(styleString);
-      str = hslToRgb(parts);
-      alpha = parts[3];
-    } else {
-      str = colorData[styleString] || styleString;
-    }
-    return {color: str, alpha: alpha};
-  }
-
-  var DEFAULT_STYLE = {
-    style: 'normal',
-    variant: 'normal',
-    weight: 'normal',
-    size: 10,
-    family: 'sans-serif'
-  };
-
-  // Internal text style cache
-  var fontStyleCache = {};
-
-  function processFontStyle(styleString) {
-    if (fontStyleCache[styleString]) {
-      return fontStyleCache[styleString];
-    }
-
-    var el = document.createElement('div');
-    var style = el.style;
-    try {
-      style.font = styleString;
-    } catch (ex) {
-      // Ignore failures to set to invalid font.
-    }
-
-    return fontStyleCache[styleString] = {
-      style: style.fontStyle || DEFAULT_STYLE.style,
-      variant: style.fontVariant || DEFAULT_STYLE.variant,
-      weight: style.fontWeight || DEFAULT_STYLE.weight,
-      size: style.fontSize || DEFAULT_STYLE.size,
-      family: style.fontFamily || DEFAULT_STYLE.family
-    };
-  }
-
-  function getComputedStyle(style, element) {
-    var computedStyle = {};
-
-    for (var p in style) {
-      computedStyle[p] = style[p];
-    }
-
-    // Compute the size
-    var canvasFontSize = parseFloat(element.currentStyle.fontSize),
-        fontSize = parseFloat(style.size);
-
-    if (typeof style.size == 'number') {
-      computedStyle.size = style.size;
-    } else if (style.size.indexOf('px') != -1) {
-      computedStyle.size = fontSize;
-    } else if (style.size.indexOf('em') != -1) {
-      computedStyle.size = canvasFontSize * fontSize;
-    } else if(style.size.indexOf('%') != -1) {
-      computedStyle.size = (canvasFontSize / 100) * fontSize;
-    } else if (style.size.indexOf('pt') != -1) {
-      computedStyle.size = fontSize / .75;
-    } else {
-      computedStyle.size = canvasFontSize;
-    }
-
-    // Different scaling between normal text and VML text. This was found using
-    // trial and error to get the same size as non VML text.
-    computedStyle.size *= 0.981;
-
-    return computedStyle;
-  }
-
-  function buildStyle(style) {
-    return style.style + ' ' + style.variant + ' ' + style.weight + ' ' +
-        style.size + 'px ' + style.family;
-  }
-
-  function processLineCap(lineCap) {
-    switch (lineCap) {
-      case 'butt':
-        return 'flat';
-      case 'round':
-        return 'round';
-      case 'square':
-      default:
-        return 'square';
-    }
-  }
-
-  /**
-   * This class implements CanvasRenderingContext2D interface as described by
-   * the WHATWG.
-   * @param {HTMLElement} surfaceElement The element that the 2D context should
-   * be associated with
-   */
-  function CanvasRenderingContext2D_(surfaceElement) {
-    this.m_ = createMatrixIdentity();
-
-    this.mStack_ = [];
-    this.aStack_ = [];
-    this.currentPath_ = [];
-
-    // Canvas context properties
-    this.strokeStyle = '#000';
-    this.fillStyle = '#000';
-
-    this.lineWidth = 1;
-    this.lineJoin = 'miter';
-    this.lineCap = 'butt';
-    this.miterLimit = Z * 1;
-    this.globalAlpha = 1;
-    this.font = '10px sans-serif';
-    this.textAlign = 'left';
-    this.textBaseline = 'alphabetic';
-    this.canvas = surfaceElement;
-
-    var el = surfaceElement.ownerDocument.createElement('div');
-    el.style.width =  surfaceElement.clientWidth + 'px';
-    el.style.height = surfaceElement.clientHeight + 'px';
-    el.style.overflow = 'hidden';
-    el.style.position = 'absolute';
-    surfaceElement.appendChild(el);
-
-    this.element_ = el;
-    this.arcScaleX_ = 1;
-    this.arcScaleY_ = 1;
-    this.lineScale_ = 1;
-  }
-
-  var contextPrototype = CanvasRenderingContext2D_.prototype;
-  contextPrototype.clearRect = function() {
-    if (this.textMeasureEl_) {
-      this.textMeasureEl_.removeNode(true);
-      this.textMeasureEl_ = null;
-    }
-    this.element_.innerHTML = '';
-  };
-
-  contextPrototype.beginPath = function() {
-    // TODO: Branch current matrix so that save/restore has no effect
-    //       as per safari docs.
-    this.currentPath_ = [];
-  };
-
-  contextPrototype.moveTo = function(aX, aY) {
-    var p = this.getCoords_(aX, aY);
-    this.currentPath_.push({type: 'moveTo', x: p.x, y: p.y});
-    this.currentX_ = p.x;
-    this.currentY_ = p.y;
-  };
-
-  contextPrototype.lineTo = function(aX, aY) {
-    var p = this.getCoords_(aX, aY);
-    this.currentPath_.push({type: 'lineTo', x: p.x, y: p.y});
-
-    this.currentX_ = p.x;
-    this.currentY_ = p.y;
-  };
-
-  contextPrototype.bezierCurveTo = function(aCP1x, aCP1y,
-                                            aCP2x, aCP2y,
-                                            aX, aY) {
-    var p = this.getCoords_(aX, aY);
-    var cp1 = this.getCoords_(aCP1x, aCP1y);
-    var cp2 = this.getCoords_(aCP2x, aCP2y);
-    bezierCurveTo(this, cp1, cp2, p);
-  };
-
-  // Helper function that takes the already fixed cordinates.
-  function bezierCurveTo(self, cp1, cp2, p) {
-    self.currentPath_.push({
-      type: 'bezierCurveTo',
-      cp1x: cp1.x,
-      cp1y: cp1.y,
-      cp2x: cp2.x,
-      cp2y: cp2.y,
-      x: p.x,
-      y: p.y
-    });
-    self.currentX_ = p.x;
-    self.currentY_ = p.y;
-  }
-
-  contextPrototype.quadraticCurveTo = function(aCPx, aCPy, aX, aY) {
-    // the following is lifted almost directly from
-    // http://developer.mozilla.org/en/docs/Canvas_tutorial:Drawing_shapes
-
-    var cp = this.getCoords_(aCPx, aCPy);
-    var p = this.getCoords_(aX, aY);
-
-    var cp1 = {
-      x: this.currentX_ + 2.0 / 3.0 * (cp.x - this.currentX_),
-      y: this.currentY_ + 2.0 / 3.0 * (cp.y - this.currentY_)
-    };
-    var cp2 = {
-      x: cp1.x + (p.x - this.currentX_) / 3.0,
-      y: cp1.y + (p.y - this.currentY_) / 3.0
-    };
-
-    bezierCurveTo(this, cp1, cp2, p);
-  };
-
-  contextPrototype.arc = function(aX, aY, aRadius,
-                                  aStartAngle, aEndAngle, aClockwise) {
-    aRadius *= Z;
-    var arcType = aClockwise ? 'at' : 'wa';
-
-    var xStart = aX + mc(aStartAngle) * aRadius - Z2;
-    var yStart = aY + ms(aStartAngle) * aRadius - Z2;
-
-    var xEnd = aX + mc(aEndAngle) * aRadius - Z2;
-    var yEnd = aY + ms(aEndAngle) * aRadius - Z2;
-
-    // IE won't render arches drawn counter clockwise if xStart == xEnd.
-    if (xStart == xEnd && !aClockwise) {
-      xStart += 0.125; // Offset xStart by 1/80 of a pixel. Use something
-                       // that can be represented in binary
-    }
-
-    var p = this.getCoords_(aX, aY);
-    var pStart = this.getCoords_(xStart, yStart);
-    var pEnd = this.getCoords_(xEnd, yEnd);
-
-    this.currentPath_.push({type: arcType,
-                           x: p.x,
-                           y: p.y,
-                           radius: aRadius,
-                           xStart: pStart.x,
-                           yStart: pStart.y,
-                           xEnd: pEnd.x,
-                           yEnd: pEnd.y});
-
-  };
-
-  contextPrototype.rect = function(aX, aY, aWidth, aHeight) {
-    this.moveTo(aX, aY);
-    this.lineTo(aX + aWidth, aY);
-    this.lineTo(aX + aWidth, aY + aHeight);
-    this.lineTo(aX, aY + aHeight);
-    this.closePath();
-  };
-
-  contextPrototype.strokeRect = function(aX, aY, aWidth, aHeight) {
-    var oldPath = this.currentPath_;
-    this.beginPath();
-
-    this.moveTo(aX, aY);
-    this.lineTo(aX + aWidth, aY);
-    this.lineTo(aX + aWidth, aY + aHeight);
-    this.lineTo(aX, aY + aHeight);
-    this.closePath();
-    this.stroke();
-
-    this.currentPath_ = oldPath;
-  };
-
-  contextPrototype.fillRect = function(aX, aY, aWidth, aHeight) {
-    var oldPath = this.currentPath_;
-    this.beginPath();
-
-    this.moveTo(aX, aY);
-    this.lineTo(aX + aWidth, aY);
-    this.lineTo(aX + aWidth, aY + aHeight);
-    this.lineTo(aX, aY + aHeight);
-    this.closePath();
-    this.fill();
-
-    this.currentPath_ = oldPath;
-  };
-
-  contextPrototype.createLinearGradient = function(aX0, aY0, aX1, aY1) {
-    var gradient = new CanvasGradient_('gradient');
-    gradient.x0_ = aX0;
-    gradient.y0_ = aY0;
-    gradient.x1_ = aX1;
-    gradient.y1_ = aY1;
-    return gradient;
-  };
-
-  contextPrototype.createRadialGradient = function(aX0, aY0, aR0,
-                                                   aX1, aY1, aR1) {
-    var gradient = new CanvasGradient_('gradientradial');
-    gradient.x0_ = aX0;
-    gradient.y0_ = aY0;
-    gradient.r0_ = aR0;
-    gradient.x1_ = aX1;
-    gradient.y1_ = aY1;
-    gradient.r1_ = aR1;
-    return gradient;
-  };
-
-  contextPrototype.drawImage = function(image, var_args) {
-    var dx, dy, dw, dh, sx, sy, sw, sh;
-
-    // to find the original width we overide the width and height
-    var oldRuntimeWidth = image.runtimeStyle.width;
-    var oldRuntimeHeight = image.runtimeStyle.height;
-    image.runtimeStyle.width = 'auto';
-    image.runtimeStyle.height = 'auto';
-
-    // get the original size
-    var w = image.width;
-    var h = image.height;
-
-    // and remove overides
-    image.runtimeStyle.width = oldRuntimeWidth;
-    image.runtimeStyle.height = oldRuntimeHeight;
-
-    if (arguments.length == 3) {
-      dx = arguments[1];
-      dy = arguments[2];
-      sx = sy = 0;
-      sw = dw = w;
-      sh = dh = h;
-    } else if (arguments.length == 5) {
-      dx = arguments[1];
-      dy = arguments[2];
-      dw = arguments[3];
-      dh = arguments[4];
-      sx = sy = 0;
-      sw = w;
-      sh = h;
-    } else if (arguments.length == 9) {
-      sx = arguments[1];
-      sy = arguments[2];
-      sw = arguments[3];
-      sh = arguments[4];
-      dx = arguments[5];
-      dy = arguments[6];
-      dw = arguments[7];
-      dh = arguments[8];
-    } else {
-      throw Error('Invalid number of arguments');
-    }
-
-    var d = this.getCoords_(dx, dy);
-
-    var w2 = sw / 2;
-    var h2 = sh / 2;
-
-    var vmlStr = [];
-
-    var W = 10;
-    var H = 10;
-
-    // For some reason that I've now forgotten, using divs didn't work
-    vmlStr.push(' <g_vml_:group',
-                ' coordsize="', Z * W, ',', Z * H, '"',
-                ' coordorigin="0,0"' ,
-                ' style="width:', W, 'px;height:', H, 'px;position:absolute;');
-
-    // If filters are necessary (rotation exists), create them
-    // filters are bog-slow, so only create them if abbsolutely necessary
-    // The following check doesn't account for skews (which don't exist
-    // in the canvas spec (yet) anyway.
-
-    if (this.m_[0][0] != 1 || this.m_[0][1] ||
-        this.m_[1][1] != 1 || this.m_[1][0]) {
-      var filter = [];
-
-      // Note the 12/21 reversal
-      filter.push('M11=', this.m_[0][0], ',',
-                  'M12=', this.m_[1][0], ',',
-                  'M21=', this.m_[0][1], ',',
-                  'M22=', this.m_[1][1], ',',
-                  'Dx=', mr(d.x / Z), ',',
-                  'Dy=', mr(d.y / Z), '');
-
-      // Bounding box calculation (need to minimize displayed area so that
-      // filters don't waste time on unused pixels.
-      var max = d;
-      var c2 = this.getCoords_(dx + dw, dy);
-      var c3 = this.getCoords_(dx, dy + dh);
-      var c4 = this.getCoords_(dx + dw, dy + dh);
-
-      max.x = m.max(max.x, c2.x, c3.x, c4.x);
-      max.y = m.max(max.y, c2.y, c3.y, c4.y);
-
-      vmlStr.push('padding:0 ', mr(max.x / Z), 'px ', mr(max.y / Z),
-                  'px 0;filter:progid:DXImageTransform.Microsoft.Matrix(',
-                  filter.join(''), ", sizingmethod='clip');");
-
-    } else {
-      vmlStr.push('top:', mr(d.y / Z), 'px;left:', mr(d.x / Z), 'px;');
-    }
-
-    vmlStr.push(' ">' ,
-                '<g_vml_:image src="', image.src, '"',
-                ' style="width:', Z * dw, 'px;',
-                ' height:', Z * dh, 'px"',
-                ' cropleft="', sx / w, '"',
-                ' croptop="', sy / h, '"',
-                ' cropright="', (w - sx - sw) / w, '"',
-                ' cropbottom="', (h - sy - sh) / h, '"',
-                ' />',
-                '</g_vml_:group>');
-
-    this.element_.insertAdjacentHTML('BeforeEnd', vmlStr.join(''));
-  };
-
-  contextPrototype.stroke = function(aFill) {
-    var W = 10;
-    var H = 10;
-    // Divide the shape into chunks if it's too long because IE has a limit
-    // somewhere for how long a VML shape can be. This simple division does
-    // not work with fills, only strokes, unfortunately.
-    var chunkSize = 5000;
-
-    var min = {x: null, y: null};
-    var max = {x: null, y: null};
-
-    for (var j = 0; j < this.currentPath_.length; j += chunkSize) {
-      var lineStr = [];
-      var lineOpen = false;
-
-      lineStr.push('<g_vml_:shape',
-                   ' filled="', !!aFill, '"',
-                   ' style="position:absolute;width:', W, 'px;height:', H, 'px;"',
-                   ' coordorigin="0,0"',
-                   ' coordsize="', Z * W, ',', Z * H, '"',
-                   ' stroked="', !aFill, '"',
-                   ' path="');
-
-      var newSeq = false;
-
-      for (var i = j; i < Math.min(j + chunkSize, this.currentPath_.length); i++) {
-        if (i % chunkSize == 0 && i > 0) { // move into position for next chunk
-          lineStr.push(' m ', mr(this.currentPath_[i-1].x), ',', mr(this.currentPath_[i-1].y));
-        }
-
-        var p = this.currentPath_[i];
-        var c;
-
-        switch (p.type) {
-          case 'moveTo':
-            c = p;
-            lineStr.push(' m ', mr(p.x), ',', mr(p.y));
-            break;
-          case 'lineTo':
-            lineStr.push(' l ', mr(p.x), ',', mr(p.y));
-            break;
-          case 'close':
-            lineStr.push(' x ');
-            p = null;
-            break;
-          case 'bezierCurveTo':
-            lineStr.push(' c ',
-                         mr(p.cp1x), ',', mr(p.cp1y), ',',
-                         mr(p.cp2x), ',', mr(p.cp2y), ',',
-                         mr(p.x), ',', mr(p.y));
-            break;
-          case 'at':
-          case 'wa':
-            lineStr.push(' ', p.type, ' ',
-                         mr(p.x - this.arcScaleX_ * p.radius), ',',
-                         mr(p.y - this.arcScaleY_ * p.radius), ' ',
-                         mr(p.x + this.arcScaleX_ * p.radius), ',',
-                         mr(p.y + this.arcScaleY_ * p.radius), ' ',
-                         mr(p.xStart), ',', mr(p.yStart), ' ',
-                         mr(p.xEnd), ',', mr(p.yEnd));
-            break;
-        }
-  
-  
-        // TODO: Following is broken for curves due to
-        //       move to proper paths.
-  
-        // Figure out dimensions so we can do gradient fills
-        // properly
-        if (p) {
-          if (min.x == null || p.x < min.x) {
-            min.x = p.x;
-          }
-          if (max.x == null || p.x > max.x) {
-            max.x = p.x;
-          }
-          if (min.y == null || p.y < min.y) {
-            min.y = p.y;
-          }
-          if (max.y == null || p.y > max.y) {
-            max.y = p.y;
-          }
-        }
-      }
-      lineStr.push(' ">');
-  
-      if (!aFill) {
-        appendStroke(this, lineStr);
-      } else {
-        appendFill(this, lineStr, min, max);
-      }
-  
-      lineStr.push('</g_vml_:shape>');
-  
-      this.element_.insertAdjacentHTML('beforeEnd', lineStr.join(''));
-    }
-  };
-
-  function appendStroke(ctx, lineStr) {
-    var a = processStyle(ctx.strokeStyle);
-    var color = a.color;
-    var opacity = a.alpha * ctx.globalAlpha;
-    var lineWidth = ctx.lineScale_ * ctx.lineWidth;
-
-    // VML cannot correctly render a line if the width is less than 1px.
-    // In that case, we dilute the color to make the line look thinner.
-    if (lineWidth < 1) {
-      opacity *= lineWidth;
-    }
-
-    lineStr.push(
-      '<g_vml_:stroke',
-      ' opacity="', opacity, '"',
-      ' joinstyle="', ctx.lineJoin, '"',
-      ' miterlimit="', ctx.miterLimit, '"',
-      ' endcap="', processLineCap(ctx.lineCap), '"',
-      ' weight="', lineWidth, 'px"',
-      ' color="', color, '" />'
-    );
-  }
-
-  function appendFill(ctx, lineStr, min, max) {
-    var fillStyle = ctx.fillStyle;
-    var arcScaleX = ctx.arcScaleX_;
-    var arcScaleY = ctx.arcScaleY_;
-    var width = max.x - min.x;
-    var height = max.y - min.y;
-    if (fillStyle instanceof CanvasGradient_) {
-      // TODO: Gradients transformed with the transformation matrix.
-      var angle = 0;
-      var focus = {x: 0, y: 0};
-
-      // additional offset
-      var shift = 0;
-      // scale factor for offset
-      var expansion = 1;
-
-      if (fillStyle.type_ == 'gradient') {
-        var x0 = fillStyle.x0_ / arcScaleX;
-        var y0 = fillStyle.y0_ / arcScaleY;
-        var x1 = fillStyle.x1_ / arcScaleX;
-        var y1 = fillStyle.y1_ / arcScaleY;
-        var p0 = ctx.getCoords_(x0, y0);
-        var p1 = ctx.getCoords_(x1, y1);
-        var dx = p1.x - p0.x;
-        var dy = p1.y - p0.y;
-        angle = Math.atan2(dx, dy) * 180 / Math.PI;
-
-        // The angle should be a non-negative number.
-        if (angle < 0) {
-          angle += 360;
-        }
-
-        // Very small angles produce an unexpected result because they are
-        // converted to a scientific notation string.
-        if (angle < 1e-6) {
-          angle = 0;
-        }
-      } else {
-        var p0 = ctx.getCoords_(fillStyle.x0_, fillStyle.y0_);
-        focus = {
-          x: (p0.x - min.x) / width,
-          y: (p0.y - min.y) / height
-        };
-
-        width  /= arcScaleX * Z;
-        height /= arcScaleY * Z;
-        var dimension = m.max(width, height);
-        shift = 2 * fillStyle.r0_ / dimension;
-        expansion = 2 * fillStyle.r1_ / dimension - shift;
-      }
-
-      // We need to sort the color stops in ascending order by offset,
-      // otherwise IE won't interpret it correctly.
-      var stops = fillStyle.colors_;
-      stops.sort(function(cs1, cs2) {
-        return cs1.offset - cs2.offset;
-      });
-
-      var length = stops.length;
-      var color1 = stops[0].color;
-      var color2 = stops[length - 1].color;
-      var opacity1 = stops[0].alpha * ctx.globalAlpha;
-      var opacity2 = stops[length - 1].alpha * ctx.globalAlpha;
-
-      var colors = [];
-      for (var i = 0; i < length; i++) {
-        var stop = stops[i];
-        colors.push(stop.offset * expansion + shift + ' ' + stop.color);
-      }
-
-      // When colors attribute is used, the meanings of opacity and o:opacity2
-      // are reversed.
-      lineStr.push('<g_vml_:fill type="', fillStyle.type_, '"',
-                   ' method="none" focus="100%"',
-                   ' color="', color1, '"',
-                   ' color2="', color2, '"',
-                   ' colors="', colors.join(','), '"',
-                   ' opacity="', opacity2, '"',
-                   ' g_o_:opacity2="', opacity1, '"',
-                   ' angle="', angle, '"',
-                   ' focusposition="', focus.x, ',', focus.y, '" />');
-    } else if (fillStyle instanceof CanvasPattern_) {
-      if (width && height) {
-        var deltaLeft = -min.x;
-        var deltaTop = -min.y;
-        lineStr.push('<g_vml_:fill',
-                     ' position="',
-                     deltaLeft / width * arcScaleX * arcScaleX, ',',
-                     deltaTop / height * arcScaleY * arcScaleY, '"',
-                     ' type="tile"',
-                     // TODO: Figure out the correct size to fit the scale.
-                     //' size="', w, 'px ', h, 'px"',
-                     ' src="', fillStyle.src_, '" />');
-       }
-    } else {
-      var a = processStyle(ctx.fillStyle);
-      var color = a.color;
-      var opacity = a.alpha * ctx.globalAlpha;
-      lineStr.push('<g_vml_:fill color="', color, '" opacity="', opacity,
-                   '" />');
-    }
-  }
-
-  contextPrototype.fill = function() {
-    this.stroke(true);
-  };
-
-  contextPrototype.closePath = function() {
-    this.currentPath_.push({type: 'close'});
-  };
-
-  /**
-   * @private
-   */
-  contextPrototype.getCoords_ = function(aX, aY) {
-    var m = this.m_;
-    return {
-      x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2,
-      y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2
-    };
-  };
-
-  contextPrototype.save = function() {
-    var o = {};
-    copyState(this, o);
-    this.aStack_.push(o);
-    this.mStack_.push(this.m_);
-    this.m_ = matrixMultiply(createMatrixIdentity(), this.m_);
-  };
-
-  contextPrototype.restore = function() {
-    if (this.aStack_.length) {
-      copyState(this.aStack_.pop(), this);
-      this.m_ = this.mStack_.pop();
-    }
-  };
-
-  function matrixIsFinite(m) {
-    return isFinite(m[0][0]) && isFinite(m[0][1]) &&
-        isFinite(m[1][0]) && isFinite(m[1][1]) &&
-        isFinite(m[2][0]) && isFinite(m[2][1]);
-  }
-
-  function setM(ctx, m, updateLineScale) {
-    if (!matrixIsFinite(m)) {
-      return;
-    }
-    ctx.m_ = m;
-
-    if (updateLineScale) {
-      // Get the line scale.
-      // Determinant of this.m_ means how much the area is enlarged by the
-      // transformation. So its square root can be used as a scale factor
-      // for width.
-      var det = m[0][0] * m[1][1] - m[0][1] * m[1][0];
-      ctx.lineScale_ = sqrt(abs(det));
-    }
-  }
-
-  contextPrototype.translate = function(aX, aY) {
-    var m1 = [
-      [1,  0,  0],
-      [0,  1,  0],
-      [aX, aY, 1]
-    ];
-
-    setM(this, matrixMultiply(m1, this.m_), false);
-  };
-
-  contextPrototype.rotate = function(aRot) {
-    var c = mc(aRot);
-    var s = ms(aRot);
-
-    var m1 = [
-      [c,  s, 0],
-      [-s, c, 0],
-      [0,  0, 1]
-    ];
-
-    setM(this, matrixMultiply(m1, this.m_), false);
-  };
-
-  contextPrototype.scale = function(aX, aY) {
-    this.arcScaleX_ *= aX;
-    this.arcScaleY_ *= aY;
-    var m1 = [
-      [aX, 0,  0],
-      [0,  aY, 0],
-      [0,  0,  1]
-    ];
-
-    setM(this, matrixMultiply(m1, this.m_), true);
-  };
-
-  contextPrototype.transform = function(m11, m12, m21, m22, dx, dy) {
-    var m1 = [
-      [m11, m12, 0],
-      [m21, m22, 0],
-      [dx,  dy,  1]
-    ];
-
-    setM(this, matrixMultiply(m1, this.m_), true);
-  };
-
-  contextPrototype.setTransform = function(m11, m12, m21, m22, dx, dy) {
-    var m = [
-      [m11, m12, 0],
-      [m21, m22, 0],
-      [dx,  dy,  1]
-    ];
-
-    setM(this, m, true);
-  };
-
-  /**
-   * The text drawing function.
-   * The maxWidth argument isn't taken in account, since no browser supports
-   * it yet.
-   */
-  contextPrototype.drawText_ = function(text, x, y, maxWidth, stroke) {
-    var m = this.m_,
-        delta = 1000,
-        left = 0,
-        right = delta,
-        offset = {x: 0, y: 0},
-        lineStr = [];
-
-    var fontStyle = getComputedStyle(processFontStyle(this.font),
-                                     this.element_);
-
-    var fontStyleString = buildStyle(fontStyle);
-
-    var elementStyle = this.element_.currentStyle;
-    var textAlign = this.textAlign.toLowerCase();
-    switch (textAlign) {
-      case 'left':
-      case 'center':
-      case 'right':
-        break;
-      case 'end':
-        textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left';
-        break;
-      case 'start':
-        textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left';
-        break;
-      default:
-        textAlign = 'left';
-    }
-
-    // 1.75 is an arbitrary number, as there is no info about the text baseline
-    switch (this.textBaseline) {
-      case 'hanging':
-      case 'top':
-        offset.y = fontStyle.size / 1.75;
-        break;
-      case 'middle':
-        break;
-      default:
-      case null:
-      case 'alphabetic':
-      case 'ideographic':
-      case 'bottom':
-        offset.y = -fontStyle.size / 2.25;
-        break;
-    }
-
-    switch(textAlign) {
-      case 'right':
-        left = delta;
-        right = 0.05;
-        break;
-      case 'center':
-        left = right = delta / 2;
-        break;
-    }
-
-    var d = this.getCoords_(x + offset.x, y + offset.y);
-
-    lineStr.push('<g_vml_:line from="', -left ,' 0" to="', right ,' 0.05" ',
-                 ' coordsize="100 100" coordorigin="0 0"',
-                 ' filled="', !stroke, '" stroked="', !!stroke,
-                 '" style="position:absolute;width:1px;height:1px;">');
-
-    if (stroke) {
-      appendStroke(this, lineStr);
-    } else {
-      // TODO: Fix the min and max params.
-      appendFill(this, lineStr, {x: -left, y: 0},
-                 {x: right, y: fontStyle.size});
-    }
-
-    var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' +
-                m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0';
-
-    var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z);
-
-    lineStr.push('<g_vml_:skew on="t" matrix="', skewM ,'" ',
-                 ' offset="', skewOffset, '" origin="', left ,' 0" />',
-                 '<g_vml_:path textpathok="true" />',
-                 '<g_vml_:textpath on="true" string="',
-                 encodeHtmlAttribute(text),
-                 '" style="v-text-align:', textAlign,
-                 ';font:', encodeHtmlAttribute(fontStyleString),
-                 '" /></g_vml_:line>');
-
-    this.element_.insertAdjacentHTML('beforeEnd', lineStr.join(''));
-  };
-
-  contextPrototype.fillText = function(text, x, y, maxWidth) {
-    this.drawText_(text, x, y, maxWidth, false);
-  };
-
-  contextPrototype.strokeText = function(text, x, y, maxWidth) {
-    this.drawText_(text, x, y, maxWidth, true);
-  };
-
-  contextPrototype.measureText = function(text) {
-    if (!this.textMeasureEl_) {
-      var s = '<span style="position:absolute;' +
-          'top:-20000px;left:0;padding:0;margin:0;border:none;' +
-          'white-space:pre;"></span>';
-      this.element_.insertAdjacentHTML('beforeEnd', s);
-      this.textMeasureEl_ = this.element_.lastChild;
-    }
-    var doc = this.element_.ownerDocument;
-    this.textMeasureEl_.innerHTML = '';
-    this.textMeasureEl_.style.font = this.font;
-    // Don't use innerHTML or innerText because they allow markup/whitespace.
-    this.textMeasureEl_.appendChild(doc.createTextNode(text));
-    return {width: this.textMeasureEl_.offsetWidth};
-  };
-
-  /******** STUBS ********/
-  contextPrototype.clip = function() {
-    // TODO: Implement
-  };
-
-  contextPrototype.arcTo = function() {
-    // TODO: Implement
-  };
-
-  contextPrototype.createPattern = function(image, repetition) {
-    return new CanvasPattern_(image, repetition);
-  };
-
-  // Gradient / Pattern Stubs
-  function CanvasGradient_(aType) {
-    this.type_ = aType;
-    this.x0_ = 0;
-    this.y0_ = 0;
-    this.r0_ = 0;
-    this.x1_ = 0;
-    this.y1_ = 0;
-    this.r1_ = 0;
-    this.colors_ = [];
-  }
-
-  CanvasGradient_.prototype.addColorStop = function(aOffset, aColor) {
-    aColor = processStyle(aColor);
-    this.colors_.push({offset: aOffset,
-                       color: aColor.color,
-                       alpha: aColor.alpha});
-  };
-
-  function CanvasPattern_(image, repetition) {
-    assertImageIsValid(image);
-    switch (repetition) {
-      case 'repeat':
-      case null:
-      case '':
-        this.repetition_ = 'repeat';
-        break
-      case 'repeat-x':
-      case 'repeat-y':
-      case 'no-repeat':
-        this.repetition_ = repetition;
-        break;
-      default:
-        throwException('SYNTAX_ERR');
-    }
-
-    this.src_ = image.src;
-    this.width_ = image.width;
-    this.height_ = image.height;
-  }
-
-  function throwException(s) {
-    throw new DOMException_(s);
-  }
-
-  function assertImageIsValid(img) {
-    if (!img || img.nodeType != 1 || img.tagName != 'IMG') {
-      throwException('TYPE_MISMATCH_ERR');
-    }
-    if (img.readyState != 'complete') {
-      throwException('INVALID_STATE_ERR');
-    }
-  }
-
-  function DOMException_(s) {
-    this.code = this[s];
-    this.message = s +': DOM Exception ' + this.code;
-  }
-  var p = DOMException_.prototype = new Error;
-  p.INDEX_SIZE_ERR = 1;
-  p.DOMSTRING_SIZE_ERR = 2;
-  p.HIERARCHY_REQUEST_ERR = 3;
-  p.WRONG_DOCUMENT_ERR = 4;
-  p.INVALID_CHARACTER_ERR = 5;
-  p.NO_DATA_ALLOWED_ERR = 6;
-  p.NO_MODIFICATION_ALLOWED_ERR = 7;
-  p.NOT_FOUND_ERR = 8;
-  p.NOT_SUPPORTED_ERR = 9;
-  p.INUSE_ATTRIBUTE_ERR = 10;
-  p.INVALID_STATE_ERR = 11;
-  p.SYNTAX_ERR = 12;
-  p.INVALID_MODIFICATION_ERR = 13;
-  p.NAMESPACE_ERR = 14;
-  p.INVALID_ACCESS_ERR = 15;
-  p.VALIDATION_ERR = 16;
-  p.TYPE_MISMATCH_ERR = 17;
-
-  // set up externs
-  G_vmlCanvasManager = G_vmlCanvasManager_;
-  CanvasRenderingContext2D = CanvasRenderingContext2D_;
-  CanvasGradient = CanvasGradient_;
-  CanvasPattern = CanvasPattern_;
-  DOMException = DOMException_;
-})();
-
-} // if
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.min.js
deleted file mode 100644
index 12c74f7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/excanvas.min.js
+++ /dev/null
@@ -1 +0,0 @@
-if(!document.createElement("canvas").getContext){(function(){var z=Math;var K=z.round;var J=z.sin;var U=z.cos;var b=z.abs;var k=z.sqrt;var D=10;var F=D/2;function T(){return this.context_||(this.context_=new W(this))}var O=Array.prototype.slice;function G(i,j,m){var Z=O.call(arguments,2);return function(){return i.apply(j,Z.concat(O.call(arguments)))}}function AD(Z){return String(Z).replace(/&/g,"&amp;").replace(/"/g,"&quot;")}function r(i){if(!i.namespaces.g_vml_){i.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML")}if(!i.namespaces.g_o_){i.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML")}if(!i.styleSheets.ex_canvas_){var Z=i.createStyleSheet();Z.owningElement.id="ex_canvas_";Z.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}"}}r(document);var E={init:function(Z){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var i=Z||document;i.createElement("canvas");i.attachEvent("onreadystatechange",G(this.init_,this,i))}},init_:function(m){var j=m.getElementsByTagName("canvas");for(var Z=0;Z<j.length;Z++){this.initElement(j[Z])}},initElement:function(i){if(!i.getContext){i.getContext=T;r(i.ownerDocument);i.innerHTML="";i.attachEvent("onpropertychange",S);i.attachEvent("onresize",w);var Z=i.attributes;if(Z.width&&Z.width.specified){i.style.width=Z.width.nodeValue+"px"}else{i.width=i.clientWidth}if(Z.height&&Z.height.specified){i.style.height=Z.height.nodeValue+"px"}else{i.height=i.clientHeight}}return i}};function S(i){var Z=i.srcElement;switch(i.propertyName){case"width":Z.getContext().clearRect();Z.style.width=Z.attributes.width.nodeValue+"px";Z.firstChild.style.width=Z.clientWidth+"px";break;case"height":Z.getContext().clearRect();Z.style.height=Z.attributes.height.nodeValue+"px";Z.firstChild.style.height=Z.clientHeight+"px";break}}function w(i){var Z=i.srcElement;if(Z.firstChild){Z.firstChild.style.width=Z.clientWidth+"px";Z.firstChild.style.height=Z.clientHeight+"px"}}E.init();var I=[];for(var AC=0;AC<16;AC++){for(var AB=0;AB<16;AB++){I[AC*16+AB]=AC.toString(16)+AB.toString(16)}}function V(){return[[1,0,0],[0,1,0],[0,0,1]]}function d(m,j){var i=V();for(var Z=0;Z<3;Z++){for(var AF=0;AF<3;AF++){var p=0;for(var AE=0;AE<3;AE++){p+=m[Z][AE]*j[AE][AF]}i[Z][AF]=p}}return i}function Q(i,Z){Z.fillStyle=i.fillStyle;Z.lineCap=i.lineCap;Z.lineJoin=i.lineJoin;Z.lineWidth=i.lineWidth;Z.miterLimit=i.miterLimit;Z.shadowBlur=i.shadowBlur;Z.shadowColor=i.shadowColor;Z.shadowOffsetX=i.shadowOffsetX;Z.shadowOffsetY=i.shadowOffsetY;Z.strokeStyle=i.strokeStyle;Z.globalAlpha=i.globalAlpha;Z.font=i.font;Z.textAlign=i.textAlign;Z.textBaseline=i.textBaseline;Z.arcScaleX_=i.arcScaleX_;Z.arcScaleY_=i.arcScaleY_;Z.lineScale_=i.lineScale_}var B={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgreen:"#006400",darkgrey:"#A9A9A9",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",grey:"#808080",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgreen:"#90EE90",lightgrey:"#D3D3D3",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",oldlace:"#FDF5E6",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",whitesmoke:"#F5F5F5",yellowgreen:"#9ACD32"};function g(i){var m=i.indexOf("(",3);var Z=i.indexOf(")",m+1);var j=i.substring(m+1,Z).split(",");if(j.length==4&&i.substr(3,1)=="a"){alpha=Number(j[3])}else{j[3]=1}return j}function C(Z){return parseFloat(Z)/100}function N(i,j,Z){return Math.min(Z,Math.max(j,i))}function c(AF){var j,i,Z;h=parseFloat(AF[0])/360%360;if(h<0){h++}s=N(C(AF[1]),0,1);l=N(C(AF[2]),0,1);if(s==0){j=i=Z=l}else{var m=l<0.5?l*(1+s):l+s-l*s;var AE=2*l-m;j=A(AE,m,h+1/3);i=A(AE,m,h);Z=A(AE,m,h-1/3)}return"#"+I[Math.floor(j*255)]+I[Math.floor(i*255)]+I[Math.floor(Z*255)]}function A(i,Z,j){if(j<0){j++}if(j>1){j--}if(6*j<1){return i+(Z-i)*6*j}else{if(2*j<1){return Z}else{if(3*j<2){return i+(Z-i)*(2/3-j)*6}else{return i}}}}function Y(Z){var AE,p=1;Z=String(Z);if(Z.charAt(0)=="#"){AE=Z}else{if(/^rgb/.test(Z)){var m=g(Z);var AE="#",AF;for(var j=0;j<3;j++){if(m[j].indexOf("%")!=-1){AF=Math.floor(C(m[j])*255)}else{AF=Number(m[j])}AE+=I[N(AF,0,255)]}p=m[3]}else{if(/^hsl/.test(Z)){var m=g(Z);AE=c(m);p=m[3]}else{AE=B[Z]||Z}}}return{color:AE,alpha:p}}var L={style:"normal",variant:"normal",weight:"normal",size:10,family:"sans-serif"};var f={};function X(Z){if(f[Z]){return f[Z]}var m=document.createElement("div");var j=m.style;try{j.font=Z}catch(i){}return f[Z]={style:j.fontStyle||L.style,variant:j.fontVariant||L.variant,weight:j.fontWeight||L.weight,size:j.fontSize||L.size,family:j.fontFamily||L.family}}function P(j,i){var Z={};for(var AF in j){Z[AF]=j[AF]}var AE=parseFloat(i.currentStyle.fontSize),m=parseFloat(j.size);if(typeof j.size=="number"){Z.size=j.size}else{if(j.size.indexOf("px")!=-1){Z.size=m}else{if(j.size.indexOf("em")!=-1){Z.size=AE*m}else{if(j.size.indexOf("%")!=-1){Z.size=(AE/100)*m}else{if(j.size.indexOf("pt")!=-1){Z.size=m/0.75}else{Z.size=AE}}}}}Z.size*=0.981;return Z}function AA(Z){return Z.style+" "+Z.variant+" "+Z.weight+" "+Z.size+"px "+Z.family}function t(Z){switch(Z){case"butt":return"flat";case"round":return"round";case"square":default:return"square"}}function W(i){this.m_=V();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=D*1;this.globalAlpha=1;this.font="10px sans-serif";this.textAlign="left";this.textBaseline="alphabetic";this.canvas=i;var Z=i.ownerDocument.createElement("div");Z.style.width=i.clientWidth+"px";Z.style.height=i.clientHeight+"px";Z.style.overflow="hidden";Z.style.position="absolute";i.appendChild(Z);this.element_=Z;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var M=W.prototype;M.clearRect=function(){if(this.textMeasureEl_){this.textMeasureEl_.removeNode(true);this.textMeasureEl_=null}this.element_.innerHTML=""};M.beginPath=function(){this.currentPath_=[]};M.moveTo=function(i,Z){var j=this.getCoords_(i,Z);this.currentPath_.push({type:"moveTo",x:j.x,y:j.y});this.currentX_=j.x;this.currentY_=j.y};M.lineTo=function(i,Z){var j=this.getCoords_(i,Z);this.currentPath_.push({type:"lineTo",x:j.x,y:j.y});this.currentX_=j.x;this.currentY_=j.y};M.bezierCurveTo=function(j,i,AI,AH,AG,AE){var Z=this.getCoords_(AG,AE);var AF=this.getCoords_(j,i);var m=this.getCoords_(AI,AH);e(this,AF,m,Z)};function e(Z,m,j,i){Z.currentPath_.push({type:"bezierCurveTo",cp1x:m.x,cp1y:m.y,cp2x:j.x,cp2y:j.y,x:i.x,y:i.y});Z.currentX_=i.x;Z.currentY_=i.y}M.quadraticCurveTo=function(AG,j,i,Z){var AF=this.getCoords_(AG,j);var AE=this.getCoords_(i,Z);var AH={x:this.currentX_+2/3*(AF.x-this.currentX_),y:this.currentY_+2/3*(AF.y-this.currentY_)};var m={x:AH.x+(AE.x-this.currentX_)/3,y:AH.y+(AE.y-this.currentY_)/3};e(this,AH,m,AE)};M.arc=function(AJ,AH,AI,AE,i,j){AI*=D;var AN=j?"at":"wa";var AK=AJ+U(AE)*AI-F;var AM=AH+J(AE)*AI-F;var Z=AJ+U(i)*AI-F;var AL=AH+J(i)*AI-F;if(AK==Z&&!j){AK+=0.125}var m=this.getCoords_(AJ,AH);var AG=this.getCoords_(AK,AM);var AF=this.getCoords_(Z,AL);this.currentPath_.push({type:AN,x:m.x,y:m.y,radius:AI,xStart:AG.x,yStart:AG.y,xEnd:AF.x,yEnd:AF.y})};M.rect=function(j,i,Z,m){this.moveTo(j,i);this.lineTo(j+Z,i);this.lineTo(j+Z,i+m);this.lineTo(j,i+m);this.closePath()};M.strokeRect=function(j,i,Z,m){var p=this.currentPath_;this.beginPath();this.moveTo(j,i);this.lineTo(j+Z,i);this.lineTo(j+Z,i+m);this.lineTo(j,i+m);this.closePath();this.stroke();this.currentPath_=p};M.fillRect=function(j,i,Z,m){var p=this.currentPath_;this.beginPath();this.moveTo(j,i);this.lineTo(j+Z,i);this.lineTo(j+Z,i+m);this.lineTo(j,i+m);this.closePath();this.fill();this.currentPath_=p};M.createLinearGradient=function(i,m,Z,j){var p=new v("gradient");p.x0_=i;p.y0_=m;p.x1_=Z;p.y1_=j;return p};M.createRadialGradient=function(m,AE,j,i,p,Z){var AF=new v("gradientradial");AF.x0_=m;AF.y0_=AE;AF.r0_=j;AF.x1_=i;AF.y1_=p;AF.r1_=Z;return AF};M.drawImage=function(AO,j){var AH,AF,AJ,AV,AM,AK,AQ,AX;var AI=AO.runtimeStyle.width;var AN=AO.runtimeStyle.height;AO.runtimeStyle.width="auto";AO.runtimeStyle.height="auto";var AG=AO.width;var AT=AO.height;AO.runtimeStyle.width=AI;AO.runtimeStyle.height=AN;if(arguments.length==3){AH=arguments[1];AF=arguments[2];AM=AK=0;AQ=AJ=AG;AX=AV=AT}else{if(arguments.length==5){AH=arguments[1];AF=arguments[2];AJ=arguments[3];AV=arguments[4];AM=AK=0;AQ=AG;AX=AT}else{if(arguments.length==9){AM=arguments[1];AK=arguments[2];AQ=arguments[3];AX=arguments[4];AH=arguments[5];AF=arguments[6];AJ=arguments[7];AV=arguments[8]}else{throw Error("Invalid number of arguments")}}}var AW=this.getCoords_(AH,AF);var m=AQ/2;var i=AX/2;var AU=[];var Z=10;var AE=10;AU.push(" <g_vml_:group",' coordsize="',D*Z,",",D*AE,'"',' coordorigin="0,0"',' style="width:',Z,"px;height:",AE,"px;position:absolute;");if(this.m_[0][0]!=1||this.m_[0][1]||this.m_[1][1]!=1||this.m_[1][0]){var p=[];p.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",K(AW.x/D),",","Dy=",K(AW.y/D),"");var AS=AW;var AR=this.getCoords_(AH+AJ,AF);var AP=this.getCoords_(AH,AF+AV);var AL=this.getCoords_(AH+AJ,AF+AV);AS.x=z.max(AS.x,AR.x,AP.x,AL.x);AS.y=z.max(AS.y,AR.y,AP.y,AL.y);AU.push("padding:0 ",K(AS.x/D),"px ",K(AS.y/D),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",p.join(""),", sizingmethod='clip');")}else{AU.push("top:",K(AW.y/D),"px;left:",K(AW.x/D),"px;")}AU.push(' ">','<g_vml_:image src="',AO.src,'"',' style="width:',D*AJ,"px;"," height:",D*AV,'px"',' cropleft="',AM/AG,'"',' croptop="',AK/AT,'"',' cropright="',(AG-AM-AQ)/AG,'"',' cropbottom="',(AT-AK-AX)/AT,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",AU.join(""))};M.stroke=function(AM){var m=10;var AN=10;var AE=5000;var AG={x:null,y:null};var AL={x:null,y:null};for(var AH=0;AH<this.currentPath_.length;AH+=AE){var AK=[];var AF=false;AK.push("<g_vml_:shape",' filled="',!!AM,'"',' style="position:absolute;width:',m,"px;height:",AN,'px;"',' coordorigin="0,0"',' coordsize="',D*m,",",D*AN,'"',' stroked="',!AM,'"',' path="');var AO=false;for(var AI=AH;AI<Math.min(AH+AE,this.currentPath_.length);AI++){if(AI%AE==0&&AI>0){AK.push(" m ",K(this.currentPath_[AI-1].x),",",K(this.currentPath_[AI-1].y))}var Z=this.currentPath_[AI];var AJ;switch(Z.type){case"moveTo":AJ=Z;AK.push(" m ",K(Z.x),",",K(Z.y));break;case"lineTo":AK.push(" l ",K(Z.x),",",K(Z.y));break;case"close":AK.push(" x ");Z=null;break;case"bezierCurveTo":AK.push(" c ",K(Z.cp1x),",",K(Z.cp1y),",",K(Z.cp2x),",",K(Z.cp2y),",",K(Z.x),",",K(Z.y));break;case"at":case"wa":AK.push(" ",Z.type," ",K(Z.x-this.arcScaleX_*Z.radius),",",K(Z.y-this.arcScaleY_*Z.radius)," ",K(Z.x+this.arcScaleX_*Z.radius),",",K(Z.y+this.arcScaleY_*Z.radius)," ",K(Z.xStart),",",K(Z.yStart)," ",K(Z.xEnd),",",K(Z.yEnd));break}if(Z){if(AG.x==null||Z.x<AG.x){AG.x=Z.x}if(AL.x==null||Z.x>AL.x){AL.x=Z.x}if(AG.y==null||Z.y<AG.y){AG.y=Z.y}if(AL.y==null||Z.y>AL.y){AL.y=Z.y}}}AK.push(' ">');if(!AM){R(this,AK)}else{a(this,AK,AG,AL)}AK.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",AK.join(""))}};function R(j,AE){var i=Y(j.strokeStyle);var m=i.color;var p=i.alpha*j.globalAlpha;var Z=j.lineScale_*j.lineWidth;if(Z<1){p*=Z}AE.push("<g_vml_:stroke",' opacity="',p,'"',' joinstyle="',j.lineJoin,'"',' miterlimit="',j.miterLimit,'"',' endcap="',t(j.lineCap),'"',' weight="',Z,'px"',' color="',m,'" />')}function a(AO,AG,Ah,AP){var AH=AO.fillStyle;var AY=AO.arcScaleX_;var AX=AO.arcScaleY_;var Z=AP.x-Ah.x;var m=AP.y-Ah.y;if(AH instanceof v){var AL=0;var Ac={x:0,y:0};var AU=0;var AK=1;if(AH.type_=="gradient"){var AJ=AH.x0_/AY;var j=AH.y0_/AX;var AI=AH.x1_/AY;var Aj=AH.y1_/AX;var Ag=AO.getCoords_(AJ,j);var Af=AO.getCoords_(AI,Aj);var AE=Af.x-Ag.x;var p=Af.y-Ag.y;AL=Math.atan2(AE,p)*180/Math.PI;if(AL<0){AL+=360}if(AL<0.000001){AL=0}}else{var Ag=AO.getCoords_(AH.x0_,AH.y0_);Ac={x:(Ag.x-Ah.x)/Z,y:(Ag.y-Ah.y)/m};Z/=AY*D;m/=AX*D;var Aa=z.max(Z,m);AU=2*AH.r0_/Aa;AK=2*AH.r1_/Aa-AU}var AS=AH.colors_;AS.sort(function(Ak,i){return Ak.offset-i.offset});var AN=AS.length;var AR=AS[0].color;var AQ=AS[AN-1].color;var AW=AS[0].alpha*AO.globalAlpha;var AV=AS[AN-1].alpha*AO.globalAlpha;var Ab=[];for(var Ae=0;Ae<AN;Ae++){var AM=AS[Ae];Ab.push(AM.offset*AK+AU+" "+AM.color)}AG.push('<g_vml_:fill type="',AH.type_,'"',' method="none" focus="100%"',' color="',AR,'"',' color2="',AQ,'"',' colors="',Ab.join(","),'"',' opacity="',AV,'"',' g_o_:opacity2="',AW,'"',' angle="',AL,'"',' focusposition="',Ac.x,",",Ac.y,'" />')}else{if(AH instanceof u){if(Z&&m){var AF=-Ah.x;var AZ=-Ah.y;AG.push("<g_vml_:fill",' position="',AF/Z*AY*AY,",",AZ/m*AX*AX,'"',' type="tile"',' src="',AH.src_,'" />')}}else{var Ai=Y(AO.fillStyle);var AT=Ai.color;var Ad=Ai.alpha*AO.globalAlpha;AG.push('<g_vml_:fill color="',AT,'" opacity="',Ad,'" />')}}}M.fill=function(){this.stroke(true)};M.closePath=function(){this.currentPath_.push({type:"close"})};M.getCoords_=function(j,i){var Z=this.m_;return{x:D*(j*Z[0][0]+i*Z[1][0]+Z[2][0])-F,y:D*(j*Z[0][1]+i*Z[1][1]+Z[2][1])-F}};M.save=function(){var Z={};Q(this,Z);this.aStack_.push(Z);this.mStack_.push(this.m_);this.m_=d(V(),this.m_)};M.restore=function(){if(this.aStack_.length){Q(this.aStack_.pop(),this);this.m_=this.mStack_.pop()}};function H(Z){return isFinite(Z[0][0])&&isFinite(Z[0][1])&&isFinite(Z[1][0])&&isFinite(Z[1][1])&&isFinite(Z[2][0])&&isFinite(Z[2][1])}function y(i,Z,j){if(!H(Z)){return }i.m_=Z;if(j){var p=Z[0][0]*Z[1][1]-Z[0][1]*Z[1][0];i.lineScale_=k(b(p))}}M.translate=function(j,i){var Z=[[1,0,0],[0,1,0],[j,i,1]];y(this,d(Z,this.m_),false)};M.rotate=function(i){var m=U(i);var j=J(i);var Z=[[m,j,0],[-j,m,0],[0,0,1]];y(this,d(Z,this.m_),false)};M.scale=function(j,i){this.arcScaleX_*=j;this.arcScaleY_*=i;var Z=[[j,0,0],[0,i,0],[0,0,1]];y(this,d(Z,this.m_),true)};M.transform=function(p,m,AF,AE,i,Z){var j=[[p,m,0],[AF,AE,0],[i,Z,1]];y(this,d(j,this.m_),true)};M.setTransform=function(AE,p,AG,AF,j,i){var Z=[[AE,p,0],[AG,AF,0],[j,i,1]];y(this,Z,true)};M.drawText_=function(AK,AI,AH,AN,AG){var AM=this.m_,AQ=1000,i=0,AP=AQ,AF={x:0,y:0},AE=[];var Z=P(X(this.font),this.element_);var j=AA(Z);var AR=this.element_.currentStyle;var p=this.textAlign.toLowerCase();switch(p){case"left":case"center":case"right":break;case"end":p=AR.direction=="ltr"?"right":"left";break;case"start":p=AR.direction=="rtl"?"right":"left";break;default:p="left"}switch(this.textBaseline){case"hanging":case"top":AF.y=Z.size/1.75;break;case"middle":break;default:case null:case"alphabetic":case"ideographic":case"bottom":AF.y=-Z.size/2.25;break}switch(p){case"right":i=AQ;AP=0.05;break;case"center":i=AP=AQ/2;break}var AO=this.getCoords_(AI+AF.x,AH+AF.y);AE.push('<g_vml_:line from="',-i,' 0" to="',AP,' 0.05" ',' coordsize="100 100" coordorigin="0 0"',' filled="',!AG,'" stroked="',!!AG,'" style="position:absolute;width:1px;height:1px;">');if(AG){R(this,AE)}else{a(this,AE,{x:-i,y:0},{x:AP,y:Z.size})}var AL=AM[0][0].toFixed(3)+","+AM[1][0].toFixed(3)+","+AM[0][1].toFixed(3)+","+AM[1][1].toFixed(3)+",0,0";var AJ=K(AO.x/D)+","+K(AO.y/D);AE.push('<g_vml_:skew on="t" matrix="',AL,'" ',' offset="',AJ,'" origin="',i,' 0" />','<g_vml_:path textpathok="true" />','<g_vml_:textpath on="true" string="',AD(AK),'" style="v-text-align:',p,";font:",AD(j),'" /></g_vml_:line>');this.element_.insertAdjacentHTML("beforeEnd",AE.join(""))};M.fillText=function(j,Z,m,i){this.drawText_(j,Z,m,i,false)};M.strokeText=function(j,Z,m,i){this.drawText_(j,Z,m,i,true)};M.measureText=function(j){if(!this.textMeasureEl_){var Z='<span style="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;"></span>';this.element_.insertAdjacentHTML("beforeEnd",Z);this.textMeasureEl_=this.element_.lastChild}var i=this.element_.ownerDocument;this.textMeasureEl_.innerHTML="";this.textMeasureEl_.style.font=this.font;this.textMeasureEl_.appendChild(i.createTextNode(j));return{width:this.textMeasureEl_.offsetWidth}};M.clip=function(){};M.arcTo=function(){};M.createPattern=function(i,Z){return new u(i,Z)};function v(Z){this.type_=Z;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}v.prototype.addColorStop=function(i,Z){Z=Y(Z);this.colors_.push({offset:i,color:Z.color,alpha:Z.alpha})};function u(i,Z){q(i);switch(Z){case"repeat":case null:case"":this.repetition_="repeat";break;case"repeat-x":case"repeat-y":case"no-repeat":this.repetition_=Z;break;default:n("SYNTAX_ERR")}this.src_=i.src;this.width_=i.width;this.height_=i.height}function n(Z){throw new o(Z)}function q(Z){if(!Z||Z.nodeType!=1||Z.tagName!="IMG"){n("TYPE_MISMATCH_ERR")}if(Z.readyState!="complete"){n("INVALID_STATE_ERR")}}function o(Z){this.code=this[Z];this.message=Z+": DOM Exception "+this.code}var x=o.prototype=new Error;x.INDEX_SIZE_ERR=1;x.DOMSTRING_SIZE_ERR=2;x.HIERARCHY_REQUEST_ERR=3;x.WRONG_DOCUMENT_ERR=4;x.INVALID_CHARACTER_ERR=5;x.NO_DATA_ALLOWED_ERR=6;x.NO_MODIFICATION_ALLOWED_ERR=7;x.NOT_FOUND_ERR=8;x.NOT_SUPPORTED_ERR=9;x.INUSE_ATTRIBUTE_ERR=10;x.INVALID_STATE_ERR=11;x.SYNTAX_ERR=12;x.INVALID_MODIFICATION_ERR=13;x.NAMESPACE_ERR=14;x.INVALID_ACCESS_ERR=15;x.VALIDATION_ERR=16;x.TYPE_MISMATCH_ERR=17;G_vmlCanvasManager=E;CanvasRenderingContext2D=W;CanvasGradient=v;CanvasPattern=u;DOMException=o})()};
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.js
deleted file mode 100644
index d3524d7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.js
+++ /dev/null
@@ -1,179 +0,0 @@
-/* Plugin for jQuery for working with colors.
- * 
- * Version 1.1.
- * 
- * Inspiration from jQuery color animation plugin by John Resig.
- *
- * Released under the MIT license by Ole Laursen, October 2009.
- *
- * Examples:
- *
- *   $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString()
- *   var c = $.color.extract($("#mydiv"), 'background-color');
- *   console.log(c.r, c.g, c.b, c.a);
- *   $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)"
- *
- * Note that .scale() and .add() return the same modified object
- * instead of making a new one.
- *
- * V. 1.1: Fix error handling so e.g. parsing an empty string does
- * produce a color rather than just crashing.
- */ 
-
-(function($) {
-    $.color = {};
-
-    // construct color object with some convenient chainable helpers
-    $.color.make = function (r, g, b, a) {
-        var o = {};
-        o.r = r || 0;
-        o.g = g || 0;
-        o.b = b || 0;
-        o.a = a != null ? a : 1;
-
-        o.add = function (c, d) {
-            for (var i = 0; i < c.length; ++i)
-                o[c.charAt(i)] += d;
-            return o.normalize();
-        };
-        
-        o.scale = function (c, f) {
-            for (var i = 0; i < c.length; ++i)
-                o[c.charAt(i)] *= f;
-            return o.normalize();
-        };
-        
-        o.toString = function () {
-            if (o.a >= 1.0) {
-                return "rgb("+[o.r, o.g, o.b].join(",")+")";
-            } else {
-                return "rgba("+[o.r, o.g, o.b, o.a].join(",")+")";
-            }
-        };
-
-        o.normalize = function () {
-            function clamp(min, value, max) {
-                return value < min ? min: (value > max ? max: value);
-            }
-            
-            o.r = clamp(0, parseInt(o.r), 255);
-            o.g = clamp(0, parseInt(o.g), 255);
-            o.b = clamp(0, parseInt(o.b), 255);
-            o.a = clamp(0, o.a, 1);
-            return o;
-        };
-
-        o.clone = function () {
-            return $.color.make(o.r, o.b, o.g, o.a);
-        };
-
-        return o.normalize();
-    }
-
-    // extract CSS color property from element, going up in the DOM
-    // if it's "transparent"
-    $.color.extract = function (elem, css) {
-        var c;
-        do {
-            c = elem.css(css).toLowerCase();
-            // keep going until we find an element that has color, or
-            // we hit the body
-            if (c != '' && c != 'transparent')
-                break;
-            elem = elem.parent();
-        } while (!$.nodeName(elem.get(0), "body"));
-
-        // catch Safari's way of signalling transparent
-        if (c == "rgba(0, 0, 0, 0)")
-            c = "transparent";
-        
-        return $.color.parse(c);
-    }
-    
-    // parse CSS color string (like "rgb(10, 32, 43)" or "#fff"),
-    // returns color object, if parsing failed, you get black (0, 0,
-    // 0) out
-    $.color.parse = function (str) {
-        var res, m = $.color.make;
-
-        // Look for rgb(num,num,num)
-        if (res = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))
-            return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10));
-        
-        // Look for rgba(num,num,num,num)
-        if (res = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
-            return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4]));
-            
-        // Look for rgb(num%,num%,num%)
-        if (res = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))
-            return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55);
-
-        // Look for rgba(num%,num%,num%,num)
-        if (res = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))
-            return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55, parseFloat(res[4]));
-        
-        // Look for #a0b1c2
-        if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))
-            return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16));
-
-        // Look for #fff
-        if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))
-            return m(parseInt(res[1]+res[1], 16), parseInt(res[2]+res[2], 16), parseInt(res[3]+res[3], 16));
-
-        // Otherwise, we're most likely dealing with a named color
-        var name = $.trim(str).toLowerCase();
-        if (name == "transparent")
-            return m(255, 255, 255, 0);
-        else {
-            // default to black
-            res = lookupColors[name] || [0, 0, 0];
-            return m(res[0], res[1], res[2]);
-        }
-    }
-    
-    var lookupColors = {
-        aqua:[0,255,255],
-        azure:[240,255,255],
-        beige:[245,245,220],
-        black:[0,0,0],
-        blue:[0,0,255],
-        brown:[165,42,42],
-        cyan:[0,255,255],
-        darkblue:[0,0,139],
-        darkcyan:[0,139,139],
-        darkgrey:[169,169,169],
-        darkgreen:[0,100,0],
-        darkkhaki:[189,183,107],
-        darkmagenta:[139,0,139],
-        darkolivegreen:[85,107,47],
-        darkorange:[255,140,0],
-        darkorchid:[153,50,204],
-        darkred:[139,0,0],
-        darksalmon:[233,150,122],
-        darkviolet:[148,0,211],
-        fuchsia:[255,0,255],
-        gold:[255,215,0],
-        green:[0,128,0],
-        indigo:[75,0,130],
-        khaki:[240,230,140],
-        lightblue:[173,216,230],
-        lightcyan:[224,255,255],
-        lightgreen:[144,238,144],
-        lightgrey:[211,211,211],
-        lightpink:[255,182,193],
-        lightyellow:[255,255,224],
-        lime:[0,255,0],
-        magenta:[255,0,255],
-        maroon:[128,0,0],
-        navy:[0,0,128],
-        olive:[128,128,0],
-        orange:[255,165,0],
-        pink:[255,192,203],
-        purple:[128,0,128],
-        violet:[128,0,128],
-        red:[255,0,0],
-        silver:[192,192,192],
-        white:[255,255,255],
-        yellow:[255,255,0]
-    };
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.min.js
deleted file mode 100644
index 7f44c57..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.colorhelpers.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(b){b.color={};b.color.make=function(f,e,c,d){var h={};h.r=f||0;h.g=e||0;h.b=c||0;h.a=d!=null?d:1;h.add=function(k,j){for(var g=0;g<k.length;++g){h[k.charAt(g)]+=j}return h.normalize()};h.scale=function(k,j){for(var g=0;g<k.length;++g){h[k.charAt(g)]*=j}return h.normalize()};h.toString=function(){if(h.a>=1){return"rgb("+[h.r,h.g,h.b].join(",")+")"}else{return"rgba("+[h.r,h.g,h.b,h.a].join(",")+")"}};h.normalize=function(){function g(j,k,i){return k<j?j:(k>i?i:k)}h.r=g(0,parseInt(h.r),255);h.g=g(0,parseInt(h.g),255);h.b=g(0,parseInt(h.b),255);h.a=g(0,h.a,1);return h};h.clone=function(){return b.color.make(h.r,h.b,h.g,h.a)};return h.normalize()};b.color.extract=function(e,d){var f;do{f=e.css(d).toLowerCase();if(f!=""&&f!="transparent"){break}e=e.parent()}while(!b.nodeName(e.get(0),"body"));if(f=="rgba(0, 0, 0, 0)"){f="transparent"}return b.color.parse(f)};b.color.parse=function(f){var e,c=b.color.make;if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return c(parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10))}if(e=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(f)){return c(parseInt(e[1],10),parseInt(e[2],10),parseInt(e[3],10),parseFloat(e[4]))}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return c(parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55)}if(e=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(f)){return c(parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55,parseFloat(e[4]))}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return c(parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16))}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return c(parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16))}var d=b.trim(f).toLowerCase();if(d=="transparent"){return c(255,255,255,0)}else{e=a[d]||[0,0,0];return c(e[0],e[1],e[2])}};var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.js
deleted file mode 100644
index 1d433f0..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.js
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
-Flot plugin for showing crosshairs, thin lines, when the mouse hovers
-over the plot.
-
-  crosshair: {
-    mode: null or "x" or "y" or "xy"
-    color: color
-    lineWidth: number
-  }
-
-Set the mode to one of "x", "y" or "xy". The "x" mode enables a
-vertical crosshair that lets you trace the values on the x axis, "y"
-enables a horizontal crosshair and "xy" enables them both. "color" is
-the color of the crosshair (default is "rgba(170, 0, 0, 0.80)"),
-"lineWidth" is the width of the drawn lines (default is 1).
-
-The plugin also adds four public methods:
-
-  - setCrosshair(pos)
-
-    Set the position of the crosshair. Note that this is cleared if
-    the user moves the mouse. "pos" is in coordinates of the plot and
-    should be on the form { x: xpos, y: ypos } (you can use x2/x3/...
-    if you're using multiple axes), which is coincidentally the same
-    format as what you get from a "plothover" event. If "pos" is null,
-    the crosshair is cleared.
-
-  - clearCrosshair()
-
-    Clear the crosshair.
-
-  - lockCrosshair(pos)
-
-    Cause the crosshair to lock to the current location, no longer
-    updating if the user moves the mouse. Optionally supply a position
-    (passed on to setCrosshair()) to move it to.
-
-    Example usage:
-      var myFlot = $.plot( $("#graph"), ..., { crosshair: { mode: "x" } } };
-      $("#graph").bind("plothover", function (evt, position, item) {
-        if (item) {
-          // Lock the crosshair to the data point being hovered
-          myFlot.lockCrosshair({ x: item.datapoint[0], y: item.datapoint[1] });
-        }
-        else {
-          // Return normal crosshair operation
-          myFlot.unlockCrosshair();
-        }
-      });
-
-  - unlockCrosshair()
-
-    Free the crosshair to move again after locking it.
-*/
-
-(function ($) {
-    var options = {
-        crosshair: {
-            mode: null, // one of null, "x", "y" or "xy",
-            color: "rgba(170, 0, 0, 0.80)",
-            lineWidth: 1
-        }
-    };
-    
-    function init(plot) {
-        // position of crosshair in pixels
-        var crosshair = { x: -1, y: -1, locked: false };
-
-        plot.setCrosshair = function setCrosshair(pos) {
-            if (!pos)
-                crosshair.x = -1;
-            else {
-                var o = plot.p2c(pos);
-                crosshair.x = Math.max(0, Math.min(o.left, plot.width()));
-                crosshair.y = Math.max(0, Math.min(o.top, plot.height()));
-            }
-            
-            plot.triggerRedrawOverlay();
-        };
-        
-        plot.clearCrosshair = plot.setCrosshair; // passes null for pos
-        
-        plot.lockCrosshair = function lockCrosshair(pos) {
-            if (pos)
-                plot.setCrosshair(pos);
-            crosshair.locked = true;
-        }
-
-        plot.unlockCrosshair = function unlockCrosshair() {
-            crosshair.locked = false;
-        }
-
-        function onMouseOut(e) {
-            if (crosshair.locked)
-                return;
-
-            if (crosshair.x != -1) {
-                crosshair.x = -1;
-                plot.triggerRedrawOverlay();
-            }
-        }
-
-        function onMouseMove(e) {
-            if (crosshair.locked)
-                return;
-                
-            if (plot.getSelection && plot.getSelection()) {
-                crosshair.x = -1; // hide the crosshair while selecting
-                return;
-            }
-                
-            var offset = plot.offset();
-            crosshair.x = Math.max(0, Math.min(e.pageX - offset.left, plot.width()));
-            crosshair.y = Math.max(0, Math.min(e.pageY - offset.top, plot.height()));
-            plot.triggerRedrawOverlay();
-        }
-        
-        plot.hooks.bindEvents.push(function (plot, eventHolder) {
-            if (!plot.getOptions().crosshair.mode)
-                return;
-
-            eventHolder.mouseout(onMouseOut);
-            eventHolder.mousemove(onMouseMove);
-        });
-
-        plot.hooks.drawOverlay.push(function (plot, ctx) {
-            var c = plot.getOptions().crosshair;
-            if (!c.mode)
-                return;
-
-            var plotOffset = plot.getPlotOffset();
-            
-            ctx.save();
-            ctx.translate(plotOffset.left, plotOffset.top);
-
-            if (crosshair.x != -1) {
-                ctx.strokeStyle = c.color;
-                ctx.lineWidth = c.lineWidth;
-                ctx.lineJoin = "round";
-
-                ctx.beginPath();
-                if (c.mode.indexOf("x") != -1) {
-                    ctx.moveTo(crosshair.x, 0);
-                    ctx.lineTo(crosshair.x, plot.height());
-                }
-                if (c.mode.indexOf("y") != -1) {
-                    ctx.moveTo(0, crosshair.y);
-                    ctx.lineTo(plot.width(), crosshair.y);
-                }
-                ctx.stroke();
-            }
-            ctx.restore();
-        });
-
-        plot.hooks.shutdown.push(function (plot, eventHolder) {
-            eventHolder.unbind("mouseout", onMouseOut);
-            eventHolder.unbind("mousemove", onMouseMove);
-        });
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'crosshair',
-        version: '1.0'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.min.js
deleted file mode 100644
index ccaf240..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.crosshair.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(b){var a={crosshair:{mode:null,color:"rgba(170, 0, 0, 0.80)",lineWidth:1}};function c(h){var j={x:-1,y:-1,locked:false};h.setCrosshair=function e(l){if(!l){j.x=-1}else{var k=h.p2c(l);j.x=Math.max(0,Math.min(k.left,h.width()));j.y=Math.max(0,Math.min(k.top,h.height()))}h.triggerRedrawOverlay()};h.clearCrosshair=h.setCrosshair;h.lockCrosshair=function f(k){if(k){h.setCrosshair(k)}j.locked=true};h.unlockCrosshair=function g(){j.locked=false};function d(k){if(j.locked){return}if(j.x!=-1){j.x=-1;h.triggerRedrawOverlay()}}function i(k){if(j.locked){return}if(h.getSelection&&h.getSelection()){j.x=-1;return}var l=h.offset();j.x=Math.max(0,Math.min(k.pageX-l.left,h.width()));j.y=Math.max(0,Math.min(k.pageY-l.top,h.height()));h.triggerRedrawOverlay()}h.hooks.bindEvents.push(function(l,k){if(!l.getOptions().crosshair.mode){return}k.mouseout(d);k.mousemove(i)});h.hooks.drawOverlay.push(function(m,k){var n=m.getOptions().crosshair;if(!n.mode){return}var l=m.getPlotOffset();k.save();k.translate(l.left,l.top);if(j.x!=-1){k.strokeStyle=n.color;k.lineWidth=n.lineWidth;k.lineJoin="round";k.beginPath();if(n.mode.indexOf("x")!=-1){k.moveTo(j.x,0);k.lineTo(j.x,m.height())}if(n.mode.indexOf("y")!=-1){k.moveTo(0,j.y);k.lineTo(m.width(),j.y)}k.stroke()}k.restore()});h.hooks.shutdown.push(function(l,k){k.unbind("mouseout",d);k.unbind("mousemove",i)})}b.plot.plugins.push({init:c,options:a,name:"crosshair",version:"1.0"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.js
deleted file mode 100644
index 69700e7..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.js
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-Flot plugin for computing bottoms for filled line and bar charts.
-
-The case: you've got two series that you want to fill the area
-between. In Flot terms, you need to use one as the fill bottom of the
-other. You can specify the bottom of each data point as the third
-coordinate manually, or you can use this plugin to compute it for you.
-
-In order to name the other series, you need to give it an id, like this
-
-  var dataset = [
-       { data: [ ... ], id: "foo" } ,         // use default bottom
-       { data: [ ... ], fillBetween: "foo" }, // use first dataset as bottom
-       ];
-
-  $.plot($("#placeholder"), dataset, { line: { show: true, fill: true }});
-
-As a convenience, if the id given is a number that doesn't appear as
-an id in the series, it is interpreted as the index in the array
-instead (so fillBetween: 0 can also mean the first series).
-  
-Internally, the plugin modifies the datapoints in each series. For
-line series, extra data points might be inserted through
-interpolation. Note that at points where the bottom line is not
-defined (due to a null point or start/end of line), the current line
-will show a gap too. The algorithm comes from the jquery.flot.stack.js
-plugin, possibly some code could be shared.
-*/
-
-(function ($) {
-    var options = {
-        series: { fillBetween: null } // or number
-    };
-    
-    function init(plot) {
-        function findBottomSeries(s, allseries) {
-            var i;
-            for (i = 0; i < allseries.length; ++i) {
-                if (allseries[i].id == s.fillBetween)
-                    return allseries[i];
-            }
-
-            if (typeof s.fillBetween == "number") {
-                i = s.fillBetween;
-            
-                if (i < 0 || i >= allseries.length)
-                    return null;
-
-                return allseries[i];
-            }
-            
-            return null;
-        }
-        
-        function computeFillBottoms(plot, s, datapoints) {
-            if (s.fillBetween == null)
-                return;
-
-            var other = findBottomSeries(s, plot.getData());
-            if (!other)
-                return;
-
-            var ps = datapoints.pointsize,
-                points = datapoints.points,
-                otherps = other.datapoints.pointsize,
-                otherpoints = other.datapoints.points,
-                newpoints = [],
-                px, py, intery, qx, qy, bottom,
-                withlines = s.lines.show,
-                withbottom = ps > 2 && datapoints.format[2].y,
-                withsteps = withlines && s.lines.steps,
-                fromgap = true,
-                i = 0, j = 0, l;
-
-            while (true) {
-                if (i >= points.length)
-                    break;
-
-                l = newpoints.length;
-
-                if (points[i] == null) {
-                    // copy gaps
-                    for (m = 0; m < ps; ++m)
-                        newpoints.push(points[i + m]);
-                    i += ps;
-                }
-                else if (j >= otherpoints.length) {
-                    // for lines, we can't use the rest of the points
-                    if (!withlines) {
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-                    }
-                    i += ps;
-                }
-                else if (otherpoints[j] == null) {
-                    // oops, got a gap
-                    for (m = 0; m < ps; ++m)
-                        newpoints.push(null);
-                    fromgap = true;
-                    j += otherps;
-                }
-                else {
-                    // cases where we actually got two points
-                    px = points[i];
-                    py = points[i + 1];
-                    qx = otherpoints[j];
-                    qy = otherpoints[j + 1];
-                    bottom = 0;
-
-                    if (px == qx) {
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-
-                        //newpoints[l + 1] += qy;
-                        bottom = qy;
-                        
-                        i += ps;
-                        j += otherps;
-                    }
-                    else if (px > qx) {
-                        // we got past point below, might need to
-                        // insert interpolated extra point
-                        if (withlines && i > 0 && points[i - ps] != null) {
-                            intery = py + (points[i - ps + 1] - py) * (qx - px) / (points[i - ps] - px);
-                            newpoints.push(qx);
-                            newpoints.push(intery)
-                            for (m = 2; m < ps; ++m)
-                                newpoints.push(points[i + m]);
-                            bottom = qy; 
-                        }
-
-                        j += otherps;
-                    }
-                    else { // px < qx
-                        if (fromgap && withlines) {
-                            // if we come from a gap, we just skip this point
-                            i += ps;
-                            continue;
-                        }
-                            
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-                        
-                        // we might be able to interpolate a point below,
-                        // this can give us a better y
-                        if (withlines && j > 0 && otherpoints[j - otherps] != null)
-                            bottom = qy + (otherpoints[j - otherps + 1] - qy) * (px - qx) / (otherpoints[j - otherps] - qx);
-
-                        //newpoints[l + 1] += bottom;
-                        
-                        i += ps;
-                    }
-
-                    fromgap = false;
-                    
-                    if (l != newpoints.length && withbottom)
-                        newpoints[l + 2] = bottom;
-                }
-
-                // maintain the line steps invariant
-                if (withsteps && l != newpoints.length && l > 0
-                    && newpoints[l] != null
-                    && newpoints[l] != newpoints[l - ps]
-                    && newpoints[l + 1] != newpoints[l - ps + 1]) {
-                    for (m = 0; m < ps; ++m)
-                        newpoints[l + ps + m] = newpoints[l + m];
-                    newpoints[l + 1] = newpoints[l - ps + 1];
-                }
-            }
-
-            datapoints.points = newpoints;
-        }
-        
-        plot.hooks.processDatapoints.push(computeFillBottoms);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'fillbetween',
-        version: '1.0'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.min.js
deleted file mode 100644
index 47f3dfb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.fillbetween.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(b){var a={series:{fillBetween:null}};function c(f){function d(j,h){var g;for(g=0;g<h.length;++g){if(h[g].id==j.fillBetween){return h[g]}}if(typeof j.fillBetween=="number"){g=j.fillBetween;if(g<0||g>=h.length){return null}return h[g]}return null}function e(B,u,g){if(u.fillBetween==null){return}var p=d(u,B.getData());if(!p){return}var y=g.pointsize,E=g.points,h=p.datapoints.pointsize,x=p.datapoints.points,r=[],w,v,k,G,F,q,t=u.lines.show,o=y>2&&g.format[2].y,n=t&&u.lines.steps,D=true,C=0,A=0,z;while(true){if(C>=E.length){break}z=r.length;if(E[C]==null){for(m=0;m<y;++m){r.push(E[C+m])}C+=y}else{if(A>=x.length){if(!t){for(m=0;m<y;++m){r.push(E[C+m])}}C+=y}else{if(x[A]==null){for(m=0;m<y;++m){r.push(null)}D=true;A+=h}else{w=E[C];v=E[C+1];G=x[A];F=x[A+1];q=0;if(w==G){for(m=0;m<y;++m){r.push(E[C+m])}q=F;C+=y;A+=h}else{if(w>G){if(t&&C>0&&E[C-y]!=null){k=v+(E[C-y+1]-v)*(G-w)/(E[C-y]-w);r.push(G);r.push(k);for(m=2;m<y;++m){r.push(E[C+m])}q=F}A+=h}else{if(D&&t){C+=y;continue}for(m=0;m<y;++m){r.push(E[C+m])}if(t&&A>0&&x[A-h]!=null){q=F+(x[A-h+1]-F)*(w-G)/(x[A-h]-G)}C+=y}}D=false;if(z!=r.length&&o){r[z+2]=q}}}}if(n&&z!=r.length&&z>0&&r[z]!=null&&r[z]!=r[z-y]&&r[z+1]!=r[z-y+1]){for(m=0;m<y;++m){r[z+y+m]=r[z+m]}r[z+1]=r[z-y+1]}}g.points=r}f.hooks.processDatapoints.push(e)}b.plot.plugins.push({init:c,options:a,name:"fillbetween",version:"1.0"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.js
deleted file mode 100644
index 29ccb12..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.js
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
-Flot plugin for plotting images, e.g. useful for putting ticks on a
-prerendered complex visualization.
-
-The data syntax is [[image, x1, y1, x2, y2], ...] where (x1, y1) and
-(x2, y2) are where you intend the two opposite corners of the image to
-end up in the plot. Image must be a fully loaded Javascript image (you
-can make one with new Image()). If the image is not complete, it's
-skipped when plotting.
-
-There are two helpers included for retrieving images. The easiest work
-the way that you put in URLs instead of images in the data (like
-["myimage.png", 0, 0, 10, 10]), then call $.plot.image.loadData(data,
-options, callback) where data and options are the same as you pass in
-to $.plot. This loads the images, replaces the URLs in the data with
-the corresponding images and calls "callback" when all images are
-loaded (or failed loading). In the callback, you can then call $.plot
-with the data set. See the included example.
-
-A more low-level helper, $.plot.image.load(urls, callback) is also
-included. Given a list of URLs, it calls callback with an object
-mapping from URL to Image object when all images are loaded or have
-failed loading.
-
-Options for the plugin are
-
-  series: {
-      images: {
-          show: boolean
-          anchor: "corner" or "center"
-          alpha: [0,1]
-      }
-  }
-
-which can be specified for a specific series
-
-  $.plot($("#placeholder"), [{ data: [ ... ], images: { ... } ])
-
-Note that because the data format is different from usual data points,
-you can't use images with anything else in a specific data series.
-
-Setting "anchor" to "center" causes the pixels in the image to be
-anchored at the corner pixel centers inside of at the pixel corners,
-effectively letting half a pixel stick out to each side in the plot.
-
-
-A possible future direction could be support for tiling for large
-images (like Google Maps).
-
-*/
-
-(function ($) {
-    var options = {
-        series: {
-            images: {
-                show: false,
-                alpha: 1,
-                anchor: "corner" // or "center"
-            }
-        }
-    };
-
-    $.plot.image = {};
-
-    $.plot.image.loadDataImages = function (series, options, callback) {
-        var urls = [], points = [];
-
-        var defaultShow = options.series.images.show;
-        
-        $.each(series, function (i, s) {
-            if (!(defaultShow || s.images.show))
-                return;
-            
-            if (s.data)
-                s = s.data;
-
-            $.each(s, function (i, p) {
-                if (typeof p[0] == "string") {
-                    urls.push(p[0]);
-                    points.push(p);
-                }
-            });
-        });
-
-        $.plot.image.load(urls, function (loadedImages) {
-            $.each(points, function (i, p) {
-                var url = p[0];
-                if (loadedImages[url])
-                    p[0] = loadedImages[url];
-            });
-
-            callback();
-        });
-    }
-    
-    $.plot.image.load = function (urls, callback) {
-        var missing = urls.length, loaded = {};
-        if (missing == 0)
-            callback({});
-
-        $.each(urls, function (i, url) {
-            var handler = function () {
-                --missing;
-                
-                loaded[url] = this;
-                
-                if (missing == 0)
-                    callback(loaded);
-            };
-
-            $('<img />').load(handler).error(handler).attr('src', url);
-        });
-    }
-    
-    function drawSeries(plot, ctx, series) {
-        var plotOffset = plot.getPlotOffset();
-        
-        if (!series.images || !series.images.show)
-            return;
-        
-        var points = series.datapoints.points,
-            ps = series.datapoints.pointsize;
-        
-        for (var i = 0; i < points.length; i += ps) {
-            var img = points[i],
-                x1 = points[i + 1], y1 = points[i + 2],
-                x2 = points[i + 3], y2 = points[i + 4],
-                xaxis = series.xaxis, yaxis = series.yaxis,
-                tmp;
-
-            // actually we should check img.complete, but it
-            // appears to be a somewhat unreliable indicator in
-            // IE6 (false even after load event)
-            if (!img || img.width <= 0 || img.height <= 0)
-                continue;
-
-            if (x1 > x2) {
-                tmp = x2;
-                x2 = x1;
-                x1 = tmp;
-            }
-            if (y1 > y2) {
-                tmp = y2;
-                y2 = y1;
-                y1 = tmp;
-            }
-            
-            // if the anchor is at the center of the pixel, expand the 
-            // image by 1/2 pixel in each direction
-            if (series.images.anchor == "center") {
-                tmp = 0.5 * (x2-x1) / (img.width - 1);
-                x1 -= tmp;
-                x2 += tmp;
-                tmp = 0.5 * (y2-y1) / (img.height - 1);
-                y1 -= tmp;
-                y2 += tmp;
-            }
-            
-            // clip
-            if (x1 == x2 || y1 == y2 ||
-                x1 >= xaxis.max || x2 <= xaxis.min ||
-                y1 >= yaxis.max || y2 <= yaxis.min)
-                continue;
-
-            var sx1 = 0, sy1 = 0, sx2 = img.width, sy2 = img.height;
-            if (x1 < xaxis.min) {
-                sx1 += (sx2 - sx1) * (xaxis.min - x1) / (x2 - x1);
-                x1 = xaxis.min;
-            }
-
-            if (x2 > xaxis.max) {
-                sx2 += (sx2 - sx1) * (xaxis.max - x2) / (x2 - x1);
-                x2 = xaxis.max;
-            }
-
-            if (y1 < yaxis.min) {
-                sy2 += (sy1 - sy2) * (yaxis.min - y1) / (y2 - y1);
-                y1 = yaxis.min;
-            }
-
-            if (y2 > yaxis.max) {
-                sy1 += (sy1 - sy2) * (yaxis.max - y2) / (y2 - y1);
-                y2 = yaxis.max;
-            }
-            
-            x1 = xaxis.p2c(x1);
-            x2 = xaxis.p2c(x2);
-            y1 = yaxis.p2c(y1);
-            y2 = yaxis.p2c(y2);
-            
-            // the transformation may have swapped us
-            if (x1 > x2) {
-                tmp = x2;
-                x2 = x1;
-                x1 = tmp;
-            }
-            if (y1 > y2) {
-                tmp = y2;
-                y2 = y1;
-                y1 = tmp;
-            }
-
-            tmp = ctx.globalAlpha;
-            ctx.globalAlpha *= series.images.alpha;
-            ctx.drawImage(img,
-                          sx1, sy1, sx2 - sx1, sy2 - sy1,
-                          x1 + plotOffset.left, y1 + plotOffset.top,
-                          x2 - x1, y2 - y1);
-            ctx.globalAlpha = tmp;
-        }
-    }
-
-    function processRawData(plot, series, data, datapoints) {
-        if (!series.images.show)
-            return;
-
-        // format is Image, x1, y1, x2, y2 (opposite corners)
-        datapoints.format = [
-            { required: true },
-            { x: true, number: true, required: true },
-            { y: true, number: true, required: true },
-            { x: true, number: true, required: true },
-            { y: true, number: true, required: true }
-        ];
-    }
-    
-    function init(plot) {
-        plot.hooks.processRawData.push(processRawData);
-        plot.hooks.drawSeries.push(drawSeries);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'image',
-        version: '1.1'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.min.js
deleted file mode 100644
index 9480c1e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.image.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(c){var a={series:{images:{show:false,alpha:1,anchor:"corner"}}};c.plot.image={};c.plot.image.loadDataImages=function(g,f,k){var j=[],h=[];var i=f.series.images.show;c.each(g,function(l,m){if(!(i||m.images.show)){return}if(m.data){m=m.data}c.each(m,function(n,o){if(typeof o[0]=="string"){j.push(o[0]);h.push(o)}})});c.plot.image.load(j,function(l){c.each(h,function(n,o){var m=o[0];if(l[m]){o[0]=l[m]}});k()})};c.plot.image.load=function(h,i){var g=h.length,f={};if(g==0){i({})}c.each(h,function(k,j){var l=function(){--g;f[j]=this;if(g==0){i(f)}};c("<img />").load(l).error(l).attr("src",j)})};function d(q,o,l){var m=q.getPlotOffset();if(!l.images||!l.images.show){return}var r=l.datapoints.points,n=l.datapoints.pointsize;for(var t=0;t<r.length;t+=n){var y=r[t],w=r[t+1],g=r[t+2],v=r[t+3],f=r[t+4],h=l.xaxis,u=l.yaxis,x;if(!y||y.width<=0||y.height<=0){continue}if(w>v){x=v;v=w;w=x}if(g>f){x=f;f=g;g=x}if(l.images.anchor=="center"){x=0.5*(v-w)/(y.width-1);w-=x;v+=x;x=0.5*(f-g)/(y.height-1);g-=x;f+=x}if(w==v||g==f||w>=h.max||v<=h.min||g>=u.max||f<=u.min){continue}var k=0,s=0,j=y.width,p=y.height;if(w<h.min){k+=(j-k)*(h.min-w)/(v-w);w=h.min}if(v>h.max){j+=(j-k)*(h.max-v)/(v-w);v=h.max}if(g<u.min){p+=(s-p)*(u.min-g)/(f-g);g=u.min}if(f>u.max){s+=(s-p)*(u.max-f)/(f-g);f=u.max}w=h.p2c(w);v=h.p2c(v);g=u.p2c(g);f=u.p2c(f);if(w>v){x=v;v=w;w=x}if(g>f){x=f;f=g;g=x}x=o.globalAlpha;o.globalAlpha*=l.images.alpha;o.drawImage(y,k,s,j-k,p-s,w+m.left,g+m.top,v-w,f-g);o.globalAlpha=x}}function b(i,f,g,h){if(!f.images.show){return}h.format=[{required:true},{x:true,number:true,required:true},{y:true,number:true,required:true},{x:true,number:true,required:true},{y:true,number:true,required:true}]}function e(f){f.hooks.processRawData.push(b);f.hooks.drawSeries.push(d)}c.plot.plugins.push({init:e,options:a,name:"image",version:"1.1"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.js
deleted file mode 100644
index aabc544..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.js
+++ /dev/null
@@ -1,2599 +0,0 @@
-/*! Javascript plotting library for jQuery, v. 0.7.
- *
- * Released under the MIT license by IOLA, December 2007.
- *
- */
-
-// first an inline dependency, jquery.colorhelpers.js, we inline it here
-// for convenience
-
-/* Plugin for jQuery for working with colors.
- * 
- * Version 1.1.
- * 
- * Inspiration from jQuery color animation plugin by John Resig.
- *
- * Released under the MIT license by Ole Laursen, October 2009.
- *
- * Examples:
- *
- *   $.color.parse("#fff").scale('rgb', 0.25).add('a', -0.5).toString()
- *   var c = $.color.extract($("#mydiv"), 'background-color');
- *   console.log(c.r, c.g, c.b, c.a);
- *   $.color.make(100, 50, 25, 0.4).toString() // returns "rgba(100,50,25,0.4)"
- *
- * Note that .scale() and .add() return the same modified object
- * instead of making a new one.
- *
- * V. 1.1: Fix error handling so e.g. parsing an empty string does
- * produce a color rather than just crashing.
- */ 
-(function(B){B.color={};B.color.make=function(F,E,C,D){var G={};G.r=F||0;G.g=E||0;G.b=C||0;G.a=D!=null?D:1;G.add=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]+=I}return G.normalize()};G.scale=function(J,I){for(var H=0;H<J.length;++H){G[J.charAt(H)]*=I}return G.normalize()};G.toString=function(){if(G.a>=1){return"rgb("+[G.r,G.g,G.b].join(",")+")"}else{return"rgba("+[G.r,G.g,G.b,G.a].join(",")+")"}};G.normalize=function(){function H(J,K,I){return K<J?J:(K>I?I:K)}G.r=H(0,parseInt(G.r),255);G.g=H(0,parseInt(G.g),255);G.b=H(0,parseInt(G.b),255);G.a=H(0,G.a,1);return G};G.clone=function(){return B.color.make(G.r,G.b,G.g,G.a)};return G.normalize()};B.color.extract=function(D,C){var E;do{E=D.css(C).toLowerCase();if(E!=""&&E!="transparent"){break}D=D.parent()}while(!B.nodeName(D.get(0),"body"));if(E=="rgba(0, 0, 0, 0)"){E="transparent"}return B.color.parse(E)};B.color.parse=function(F){var E,C=B.color.make;if(E=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10))}if(E=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseInt(E[1],10),parseInt(E[2],10),parseInt(E[3],10),parseFloat(E[4]))}if(E=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55)}if(E=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(F)){return C(parseFloat(E[1])*2.55,parseFloat(E[2])*2.55,parseFloat(E[3])*2.55,parseFloat(E[4]))}if(E=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(F)){return C(parseInt(E[1],16),parseInt(E[2],16),parseInt(E[3],16))}if(E=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(F)){return C(parseInt(E[1]+E[1],16),parseInt(E[2]+E[2],16),parseInt(E[3]+E[3],16))}var D=B.trim(F).toLowerCase();if(D=="transparent"){return C(255,255,255,0)}else{E=A[D]||[0,0,0];return C(E[0],E[1],E[2])}};var A={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);
-
-// the actual Flot code
-(function($) {
-    function Plot(placeholder, data_, options_, plugins) {
-        // data is on the form:
-        //   [ series1, series2 ... ]
-        // where series is either just the data as [ [x1, y1], [x2, y2], ... ]
-        // or { data: [ [x1, y1], [x2, y2], ... ], label: "some label", ... }
-        
-        var series = [],
-            options = {
-                // the color theme used for graphs
-                colors: ["#edc240", "#afd8f8", "#cb4b4b", "#4da74d", "#9440ed"],
-                legend: {
-                    show: true,
-                    noColumns: 1, // number of colums in legend table
-                    labelFormatter: null, // fn: string -> string
-                    labelBoxBorderColor: "#ccc", // border color for the little label boxes
-                    container: null, // container (as jQuery object) to put legend in, null means default on top of graph
-                    position: "ne", // position of default legend container within plot
-                    margin: 5, // distance from grid edge to default legend container within plot
-                    backgroundColor: null, // null means auto-detect
-                    backgroundOpacity: 0.85 // set to 0 to avoid background
-                },
-                xaxis: {
-                    show: null, // null = auto-detect, true = always, false = never
-                    position: "bottom", // or "top"
-                    mode: null, // null or "time"
-                    color: null, // base color, labels, ticks
-                    tickColor: null, // possibly different color of ticks, e.g. "rgba(0,0,0,0.15)"
-                    transform: null, // null or f: number -> number to transform axis
-                    inverseTransform: null, // if transform is set, this should be the inverse function
-                    min: null, // min. value to show, null means set automatically
-                    max: null, // max. value to show, null means set automatically
-                    autoscaleMargin: null, // margin in % to add if auto-setting min/max
-                    ticks: null, // either [1, 3] or [[1, "a"], 3] or (fn: axis info -> ticks) or app. number of ticks for auto-ticks
-                    tickFormatter: null, // fn: number -> string
-                    labelWidth: null, // size of tick labels in pixels
-                    labelHeight: null,
-                    reserveSpace: null, // whether to reserve space even if axis isn't shown
-                    tickLength: null, // size in pixels of ticks, or "full" for whole line
-                    alignTicksWithAxis: null, // axis number or null for no sync
-                    
-                    // mode specific options
-                    tickDecimals: null, // no. of decimals, null means auto
-                    tickSize: null, // number or [number, "unit"]
-                    minTickSize: null, // number or [number, "unit"]
-                    monthNames: null, // list of names of months
-                    timeformat: null, // format string to use
-                    twelveHourClock: false // 12 or 24 time in time mode
-                },
-                yaxis: {
-                    autoscaleMargin: 0.02,
-                    position: "left" // or "right"
-                },
-                xaxes: [],
-                yaxes: [],
-                series: {
-                    points: {
-                        show: false,
-                        radius: 3,
-                        lineWidth: 2, // in pixels
-                        fill: true,
-                        fillColor: "#ffffff",
-                        symbol: "circle" // or callback
-                    },
-                    lines: {
-                        // we don't put in show: false so we can see
-                        // whether lines were actively disabled 
-                        lineWidth: 2, // in pixels
-                        fill: false,
-                        fillColor: null,
-                        steps: false
-                    },
-                    bars: {
-                        show: false,
-                        lineWidth: 2, // in pixels
-                        barWidth: 1, // in units of the x axis
-                        fill: true,
-                        fillColor: null,
-                        align: "left", // or "center" 
-                        horizontal: false
-                    },
-                    shadowSize: 3
-                },
-                grid: {
-                    show: true,
-                    aboveData: false,
-                    color: "#545454", // primary color used for outline and labels
-                    backgroundColor: null, // null for transparent, else color
-                    borderColor: null, // set if different from the grid color
-                    tickColor: null, // color for the ticks, e.g. "rgba(0,0,0,0.15)"
-                    labelMargin: 5, // in pixels
-                    axisMargin: 8, // in pixels
-                    borderWidth: 2, // in pixels
-                    minBorderMargin: null, // in pixels, null means taken from points radius
-                    markings: null, // array of ranges or fn: axes -> array of ranges
-                    markingsColor: "#f4f4f4",
-                    markingsLineWidth: 2,
-                    // interactive stuff
-                    clickable: false,
-                    hoverable: false,
-                    autoHighlight: true, // highlight in case mouse is near
-                    mouseActiveRadius: 10 // how far the mouse can be away to activate an item
-                },
-                hooks: {}
-            },
-        canvas = null,      // the canvas for the plot itself
-        overlay = null,     // canvas for interactive stuff on top of plot
-        eventHolder = null, // jQuery object that events should be bound to
-        ctx = null, octx = null,
-        xaxes = [], yaxes = [],
-        plotOffset = { left: 0, right: 0, top: 0, bottom: 0},
-        canvasWidth = 0, canvasHeight = 0,
-        plotWidth = 0, plotHeight = 0,
-        hooks = {
-            processOptions: [],
-            processRawData: [],
-            processDatapoints: [],
-            drawSeries: [],
-            draw: [],
-            bindEvents: [],
-            drawOverlay: [],
-            shutdown: []
-        },
-        plot = this;
-
-        // public functions
-        plot.setData = setData;
-        plot.setupGrid = setupGrid;
-        plot.draw = draw;
-        plot.getPlaceholder = function() { return placeholder; };
-        plot.getCanvas = function() { return canvas; };
-        plot.getPlotOffset = function() { return plotOffset; };
-        plot.width = function () { return plotWidth; };
-        plot.height = function () { return plotHeight; };
-        plot.offset = function () {
-            var o = eventHolder.offset();
-            o.left += plotOffset.left;
-            o.top += plotOffset.top;
-            return o;
-        };
-        plot.getData = function () { return series; };
-        plot.getAxes = function () {
-            var res = {}, i;
-            $.each(xaxes.concat(yaxes), function (_, axis) {
-                if (axis)
-                    res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis;
-            });
-            return res;
-        };
-        plot.getXAxes = function () { return xaxes; };
-        plot.getYAxes = function () { return yaxes; };
-        plot.c2p = canvasToAxisCoords;
-        plot.p2c = axisToCanvasCoords;
-        plot.getOptions = function () { return options; };
-        plot.highlight = highlight;
-        plot.unhighlight = unhighlight;
-        plot.triggerRedrawOverlay = triggerRedrawOverlay;
-        plot.pointOffset = function(point) {
-            return {
-                left: parseInt(xaxes[axisNumber(point, "x") - 1].p2c(+point.x) + plotOffset.left),
-                top: parseInt(yaxes[axisNumber(point, "y") - 1].p2c(+point.y) + plotOffset.top)
-            };
-        };
-        plot.shutdown = shutdown;
-        plot.resize = function () {
-            getCanvasDimensions();
-            resizeCanvas(canvas);
-            resizeCanvas(overlay);
-        };
-
-        // public attributes
-        plot.hooks = hooks;
-        
-        // initialize
-        initPlugins(plot);
-        parseOptions(options_);
-        setupCanvases();
-        setData(data_);
-        setupGrid();
-        draw();
-        bindEvents();
-
-
-        function executeHooks(hook, args) {
-            args = [plot].concat(args);
-            for (var i = 0; i < hook.length; ++i)
-                hook[i].apply(this, args);
-        }
-
-        function initPlugins() {
-            for (var i = 0; i < plugins.length; ++i) {
-                var p = plugins[i];
-                p.init(plot);
-                if (p.options)
-                    $.extend(true, options, p.options);
-            }
-        }
-        
-        function parseOptions(opts) {
-            var i;
-            
-            $.extend(true, options, opts);
-            
-            if (options.xaxis.color == null)
-                options.xaxis.color = options.grid.color;
-            if (options.yaxis.color == null)
-                options.yaxis.color = options.grid.color;
-            
-            if (options.xaxis.tickColor == null) // backwards-compatibility
-                options.xaxis.tickColor = options.grid.tickColor;
-            if (options.yaxis.tickColor == null) // backwards-compatibility
-                options.yaxis.tickColor = options.grid.tickColor;
-
-            if (options.grid.borderColor == null)
-                options.grid.borderColor = options.grid.color;
-            if (options.grid.tickColor == null)
-                options.grid.tickColor = $.color.parse(options.grid.color).scale('a', 0.22).toString();
-            
-            // fill in defaults in axes, copy at least always the
-            // first as the rest of the code assumes it'll be there
-            for (i = 0; i < Math.max(1, options.xaxes.length); ++i)
-                options.xaxes[i] = $.extend(true, {}, options.xaxis, options.xaxes[i]);
-            for (i = 0; i < Math.max(1, options.yaxes.length); ++i)
-                options.yaxes[i] = $.extend(true, {}, options.yaxis, options.yaxes[i]);
-
-            // backwards compatibility, to be removed in future
-            if (options.xaxis.noTicks && options.xaxis.ticks == null)
-                options.xaxis.ticks = options.xaxis.noTicks;
-            if (options.yaxis.noTicks && options.yaxis.ticks == null)
-                options.yaxis.ticks = options.yaxis.noTicks;
-            if (options.x2axis) {
-                options.xaxes[1] = $.extend(true, {}, options.xaxis, options.x2axis);
-                options.xaxes[1].position = "top";
-            }
-            if (options.y2axis) {
-                options.yaxes[1] = $.extend(true, {}, options.yaxis, options.y2axis);
-                options.yaxes[1].position = "right";
-            }
-            if (options.grid.coloredAreas)
-                options.grid.markings = options.grid.coloredAreas;
-            if (options.grid.coloredAreasColor)
-                options.grid.markingsColor = options.grid.coloredAreasColor;
-            if (options.lines)
-                $.extend(true, options.series.lines, options.lines);
-            if (options.points)
-                $.extend(true, options.series.points, options.points);
-            if (options.bars)
-                $.extend(true, options.series.bars, options.bars);
-            if (options.shadowSize != null)
-                options.series.shadowSize = options.shadowSize;
-
-            // save options on axes for future reference
-            for (i = 0; i < options.xaxes.length; ++i)
-                getOrCreateAxis(xaxes, i + 1).options = options.xaxes[i];
-            for (i = 0; i < options.yaxes.length; ++i)
-                getOrCreateAxis(yaxes, i + 1).options = options.yaxes[i];
-
-            // add hooks from options
-            for (var n in hooks)
-                if (options.hooks[n] && options.hooks[n].length)
-                    hooks[n] = hooks[n].concat(options.hooks[n]);
-
-            executeHooks(hooks.processOptions, [options]);
-        }
-
-        function setData(d) {
-            series = parseData(d);
-            fillInSeriesOptions();
-            processData();
-        }
-        
-        function parseData(d) {
-            var res = [];
-            for (var i = 0; i < d.length; ++i) {
-                var s = $.extend(true, {}, options.series);
-
-                if (d[i].data != null) {
-                    s.data = d[i].data; // move the data instead of deep-copy
-                    delete d[i].data;
-
-                    $.extend(true, s, d[i]);
-
-                    d[i].data = s.data;
-                }
-                else
-                    s.data = d[i];
-                res.push(s);
-            }
-
-            return res;
-        }
-        
-        function axisNumber(obj, coord) {
-            var a = obj[coord + "axis"];
-            if (typeof a == "object") // if we got a real axis, extract number
-                a = a.n;
-            if (typeof a != "number")
-                a = 1; // default to first axis
-            return a;
-        }
-
-        function allAxes() {
-            // return flat array without annoying null entries
-            return $.grep(xaxes.concat(yaxes), function (a) { return a; });
-        }
-        
-        function canvasToAxisCoords(pos) {
-            // return an object with x/y corresponding to all used axes 
-            var res = {}, i, axis;
-            for (i = 0; i < xaxes.length; ++i) {
-                axis = xaxes[i];
-                if (axis && axis.used)
-                    res["x" + axis.n] = axis.c2p(pos.left);
-            }
-
-            for (i = 0; i < yaxes.length; ++i) {
-                axis = yaxes[i];
-                if (axis && axis.used)
-                    res["y" + axis.n] = axis.c2p(pos.top);
-            }
-            
-            if (res.x1 !== undefined)
-                res.x = res.x1;
-            if (res.y1 !== undefined)
-                res.y = res.y1;
-
-            return res;
-        }
-        
-        function axisToCanvasCoords(pos) {
-            // get canvas coords from the first pair of x/y found in pos
-            var res = {}, i, axis, key;
-
-            for (i = 0; i < xaxes.length; ++i) {
-                axis = xaxes[i];
-                if (axis && axis.used) {
-                    key = "x" + axis.n;
-                    if (pos[key] == null && axis.n == 1)
-                        key = "x";
-
-                    if (pos[key] != null) {
-                        res.left = axis.p2c(pos[key]);
-                        break;
-                    }
-                }
-            }
-            
-            for (i = 0; i < yaxes.length; ++i) {
-                axis = yaxes[i];
-                if (axis && axis.used) {
-                    key = "y" + axis.n;
-                    if (pos[key] == null && axis.n == 1)
-                        key = "y";
-
-                    if (pos[key] != null) {
-                        res.top = axis.p2c(pos[key]);
-                        break;
-                    }
-                }
-            }
-            
-            return res;
-        }
-        
-        function getOrCreateAxis(axes, number) {
-            if (!axes[number - 1])
-                axes[number - 1] = {
-                    n: number, // save the number for future reference
-                    direction: axes == xaxes ? "x" : "y",
-                    options: $.extend(true, {}, axes == xaxes ? options.xaxis : options.yaxis)
-                };
-                
-            return axes[number - 1];
-        }
-
-        function fillInSeriesOptions() {
-            var i;
-            
-            // collect what we already got of colors
-            var neededColors = series.length,
-                usedColors = [],
-                assignedColors = [];
-            for (i = 0; i < series.length; ++i) {
-                var sc = series[i].color;
-                if (sc != null) {
-                    --neededColors;
-                    if (typeof sc == "number")
-                        assignedColors.push(sc);
-                    else
-                        usedColors.push($.color.parse(series[i].color));
-                }
-            }
-            
-            // we might need to generate more colors if higher indices
-            // are assigned
-            for (i = 0; i < assignedColors.length; ++i) {
-                neededColors = Math.max(neededColors, assignedColors[i] + 1);
-            }
-
-            // produce colors as needed
-            var colors = [], variation = 0;
-            i = 0;
-            while (colors.length < neededColors) {
-                var c;
-                if (options.colors.length == i) // check degenerate case
-                    c = $.color.make(100, 100, 100);
-                else
-                    c = $.color.parse(options.colors[i]);
-
-                // vary color if needed
-                var sign = variation % 2 == 1 ? -1 : 1;
-                c.scale('rgb', 1 + sign * Math.ceil(variation / 2) * 0.2)
-
-                // FIXME: if we're getting to close to something else,
-                // we should probably skip this one
-                colors.push(c);
-                
-                ++i;
-                if (i >= options.colors.length) {
-                    i = 0;
-                    ++variation;
-                }
-            }
-
-            // fill in the options
-            var colori = 0, s;
-            for (i = 0; i < series.length; ++i) {
-                s = series[i];
-                
-                // assign colors
-                if (s.color == null) {
-                    s.color = colors[colori].toString();
-                    ++colori;
-                }
-                else if (typeof s.color == "number")
-                    s.color = colors[s.color].toString();
-
-                // turn on lines automatically in case nothing is set
-                if (s.lines.show == null) {
-                    var v, show = true;
-                    for (v in s)
-                        if (s[v] && s[v].show) {
-                            show = false;
-                            break;
-                        }
-                    if (show)
-                        s.lines.show = true;
-                }
-
-                // setup axes
-                s.xaxis = getOrCreateAxis(xaxes, axisNumber(s, "x"));
-                s.yaxis = getOrCreateAxis(yaxes, axisNumber(s, "y"));
-            }
-        }
-        
-        function processData() {
-            var topSentry = Number.POSITIVE_INFINITY,
-                bottomSentry = Number.NEGATIVE_INFINITY,
-                fakeInfinity = Number.MAX_VALUE,
-                i, j, k, m, length,
-                s, points, ps, x, y, axis, val, f, p;
-
-            function updateAxis(axis, min, max) {
-                if (min < axis.datamin && min != -fakeInfinity)
-                    axis.datamin = min;
-                if (max > axis.datamax && max != fakeInfinity)
-                    axis.datamax = max;
-            }
-
-            $.each(allAxes(), function (_, axis) {
-                // init axis
-                axis.datamin = topSentry;
-                axis.datamax = bottomSentry;
-                axis.used = false;
-            });
-            
-            for (i = 0; i < series.length; ++i) {
-                s = series[i];
-                s.datapoints = { points: [] };
-                
-                executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]);
-            }
-            
-            // first pass: clean and copy data
-            for (i = 0; i < series.length; ++i) {
-                s = series[i];
-
-                var data = s.data, format = s.datapoints.format;
-
-                if (!format) {
-                    format = [];
-                    // find out how to copy
-                    format.push({ x: true, number: true, required: true });
-                    format.push({ y: true, number: true, required: true });
-
-                    if (s.bars.show || (s.lines.show && s.lines.fill)) {
-                        format.push({ y: true, number: true, required: false, defaultValue: 0 });
-                        if (s.bars.horizontal) {
-                            delete format[format.length - 1].y;
-                            format[format.length - 1].x = true;
-                        }
-                    }
-                    
-                    s.datapoints.format = format;
-                }
-
-                if (s.datapoints.pointsize != null)
-                    continue; // already filled in
-
-                s.datapoints.pointsize = format.length;
-                
-                ps = s.datapoints.pointsize;
-                points = s.datapoints.points;
-
-                insertSteps = s.lines.show && s.lines.steps;
-                s.xaxis.used = s.yaxis.used = true;
-                
-                for (j = k = 0; j < data.length; ++j, k += ps) {
-                    p = data[j];
-
-                    var nullify = p == null;
-                    if (!nullify) {
-                        for (m = 0; m < ps; ++m) {
-                            val = p[m];
-                            f = format[m];
-
-                            if (f) {
-                                if (f.number && val != null) {
-                                    val = +val; // convert to number
-                                    if (isNaN(val))
-                                        val = null;
-                                    else if (val == Infinity)
-                                        val = fakeInfinity;
-                                    else if (val == -Infinity)
-                                        val = -fakeInfinity;
-                                }
-
-                                if (val == null) {
-                                    if (f.required)
-                                        nullify = true;
-                                    
-                                    if (f.defaultValue != null)
-                                        val = f.defaultValue;
-                                }
-                            }
-                            
-                            points[k + m] = val;
-                        }
-                    }
-                    
-                    if (nullify) {
-                        for (m = 0; m < ps; ++m) {
-                            val = points[k + m];
-                            if (val != null) {
-                                f = format[m];
-                                // extract min/max info
-                                if (f.x)
-                                    updateAxis(s.xaxis, val, val);
-                                if (f.y)
-                                    updateAxis(s.yaxis, val, val);
-                            }
-                            points[k + m] = null;
-                        }
-                    }
-                    else {
-                        // a little bit of line specific stuff that
-                        // perhaps shouldn't be here, but lacking
-                        // better means...
-                        if (insertSteps && k > 0
-                            && points[k - ps] != null
-                            && points[k - ps] != points[k]
-                            && points[k - ps + 1] != points[k + 1]) {
-                            // copy the point to make room for a middle point
-                            for (m = 0; m < ps; ++m)
-                                points[k + ps + m] = points[k + m];
-
-                            // middle point has same y
-                            points[k + 1] = points[k - ps + 1];
-
-                            // we've added a point, better reflect that
-                            k += ps;
-                        }
-                    }
-                }
-            }
-
-            // give the hooks a chance to run
-            for (i = 0; i < series.length; ++i) {
-                s = series[i];
-                
-                executeHooks(hooks.processDatapoints, [ s, s.datapoints]);
-            }
-
-            // second pass: find datamax/datamin for auto-scaling
-            for (i = 0; i < series.length; ++i) {
-                s = series[i];
-                points = s.datapoints.points,
-                ps = s.datapoints.pointsize;
-
-                var xmin = topSentry, ymin = topSentry,
-                    xmax = bottomSentry, ymax = bottomSentry;
-                
-                for (j = 0; j < points.length; j += ps) {
-                    if (points[j] == null)
-                        continue;
-
-                    for (m = 0; m < ps; ++m) {
-                        val = points[j + m];
-                        f = format[m];
-                        if (!f || val == fakeInfinity || val == -fakeInfinity)
-                            continue;
-                        
-                        if (f.x) {
-                            if (val < xmin)
-                                xmin = val;
-                            if (val > xmax)
-                                xmax = val;
-                        }
-                        if (f.y) {
-                            if (val < ymin)
-                                ymin = val;
-                            if (val > ymax)
-                                ymax = val;
-                        }
-                    }
-                }
-                
-                if (s.bars.show) {
-                    // make sure we got room for the bar on the dancing floor
-                    var delta = s.bars.align == "left" ? 0 : -s.bars.barWidth/2;
-                    if (s.bars.horizontal) {
-                        ymin += delta;
-                        ymax += delta + s.bars.barWidth;
-                    }
-                    else {
-                        xmin += delta;
-                        xmax += delta + s.bars.barWidth;
-                    }
-                }
-                
-                updateAxis(s.xaxis, xmin, xmax);
-                updateAxis(s.yaxis, ymin, ymax);
-            }
-
-            $.each(allAxes(), function (_, axis) {
-                if (axis.datamin == topSentry)
-                    axis.datamin = null;
-                if (axis.datamax == bottomSentry)
-                    axis.datamax = null;
-            });
-        }
-
-        function makeCanvas(skipPositioning, cls) {
-            var c = document.createElement('canvas');
-            c.className = cls;
-            c.width = canvasWidth;
-            c.height = canvasHeight;
-                    
-            if (!skipPositioning)
-                $(c).css({ position: 'absolute', left: 0, top: 0 });
-                
-            $(c).appendTo(placeholder);
-                
-            if (!c.getContext) // excanvas hack
-                c = window.G_vmlCanvasManager.initElement(c);
-
-            // used for resetting in case we get replotted
-            c.getContext("2d").save();
-            
-            return c;
-        }
-
-        function getCanvasDimensions() {
-            canvasWidth = placeholder.width();
-            canvasHeight = placeholder.height();
-            
-            if (canvasWidth <= 0 || canvasHeight <= 0)
-                throw "Invalid dimensions for plot, width = " + canvasWidth + ", height = " + canvasHeight;
-        }
-
-        function resizeCanvas(c) {
-            // resizing should reset the state (excanvas seems to be
-            // buggy though)
-            if (c.width != canvasWidth)
-                c.width = canvasWidth;
-
-            if (c.height != canvasHeight)
-                c.height = canvasHeight;
-
-            // so try to get back to the initial state (even if it's
-            // gone now, this should be safe according to the spec)
-            var cctx = c.getContext("2d");
-            cctx.restore();
-
-            // and save again
-            cctx.save();
-        }
-        
-        function setupCanvases() {
-            var reused,
-                existingCanvas = placeholder.children("canvas.base"),
-                existingOverlay = placeholder.children("canvas.overlay");
-
-            if (existingCanvas.length == 0 || existingOverlay == 0) {
-                // init everything
-                
-                placeholder.html(""); // make sure placeholder is clear
-            
-                placeholder.css({ padding: 0 }); // padding messes up the positioning
-                
-                if (placeholder.css("position") == 'static')
-                    placeholder.css("position", "relative"); // for positioning labels and overlay
-
-                getCanvasDimensions();
-                
-                canvas = makeCanvas(true, "base");
-                overlay = makeCanvas(false, "overlay"); // overlay canvas for interactive features
-
-                reused = false;
-            }
-            else {
-                // reuse existing elements
-
-                canvas = existingCanvas.get(0);
-                overlay = existingOverlay.get(0);
-
-                reused = true;
-            }
-
-            ctx = canvas.getContext("2d");
-            octx = overlay.getContext("2d");
-
-            // we include the canvas in the event holder too, because IE 7
-            // sometimes has trouble with the stacking order
-            eventHolder = $([overlay, canvas]);
-
-            if (reused) {
-                // run shutdown in the old plot object
-                placeholder.data("plot").shutdown();
-
-                // reset reused canvases
-                plot.resize();
-                
-                // make sure overlay pixels are cleared (canvas is cleared when we redraw)
-                octx.clearRect(0, 0, canvasWidth, canvasHeight);
-                
-                // then whack any remaining obvious garbage left
-                eventHolder.unbind();
-                placeholder.children().not([canvas, overlay]).remove();
-            }
-
-            // save in case we get replotted
-            placeholder.data("plot", plot);
-        }
-
-        function bindEvents() {
-            // bind events
-            if (options.grid.hoverable) {
-                eventHolder.mousemove(onMouseMove);
-                eventHolder.mouseleave(onMouseLeave);
-            }
-
-            if (options.grid.clickable)
-                eventHolder.click(onClick);
-
-            executeHooks(hooks.bindEvents, [eventHolder]);
-        }
-
-        function shutdown() {
-            if (redrawTimeout)
-                clearTimeout(redrawTimeout);
-            
-            eventHolder.unbind("mousemove", onMouseMove);
-            eventHolder.unbind("mouseleave", onMouseLeave);
-            eventHolder.unbind("click", onClick);
-            
-            executeHooks(hooks.shutdown, [eventHolder]);
-        }
-
-        function setTransformationHelpers(axis) {
-            // set helper functions on the axis, assumes plot area
-            // has been computed already
-            
-            function identity(x) { return x; }
-            
-            var s, m, t = axis.options.transform || identity,
-                it = axis.options.inverseTransform;
-            
-            // precompute how much the axis is scaling a point
-            // in canvas space
-            if (axis.direction == "x") {
-                s = axis.scale = plotWidth / Math.abs(t(axis.max) - t(axis.min));
-                m = Math.min(t(axis.max), t(axis.min));
-            }
-            else {
-                s = axis.scale = plotHeight / Math.abs(t(axis.max) - t(axis.min));
-                s = -s;
-                m = Math.max(t(axis.max), t(axis.min));
-            }
-
-            // data point to canvas coordinate
-            if (t == identity) // slight optimization
-                axis.p2c = function (p) { return (p - m) * s; };
-            else
-                axis.p2c = function (p) { return (t(p) - m) * s; };
-            // canvas coordinate to data point
-            if (!it)
-                axis.c2p = function (c) { return m + c / s; };
-            else
-                axis.c2p = function (c) { return it(m + c / s); };
-        }
-
-        function measureTickLabels(axis) {
-            var opts = axis.options, i, ticks = axis.ticks || [], labels = [],
-                l, w = opts.labelWidth, h = opts.labelHeight, dummyDiv;
-
-            function makeDummyDiv(labels, width) {
-                return $('<div style="position:absolute;top:-10000px;' + width + 'font-size:smaller">' +
-                         '<div class="' + axis.direction + 'Axis ' + axis.direction + axis.n + 'Axis">'
-                         + labels.join("") + '</div></div>')
-                    .appendTo(placeholder);
-            }
-            
-            if (axis.direction == "x") {
-                // to avoid measuring the widths of the labels (it's slow), we
-                // construct fixed-size boxes and put the labels inside
-                // them, we don't need the exact figures and the
-                // fixed-size box content is easy to center
-                if (w == null)
-                    w = Math.floor(canvasWidth / (ticks.length > 0 ? ticks.length : 1));
-
-                // measure x label heights
-                if (h == null) {
-                    labels = [];
-                    for (i = 0; i < ticks.length; ++i) {
-                        l = ticks[i].label;
-                        if (l)
-                            labels.push('<div class="tickLabel" style="float:left;width:' + w + 'px">' + l + '</div>');
-                    }
-
-                    if (labels.length > 0) {
-                        // stick them all in the same div and measure
-                        // collective height
-                        labels.push('<div style="clear:left"></div>');
-                        dummyDiv = makeDummyDiv(labels, "width:10000px;");
-                        h = dummyDiv.height();
-                        dummyDiv.remove();
-                    }
-                }
-            }
-            else if (w == null || h == null) {
-                // calculate y label dimensions
-                for (i = 0; i < ticks.length; ++i) {
-                    l = ticks[i].label;
-                    if (l)
-                        labels.push('<div class="tickLabel">' + l + '</div>');
-                }
-                
-                if (labels.length > 0) {
-                    dummyDiv = makeDummyDiv(labels, "");
-                    if (w == null)
-                        w = dummyDiv.children().width();
-                    if (h == null)
-                        h = dummyDiv.find("div.tickLabel").height();
-                    dummyDiv.remove();
-                }
-            }
-
-            if (w == null)
-                w = 0;
-            if (h == null)
-                h = 0;
-
-            axis.labelWidth = w;
-            axis.labelHeight = h;
-        }
-
-        function allocateAxisBoxFirstPhase(axis) {
-            // find the bounding box of the axis by looking at label
-            // widths/heights and ticks, make room by diminishing the
-            // plotOffset
-
-            var lw = axis.labelWidth,
-                lh = axis.labelHeight,
-                pos = axis.options.position,
-                tickLength = axis.options.tickLength,
-                axismargin = options.grid.axisMargin,
-                padding = options.grid.labelMargin,
-                all = axis.direction == "x" ? xaxes : yaxes,
-                index;
-
-            // determine axis margin
-            var samePosition = $.grep(all, function (a) {
-                return a && a.options.position == pos && a.reserveSpace;
-            });
-            if ($.inArray(axis, samePosition) == samePosition.length - 1)
-                axismargin = 0; // outermost
-
-            // determine tick length - if we're innermost, we can use "full"
-            if (tickLength == null)
-                tickLength = "full";
-
-            var sameDirection = $.grep(all, function (a) {
-                return a && a.reserveSpace;
-            });
-
-            var innermost = $.inArray(axis, sameDirection) == 0;
-            if (!innermost && tickLength == "full")
-                tickLength = 5;
-                
-            if (!isNaN(+tickLength))
-                padding += +tickLength;
-
-            // compute box
-            if (axis.direction == "x") {
-                lh += padding;
-                
-                if (pos == "bottom") {
-                    plotOffset.bottom += lh + axismargin;
-                    axis.box = { top: canvasHeight - plotOffset.bottom, height: lh };
-                }
-                else {
-                    axis.box = { top: plotOffset.top + axismargin, height: lh };
-                    plotOffset.top += lh + axismargin;
-                }
-            }
-            else {
-                lw += padding;
-                
-                if (pos == "left") {
-                    axis.box = { left: plotOffset.left + axismargin, width: lw };
-                    plotOffset.left += lw + axismargin;
-                }
-                else {
-                    plotOffset.right += lw + axismargin;
-                    axis.box = { left: canvasWidth - plotOffset.right, width: lw };
-                }
-            }
-
-             // save for future reference
-            axis.position = pos;
-            axis.tickLength = tickLength;
-            axis.box.padding = padding;
-            axis.innermost = innermost;
-        }
-
-        function allocateAxisBoxSecondPhase(axis) {
-            // set remaining bounding box coordinates
-            if (axis.direction == "x") {
-                axis.box.left = plotOffset.left;
-                axis.box.width = plotWidth;
-            }
-            else {
-                axis.box.top = plotOffset.top;
-                axis.box.height = plotHeight;
-            }
-        }
-        
-        function setupGrid() {
-            var i, axes = allAxes();
-
-            // first calculate the plot and axis box dimensions
-
-            $.each(axes, function (_, axis) {
-                axis.show = axis.options.show;
-                if (axis.show == null)
-                    axis.show = axis.used; // by default an axis is visible if it's got data
-                
-                axis.reserveSpace = axis.show || axis.options.reserveSpace;
-
-                setRange(axis);
-            });
-
-            allocatedAxes = $.grep(axes, function (axis) { return axis.reserveSpace; });
-
-            plotOffset.left = plotOffset.right = plotOffset.top = plotOffset.bottom = 0;
-            if (options.grid.show) {
-                $.each(allocatedAxes, function (_, axis) {
-                    // make the ticks
-                    setupTickGeneration(axis);
-                    setTicks(axis);
-                    snapRangeToTicks(axis, axis.ticks);
-
-                    // find labelWidth/Height for axis
-                    measureTickLabels(axis);
-                });
-
-                // with all dimensions in house, we can compute the
-                // axis boxes, start from the outside (reverse order)
-                for (i = allocatedAxes.length - 1; i >= 0; --i)
-                    allocateAxisBoxFirstPhase(allocatedAxes[i]);
-
-                // make sure we've got enough space for things that
-                // might stick out
-                var minMargin = options.grid.minBorderMargin;
-                if (minMargin == null) {
-                    minMargin = 0;
-                    for (i = 0; i < series.length; ++i)
-                        minMargin = Math.max(minMargin, series[i].points.radius + series[i].points.lineWidth/2);
-                }
-                    
-                for (var a in plotOffset) {
-                    plotOffset[a] += options.grid.borderWidth;
-                    plotOffset[a] = Math.max(minMargin, plotOffset[a]);
-                }
-            }
-            
-            plotWidth = canvasWidth - plotOffset.left - plotOffset.right;
-            plotHeight = canvasHeight - plotOffset.bottom - plotOffset.top;
-
-            // now we got the proper plotWidth/Height, we can compute the scaling
-            $.each(axes, function (_, axis) {
-                setTransformationHelpers(axis);
-            });
-
-            if (options.grid.show) {
-                $.each(allocatedAxes, function (_, axis) {
-                    allocateAxisBoxSecondPhase(axis);
-                });
-
-                insertAxisLabels();
-            }
-            
-            insertLegend();
-        }
-        
-        function setRange(axis) {
-            var opts = axis.options,
-                min = +(opts.min != null ? opts.min : axis.datamin),
-                max = +(opts.max != null ? opts.max : axis.datamax),
-                delta = max - min;
-
-            if (delta == 0.0) {
-                // degenerate case
-                var widen = max == 0 ? 1 : 0.01;
-
-                if (opts.min == null)
-                    min -= widen;
-                // always widen max if we couldn't widen min to ensure we
-                // don't fall into min == max which doesn't work
-                if (opts.max == null || opts.min != null)
-                    max += widen;
-            }
-            else {
-                // consider autoscaling
-                var margin = opts.autoscaleMargin;
-                if (margin != null) {
-                    if (opts.min == null) {
-                        min -= delta * margin;
-                        // make sure we don't go below zero if all values
-                        // are positive
-                        if (min < 0 && axis.datamin != null && axis.datamin >= 0)
-                            min = 0;
-                    }
-                    if (opts.max == null) {
-                        max += delta * margin;
-                        if (max > 0 && axis.datamax != null && axis.datamax <= 0)
-                            max = 0;
-                    }
-                }
-            }
-            axis.min = min;
-            axis.max = max;
-        }
-
-        function setupTickGeneration(axis) {
-            var opts = axis.options;
-                
-            // estimate number of ticks
-            var noTicks;
-            if (typeof opts.ticks == "number" && opts.ticks > 0)
-                noTicks = opts.ticks;
-            else
-                // heuristic based on the model a*sqrt(x) fitted to
-                // some data points that seemed reasonable
-                noTicks = 0.3 * Math.sqrt(axis.direction == "x" ? canvasWidth : canvasHeight);
-
-            var delta = (axis.max - axis.min) / noTicks,
-                size, generator, unit, formatter, i, magn, norm;
-
-            if (opts.mode == "time") {
-                // pretty handling of time
-                
-                // map of app. size of time units in milliseconds
-                var timeUnitSize = {
-                    "second": 1000,
-                    "minute": 60 * 1000,
-                    "hour": 60 * 60 * 1000,
-                    "day": 24 * 60 * 60 * 1000,
-                    "month": 30 * 24 * 60 * 60 * 1000,
-                    "year": 365.2425 * 24 * 60 * 60 * 1000
-                };
-
-
-                // the allowed tick sizes, after 1 year we use
-                // an integer algorithm
-                var spec = [
-                    [1, "second"], [2, "second"], [5, "second"], [10, "second"],
-                    [30, "second"], 
-                    [1, "minute"], [2, "minute"], [5, "minute"], [10, "minute"],
-                    [30, "minute"], 
-                    [1, "hour"], [2, "hour"], [4, "hour"],
-                    [8, "hour"], [12, "hour"],
-                    [1, "day"], [2, "day"], [3, "day"],
-                    [0.25, "month"], [0.5, "month"], [1, "month"],
-                    [2, "month"], [3, "month"], [6, "month"],
-                    [1, "year"]
-                ];
-
-                var minSize = 0;
-                if (opts.minTickSize != null) {
-                    if (typeof opts.tickSize == "number")
-                        minSize = opts.tickSize;
-                    else
-                        minSize = opts.minTickSize[0] * timeUnitSize[opts.minTickSize[1]];
-                }
-
-                for (var i = 0; i < spec.length - 1; ++i)
-                    if (delta < (spec[i][0] * timeUnitSize[spec[i][1]]
-                                 + spec[i + 1][0] * timeUnitSize[spec[i + 1][1]]) / 2
-                       && spec[i][0] * timeUnitSize[spec[i][1]] >= minSize)
-                        break;
-                size = spec[i][0];
-                unit = spec[i][1];
-                
-                // special-case the possibility of several years
-                if (unit == "year") {
-                    magn = Math.pow(10, Math.floor(Math.log(delta / timeUnitSize.year) / Math.LN10));
-                    norm = (delta / timeUnitSize.year) / magn;
-                    if (norm < 1.5)
-                        size = 1;
-                    else if (norm < 3)
-                        size = 2;
-                    else if (norm < 7.5)
-                        size = 5;
-                    else
-                        size = 10;
-
-                    size *= magn;
-                }
-
-                axis.tickSize = opts.tickSize || [size, unit];
-                
-                generator = function(axis) {
-                    var ticks = [],
-                        tickSize = axis.tickSize[0], unit = axis.tickSize[1],
-                        d = new Date(axis.min);
-                    
-                    var step = tickSize * timeUnitSize[unit];
-
-                    if (unit == "second")
-                        d.setUTCSeconds(floorInBase(d.getUTCSeconds(), tickSize));
-                    if (unit == "minute")
-                        d.setUTCMinutes(floorInBase(d.getUTCMinutes(), tickSize));
-                    if (unit == "hour")
-                        d.setUTCHours(floorInBase(d.getUTCHours(), tickSize));
-                    if (unit == "month")
-                        d.setUTCMonth(floorInBase(d.getUTCMonth(), tickSize));
-                    if (unit == "year")
-                        d.setUTCFullYear(floorInBase(d.getUTCFullYear(), tickSize));
-                    
-                    // reset smaller components
-                    d.setUTCMilliseconds(0);
-                    if (step >= timeUnitSize.minute)
-                        d.setUTCSeconds(0);
-                    if (step >= timeUnitSize.hour)
-                        d.setUTCMinutes(0);
-                    if (step >= timeUnitSize.day)
-                        d.setUTCHours(0);
-                    if (step >= timeUnitSize.day * 4)
-                        d.setUTCDate(1);
-                    if (step >= timeUnitSize.year)
-                        d.setUTCMonth(0);
-
-
-                    var carry = 0, v = Number.NaN, prev;
-                    do {
-                        prev = v;
-                        v = d.getTime();
-                        ticks.push(v);
-                        if (unit == "month") {
-                            if (tickSize < 1) {
-                                // a bit complicated - we'll divide the month
-                                // up but we need to take care of fractions
-                                // so we don't end up in the middle of a day
-                                d.setUTCDate(1);
-                                var start = d.getTime();
-                                d.setUTCMonth(d.getUTCMonth() + 1);
-                                var end = d.getTime();
-                                d.setTime(v + carry * timeUnitSize.hour + (end - start) * tickSize);
-                                carry = d.getUTCHours();
-                                d.setUTCHours(0);
-                            }
-                            else
-                                d.setUTCMonth(d.getUTCMonth() + tickSize);
-                        }
-                        else if (unit == "year") {
-                            d.setUTCFullYear(d.getUTCFullYear() + tickSize);
-                        }
-                        else
-                            d.setTime(v + step);
-                    } while (v < axis.max && v != prev);
-
-                    return ticks;
-                };
-
-                formatter = function (v, axis) {
-                    var d = new Date(v);
-
-                    // first check global format
-                    if (opts.timeformat != null)
-                        return $.plot.formatDate(d, opts.timeformat, opts.monthNames);
-                    
-                    var t = axis.tickSize[0] * timeUnitSize[axis.tickSize[1]];
-                    var span = axis.max - axis.min;
-                    var suffix = (opts.twelveHourClock) ? " %p" : "";
-                    
-                    if (t < timeUnitSize.minute)
-                        fmt = "%h:%M:%S" + suffix;
-                    else if (t < timeUnitSize.day) {
-                        if (span < 2 * timeUnitSize.day)
-                            fmt = "%h:%M" + suffix;
-                        else
-                            fmt = "%b %d %h:%M" + suffix;
-                    }
-                    else if (t < timeUnitSize.month)
-                        fmt = "%b %d";
-                    else if (t < timeUnitSize.year) {
-                        if (span < timeUnitSize.year)
-                            fmt = "%b";
-                        else
-                            fmt = "%b %y";
-                    }
-                    else
-                        fmt = "%y";
-                    
-                    return $.plot.formatDate(d, fmt, opts.monthNames);
-                };
-            }
-            else {
-                // pretty rounding of base-10 numbers
-                var maxDec = opts.tickDecimals;
-                var dec = -Math.floor(Math.log(delta) / Math.LN10);
-                if (maxDec != null && dec > maxDec)
-                    dec = maxDec;
-
-                magn = Math.pow(10, -dec);
-                norm = delta / magn; // norm is between 1.0 and 10.0
-                
-                if (norm < 1.5)
-                    size = 1;
-                else if (norm < 3) {
-                    size = 2;
-                    // special case for 2.5, requires an extra decimal
-                    if (norm > 2.25 && (maxDec == null || dec + 1 <= maxDec)) {
-                        size = 2.5;
-                        ++dec;
-                    }
-                }
-                else if (norm < 7.5)
-                    size = 5;
-                else
-                    size = 10;
-
-                size *= magn;
-                
-                if (opts.minTickSize != null && size < opts.minTickSize)
-                    size = opts.minTickSize;
-
-                axis.tickDecimals = Math.max(0, maxDec != null ? maxDec : dec);
-                axis.tickSize = opts.tickSize || size;
-
-                generator = function (axis) {
-                    var ticks = [];
-
-                    // spew out all possible ticks
-                    var start = floorInBase(axis.min, axis.tickSize),
-                        i = 0, v = Number.NaN, prev;
-                    do {
-                        prev = v;
-                        v = start + i * axis.tickSize;
-                        ticks.push(v);
-                        ++i;
-                    } while (v < axis.max && v != prev);
-                    return ticks;
-                };
-
-                formatter = function (v, axis) {
-                    return v.toFixed(axis.tickDecimals);
-                };
-            }
-
-            if (opts.alignTicksWithAxis != null) {
-                var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1];
-                if (otherAxis && otherAxis.used && otherAxis != axis) {
-                    // consider snapping min/max to outermost nice ticks
-                    var niceTicks = generator(axis);
-                    if (niceTicks.length > 0) {
-                        if (opts.min == null)
-                            axis.min = Math.min(axis.min, niceTicks[0]);
-                        if (opts.max == null && niceTicks.length > 1)
-                            axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]);
-                    }
-                    
-                    generator = function (axis) {
-                        // copy ticks, scaled to this axis
-                        var ticks = [], v, i;
-                        for (i = 0; i < otherAxis.ticks.length; ++i) {
-                            v = (otherAxis.ticks[i].v - otherAxis.min) / (otherAxis.max - otherAxis.min);
-                            v = axis.min + v * (axis.max - axis.min);
-                            ticks.push(v);
-                        }
-                        return ticks;
-                    };
-                    
-                    // we might need an extra decimal since forced
-                    // ticks don't necessarily fit naturally
-                    if (axis.mode != "time" && opts.tickDecimals == null) {
-                        var extraDec = Math.max(0, -Math.floor(Math.log(delta) / Math.LN10) + 1),
-                            ts = generator(axis);
-
-                        // only proceed if the tick interval rounded
-                        // with an extra decimal doesn't give us a
-                        // zero at end
-                        if (!(ts.length > 1 && /\..*0$/.test((ts[1] - ts[0]).toFixed(extraDec))))
-                            axis.tickDecimals = extraDec;
-                    }
-                }
-            }
-
-            axis.tickGenerator = generator;
-            if ($.isFunction(opts.tickFormatter))
-                axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); };
-            else
-                axis.tickFormatter = formatter;
-        }
-        
-        function setTicks(axis) {
-            var oticks = axis.options.ticks, ticks = [];
-            if (oticks == null || (typeof oticks == "number" && oticks > 0))
-                ticks = axis.tickGenerator(axis);
-            else if (oticks) {
-                if ($.isFunction(oticks))
-                    // generate the ticks
-                    ticks = oticks({ min: axis.min, max: axis.max });
-                else
-                    ticks = oticks;
-            }
-
-            // clean up/labelify the supplied ticks, copy them over
-            var i, v;
-            axis.ticks = [];
-            for (i = 0; i < ticks.length; ++i) {
-                var label = null;
-                var t = ticks[i];
-                if (typeof t == "object") {
-                    v = +t[0];
-                    if (t.length > 1)
-                        label = t[1];
-                }
-                else
-                    v = +t;
-                if (label == null)
-                    label = axis.tickFormatter(v, axis);
-                if (!isNaN(v))
-                    axis.ticks.push({ v: v, label: label });
-            }
-        }
-
-        function snapRangeToTicks(axis, ticks) {
-            if (axis.options.autoscaleMargin && ticks.length > 0) {
-                // snap to ticks
-                if (axis.options.min == null)
-                    axis.min = Math.min(axis.min, ticks[0].v);
-                if (axis.options.max == null && ticks.length > 1)
-                    axis.max = Math.max(axis.max, ticks[ticks.length - 1].v);
-            }
-        }
-      
-        function draw() {
-            ctx.clearRect(0, 0, canvasWidth, canvasHeight);
-
-            var grid = options.grid;
-
-            // draw background, if any
-            if (grid.show && grid.backgroundColor)
-                drawBackground();
-            
-            if (grid.show && !grid.aboveData)
-                drawGrid();
-
-            for (var i = 0; i < series.length; ++i) {
-                executeHooks(hooks.drawSeries, [ctx, series[i]]);
-                drawSeries(series[i]);
-            }
-
-            executeHooks(hooks.draw, [ctx]);
-            
-            if (grid.show && grid.aboveData)
-                drawGrid();
-        }
-
-        function extractRange(ranges, coord) {
-            var axis, from, to, key, axes = allAxes();
-
-            for (i = 0; i < axes.length; ++i) {
-                axis = axes[i];
-                if (axis.direction == coord) {
-                    key = coord + axis.n + "axis";
-                    if (!ranges[key] && axis.n == 1)
-                        key = coord + "axis"; // support x1axis as xaxis
-                    if (ranges[key]) {
-                        from = ranges[key].from;
-                        to = ranges[key].to;
-                        break;
-                    }
-                }
-            }
-
-            // backwards-compat stuff - to be removed in future
-            if (!ranges[key]) {
-                axis = coord == "x" ? xaxes[0] : yaxes[0];
-                from = ranges[coord + "1"];
-                to = ranges[coord + "2"];
-            }
-
-            // auto-reverse as an added bonus
-            if (from != null && to != null && from > to) {
-                var tmp = from;
-                from = to;
-                to = tmp;
-            }
-            
-            return { from: from, to: to, axis: axis };
-        }
-        
-        function drawBackground() {
-            ctx.save();
-            ctx.translate(plotOffset.left, plotOffset.top);
-
-            ctx.fillStyle = getColorOrGradient(options.grid.backgroundColor, plotHeight, 0, "rgba(255, 255, 255, 0)");
-            ctx.fillRect(0, 0, plotWidth, plotHeight);
-            ctx.restore();
-        }
-
-        function drawGrid() {
-            var i;
-            
-            ctx.save();
-            ctx.translate(plotOffset.left, plotOffset.top);
-
-            // draw markings
-            var markings = options.grid.markings;
-            if (markings) {
-                if ($.isFunction(markings)) {
-                    var axes = plot.getAxes();
-                    // xmin etc. is backwards compatibility, to be
-                    // removed in the future
-                    axes.xmin = axes.xaxis.min;
-                    axes.xmax = axes.xaxis.max;
-                    axes.ymin = axes.yaxis.min;
-                    axes.ymax = axes.yaxis.max;
-                    
-                    markings = markings(axes);
-                }
-
-                for (i = 0; i < markings.length; ++i) {
-                    var m = markings[i],
-                        xrange = extractRange(m, "x"),
-                        yrange = extractRange(m, "y");
-
-                    // fill in missing
-                    if (xrange.from == null)
-                        xrange.from = xrange.axis.min;
-                    if (xrange.to == null)
-                        xrange.to = xrange.axis.max;
-                    if (yrange.from == null)
-                        yrange.from = yrange.axis.min;
-                    if (yrange.to == null)
-                        yrange.to = yrange.axis.max;
-
-                    // clip
-                    if (xrange.to < xrange.axis.min || xrange.from > xrange.axis.max ||
-                        yrange.to < yrange.axis.min || yrange.from > yrange.axis.max)
-                        continue;
-
-                    xrange.from = Math.max(xrange.from, xrange.axis.min);
-                    xrange.to = Math.min(xrange.to, xrange.axis.max);
-                    yrange.from = Math.max(yrange.from, yrange.axis.min);
-                    yrange.to = Math.min(yrange.to, yrange.axis.max);
-
-                    if (xrange.from == xrange.to && yrange.from == yrange.to)
-                        continue;
-
-                    // then draw
-                    xrange.from = xrange.axis.p2c(xrange.from);
-                    xrange.to = xrange.axis.p2c(xrange.to);
-                    yrange.from = yrange.axis.p2c(yrange.from);
-                    yrange.to = yrange.axis.p2c(yrange.to);
-                    
-                    if (xrange.from == xrange.to || yrange.from == yrange.to) {
-                        // draw line
-                        ctx.beginPath();
-                        ctx.strokeStyle = m.color || options.grid.markingsColor;
-                        ctx.lineWidth = m.lineWidth || options.grid.markingsLineWidth;
-                        ctx.moveTo(xrange.from, yrange.from);
-                        ctx.lineTo(xrange.to, yrange.to);
-                        ctx.stroke();
-                    }
-                    else {
-                        // fill area
-                        ctx.fillStyle = m.color || options.grid.markingsColor;
-                        ctx.fillRect(xrange.from, yrange.to,
-                                     xrange.to - xrange.from,
-                                     yrange.from - yrange.to);
-                    }
-                }
-            }
-            
-            // draw the ticks
-            var axes = allAxes(), bw = options.grid.borderWidth;
-
-            for (var j = 0; j < axes.length; ++j) {
-                var axis = axes[j], box = axis.box,
-                    t = axis.tickLength, x, y, xoff, yoff;
-                if (!axis.show || axis.ticks.length == 0)
-                    continue
-                
-                ctx.strokeStyle = axis.options.tickColor || $.color.parse(axis.options.color).scale('a', 0.22).toString();
-                ctx.lineWidth = 1;
-
-                // find the edges
-                if (axis.direction == "x") {
-                    x = 0;
-                    if (t == "full")
-                        y = (axis.position == "top" ? 0 : plotHeight);
-                    else
-                        y = box.top - plotOffset.top + (axis.position == "top" ? box.height : 0);
-                }
-                else {
-                    y = 0;
-                    if (t == "full")
-                        x = (axis.position == "left" ? 0 : plotWidth);
-                    else
-                        x = box.left - plotOffset.left + (axis.position == "left" ? box.width : 0);
-                }
-                
-                // draw tick bar
-                if (!axis.innermost) {
-                    ctx.beginPath();
-                    xoff = yoff = 0;
-                    if (axis.direction == "x")
-                        xoff = plotWidth;
-                    else
-                        yoff = plotHeight;
-                    
-                    if (ctx.lineWidth == 1) {
-                        x = Math.floor(x) + 0.5;
-                        y = Math.floor(y) + 0.5;
-                    }
-
-                    ctx.moveTo(x, y);
-                    ctx.lineTo(x + xoff, y + yoff);
-                    ctx.stroke();
-                }
-
-                // draw ticks
-                ctx.beginPath();
-                for (i = 0; i < axis.ticks.length; ++i) {
-                    var v = axis.ticks[i].v;
-                    
-                    xoff = yoff = 0;
-
-                    if (v < axis.min || v > axis.max
-                        // skip those lying on the axes if we got a border
-                        || (t == "full" && bw > 0
-                            && (v == axis.min || v == axis.max)))
-                        continue;
-
-                    if (axis.direction == "x") {
-                        x = axis.p2c(v);
-                        yoff = t == "full" ? -plotHeight : t;
-                        
-                        if (axis.position == "top")
-                            yoff = -yoff;
-                    }
-                    else {
-                        y = axis.p2c(v);
-                        xoff = t == "full" ? -plotWidth : t;
-                        
-                        if (axis.position == "left")
-                            xoff = -xoff;
-                    }
-
-                    if (ctx.lineWidth == 1) {
-                        if (axis.direction == "x")
-                            x = Math.floor(x) + 0.5;
-                        else
-                            y = Math.floor(y) + 0.5;
-                    }
-
-                    ctx.moveTo(x, y);
-                    ctx.lineTo(x + xoff, y + yoff);
-                }
-                
-                ctx.stroke();
-            }
-            
-            
-            // draw border
-            if (bw) {
-                ctx.lineWidth = bw;
-                ctx.strokeStyle = options.grid.borderColor;
-                ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw);
-            }
-
-            ctx.restore();
-        }
-
-        function insertAxisLabels() {
-            placeholder.find(".tickLabels").remove();
-            
-            var html = ['<div class="tickLabels" style="font-size:smaller">'];
-
-            var axes = allAxes();
-            for (var j = 0; j < axes.length; ++j) {
-                var axis = axes[j], box = axis.box;
-                if (!axis.show)
-                    continue;
-                //debug: html.push('<div style="position:absolute;opacity:0.10;background-color:red;left:' + box.left + 'px;top:' + box.top + 'px;width:' + box.width +  'px;height:' + box.height + 'px"></div>')
-                html.push('<div class="' + axis.direction + 'Axis ' + axis.direction + axis.n + 'Axis" style="color:' + axis.options.color + '">');
-                for (var i = 0; i < axis.ticks.length; ++i) {
-                    var tick = axis.ticks[i];
-                    if (!tick.label || tick.v < axis.min || tick.v > axis.max)
-                        continue;
-
-                    var pos = {}, align;
-                    
-                    if (axis.direction == "x") {
-                        align = "center";
-                        pos.left = Math.round(plotOffset.left + axis.p2c(tick.v) - axis.labelWidth/2);
-                        if (axis.position == "bottom")
-                            pos.top = box.top + box.padding;
-                        else
-                            pos.bottom = canvasHeight - (box.top + box.height - box.padding);
-                    }
-                    else {
-                        pos.top = Math.round(plotOffset.top + axis.p2c(tick.v) - axis.labelHeight/2);
-                        if (axis.position == "left") {
-                            pos.right = canvasWidth - (box.left + box.width - box.padding)
-                            align = "right";
-                        }
-                        else {
-                            pos.left = box.left + box.padding;
-                            align = "left";
-                        }
-                    }
-
-                    pos.width = axis.labelWidth;
-
-                    var style = ["position:absolute", "text-align:" + align ];
-                    for (var a in pos)
-                        style.push(a + ":" + pos[a] + "px")
-                    
-                    html.push('<div class="tickLabel" style="' + style.join(';') + '">' + tick.label + '</div>');
-                }
-                html.push('</div>');
-            }
-
-            html.push('</div>');
-
-            placeholder.append(html.join(""));
-        }
-
-        function drawSeries(series) {
-            if (series.lines.show)
-                drawSeriesLines(series);
-            if (series.bars.show)
-                drawSeriesBars(series);
-            if (series.points.show)
-                drawSeriesPoints(series);
-        }
-        
-        function drawSeriesLines(series) {
-            function plotLine(datapoints, xoffset, yoffset, axisx, axisy) {
-                var points = datapoints.points,
-                    ps = datapoints.pointsize,
-                    prevx = null, prevy = null;
-                
-                ctx.beginPath();
-                for (var i = ps; i < points.length; i += ps) {
-                    var x1 = points[i - ps], y1 = points[i - ps + 1],
-                        x2 = points[i], y2 = points[i + 1];
-                    
-                    if (x1 == null || x2 == null)
-                        continue;
-
-                    // clip with ymin
-                    if (y1 <= y2 && y1 < axisy.min) {
-                        if (y2 < axisy.min)
-                            continue;   // line segment is outside
-                        // compute new intersection point
-                        x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y1 = axisy.min;
-                    }
-                    else if (y2 <= y1 && y2 < axisy.min) {
-                        if (y1 < axisy.min)
-                            continue;
-                        x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y2 = axisy.min;
-                    }
-
-                    // clip with ymax
-                    if (y1 >= y2 && y1 > axisy.max) {
-                        if (y2 > axisy.max)
-                            continue;
-                        x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y1 = axisy.max;
-                    }
-                    else if (y2 >= y1 && y2 > axisy.max) {
-                        if (y1 > axisy.max)
-                            continue;
-                        x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y2 = axisy.max;
-                    }
-
-                    // clip with xmin
-                    if (x1 <= x2 && x1 < axisx.min) {
-                        if (x2 < axisx.min)
-                            continue;
-                        y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x1 = axisx.min;
-                    }
-                    else if (x2 <= x1 && x2 < axisx.min) {
-                        if (x1 < axisx.min)
-                            continue;
-                        y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x2 = axisx.min;
-                    }
-
-                    // clip with xmax
-                    if (x1 >= x2 && x1 > axisx.max) {
-                        if (x2 > axisx.max)
-                            continue;
-                        y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x1 = axisx.max;
-                    }
-                    else if (x2 >= x1 && x2 > axisx.max) {
-                        if (x1 > axisx.max)
-                            continue;
-                        y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x2 = axisx.max;
-                    }
-
-                    if (x1 != prevx || y1 != prevy)
-                        ctx.moveTo(axisx.p2c(x1) + xoffset, axisy.p2c(y1) + yoffset);
-                    
-                    prevx = x2;
-                    prevy = y2;
-                    ctx.lineTo(axisx.p2c(x2) + xoffset, axisy.p2c(y2) + yoffset);
-                }
-                ctx.stroke();
-            }
-
-            function plotLineArea(datapoints, axisx, axisy) {
-                var points = datapoints.points,
-                    ps = datapoints.pointsize,
-                    bottom = Math.min(Math.max(0, axisy.min), axisy.max),
-                    i = 0, top, areaOpen = false,
-                    ypos = 1, segmentStart = 0, segmentEnd = 0;
-
-                // we process each segment in two turns, first forward
-                // direction to sketch out top, then once we hit the
-                // end we go backwards to sketch the bottom
-                while (true) {
-                    if (ps > 0 && i > points.length + ps)
-                        break;
-
-                    i += ps; // ps is negative if going backwards
-
-                    var x1 = points[i - ps],
-                        y1 = points[i - ps + ypos],
-                        x2 = points[i], y2 = points[i + ypos];
-
-                    if (areaOpen) {
-                        if (ps > 0 && x1 != null && x2 == null) {
-                            // at turning point
-                            segmentEnd = i;
-                            ps = -ps;
-                            ypos = 2;
-                            continue;
-                        }
-
-                        if (ps < 0 && i == segmentStart + ps) {
-                            // done with the reverse sweep
-                            ctx.fill();
-                            areaOpen = false;
-                            ps = -ps;
-                            ypos = 1;
-                            i = segmentStart = segmentEnd + ps;
-                            continue;
-                        }
-                    }
-
-                    if (x1 == null || x2 == null)
-                        continue;
-
-                    // clip x values
-                    
-                    // clip with xmin
-                    if (x1 <= x2 && x1 < axisx.min) {
-                        if (x2 < axisx.min)
-                            continue;
-                        y1 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x1 = axisx.min;
-                    }
-                    else if (x2 <= x1 && x2 < axisx.min) {
-                        if (x1 < axisx.min)
-                            continue;
-                        y2 = (axisx.min - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x2 = axisx.min;
-                    }
-
-                    // clip with xmax
-                    if (x1 >= x2 && x1 > axisx.max) {
-                        if (x2 > axisx.max)
-                            continue;
-                        y1 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x1 = axisx.max;
-                    }
-                    else if (x2 >= x1 && x2 > axisx.max) {
-                        if (x1 > axisx.max)
-                            continue;
-                        y2 = (axisx.max - x1) / (x2 - x1) * (y2 - y1) + y1;
-                        x2 = axisx.max;
-                    }
-
-                    if (!areaOpen) {
-                        // open area
-                        ctx.beginPath();
-                        ctx.moveTo(axisx.p2c(x1), axisy.p2c(bottom));
-                        areaOpen = true;
-                    }
-                    
-                    // now first check the case where both is outside
-                    if (y1 >= axisy.max && y2 >= axisy.max) {
-                        ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.max));
-                        ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.max));
-                        continue;
-                    }
-                    else if (y1 <= axisy.min && y2 <= axisy.min) {
-                        ctx.lineTo(axisx.p2c(x1), axisy.p2c(axisy.min));
-                        ctx.lineTo(axisx.p2c(x2), axisy.p2c(axisy.min));
-                        continue;
-                    }
-                    
-                    // else it's a bit more complicated, there might
-                    // be a flat maxed out rectangle first, then a
-                    // triangular cutout or reverse; to find these
-                    // keep track of the current x values
-                    var x1old = x1, x2old = x2;
-
-                    // clip the y values, without shortcutting, we
-                    // go through all cases in turn
-                    
-                    // clip with ymin
-                    if (y1 <= y2 && y1 < axisy.min && y2 >= axisy.min) {
-                        x1 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y1 = axisy.min;
-                    }
-                    else if (y2 <= y1 && y2 < axisy.min && y1 >= axisy.min) {
-                        x2 = (axisy.min - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y2 = axisy.min;
-                    }
-
-                    // clip with ymax
-                    if (y1 >= y2 && y1 > axisy.max && y2 <= axisy.max) {
-                        x1 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y1 = axisy.max;
-                    }
-                    else if (y2 >= y1 && y2 > axisy.max && y1 <= axisy.max) {
-                        x2 = (axisy.max - y1) / (y2 - y1) * (x2 - x1) + x1;
-                        y2 = axisy.max;
-                    }
-
-                    // if the x value was changed we got a rectangle
-                    // to fill
-                    if (x1 != x1old) {
-                        ctx.lineTo(axisx.p2c(x1old), axisy.p2c(y1));
-                        // it goes to (x1, y1), but we fill that below
-                    }
-                    
-                    // fill triangular section, this sometimes result
-                    // in redundant points if (x1, y1) hasn't changed
-                    // from previous line to, but we just ignore that
-                    ctx.lineTo(axisx.p2c(x1), axisy.p2c(y1));
-                    ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));
-
-                    // fill the other rectangle if it's there
-                    if (x2 != x2old) {
-                        ctx.lineTo(axisx.p2c(x2), axisy.p2c(y2));
-                        ctx.lineTo(axisx.p2c(x2old), axisy.p2c(y2));
-                    }
-                }
-            }
-
-            ctx.save();
-            ctx.translate(plotOffset.left, plotOffset.top);
-            ctx.lineJoin = "round";
-
-            var lw = series.lines.lineWidth,
-                sw = series.shadowSize;
-            // FIXME: consider another form of shadow when filling is turned on
-            if (lw > 0 && sw > 0) {
-                // draw shadow as a thick and thin line with transparency
-                ctx.lineWidth = sw;
-                ctx.strokeStyle = "rgba(0,0,0,0.1)";
-                // position shadow at angle from the mid of line
-                var angle = Math.PI/18;
-                plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis);
-                ctx.lineWidth = sw/2;
-                plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis);
-            }
-
-            ctx.lineWidth = lw;
-            ctx.strokeStyle = series.color;
-            var fillStyle = getFillStyle(series.lines, series.color, 0, plotHeight);
-            if (fillStyle) {
-                ctx.fillStyle = fillStyle;
-                plotLineArea(series.datapoints, series.xaxis, series.yaxis);
-            }
-
-            if (lw > 0)
-                plotLine(series.datapoints, 0, 0, series.xaxis, series.yaxis);
-            ctx.restore();
-        }
-
-        function drawSeriesPoints(series) {
-            function plotPoints(datapoints, radius, fillStyle, offset, shadow, axisx, axisy, symbol) {
-                var points = datapoints.points, ps = datapoints.pointsize;
-
-                for (var i = 0; i < points.length; i += ps) {
-                    var x = points[i], y = points[i + 1];
-                    if (x == null || x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)
-                        continue;
-                    
-                    ctx.beginPath();
-                    x = axisx.p2c(x);
-                    y = axisy.p2c(y) + offset;
-                    if (symbol == "circle")
-                        ctx.arc(x, y, radius, 0, shadow ? Math.PI : Math.PI * 2, false);
-                    else
-                        symbol(ctx, x, y, radius, shadow);
-                    ctx.closePath();
-                    
-                    if (fillStyle) {
-                        ctx.fillStyle = fillStyle;
-                        ctx.fill();
-                    }
-                    ctx.stroke();
-                }
-            }
-            
-            ctx.save();
-            ctx.translate(plotOffset.left, plotOffset.top);
-
-            var lw = series.points.lineWidth,
-                sw = series.shadowSize,
-                radius = series.points.radius,
-                symbol = series.points.symbol;
-            if (lw > 0 && sw > 0) {
-                // draw shadow in two steps
-                var w = sw / 2;
-                ctx.lineWidth = w;
-                ctx.strokeStyle = "rgba(0,0,0,0.1)";
-                plotPoints(series.datapoints, radius, null, w + w/2, true,
-                           series.xaxis, series.yaxis, symbol);
-
-                ctx.strokeStyle = "rgba(0,0,0,0.2)";
-                plotPoints(series.datapoints, radius, null, w/2, true,
-                           series.xaxis, series.yaxis, symbol);
-            }
-
-            ctx.lineWidth = lw;
-            ctx.strokeStyle = series.color;
-            plotPoints(series.datapoints, radius,
-                       getFillStyle(series.points, series.color), 0, false,
-                       series.xaxis, series.yaxis, symbol);
-            ctx.restore();
-        }
-
-        function drawBar(x, y, b, barLeft, barRight, offset, fillStyleCallback, axisx, axisy, c, horizontal, lineWidth) {
-            var left, right, bottom, top,
-                drawLeft, drawRight, drawTop, drawBottom,
-                tmp;
-
-            // in horizontal mode, we start the bar from the left
-            // instead of from the bottom so it appears to be
-            // horizontal rather than vertical
-            if (horizontal) {
-                drawBottom = drawRight = drawTop = true;
-                drawLeft = false;
-                left = b;
-                right = x;
-                top = y + barLeft;
-                bottom = y + barRight;
-
-                // account for negative bars
-                if (right < left) {
-                    tmp = right;
-                    right = left;
-                    left = tmp;
-                    drawLeft = true;
-                    drawRight = false;
-                }
-            }
-            else {
-                drawLeft = drawRight = drawTop = true;
-                drawBottom = false;
-                left = x + barLeft;
-                right = x + barRight;
-                bottom = b;
-                top = y;
-
-                // account for negative bars
-                if (top < bottom) {
-                    tmp = top;
-                    top = bottom;
-                    bottom = tmp;
-                    drawBottom = true;
-                    drawTop = false;
-                }
-            }
-           
-            // clip
-            if (right < axisx.min || left > axisx.max ||
-                top < axisy.min || bottom > axisy.max)
-                return;
-            
-            if (left < axisx.min) {
-                left = axisx.min;
-                drawLeft = false;
-            }
-
-            if (right > axisx.max) {
-                right = axisx.max;
-                drawRight = false;
-            }
-
-            if (bottom < axisy.min) {
-                bottom = axisy.min;
-                drawBottom = false;
-            }
-            
-            if (top > axisy.max) {
-                top = axisy.max;
-                drawTop = false;
-            }
-
-            left = axisx.p2c(left);
-            bottom = axisy.p2c(bottom);
-            right = axisx.p2c(right);
-            top = axisy.p2c(top);
-            
-            // fill the bar
-            if (fillStyleCallback) {
-                c.beginPath();
-                c.moveTo(left, bottom);
-                c.lineTo(left, top);
-                c.lineTo(right, top);
-                c.lineTo(right, bottom);
-                c.fillStyle = fillStyleCallback(bottom, top);
-                c.fill();
-            }
-
-            // draw outline
-            if (lineWidth > 0 && (drawLeft || drawRight || drawTop || drawBottom)) {
-                c.beginPath();
-
-                // FIXME: inline moveTo is buggy with excanvas
-                c.moveTo(left, bottom + offset);
-                if (drawLeft)
-                    c.lineTo(left, top + offset);
-                else
-                    c.moveTo(left, top + offset);
-                if (drawTop)
-                    c.lineTo(right, top + offset);
-                else
-                    c.moveTo(right, top + offset);
-                if (drawRight)
-                    c.lineTo(right, bottom + offset);
-                else
-                    c.moveTo(right, bottom + offset);
-                if (drawBottom)
-                    c.lineTo(left, bottom + offset);
-                else
-                    c.moveTo(left, bottom + offset);
-                c.stroke();
-            }
-        }
-        
-        function drawSeriesBars(series) {
-            function plotBars(datapoints, barLeft, barRight, offset, fillStyleCallback, axisx, axisy) {
-                var points = datapoints.points, ps = datapoints.pointsize;
-                
-                for (var i = 0; i < points.length; i += ps) {
-                    if (points[i] == null)
-                        continue;
-                    drawBar(points[i], points[i + 1], points[i + 2], barLeft, barRight, offset, fillStyleCallback, axisx, axisy, ctx, series.bars.horizontal, series.bars.lineWidth);
-                }
-            }
-
-            ctx.save();
-            ctx.translate(plotOffset.left, plotOffset.top);
-
-            // FIXME: figure out a way to add shadows (for instance along the right edge)
-            ctx.lineWidth = series.bars.lineWidth;
-            ctx.strokeStyle = series.color;
-            var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2;
-            var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null;
-            plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, 0, fillStyleCallback, series.xaxis, series.yaxis);
-            ctx.restore();
-        }
-
-        function getFillStyle(filloptions, seriesColor, bottom, top) {
-            var fill = filloptions.fill;
-            if (!fill)
-                return null;
-
-            if (filloptions.fillColor)
-                return getColorOrGradient(filloptions.fillColor, bottom, top, seriesColor);
-            
-            var c = $.color.parse(seriesColor);
-            c.a = typeof fill == "number" ? fill : 0.4;
-            c.normalize();
-            return c.toString();
-        }
-        
-        function insertLegend() {
-            placeholder.find(".legend").remove();
-
-            if (!options.legend.show)
-                return;
-            
-            var fragments = [], rowStarted = false,
-                lf = options.legend.labelFormatter, s, label;
-            for (var i = 0; i < series.length; ++i) {
-                s = series[i];
-                label = s.label;
-                if (!label)
-                    continue;
-                
-                if (i % options.legend.noColumns == 0) {
-                    if (rowStarted)
-                        fragments.push('</tr>');
-                    fragments.push('<tr>');
-                    rowStarted = true;
-                }
-
-                if (lf)
-                    label = lf(label, s);
-                
-                fragments.push(
-                    '<td class="legendColorBox"><div style="border:1px solid ' + options.legend.labelBoxBorderColor + ';padding:1px"><div style="width:4px;height:0;border:5px solid ' + s.color + ';overflow:hidden"></div></div></td>' +
-                    '<td class="legendLabel">' + label + '</td>');
-            }
-            if (rowStarted)
-                fragments.push('</tr>');
-            
-            if (fragments.length == 0)
-                return;
-
-            var table = '<table style="font-size:smaller;color:' + options.grid.color + '">' + fragments.join("") + '</table>';
-            if (options.legend.container != null)
-                $(options.legend.container).html(table);
-            else {
-                var pos = "",
-                    p = options.legend.position,
-                    m = options.legend.margin;
-                if (m[0] == null)
-                    m = [m, m];
-                if (p.charAt(0) == "n")
-                    pos += 'top:' + (m[1] + plotOffset.top) + 'px;';
-                else if (p.charAt(0) == "s")
-                    pos += 'bottom:' + (m[1] + plotOffset.bottom) + 'px;';
-                if (p.charAt(1) == "e")
-                    pos += 'right:' + (m[0] + plotOffset.right) + 'px;';
-                else if (p.charAt(1) == "w")
-                    pos += 'left:' + (m[0] + plotOffset.left) + 'px;';
-                var legend = $('<div class="legend">' + table.replace('style="', 'style="position:absolute;' + pos +';') + '</div>').appendTo(placeholder);
-                if (options.legend.backgroundOpacity != 0.0) {
-                    // put in the transparent background
-                    // separately to avoid blended labels and
-                    // label boxes
-                    var c = options.legend.backgroundColor;
-                    if (c == null) {
-                        c = options.grid.backgroundColor;
-                        if (c && typeof c == "string")
-                            c = $.color.parse(c);
-                        else
-                            c = $.color.extract(legend, 'background-color');
-                        c.a = 1;
-                        c = c.toString();
-                    }
-                    var div = legend.children();
-                    $('<div style="position:absolute;width:' + div.width() + 'px;height:' + div.height() + 'px;' + pos +'background-color:' + c + ';"> </div>').prependTo(legend).css('opacity', options.legend.backgroundOpacity);
-                }
-            }
-        }
-
-
-        // interactive features
-        
-        var highlights = [],
-            redrawTimeout = null;
-        
-        // returns the data item the mouse is over, or null if none is found
-        function findNearbyItem(mouseX, mouseY, seriesFilter) {
-            var maxDistance = options.grid.mouseActiveRadius,
-                smallestDistance = maxDistance * maxDistance + 1,
-                item = null, foundPoint = false, i, j;
-
-            for (i = series.length - 1; i >= 0; --i) {
-                if (!seriesFilter(series[i]))
-                    continue;
-                
-                var s = series[i],
-                    axisx = s.xaxis,
-                    axisy = s.yaxis,
-                    points = s.datapoints.points,
-                    ps = s.datapoints.pointsize,
-                    mx = axisx.c2p(mouseX), // precompute some stuff to make the loop faster
-                    my = axisy.c2p(mouseY),
-                    maxx = maxDistance / axisx.scale,
-                    maxy = maxDistance / axisy.scale;
-
-                // with inverse transforms, we can't use the maxx/maxy
-                // optimization, sadly
-                if (axisx.options.inverseTransform)
-                    maxx = Number.MAX_VALUE;
-                if (axisy.options.inverseTransform)
-                    maxy = Number.MAX_VALUE;
-                
-                if (s.lines.show || s.points.show) {
-                    for (j = 0; j < points.length; j += ps) {
-                        var x = points[j], y = points[j + 1];
-                        if (x == null)
-                            continue;
-                        
-                        // For points and lines, the cursor must be within a
-                        // certain distance to the data point
-                        if (x - mx > maxx || x - mx < -maxx ||
-                            y - my > maxy || y - my < -maxy)
-                            continue;
-
-                        // We have to calculate distances in pixels, not in
-                        // data units, because the scales of the axes may be different
-                        var dx = Math.abs(axisx.p2c(x) - mouseX),
-                            dy = Math.abs(axisy.p2c(y) - mouseY),
-                            dist = dx * dx + dy * dy; // we save the sqrt
-
-                        // use <= to ensure last point takes precedence
-                        // (last generally means on top of)
-                        if (dist < smallestDistance) {
-                            smallestDistance = dist;
-                            item = [i, j / ps];
-                        }
-                    }
-                }
-                    
-                if (s.bars.show && !item) { // no other point can be nearby
-                    var barLeft = s.bars.align == "left" ? 0 : -s.bars.barWidth/2,
-                        barRight = barLeft + s.bars.barWidth;
-                    
-                    for (j = 0; j < points.length; j += ps) {
-                        var x = points[j], y = points[j + 1], b = points[j + 2];
-                        if (x == null)
-                            continue;
-  
-                        // for a bar graph, the cursor must be inside the bar
-                        if (series[i].bars.horizontal ? 
-                            (mx <= Math.max(b, x) && mx >= Math.min(b, x) && 
-                             my >= y + barLeft && my <= y + barRight) :
-                            (mx >= x + barLeft && mx <= x + barRight &&
-                             my >= Math.min(b, y) && my <= Math.max(b, y)))
-                                item = [i, j / ps];
-                    }
-                }
-            }
-
-            if (item) {
-                i = item[0];
-                j = item[1];
-                ps = series[i].datapoints.pointsize;
-                
-                return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps),
-                         dataIndex: j,
-                         series: series[i],
-                         seriesIndex: i };
-            }
-            
-            return null;
-        }
-
-        function onMouseMove(e) {
-            if (options.grid.hoverable)
-                triggerClickHoverEvent("plothover", e,
-                                       function (s) { return s["hoverable"] != false; });
-        }
-
-        function onMouseLeave(e) {
-            if (options.grid.hoverable)
-                triggerClickHoverEvent("plothover", e,
-                                       function (s) { return false; });
-        }
-
-        function onClick(e) {
-            triggerClickHoverEvent("plotclick", e,
-                                   function (s) { return s["clickable"] != false; });
-        }
-
-        // trigger click or hover event (they send the same parameters
-        // so we share their code)
-        function triggerClickHoverEvent(eventname, event, seriesFilter) {
-            var offset = eventHolder.offset(),
-                canvasX = event.pageX - offset.left - plotOffset.left,
-                canvasY = event.pageY - offset.top - plotOffset.top,
-            pos = canvasToAxisCoords({ left: canvasX, top: canvasY });
-
-            pos.pageX = event.pageX;
-            pos.pageY = event.pageY;
-
-            var item = findNearbyItem(canvasX, canvasY, seriesFilter);
-
-            if (item) {
-                // fill in mouse pos for any listeners out there
-                item.pageX = parseInt(item.series.xaxis.p2c(item.datapoint[0]) + offset.left + plotOffset.left);
-                item.pageY = parseInt(item.series.yaxis.p2c(item.datapoint[1]) + offset.top + plotOffset.top);
-            }
-
-            if (options.grid.autoHighlight) {
-                // clear auto-highlights
-                for (var i = 0; i < highlights.length; ++i) {
-                    var h = highlights[i];
-                    if (h.auto == eventname &&
-                        !(item && h.series == item.series &&
-                          h.point[0] == item.datapoint[0] &&
-                          h.point[1] == item.datapoint[1]))
-                        unhighlight(h.series, h.point);
-                }
-                
-                if (item)
-                    highlight(item.series, item.datapoint, eventname);
-            }
-            
-            placeholder.trigger(eventname, [ pos, item ]);
-        }
-
-        function triggerRedrawOverlay() {
-            if (!redrawTimeout)
-                redrawTimeout = setTimeout(drawOverlay, 30);
-        }
-
-        function drawOverlay() {
-            redrawTimeout = null;
-
-            // draw highlights
-            octx.save();
-            octx.clearRect(0, 0, canvasWidth, canvasHeight);
-            octx.translate(plotOffset.left, plotOffset.top);
-            
-            var i, hi;
-            for (i = 0; i < highlights.length; ++i) {
-                hi = highlights[i];
-
-                if (hi.series.bars.show)
-                    drawBarHighlight(hi.series, hi.point);
-                else
-                    drawPointHighlight(hi.series, hi.point);
-            }
-            octx.restore();
-            
-            executeHooks(hooks.drawOverlay, [octx]);
-        }
-        
-        function highlight(s, point, auto) {
-            if (typeof s == "number")
-                s = series[s];
-
-            if (typeof point == "number") {
-                var ps = s.datapoints.pointsize;
-                point = s.datapoints.points.slice(ps * point, ps * (point + 1));
-            }
-
-            var i = indexOfHighlight(s, point);
-            if (i == -1) {
-                highlights.push({ series: s, point: point, auto: auto });
-
-                triggerRedrawOverlay();
-            }
-            else if (!auto)
-                highlights[i].auto = false;
-        }
-            
-        function unhighlight(s, point) {
-            if (s == null && point == null) {
-                highlights = [];
-                triggerRedrawOverlay();
-            }
-            
-            if (typeof s == "number")
-                s = series[s];
-
-            if (typeof point == "number")
-                point = s.data[point];
-
-            var i = indexOfHighlight(s, point);
-            if (i != -1) {
-                highlights.splice(i, 1);
-
-                triggerRedrawOverlay();
-            }
-        }
-        
-        function indexOfHighlight(s, p) {
-            for (var i = 0; i < highlights.length; ++i) {
-                var h = highlights[i];
-                if (h.series == s && h.point[0] == p[0]
-                    && h.point[1] == p[1])
-                    return i;
-            }
-            return -1;
-        }
-        
-        function drawPointHighlight(series, point) {
-            var x = point[0], y = point[1],
-                axisx = series.xaxis, axisy = series.yaxis;
-            
-            if (x < axisx.min || x > axisx.max || y < axisy.min || y > axisy.max)
-                return;
-            
-            var pointRadius = series.points.radius + series.points.lineWidth / 2;
-            octx.lineWidth = pointRadius;
-            octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString();
-            var radius = 1.5 * pointRadius,
-                x = axisx.p2c(x),
-                y = axisy.p2c(y);
-            
-            octx.beginPath();
-            if (series.points.symbol == "circle")
-                octx.arc(x, y, radius, 0, 2 * Math.PI, false);
-            else
-                series.points.symbol(octx, x, y, radius, false);
-            octx.closePath();
-            octx.stroke();
-        }
-
-        function drawBarHighlight(series, point) {
-            octx.lineWidth = series.bars.lineWidth;
-            octx.strokeStyle = $.color.parse(series.color).scale('a', 0.5).toString();
-            var fillStyle = $.color.parse(series.color).scale('a', 0.5).toString();
-            var barLeft = series.bars.align == "left" ? 0 : -series.bars.barWidth/2;
-            drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth,
-                    0, function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);
-        }
-
-        function getColorOrGradient(spec, bottom, top, defaultColor) {
-            if (typeof spec == "string")
-                return spec;
-            else {
-                // assume this is a gradient spec; IE currently only
-                // supports a simple vertical gradient properly, so that's
-                // what we support too
-                var gradient = ctx.createLinearGradient(0, top, 0, bottom);
-                
-                for (var i = 0, l = spec.colors.length; i < l; ++i) {
-                    var c = spec.colors[i];
-                    if (typeof c != "string") {
-                        var co = $.color.parse(defaultColor);
-                        if (c.brightness != null)
-                            co = co.scale('rgb', c.brightness)
-                        if (c.opacity != null)
-                            co.a *= c.opacity;
-                        c = co.toString();
-                    }
-                    gradient.addColorStop(i / (l - 1), c);
-                }
-                
-                return gradient;
-            }
-        }
-    }
-
-    $.plot = function(placeholder, data, options) {
-        //var t0 = new Date();
-        var plot = new Plot($(placeholder), data, options, $.plot.plugins);
-        //(window.console ? console.log : alert)("time used (msecs): " + ((new Date()).getTime() - t0.getTime()));
-        return plot;
-    };
-
-    $.plot.version = "0.7";
-    
-    $.plot.plugins = [];
-
-    // returns a string with the date d formatted according to fmt
-    $.plot.formatDate = function(d, fmt, monthNames) {
-        var leftPad = function(n) {
-            n = "" + n;
-            return n.length == 1 ? "0" + n : n;
-        };
-        
-        var r = [];
-        var escape = false, padNext = false;
-        var hours = d.getUTCHours();
-        var isAM = hours < 12;
-        if (monthNames == null)
-            monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
-
-        if (fmt.search(/%p|%P/) != -1) {
-            if (hours > 12) {
-                hours = hours - 12;
-            } else if (hours == 0) {
-                hours = 12;
-            }
-        }
-        for (var i = 0; i < fmt.length; ++i) {
-            var c = fmt.charAt(i);
-            
-            if (escape) {
-                switch (c) {
-                case 'h': c = "" + hours; break;
-                case 'H': c = leftPad(hours); break;
-                case 'M': c = leftPad(d.getUTCMinutes()); break;
-                case 'S': c = leftPad(d.getUTCSeconds()); break;
-                case 'd': c = "" + d.getUTCDate(); break;
-                case 'm': c = "" + (d.getUTCMonth() + 1); break;
-                case 'y': c = "" + d.getUTCFullYear(); break;
-                case 'b': c = "" + monthNames[d.getUTCMonth()]; break;
-                case 'p': c = (isAM) ? ("" + "am") : ("" + "pm"); break;
-                case 'P': c = (isAM) ? ("" + "AM") : ("" + "PM"); break;
-                case '0': c = ""; padNext = true; break;
-                }
-                if (c && padNext) {
-                    c = leftPad(c);
-                    padNext = false;
-                }
-                r.push(c);
-                if (!padNext)
-                    escape = false;
-            }
-            else {
-                if (c == "%")
-                    escape = true;
-                else
-                    r.push(c);
-            }
-        }
-        return r.join("");
-    };
-    
-    // round to nearby lower multiple of base
-    function floorInBase(n, base) {
-        return base * Math.floor(n / base);
-    }
-    
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.min.js
deleted file mode 100644
index 4467fc5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/* Javascript plotting library for jQuery, v. 0.7.
- *
- * Released under the MIT license by IOLA, December 2007.
- *
- */
-(function(b){b.color={};b.color.make=function(d,e,g,f){var c={};c.r=d||0;c.g=e||0;c.b=g||0;c.a=f!=null?f:1;c.add=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]+=j}return c.normalize()};c.scale=function(h,j){for(var k=0;k<h.length;++k){c[h.charAt(k)]*=j}return c.normalize()};c.toString=function(){if(c.a>=1){return"rgb("+[c.r,c.g,c.b].join(",")+")"}else{return"rgba("+[c.r,c.g,c.b,c.a].join(",")+")"}};c.normalize=function(){function h(k,j,l){return j<k?k:(j>l?l:j)}c.r=h(0,parseInt(c.r),255);c.g=h(0,parseInt(c.g),255);c.b=h(0,parseInt(c.b),255);c.a=h(0,c.a,1);return c};c.clone=function(){return b.color.make(c.r,c.b,c.g,c.a)};return c.normalize()};b.color.extract=function(d,e){var c;do{c=d.css(e).toLowerCase();if(c!=""&&c!="transparent"){break}d=d.parent()}while(!b.nodeName(d.get(0),"body"));if(c=="rgba(0, 0, 0, 0)"){c="transparent"}return b.color.parse(c)};b.color.parse=function(c){var d,f=b.color.make;if(d=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10))}if(d=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseInt(d[1],10),parseInt(d[2],10),parseInt(d[3],10),parseFloat(d[4]))}if(d=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55)}if(d=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c)){return f(parseFloat(d[1])*2.55,parseFloat(d[2])*2.55,parseFloat(d[3])*2.55,parseFloat(d[4]))}if(d=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)){return f(parseInt(d[1],16),parseInt(d[2],16),parseInt(d[3],16))}if(d=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)){return f(parseInt(d[1]+d[1],16),parseInt(d[2]+d[2],16),parseInt(d[3]+d[3],16))}var e=b.trim(c).toLowerCase();if(e=="transparent"){return f(255,255,255,0)}else{d=a[e]||[0,0,0];return f(d[0],d[1],d[2])}};var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);(function(c){function b(av,ai,J,af){var Q=[],O={colors:["#edc240","#afd8f8","#cb4b4b","#4da74d","#9440ed"],legend:{show:true,noColumns:1,labelFormatter:null,labelBoxBorderColor:"#ccc",container:null,position:"ne",margin:5,backgroundColor:null,backgroundOpacity:0.85},xaxis:{show:null,position:"bottom",mode:null,color:null,tickColor:null,transform:null,inverseTransform:null,min:null,max:null,autoscaleMargin:null,ticks:null,tickFormatter:null,labelWidth:null,labelHeight:null,reserveSpace:null,tickLength:null,alignTicksWithAxis:null,tickDecimals:null,tickSize:null,minTickSize:null,monthNames:null,timeformat:null,twelveHourClock:false},yaxis:{autoscaleMargin:0.02,position:"left"},xaxes:[],yaxes:[],series:{points:{show:false,radius:3,lineWidth:2,fill:true,fillColor:"#ffffff",symbol:"circle"},lines:{lineWidth:2,fill:false,fillColor:null,steps:false},bars:{show:false,lineWidth:2,barWidth:1,fill:true,fillColor:null,align:"left",horizontal:false},shadowSize:3},grid:{show:true,aboveData:false,color:"#545454",backgroundColor:null,borderColor:null,tickColor:null,labelMargin:5,axisMargin:8,borderWidth:2,minBorderMargin:null,markings:null,markingsColor:"#f4f4f4",markingsLineWidth:2,clickable:false,hoverable:false,autoHighlight:true,mouseActiveRadius:10},hooks:{}},az=null,ad=null,y=null,H=null,A=null,p=[],aw=[],q={left:0,right:0,top:0,bottom:0},G=0,I=0,h=0,w=0,ak={processOptions:[],processRawData:[],processDatapoints:[],drawSeries:[],draw:[],bindEvents:[],drawOverlay:[],shutdown:[]},aq=this;aq.setData=aj;aq.setupGrid=t;aq.draw=W;aq.getPlaceholder=function(){return av};aq.getCanvas=function(){return az};aq.getPlotOffset=function(){return q};aq.width=function(){return h};aq.height=function(){return w};aq.offset=function(){var aB=y.offset();aB.left+=q.left;aB.top+=q.top;return aB};aq.getData=function(){return Q};aq.getAxes=function(){var aC={},aB;c.each(p.concat(aw),function(aD,aE){if(aE){aC[aE.direction+(aE.n!=1?aE.n:"")+"axis"]=aE}});return aC};aq.getXAxes=function(){return p};aq.getYAxes=function(){return aw};aq.c2p=C;aq.p2c=ar;aq.getOptions=function(){return O};aq.highlight=x;aq.unhighlight=T;aq.triggerRedrawOverlay=f;aq.pointOffset=function(aB){return{left:parseInt(p[aA(aB,"x")-1].p2c(+aB.x)+q.left),top:parseInt(aw[aA(aB,"y")-1].p2c(+aB.y)+q.top)}};aq.shutdown=ag;aq.resize=function(){B();g(az);g(ad)};aq.hooks=ak;F(aq);Z(J);X();aj(ai);t();W();ah();function an(aD,aB){aB=[aq].concat(aB);for(var aC=0;aC<aD.length;++aC){aD[aC].apply(this,aB)}}function F(){for(var aB=0;aB<af.length;++aB){var aC=af[aB];aC.init(aq);if(aC.options){c.extend(true,O,aC.options)}}}function Z(aC){var aB;c.extend(true,O,aC);if(O.xaxis.color==null){O.xaxis.color=O.grid.color}if(O.yaxis.color==null){O.yaxis.color=O.grid.color}if(O.xaxis.tickColor==null){O.xaxis.tickColor=O.grid.tickColor}if(O.yaxis.tickColor==null){O.yaxis.tickColor=O.grid.tickColor}if(O.grid.borderColor==null){O.grid.borderColor=O.grid.color}if(O.grid.tickColor==null){O.grid.tickColor=c.color.parse(O.grid.color).scale("a",0.22).toString()}for(aB=0;aB<Math.max(1,O.xaxes.length);++aB){O.xaxes[aB]=c.extend(true,{},O.xaxis,O.xaxes[aB])}for(aB=0;aB<Math.max(1,O.yaxes.length);++aB){O.yaxes[aB]=c.extend(true,{},O.yaxis,O.yaxes[aB])}if(O.xaxis.noTicks&&O.xaxis.ticks==null){O.xaxis.ticks=O.xaxis.noTicks}if(O.yaxis.noTicks&&O.yaxis.ticks==null){O.yaxis.ticks=O.yaxis.noTicks}if(O.x2axis){O.xaxes[1]=c.extend(true,{},O.xaxis,O.x2axis);O.xaxes[1].position="top"}if(O.y2axis){O.yaxes[1]=c.extend(true,{},O.yaxis,O.y2axis);O.yaxes[1].position="right"}if(O.grid.coloredAreas){O.grid.markings=O.grid.coloredAreas}if(O.grid.coloredAreasColor){O.grid.markingsColor=O.grid.coloredAreasColor}if(O.lines){c.extend(true,O.series.lines,O.lines)}if(O.points){c.extend(true,O.series.points,O.points)}if(O.bars){c.extend(true,O.series.bars,O.bars)}if(O.shadowSize!=null){O.series.shadowSize=O.shadowSize}for(aB=0;aB<O.xaxes.length;++aB){V(p,aB+1).options=O.xaxes[aB]}for(aB=0;aB<O.yaxes.length;++aB){V(aw,aB+1).options=O.yaxes[aB]}for(var aD in ak){if(O.hooks[aD]&&O.hooks[aD].length){ak[aD]=ak[aD].concat(O.hooks[aD])}}an(ak.processOptions,[O])}function aj(aB){Q=Y(aB);ax();z()}function Y(aE){var aC=[];for(var aB=0;aB<aE.length;++aB){var aD=c.extend(true,{},O.series);if(aE[aB].data!=null){aD.data=aE[aB].data;delete aE[aB].data;c.extend(true,aD,aE[aB]);aE[aB].data=aD.data}else{aD.data=aE[aB]}aC.push(aD)}return aC}function aA(aC,aD){var aB=aC[aD+"axis"];if(typeof aB=="object"){aB=aB.n}if(typeof aB!="number"){aB=1}return aB}function m(){return c.grep(p.concat(aw),function(aB){return aB})}function C(aE){var aC={},aB,aD;for(aB=0;aB<p.length;++aB){aD=p[aB];if(aD&&aD.used){aC["x"+aD.n]=aD.c2p(aE.left)}}for(aB=0;aB<aw.length;++aB){aD=aw[aB];if(aD&&aD.used){aC["y"+aD.n]=aD.c2p(aE.top)}}if(aC.x1!==undefined){aC.x=aC.x1}if(aC.y1!==undefined){aC.y=aC.y1}return aC}function ar(aF){var aD={},aC,aE,aB;for(aC=0;aC<p.length;++aC){aE=p[aC];if(aE&&aE.used){aB="x"+aE.n;if(aF[aB]==null&&aE.n==1){aB="x"}if(aF[aB]!=null){aD.left=aE.p2c(aF[aB]);break}}}for(aC=0;aC<aw.length;++aC){aE=aw[aC];if(aE&&aE.used){aB="y"+aE.n;if(aF[aB]==null&&aE.n==1){aB="y"}if(aF[aB]!=null){aD.top=aE.p2c(aF[aB]);break}}}return aD}function V(aC,aB){if(!aC[aB-1]){aC[aB-1]={n:aB,direction:aC==p?"x":"y",options:c.extend(true,{},aC==p?O.xaxis:O.yaxis)}}return aC[aB-1]}function ax(){var aG;var aM=Q.length,aB=[],aE=[];for(aG=0;aG<Q.length;++aG){var aJ=Q[aG].color;if(aJ!=null){--aM;if(typeof aJ=="number"){aE.push(aJ)}else{aB.push(c.color.parse(Q[aG].color))}}}for(aG=0;aG<aE.length;++aG){aM=Math.max(aM,aE[aG]+1)}var aC=[],aF=0;aG=0;while(aC.length<aM){var aI;if(O.colors.length==aG){aI=c.color.make(100,100,100)}else{aI=c.color.parse(O.colors[aG])}var aD=aF%2==1?-1:1;aI.scale("rgb",1+aD*Math.ceil(aF/2)*0.2);aC.push(aI);++aG;if(aG>=O.colors.length){aG=0;++aF}}var aH=0,aN;for(aG=0;aG<Q.length;++aG){aN=Q[aG];if(aN.color==null){aN.color=aC[aH].toString();++aH}else{if(typeof aN.color=="number"){aN.color=aC[aN.color].toString()}}if(aN.lines.show==null){var aL,aK=true;for(aL in aN){if(aN[aL]&&aN[aL].show){aK=false;break}}if(aK){aN.lines.show=true}}aN.xaxis=V(p,aA(aN,"x"));aN.yaxis=V(aw,aA(aN,"y"))}}function z(){var aO=Number.POSITIVE_INFINITY,aI=Number.NEGATIVE_INFINITY,aB=Number.MAX_VALUE,aU,aS,aR,aN,aD,aJ,aT,aP,aH,aG,aC,a0,aX,aL;function aF(a3,a2,a1){if(a2<a3.datamin&&a2!=-aB){a3.datamin=a2}if(a1>a3.datamax&&a1!=aB){a3.datamax=a1}}c.each(m(),function(a1,a2){a2.datamin=aO;a2.datamax=aI;a2.used=false});for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aJ.datapoints={points:[]};an(ak.processRawData,[aJ,aJ.data,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];var aZ=aJ.data,aW=aJ.datapoints.format;if(!aW){aW=[];aW.push({x:true,number:true,required:true});aW.push({y:true,number:true,required:true});if(aJ.bars.show||(aJ.lines.show&&aJ.lines.fill)){aW.push({y:true,number:true,required:false,defaultValue:0});if(aJ.bars.horizontal){delete aW[aW.length-1].y;aW[aW.length-1].x=true}}aJ.datapoints.format=aW}if(aJ.datapoints.pointsize!=null){continue}aJ.datapoints.pointsize=aW.length;aP=aJ.datapoints.pointsize;aT=aJ.datapoints.points;insertSteps=aJ.lines.show&&aJ.lines.steps;aJ.xaxis.used=aJ.yaxis.used=true;for(aS=aR=0;aS<aZ.length;++aS,aR+=aP){aL=aZ[aS];var aE=aL==null;if(!aE){for(aN=0;aN<aP;++aN){a0=aL[aN];aX=aW[aN];if(aX){if(aX.number&&a0!=null){a0=+a0;if(isNaN(a0)){a0=null}else{if(a0==Infinity){a0=aB}else{if(a0==-Infinity){a0=-aB}}}}if(a0==null){if(aX.required){aE=true}if(aX.defaultValue!=null){a0=aX.defaultValue}}}aT[aR+aN]=a0}}if(aE){for(aN=0;aN<aP;++aN){a0=aT[aR+aN];if(a0!=null){aX=aW[aN];if(aX.x){aF(aJ.xaxis,a0,a0)}if(aX.y){aF(aJ.yaxis,a0,a0)}}aT[aR+aN]=null}}else{if(insertSteps&&aR>0&&aT[aR-aP]!=null&&aT[aR-aP]!=aT[aR]&&aT[aR-aP+1]!=aT[aR+1]){for(aN=0;aN<aP;++aN){aT[aR+aP+aN]=aT[aR+aN]}aT[aR+1]=aT[aR-aP+1];aR+=aP}}}}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];an(ak.processDatapoints,[aJ,aJ.datapoints])}for(aU=0;aU<Q.length;++aU){aJ=Q[aU];aT=aJ.datapoints.points,aP=aJ.datapoints.pointsize;var aK=aO,aQ=aO,aM=aI,aV=aI;for(aS=0;aS<aT.length;aS+=aP){if(aT[aS]==null){continue}for(aN=0;aN<aP;++aN){a0=aT[aS+aN];aX=aW[aN];if(!aX||a0==aB||a0==-aB){continue}if(aX.x){if(a0<aK){aK=a0}if(a0>aM){aM=a0}}if(aX.y){if(a0<aQ){aQ=a0}if(a0>aV){aV=a0}}}}if(aJ.bars.show){var aY=aJ.bars.align=="left"?0:-aJ.bars.barWidth/2;if(aJ.bars.horizontal){aQ+=aY;aV+=aY+aJ.bars.barWidth}else{aK+=aY;aM+=aY+aJ.bars.barWidth}}aF(aJ.xaxis,aK,aM);aF(aJ.yaxis,aQ,aV)}c.each(m(),function(a1,a2){if(a2.datamin==aO){a2.datamin=null}if(a2.datamax==aI){a2.datamax=null}})}function j(aB,aC){var aD=document.createElement("canvas");aD.className=aC;aD.width=G;aD.height=I;if(!aB){c(aD).css({position:"absolute",left:0,top:0})}c(aD).appendTo(av);if(!aD.getContext){aD=window.G_vmlCanvasManager.initElement(aD)}aD.getContext("2d").save();return aD}function B(){G=av.width();I=av.height();if(G<=0||I<=0){throw"Invalid dimensions for plot, width = "+G+", height = "+I}}function g(aC){if(aC.width!=G){aC.width=G}if(aC.height!=I){aC.height=I}var aB=aC.getContext("2d");aB.restore();aB.save()}function X(){var aC,aB=av.children("canvas.base"),aD=av.children("canvas.overlay");if(aB.length==0||aD==0){av.html("");av.css({padding:0});if(av.css("position")=="static"){av.css("position","relative")}B();az=j(true,"base");ad=j(false,"overlay");aC=false}else{az=aB.get(0);ad=aD.get(0);aC=true}H=az.getContext("2d");A=ad.getContext("2d");y=c([ad,az]);if(aC){av.data("plot").shutdown();aq.resize();A.clearRect(0,0,G,I);y.unbind();av.children().not([az,ad]).remove()}av.data("plot",aq)}function ah(){if(O.grid.hoverable){y.mousemove(aa);y.mouseleave(l)}if(O.grid.clickable){y.click(R)}an(ak.bindEvents,[y])}function ag(){if(M){clearTimeout(M)}y.unbind("mousemove",aa);y.unbind("mouseleave",l);y.unbind("click",R);an(ak.shutdown,[y])}function r(aG){function aC(aH){return aH}var aF,aB,aD=aG.options.transform||aC,aE=aG.options.inverseTransform;if(aG.direction=="x"){aF=aG.scale=h/Math.abs(aD(aG.max)-aD(aG.min));aB=Math.min(aD(aG.max),aD(aG.min))}else{aF=aG.scale=w/Math.abs(aD(aG.max)-aD(aG.min));aF=-aF;aB=Math.max(aD(aG.max),aD(aG.min))}if(aD==aC){aG.p2c=function(aH){return(aH-aB)*aF}}else{aG.p2c=function(aH){return(aD(aH)-aB)*aF}}if(!aE){aG.c2p=function(aH){return aB+aH/aF}}else{aG.c2p=function(aH){return aE(aB+aH/aF)}}}function L(aD){var aB=aD.options,aF,aJ=aD.ticks||[],aI=[],aE,aK=aB.labelWidth,aG=aB.labelHeight,aC;function aH(aM,aL){return c('<div style="position:absolute;top:-10000px;'+aL+'font-size:smaller"><div class="'+aD.direction+"Axis "+aD.direction+aD.n+'Axis">'+aM.join("")+"</div></div>").appendTo(av)}if(aD.direction=="x"){if(aK==null){aK=Math.floor(G/(aJ.length>0?aJ.length:1))}if(aG==null){aI=[];for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel" style="float:left;width:'+aK+'px">'+aE+"</div>")}}if(aI.length>0){aI.push('<div style="clear:left"></div>');aC=aH(aI,"width:10000px;");aG=aC.height();aC.remove()}}}else{if(aK==null||aG==null){for(aF=0;aF<aJ.length;++aF){aE=aJ[aF].label;if(aE){aI.push('<div class="tickLabel">'+aE+"</div>")}}if(aI.length>0){aC=aH(aI,"");if(aK==null){aK=aC.children().width()}if(aG==null){aG=aC.find("div.tickLabel").height()}aC.remove()}}}if(aK==null){aK=0}if(aG==null){aG=0}aD.labelWidth=aK;aD.labelHeight=aG}function au(aD){var aC=aD.labelWidth,aL=aD.labelHeight,aH=aD.options.position,aF=aD.options.tickLength,aG=O.grid.axisMargin,aJ=O.grid.labelMargin,aK=aD.direction=="x"?p:aw,aE;var aB=c.grep(aK,function(aN){return aN&&aN.options.position==aH&&aN.reserveSpace});if(c.inArray(aD,aB)==aB.length-1){aG=0}if(aF==null){aF="full"}var aI=c.grep(aK,function(aN){return aN&&aN.reserveSpace});var aM=c.inArray(aD,aI)==0;if(!aM&&aF=="full"){aF=5}if(!isNaN(+aF)){aJ+=+aF}if(aD.direction=="x"){aL+=aJ;if(aH=="bottom"){q.bottom+=aL+aG;aD.box={top:I-q.bottom,height:aL}}else{aD.box={top:q.top+aG,height:aL};q.top+=aL+aG}}else{aC+=aJ;if(aH=="left"){aD.box={left:q.left+aG,width:aC};q.left+=aC+aG}else{q.right+=aC+aG;aD.box={left:G-q.right,width:aC}}}aD.position=aH;aD.tickLength=aF;aD.box.padding=aJ;aD.innermost=aM}function U(aB){if(aB.direction=="x"){aB.box.left=q.left;aB.box.width=h}else{aB.box.top=q.top;aB.box.height=w}}function t(){var aC,aE=m();c.each(aE,function(aF,aG){aG.show=aG.options.show;if(aG.show==null){aG.show=aG.used}aG.reserveSpace=aG.show||aG.options.reserveSpace;n(aG)});allocatedAxes=c.grep(aE,function(aF){return aF.reserveSpace});q.left=q.right=q.top=q.bottom=0;if(O.grid.show){c.each(allocatedAxes,function(aF,aG){S(aG);P(aG);ap(aG,aG.ticks);L(aG)});for(aC=allocatedAxes.length-1;aC>=0;--aC){au(allocatedAxes[aC])}var aD=O.grid.minBorderMargin;if(aD==null){aD=0;for(aC=0;aC<Q.length;++aC){aD=Math.max(aD,Q[aC].points.radius+Q[aC].points.lineWidth/2)}}for(var aB in q){q[aB]+=O.grid.borderWidth;q[aB]=Math.max(aD,q[aB])}}h=G-q.left-q.right;w=I-q.bottom-q.top;c.each(aE,function(aF,aG){r(aG)});if(O.grid.show){c.each(allocatedAxes,function(aF,aG){U(aG)});k()}o()}function n(aE){var aF=aE.options,aD=+(aF.min!=null?aF.min:aE.datamin),aB=+(aF.max!=null?aF.max:aE.datamax),aH=aB-aD;if(aH==0){var aC=aB==0?1:0.01;if(aF.min==null){aD-=aC}if(aF.max==null||aF.min!=null){aB+=aC}}else{var aG=aF.autoscaleMargin;if(aG!=null){if(aF.min==null){aD-=aH*aG;if(aD<0&&aE.datamin!=null&&aE.datamin>=0){aD=0}}if(aF.max==null){aB+=aH*aG;if(aB>0&&aE.datamax!=null&&aE.datamax<=0){aB=0}}}}aE.min=aD;aE.max=aB}function S(aG){var aM=aG.options;var aH;if(typeof aM.ticks=="number"&&aM.ticks>0){aH=aM.ticks}else{aH=0.3*Math.sqrt(aG.direction=="x"?G:I)}var aT=(aG.max-aG.min)/aH,aO,aB,aN,aR,aS,aQ,aI;if(aM.mode=="time"){var aJ={second:1000,minute:60*1000,hour:60*60*1000,day:24*60*60*1000,month:30*24*60*60*1000,year:365.2425*24*60*60*1000};var aK=[[1,"second"],[2,"second"],[5,"second"],[10,"second"],[30,"second"],[1,"minute"],[2,"minute"],[5,"minute"],[10,"minute"],[30,"minute"],[1,"hour"],[2,"hour"],[4,"hour"],[8,"hour"],[12,"hour"],[1,"day"],[2,"day"],[3,"day"],[0.25,"month"],[0.5,"month"],[1,"month"],[2,"month"],[3,"month"],[6,"month"],[1,"year"]];var aC=0;if(aM.minTickSize!=null){if(typeof aM.tickSize=="number"){aC=aM.tickSize}else{aC=aM.minTickSize[0]*aJ[aM.minTickSize[1]]}}for(var aS=0;aS<aK.length-1;++aS){if(aT<(aK[aS][0]*aJ[aK[aS][1]]+aK[aS+1][0]*aJ[aK[aS+1][1]])/2&&aK[aS][0]*aJ[aK[aS][1]]>=aC){break}}aO=aK[aS][0];aN=aK[aS][1];if(aN=="year"){aQ=Math.pow(10,Math.floor(Math.log(aT/aJ.year)/Math.LN10));aI=(aT/aJ.year)/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ}aG.tickSize=aM.tickSize||[aO,aN];aB=function(aX){var a2=[],a0=aX.tickSize[0],a3=aX.tickSize[1],a1=new Date(aX.min);var aW=a0*aJ[a3];if(a3=="second"){a1.setUTCSeconds(a(a1.getUTCSeconds(),a0))}if(a3=="minute"){a1.setUTCMinutes(a(a1.getUTCMinutes(),a0))}if(a3=="hour"){a1.setUTCHours(a(a1.getUTCHours(),a0))}if(a3=="month"){a1.setUTCMonth(a(a1.getUTCMonth(),a0))}if(a3=="year"){a1.setUTCFullYear(a(a1.getUTCFullYear(),a0))}a1.setUTCMilliseconds(0);if(aW>=aJ.minute){a1.setUTCSeconds(0)}if(aW>=aJ.hour){a1.setUTCMinutes(0)}if(aW>=aJ.day){a1.setUTCHours(0)}if(aW>=aJ.day*4){a1.setUTCDate(1)}if(aW>=aJ.year){a1.setUTCMonth(0)}var a5=0,a4=Number.NaN,aY;do{aY=a4;a4=a1.getTime();a2.push(a4);if(a3=="month"){if(a0<1){a1.setUTCDate(1);var aV=a1.getTime();a1.setUTCMonth(a1.getUTCMonth()+1);var aZ=a1.getTime();a1.setTime(a4+a5*aJ.hour+(aZ-aV)*a0);a5=a1.getUTCHours();a1.setUTCHours(0)}else{a1.setUTCMonth(a1.getUTCMonth()+a0)}}else{if(a3=="year"){a1.setUTCFullYear(a1.getUTCFullYear()+a0)}else{a1.setTime(a4+aW)}}}while(a4<aX.max&&a4!=aY);return a2};aR=function(aV,aY){var a0=new Date(aV);if(aM.timeformat!=null){return c.plot.formatDate(a0,aM.timeformat,aM.monthNames)}var aW=aY.tickSize[0]*aJ[aY.tickSize[1]];var aX=aY.max-aY.min;var aZ=(aM.twelveHourClock)?" %p":"";if(aW<aJ.minute){fmt="%h:%M:%S"+aZ}else{if(aW<aJ.day){if(aX<2*aJ.day){fmt="%h:%M"+aZ}else{fmt="%b %d %h:%M"+aZ}}else{if(aW<aJ.month){fmt="%b %d"}else{if(aW<aJ.year){if(aX<aJ.year){fmt="%b"}else{fmt="%b %y"}}else{fmt="%y"}}}}return c.plot.formatDate(a0,fmt,aM.monthNames)}}else{var aU=aM.tickDecimals;var aP=-Math.floor(Math.log(aT)/Math.LN10);if(aU!=null&&aP>aU){aP=aU}aQ=Math.pow(10,-aP);aI=aT/aQ;if(aI<1.5){aO=1}else{if(aI<3){aO=2;if(aI>2.25&&(aU==null||aP+1<=aU)){aO=2.5;++aP}}else{if(aI<7.5){aO=5}else{aO=10}}}aO*=aQ;if(aM.minTickSize!=null&&aO<aM.minTickSize){aO=aM.minTickSize}aG.tickDecimals=Math.max(0,aU!=null?aU:aP);aG.tickSize=aM.tickSize||aO;aB=function(aX){var aZ=[];var a0=a(aX.min,aX.tickSize),aW=0,aV=Number.NaN,aY;do{aY=aV;aV=a0+aW*aX.tickSize;aZ.push(aV);++aW}while(aV<aX.max&&aV!=aY);return aZ};aR=function(aV,aW){return aV.toFixed(aW.tickDecimals)}}if(aM.alignTicksWithAxis!=null){var aF=(aG.direction=="x"?p:aw)[aM.alignTicksWithAxis-1];if(aF&&aF.used&&aF!=aG){var aL=aB(aG);if(aL.length>0){if(aM.min==null){aG.min=Math.min(aG.min,aL[0])}if(aM.max==null&&aL.length>1){aG.max=Math.max(aG.max,aL[aL.length-1])}}aB=function(aX){var aY=[],aV,aW;for(aW=0;aW<aF.ticks.length;++aW){aV=(aF.ticks[aW].v-aF.min)/(aF.max-aF.min);aV=aX.min+aV*(aX.max-aX.min);aY.push(aV)}return aY};if(aG.mode!="time"&&aM.tickDecimals==null){var aE=Math.max(0,-Math.floor(Math.log(aT)/Math.LN10)+1),aD=aB(aG);if(!(aD.length>1&&/\..*0$/.test((aD[1]-aD[0]).toFixed(aE)))){aG.tickDecimals=aE}}}}aG.tickGenerator=aB;if(c.isFunction(aM.tickFormatter)){aG.tickFormatter=function(aV,aW){return""+aM.tickFormatter(aV,aW)}}else{aG.tickFormatter=aR}}function P(aF){var aH=aF.options.ticks,aG=[];if(aH==null||(typeof aH=="number"&&aH>0)){aG=aF.tickGenerator(aF)}else{if(aH){if(c.isFunction(aH)){aG=aH({min:aF.min,max:aF.max})}else{aG=aH}}}var aE,aB;aF.ticks=[];for(aE=0;aE<aG.length;++aE){var aC=null;var aD=aG[aE];if(typeof aD=="object"){aB=+aD[0];if(aD.length>1){aC=aD[1]}}else{aB=+aD}if(aC==null){aC=aF.tickFormatter(aB,aF)}if(!isNaN(aB)){aF.ticks.push({v:aB,label:aC})}}}function ap(aB,aC){if(aB.options.autoscaleMargin&&aC.length>0){if(aB.options.min==null){aB.min=Math.min(aB.min,aC[0].v)}if(aB.options.max==null&&aC.length>1){aB.max=Math.max(aB.max,aC[aC.length-1].v)}}}function W(){H.clearRect(0,0,G,I);var aC=O.grid;if(aC.show&&aC.backgroundColor){N()}if(aC.show&&!aC.aboveData){ac()}for(var aB=0;aB<Q.length;++aB){an(ak.drawSeries,[H,Q[aB]]);d(Q[aB])}an(ak.draw,[H]);if(aC.show&&aC.aboveData){ac()}}function D(aB,aI){var aE,aH,aG,aD,aF=m();for(i=0;i<aF.length;++i){aE=aF[i];if(aE.direction==aI){aD=aI+aE.n+"axis";if(!aB[aD]&&aE.n==1){aD=aI+"axis"}if(aB[aD]){aH=aB[aD].from;aG=aB[aD].to;break}}}if(!aB[aD]){aE=aI=="x"?p[0]:aw[0];aH=aB[aI+"1"];aG=aB[aI+"2"]}if(aH!=null&&aG!=null&&aH>aG){var aC=aH;aH=aG;aG=aC}return{from:aH,to:aG,axis:aE}}function N(){H.save();H.translate(q.left,q.top);H.fillStyle=am(O.grid.backgroundColor,w,0,"rgba(255, 255, 255, 0)");H.fillRect(0,0,h,w);H.restore()}function ac(){var aF;H.save();H.translate(q.left,q.top);var aH=O.grid.markings;if(aH){if(c.isFunction(aH)){var aK=aq.getAxes();aK.xmin=aK.xaxis.min;aK.xmax=aK.xaxis.max;aK.ymin=aK.yaxis.min;aK.ymax=aK.yaxis.max;aH=aH(aK)}for(aF=0;aF<aH.length;++aF){var aD=aH[aF],aC=D(aD,"x"),aI=D(aD,"y");if(aC.from==null){aC.from=aC.axis.min}if(aC.to==null){aC.to=aC.axis.max}if(aI.from==null){aI.from=aI.axis.min}if(aI.to==null){aI.to=aI.axis.max}if(aC.to<aC.axis.min||aC.from>aC.axis.max||aI.to<aI.axis.min||aI.from>aI.axis.max){continue}aC.from=Math.max(aC.from,aC.axis.min);aC.to=Math.min(aC.to,aC.axis.max);aI.from=Math.max(aI.from,aI.axis.min);aI.to=Math.min(aI.to,aI.axis.max);if(aC.from==aC.to&&aI.from==aI.to){continue}aC.from=aC.axis.p2c(aC.from);aC.to=aC.axis.p2c(aC.to);aI.from=aI.axis.p2c(aI.from);aI.to=aI.axis.p2c(aI.to);if(aC.from==aC.to||aI.from==aI.to){H.beginPath();H.strokeStyle=aD.color||O.grid.markingsColor;H.lineWidth=aD.lineWidth||O.grid.markingsLineWidth;H.moveTo(aC.from,aI.from);H.lineTo(aC.to,aI.to);H.stroke()}else{H.fillStyle=aD.color||O.grid.markingsColor;H.fillRect(aC.from,aI.to,aC.to-aC.from,aI.from-aI.to)}}}var aK=m(),aM=O.grid.borderWidth;for(var aE=0;aE<aK.length;++aE){var aB=aK[aE],aG=aB.box,aQ=aB.tickLength,aN,aL,aP,aJ;if(!aB.show||aB.ticks.length==0){continue}H.strokeStyle=aB.options.tickColor||c.color.parse(aB.options.color).scale("a",0.22).toString();H.lineWidth=1;if(aB.direction=="x"){aN=0;if(aQ=="full"){aL=(aB.position=="top"?0:w)}else{aL=aG.top-q.top+(aB.position=="top"?aG.height:0)}}else{aL=0;if(aQ=="full"){aN=(aB.position=="left"?0:h)}else{aN=aG.left-q.left+(aB.position=="left"?aG.width:0)}}if(!aB.innermost){H.beginPath();aP=aJ=0;if(aB.direction=="x"){aP=h}else{aJ=w}if(H.lineWidth==1){aN=Math.floor(aN)+0.5;aL=Math.floor(aL)+0.5}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ);H.stroke()}H.beginPath();for(aF=0;aF<aB.ticks.length;++aF){var aO=aB.ticks[aF].v;aP=aJ=0;if(aO<aB.min||aO>aB.max||(aQ=="full"&&aM>0&&(aO==aB.min||aO==aB.max))){continue}if(aB.direction=="x"){aN=aB.p2c(aO);aJ=aQ=="full"?-w:aQ;if(aB.position=="top"){aJ=-aJ}}else{aL=aB.p2c(aO);aP=aQ=="full"?-h:aQ;if(aB.position=="left"){aP=-aP}}if(H.lineWidth==1){if(aB.direction=="x"){aN=Math.floor(aN)+0.5}else{aL=Math.floor(aL)+0.5}}H.moveTo(aN,aL);H.lineTo(aN+aP,aL+aJ)}H.stroke()}if(aM){H.lineWidth=aM;H.strokeStyle=O.grid.borderColor;H.strokeRect(-aM/2,-aM/2,h+aM,w+aM)}H.restore()}function k(){av.find(".tickLabels").remove();var aG=['<div class="tickLabels" style="font-size:smaller">'];var aJ=m();for(var aD=0;aD<aJ.length;++aD){var aC=aJ[aD],aF=aC.box;if(!aC.show){continue}aG.push('<div class="'+aC.direction+"Axis "+aC.direction+aC.n+'Axis" style="color:'+aC.options.color+'">');for(var aE=0;aE<aC.ticks.length;++aE){var aH=aC.ticks[aE];if(!aH.label||aH.v<aC.min||aH.v>aC.max){continue}var aK={},aI;if(aC.direction=="x"){aI="center";aK.left=Math.round(q.left+aC.p2c(aH.v)-aC.labelWidth/2);if(aC.position=="bottom"){aK.top=aF.top+aF.padding}else{aK.bottom=I-(aF.top+aF.height-aF.padding)}}else{aK.top=Math.round(q.top+aC.p2c(aH.v)-aC.labelHeight/2);if(aC.position=="left"){aK.right=G-(aF.left+aF.width-aF.padding);aI="right"}else{aK.left=aF.left+aF.padding;aI="left"}}aK.width=aC.labelWidth;var aB=["position:absolute","text-align:"+aI];for(var aL in aK){aB.push(aL+":"+aK[aL]+"px")}aG.push('<div class="tickLabel" style="'+aB.join(";")+'">'+aH.label+"</div>")}aG.push("</div>")}aG.push("</div>");av.append(aG.join(""))}function d(aB){if(aB.lines.show){at(aB)}if(aB.bars.show){e(aB)}if(aB.points.show){ao(aB)}}function at(aE){function aD(aP,aQ,aI,aU,aT){var aV=aP.points,aJ=aP.pointsize,aN=null,aM=null;H.beginPath();for(var aO=aJ;aO<aV.length;aO+=aJ){var aL=aV[aO-aJ],aS=aV[aO-aJ+1],aK=aV[aO],aR=aV[aO+1];if(aL==null||aK==null){continue}if(aS<=aR&&aS<aT.min){if(aR<aT.min){continue}aL=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.min}else{if(aR<=aS&&aR<aT.min){if(aS<aT.min){continue}aK=(aT.min-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.min}}if(aS>=aR&&aS>aT.max){if(aR>aT.max){continue}aL=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aS=aT.max}else{if(aR>=aS&&aR>aT.max){if(aS>aT.max){continue}aK=(aT.max-aS)/(aR-aS)*(aK-aL)+aL;aR=aT.max}}if(aL<=aK&&aL<aU.min){if(aK<aU.min){continue}aS=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.min}else{if(aK<=aL&&aK<aU.min){if(aL<aU.min){continue}aR=(aU.min-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.min}}if(aL>=aK&&aL>aU.max){if(aK>aU.max){continue}aS=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aL=aU.max}else{if(aK>=aL&&aK>aU.max){if(aL>aU.max){continue}aR=(aU.max-aL)/(aK-aL)*(aR-aS)+aS;aK=aU.max}}if(aL!=aN||aS!=aM){H.moveTo(aU.p2c(aL)+aQ,aT.p2c(aS)+aI)}aN=aK;aM=aR;H.lineTo(aU.p2c(aK)+aQ,aT.p2c(aR)+aI)}H.stroke()}function aF(aI,aQ,aP){var aW=aI.points,aV=aI.pointsize,aN=Math.min(Math.max(0,aP.min),aP.max),aX=0,aU,aT=false,aM=1,aL=0,aR=0;while(true){if(aV>0&&aX>aW.length+aV){break}aX+=aV;var aZ=aW[aX-aV],aK=aW[aX-aV+aM],aY=aW[aX],aJ=aW[aX+aM];if(aT){if(aV>0&&aZ!=null&&aY==null){aR=aX;aV=-aV;aM=2;continue}if(aV<0&&aX==aL+aV){H.fill();aT=false;aV=-aV;aM=1;aX=aL=aR+aV;continue}}if(aZ==null||aY==null){continue}if(aZ<=aY&&aZ<aQ.min){if(aY<aQ.min){continue}aK=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.min}else{if(aY<=aZ&&aY<aQ.min){if(aZ<aQ.min){continue}aJ=(aQ.min-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.min}}if(aZ>=aY&&aZ>aQ.max){if(aY>aQ.max){continue}aK=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aZ=aQ.max}else{if(aY>=aZ&&aY>aQ.max){if(aZ>aQ.max){continue}aJ=(aQ.max-aZ)/(aY-aZ)*(aJ-aK)+aK;aY=aQ.max}}if(!aT){H.beginPath();H.moveTo(aQ.p2c(aZ),aP.p2c(aN));aT=true}if(aK>=aP.max&&aJ>=aP.max){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.max));H.lineTo(aQ.p2c(aY),aP.p2c(aP.max));continue}else{if(aK<=aP.min&&aJ<=aP.min){H.lineTo(aQ.p2c(aZ),aP.p2c(aP.min));H.lineTo(aQ.p2c(aY),aP.p2c(aP.min));continue}}var aO=aZ,aS=aY;if(aK<=aJ&&aK<aP.min&&aJ>=aP.min){aZ=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.min}else{if(aJ<=aK&&aJ<aP.min&&aK>=aP.min){aY=(aP.min-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.min}}if(aK>=aJ&&aK>aP.max&&aJ<=aP.max){aZ=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aK=aP.max}else{if(aJ>=aK&&aJ>aP.max&&aK<=aP.max){aY=(aP.max-aK)/(aJ-aK)*(aY-aZ)+aZ;aJ=aP.max}}if(aZ!=aO){H.lineTo(aQ.p2c(aO),aP.p2c(aK))}H.lineTo(aQ.p2c(aZ),aP.p2c(aK));H.lineTo(aQ.p2c(aY),aP.p2c(aJ));if(aY!=aS){H.lineTo(aQ.p2c(aY),aP.p2c(aJ));H.lineTo(aQ.p2c(aS),aP.p2c(aJ))}}}H.save();H.translate(q.left,q.top);H.lineJoin="round";var aG=aE.lines.lineWidth,aB=aE.shadowSize;if(aG>0&&aB>0){H.lineWidth=aB;H.strokeStyle="rgba(0,0,0,0.1)";var aH=Math.PI/18;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/2),Math.cos(aH)*(aG/2+aB/2),aE.xaxis,aE.yaxis);H.lineWidth=aB/2;aD(aE.datapoints,Math.sin(aH)*(aG/2+aB/4),Math.cos(aH)*(aG/2+aB/4),aE.xaxis,aE.yaxis)}H.lineWidth=aG;H.strokeStyle=aE.color;var aC=ae(aE.lines,aE.color,0,w);if(aC){H.fillStyle=aC;aF(aE.datapoints,aE.xaxis,aE.yaxis)}if(aG>0){aD(aE.datapoints,0,0,aE.xaxis,aE.yaxis)}H.restore()}function ao(aE){function aH(aN,aM,aU,aK,aS,aT,aQ,aJ){var aR=aN.points,aI=aN.pointsize;for(var aL=0;aL<aR.length;aL+=aI){var aP=aR[aL],aO=aR[aL+1];if(aP==null||aP<aT.min||aP>aT.max||aO<aQ.min||aO>aQ.max){continue}H.beginPath();aP=aT.p2c(aP);aO=aQ.p2c(aO)+aK;if(aJ=="circle"){H.arc(aP,aO,aM,0,aS?Math.PI:Math.PI*2,false)}else{aJ(H,aP,aO,aM,aS)}H.closePath();if(aU){H.fillStyle=aU;H.fill()}H.stroke()}}H.save();H.translate(q.left,q.top);var aG=aE.points.lineWidth,aC=aE.shadowSize,aB=aE.points.radius,aF=aE.points.symbol;if(aG>0&&aC>0){var aD=aC/2;H.lineWidth=aD;H.strokeStyle="rgba(0,0,0,0.1)";aH(aE.datapoints,aB,null,aD+aD/2,true,aE.xaxis,aE.yaxis,aF);H.strokeStyle="rgba(0,0,0,0.2)";aH(aE.datapoints,aB,null,aD/2,true,aE.xaxis,aE.yaxis,aF)}H.lineWidth=aG;H.strokeStyle=aE.color;aH(aE.datapoints,aB,ae(aE.points,aE.color),0,false,aE.xaxis,aE.yaxis,aF);H.restore()}function E(aN,aM,aV,aI,aQ,aF,aD,aL,aK,aU,aR,aC){var aE,aT,aJ,aP,aG,aB,aO,aH,aS;if(aR){aH=aB=aO=true;aG=false;aE=aV;aT=aN;aP=aM+aI;aJ=aM+aQ;if(aT<aE){aS=aT;aT=aE;aE=aS;aG=true;aB=false}}else{aG=aB=aO=true;aH=false;aE=aN+aI;aT=aN+aQ;aJ=aV;aP=aM;if(aP<aJ){aS=aP;aP=aJ;aJ=aS;aH=true;aO=false}}if(aT<aL.min||aE>aL.max||aP<aK.min||aJ>aK.max){return}if(aE<aL.min){aE=aL.min;aG=false}if(aT>aL.max){aT=aL.max;aB=false}if(aJ<aK.min){aJ=aK.min;aH=false}if(aP>aK.max){aP=aK.max;aO=false}aE=aL.p2c(aE);aJ=aK.p2c(aJ);aT=aL.p2c(aT);aP=aK.p2c(aP);if(aD){aU.beginPath();aU.moveTo(aE,aJ);aU.lineTo(aE,aP);aU.lineTo(aT,aP);aU.lineTo(aT,aJ);aU.fillStyle=aD(aJ,aP);aU.fill()}if(aC>0&&(aG||aB||aO||aH)){aU.beginPath();aU.moveTo(aE,aJ+aF);if(aG){aU.lineTo(aE,aP+aF)}else{aU.moveTo(aE,aP+aF)}if(aO){aU.lineTo(aT,aP+aF)}else{aU.moveTo(aT,aP+aF)}if(aB){aU.lineTo(aT,aJ+aF)}else{aU.moveTo(aT,aJ+aF)}if(aH){aU.lineTo(aE,aJ+aF)}else{aU.moveTo(aE,aJ+aF)}aU.stroke()}}function e(aD){function aC(aJ,aI,aL,aG,aK,aN,aM){var aO=aJ.points,aF=aJ.pointsize;for(var aH=0;aH<aO.length;aH+=aF){if(aO[aH]==null){continue}E(aO[aH],aO[aH+1],aO[aH+2],aI,aL,aG,aK,aN,aM,H,aD.bars.horizontal,aD.bars.lineWidth)}}H.save();H.translate(q.left,q.top);H.lineWidth=aD.bars.lineWidth;H.strokeStyle=aD.color;var aB=aD.bars.align=="left"?0:-aD.bars.barWidth/2;var aE=aD.bars.fill?function(aF,aG){return ae(aD.bars,aD.color,aF,aG)}:null;aC(aD.datapoints,aB,aB+aD.bars.barWidth,0,aE,aD.xaxis,aD.yaxis);H.restore()}function ae(aD,aB,aC,aF){var aE=aD.fill;if(!aE){return null}if(aD.fillColor){return am(aD.fillColor,aC,aF,aB)}var aG=c.color.parse(aB);aG.a=typeof aE=="number"?aE:0.4;aG.normalize();return aG.toString()}function o(){av.find(".legend").remove();if(!O.legend.show){return}var aH=[],aF=false,aN=O.legend.labelFormatter,aM,aJ;for(var aE=0;aE<Q.length;++aE){aM=Q[aE];aJ=aM.label;if(!aJ){continue}if(aE%O.legend.noColumns==0){if(aF){aH.push("</tr>")}aH.push("<tr>");aF=true}if(aN){aJ=aN(aJ,aM)}aH.push('<td class="legendColorBox"><div style="border:1px solid '+O.legend.labelBoxBorderColor+';padding:1px"><div style="width:4px;height:0;border:5px solid '+aM.color+';overflow:hidden"></div></div></td><td class="legendLabel">'+aJ+"</td>")}if(aF){aH.push("</tr>")}if(aH.length==0){return}var aL='<table style="font-size:smaller;color:'+O.grid.color+'">'+aH.join("")+"</table>";if(O.legend.container!=null){c(O.legend.container).html(aL)}else{var aI="",aC=O.legend.position,aD=O.legend.margin;if(aD[0]==null){aD=[aD,aD]}if(aC.charAt(0)=="n"){aI+="top:"+(aD[1]+q.top)+"px;"}else{if(aC.charAt(0)=="s"){aI+="bottom:"+(aD[1]+q.bottom)+"px;"}}if(aC.charAt(1)=="e"){aI+="right:"+(aD[0]+q.right)+"px;"}else{if(aC.charAt(1)=="w"){aI+="left:"+(aD[0]+q.left)+"px;"}}var aK=c('<div class="legend">'+aL.replace('style="','style="position:absolute;'+aI+";")+"</div>").appendTo(av);if(O.legend.backgroundOpacity!=0){var aG=O.legend.backgroundColor;if(aG==null){aG=O.grid.backgroundColor;if(aG&&typeof aG=="string"){aG=c.color.parse(aG)}else{aG=c.color.extract(aK,"background-color")}aG.a=1;aG=aG.toString()}var aB=aK.children();c('<div style="position:absolute;width:'+aB.width()+"px;height:"+aB.height()+"px;"+aI+"background-color:"+aG+';"> </div>').prependTo(aK).css("opacity",O.legend.backgroundOpacity)}}}var ab=[],M=null;function K(aI,aG,aD){var aO=O.grid.mouseActiveRadius,a0=aO*aO+1,aY=null,aR=false,aW,aU;for(aW=Q.length-1;aW>=0;--aW){if(!aD(Q[aW])){continue}var aP=Q[aW],aH=aP.xaxis,aF=aP.yaxis,aV=aP.datapoints.points,aT=aP.datapoints.pointsize,aQ=aH.c2p(aI),aN=aF.c2p(aG),aC=aO/aH.scale,aB=aO/aF.scale;if(aH.options.inverseTransform){aC=Number.MAX_VALUE}if(aF.options.inverseTransform){aB=Number.MAX_VALUE}if(aP.lines.show||aP.points.show){for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1];if(aK==null){continue}if(aK-aQ>aC||aK-aQ<-aC||aJ-aN>aB||aJ-aN<-aB){continue}var aM=Math.abs(aH.p2c(aK)-aI),aL=Math.abs(aF.p2c(aJ)-aG),aS=aM*aM+aL*aL;if(aS<a0){a0=aS;aY=[aW,aU/aT]}}}if(aP.bars.show&&!aY){var aE=aP.bars.align=="left"?0:-aP.bars.barWidth/2,aX=aE+aP.bars.barWidth;for(aU=0;aU<aV.length;aU+=aT){var aK=aV[aU],aJ=aV[aU+1],aZ=aV[aU+2];if(aK==null){continue}if(Q[aW].bars.horizontal?(aQ<=Math.max(aZ,aK)&&aQ>=Math.min(aZ,aK)&&aN>=aJ+aE&&aN<=aJ+aX):(aQ>=aK+aE&&aQ<=aK+aX&&aN>=Math.min(aZ,aJ)&&aN<=Math.max(aZ,aJ))){aY=[aW,aU/aT]}}}}if(aY){aW=aY[0];aU=aY[1];aT=Q[aW].datapoints.pointsize;return{datapoint:Q[aW].datapoints.points.slice(aU*aT,(aU+1)*aT),dataIndex:aU,series:Q[aW],seriesIndex:aW}}return null}function aa(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return aC.hoverable!=false})}}function l(aB){if(O.grid.hoverable){u("plothover",aB,function(aC){return false})}}function R(aB){u("plotclick",aB,function(aC){return aC.clickable!=false})}function u(aC,aB,aD){var aE=y.offset(),aH=aB.pageX-aE.left-q.left,aF=aB.pageY-aE.top-q.top,aJ=C({left:aH,top:aF});aJ.pageX=aB.pageX;aJ.pageY=aB.pageY;var aK=K(aH,aF,aD);if(aK){aK.pageX=parseInt(aK.series.xaxis.p2c(aK.datapoint[0])+aE.left+q.left);aK.pageY=parseInt(aK.series.yaxis.p2c(aK.datapoint[1])+aE.top+q.top)}if(O.grid.autoHighlight){for(var aG=0;aG<ab.length;++aG){var aI=ab[aG];if(aI.auto==aC&&!(aK&&aI.series==aK.series&&aI.point[0]==aK.datapoint[0]&&aI.point[1]==aK.datapoint[1])){T(aI.series,aI.point)}}if(aK){x(aK.series,aK.datapoint,aC)}}av.trigger(aC,[aJ,aK])}function f(){if(!M){M=setTimeout(s,30)}}function s(){M=null;A.save();A.clearRect(0,0,G,I);A.translate(q.left,q.top);var aC,aB;for(aC=0;aC<ab.length;++aC){aB=ab[aC];if(aB.series.bars.show){v(aB.series,aB.point)}else{ay(aB.series,aB.point)}}A.restore();an(ak.drawOverlay,[A])}function x(aD,aB,aF){if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){var aE=aD.datapoints.pointsize;aB=aD.datapoints.points.slice(aE*aB,aE*(aB+1))}var aC=al(aD,aB);if(aC==-1){ab.push({series:aD,point:aB,auto:aF});f()}else{if(!aF){ab[aC].auto=false}}}function T(aD,aB){if(aD==null&&aB==null){ab=[];f()}if(typeof aD=="number"){aD=Q[aD]}if(typeof aB=="number"){aB=aD.data[aB]}var aC=al(aD,aB);if(aC!=-1){ab.splice(aC,1);f()}}function al(aD,aE){for(var aB=0;aB<ab.length;++aB){var aC=ab[aB];if(aC.series==aD&&aC.point[0]==aE[0]&&aC.point[1]==aE[1]){return aB}}return -1}function ay(aE,aD){var aC=aD[0],aI=aD[1],aH=aE.xaxis,aG=aE.yaxis;if(aC<aH.min||aC>aH.max||aI<aG.min||aI>aG.max){return}var aF=aE.points.radius+aE.points.lineWidth/2;A.lineWidth=aF;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aB=1.5*aF,aC=aH.p2c(aC),aI=aG.p2c(aI);A.beginPath();if(aE.points.symbol=="circle"){A.arc(aC,aI,aB,0,2*Math.PI,false)}else{aE.points.symbol(A,aC,aI,aB,false)}A.closePath();A.stroke()}function v(aE,aB){A.lineWidth=aE.bars.lineWidth;A.strokeStyle=c.color.parse(aE.color).scale("a",0.5).toString();var aD=c.color.parse(aE.color).scale("a",0.5).toString();var aC=aE.bars.align=="left"?0:-aE.bars.barWidth/2;E(aB[0],aB[1],aB[2]||0,aC,aC+aE.bars.barWidth,0,function(){return aD},aE.xaxis,aE.yaxis,A,aE.bars.horizontal,aE.bars.lineWidth)}function am(aJ,aB,aH,aC){if(typeof aJ=="string"){return aJ}else{var aI=H.createLinearGradient(0,aH,0,aB);for(var aE=0,aD=aJ.colors.length;aE<aD;++aE){var aF=aJ.colors[aE];if(typeof aF!="string"){var aG=c.color.parse(aC);if(aF.brightness!=null){aG=aG.scale("rgb",aF.brightness)}if(aF.opacity!=null){aG.a*=aF.opacity}aF=aG.toString()}aI.addColorStop(aE/(aD-1),aF)}return aI}}}c.plot=function(g,e,d){var f=new b(c(g),e,d,c.plot.plugins);return f};c.plot.version="0.7";c.plot.plugins=[];c.plot.formatDate=function(l,f,h){var o=function(d){d=""+d;return d.length==1?"0"+d:d};var e=[];var p=false,j=false;var n=l.getUTCHours();var k=n<12;if(h==null){h=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]}if(f.search(/%p|%P/)!=-1){if(n>12){n=n-12}else{if(n==0){n=12}}}for(var g=0;g<f.length;++g){var m=f.charAt(g);if(p){switch(m){case"h":m=""+n;break;case"H":m=o(n);break;case"M":m=o(l.getUTCMinutes());break;case"S":m=o(l.getUTCSeconds());break;case"d":m=""+l.getUTCDate();break;case"m":m=""+(l.getUTCMonth()+1);break;case"y":m=""+l.getUTCFullYear();break;case"b":m=""+h[l.getUTCMonth()];break;case"p":m=(k)?("am"):("pm");break;case"P":m=(k)?("AM"):("PM");break;case"0":m="";j=true;break}if(m&&j){m=o(m);j=false}e.push(m);if(!j){p=false}}else{if(m=="%"){p=true}else{e.push(m)}}}return e.join("")};function a(e,d){return d*Math.floor(e/d)}})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.js
deleted file mode 100644
index f2b9760..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.js
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
-Flot plugin for adding panning and zooming capabilities to a plot.
-
-The default behaviour is double click and scrollwheel up/down to zoom
-in, drag to pan. The plugin defines plot.zoom({ center }),
-plot.zoomOut() and plot.pan(offset) so you easily can add custom
-controls. It also fires a "plotpan" and "plotzoom" event when
-something happens, useful for synchronizing plots.
-
-Options:
-
-  zoom: {
-    interactive: false
-    trigger: "dblclick" // or "click" for single click
-    amount: 1.5         // 2 = 200% (zoom in), 0.5 = 50% (zoom out)
-  }
-  
-  pan: {
-    interactive: false
-    cursor: "move"      // CSS mouse cursor value used when dragging, e.g. "pointer"
-    frameRate: 20
-  }
-
-  xaxis, yaxis, x2axis, y2axis: {
-    zoomRange: null  // or [number, number] (min range, max range) or false
-    panRange: null   // or [number, number] (min, max) or false
-  }
-  
-"interactive" enables the built-in drag/click behaviour. If you enable
-interactive for pan, then you'll have a basic plot that supports
-moving around; the same for zoom.
-
-"amount" specifies the default amount to zoom in (so 1.5 = 150%)
-relative to the current viewport.
-
-"cursor" is a standard CSS mouse cursor string used for visual
-feedback to the user when dragging.
-
-"frameRate" specifies the maximum number of times per second the plot
-will update itself while the user is panning around on it (set to null
-to disable intermediate pans, the plot will then not update until the
-mouse button is released).
-
-"zoomRange" is the interval in which zooming can happen, e.g. with
-zoomRange: [1, 100] the zoom will never scale the axis so that the
-difference between min and max is smaller than 1 or larger than 100.
-You can set either end to null to ignore, e.g. [1, null]. If you set
-zoomRange to false, zooming on that axis will be disabled.
-
-"panRange" confines the panning to stay within a range, e.g. with
-panRange: [-10, 20] panning stops at -10 in one end and at 20 in the
-other. Either can be null, e.g. [-10, null]. If you set
-panRange to false, panning on that axis will be disabled.
-
-Example API usage:
-
-  plot = $.plot(...);
-  
-  // zoom default amount in on the pixel (10, 20) 
-  plot.zoom({ center: { left: 10, top: 20 } });
-
-  // zoom out again
-  plot.zoomOut({ center: { left: 10, top: 20 } });
-
-  // zoom 200% in on the pixel (10, 20) 
-  plot.zoom({ amount: 2, center: { left: 10, top: 20 } });
-  
-  // pan 100 pixels to the left and 20 down
-  plot.pan({ left: -100, top: 20 })
-
-Here, "center" specifies where the center of the zooming should
-happen. Note that this is defined in pixel space, not the space of the
-data points (you can use the p2c helpers on the axes in Flot to help
-you convert between these).
-
-"amount" is the amount to zoom the viewport relative to the current
-range, so 1 is 100% (i.e. no change), 1.5 is 150% (zoom in), 0.7 is
-70% (zoom out). You can set the default in the options.
-  
-*/
-
-
-// First two dependencies, jquery.event.drag.js and
-// jquery.mousewheel.js, we put them inline here to save people the
-// effort of downloading them.
-
-/*
-jquery.event.drag.js ~ v1.5 ~ Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)  
-Licensed under the MIT License ~ http://threedubmedia.googlecode.com/files/MIT-LICENSE.txt
-*/
-(function(E){E.fn.drag=function(L,K,J){if(K){this.bind("dragstart",L)}if(J){this.bind("dragend",J)}return !L?this.trigger("drag"):this.bind("drag",K?K:L)};var A=E.event,B=A.special,F=B.drag={not:":input",distance:0,which:1,dragging:false,setup:function(J){J=E.extend({distance:F.distance,which:F.which,not:F.not},J||{});J.distance=I(J.distance);A.add(this,"mousedown",H,J);if(this.attachEvent){this.attachEvent("ondragstart",D)}},teardown:function(){A.remove(this,"mousedown",H);if(this===F.dragging){F.dragging=F.proxy=false}G(this,true);if(this.detachEvent){this.detachEvent("ondragstart",D)}}};B.dragstart=B.dragend={setup:function(){},teardown:function(){}};function H(L){var K=this,J,M=L.data||{};if(M.elem){K=L.dragTarget=M.elem;L.dragProxy=F.proxy||K;L.cursorOffsetX=M.pageX-M.left;L.cursorOffsetY=M.pageY-M.top;L.offsetX=L.pageX-L.cursorOffsetX;L.offsetY=L.pageY-L.cursorOffsetY}else{if(F.dragging||(M.which>0&&L.which!=M.which)||E(L.target).is(M.not)){return }}switch(L.type){case"mousedown":E.extend(M,E(K).offset(),{elem:K,target:L.target,pageX:L.pageX,pageY:L.pageY});A.add(document,"mousemove mouseup",H,M);G(K,false);F.dragging=null;return false;case !F.dragging&&"mousemove":if(I(L.pageX-M.pageX)+I(L.pageY-M.pageY)<M.distance){break}L.target=M.target;J=C(L,"dragstart",K);if(J!==false){F.dragging=K;F.proxy=L.dragProxy=E(J||K)[0]}case"mousemove":if(F.dragging){J=C(L,"drag",K);if(B.drop){B.drop.allowed=(J!==false);B.drop.handler(L)}if(J!==false){break}L.type="mouseup"}case"mouseup":A.remove(document,"mousemove mouseup",H);if(F.dragging){if(B.drop){B.drop.handler(L)}C(L,"dragend",K)}G(K,true);F.dragging=F.proxy=M.elem=false;break}return true}function C(M,K,L){M.type=K;var J=E.event.handle.call(L,M);return J===false?false:J||M.result}function I(J){return Math.pow(J,2)}function D(){return(F.dragging===false)}function G(K,J){if(!K){return }K.unselectable=J?"off":"on";K.onselectstart=function(){return J};if(K.style){K.style.MozUserSelect=J?"":"none"}}})(jQuery);
-
-
-/* jquery.mousewheel.min.js
- * Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
- * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
- *
- * Version: 3.0.2
- * 
- * Requires: 1.2.2+
- */
-(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(f){var d=[].slice.call(arguments,1),g=0,e=true;f=c.event.fix(f||window.event);f.type="mousewheel";if(f.wheelDelta){g=f.wheelDelta/120}if(f.detail){g=-f.detail/3}d.unshift(f,g);return c.event.handle.apply(this,d)}})(jQuery);
-
-
-
-
-(function ($) {
-    var options = {
-        xaxis: {
-            zoomRange: null, // or [number, number] (min range, max range)
-            panRange: null // or [number, number] (min, max)
-        },
-        zoom: {
-            interactive: false,
-            trigger: "dblclick", // or "click" for single click
-            amount: 1.5 // how much to zoom relative to current position, 2 = 200% (zoom in), 0.5 = 50% (zoom out)
-        },
-        pan: {
-            interactive: false,
-            cursor: "move",
-            frameRate: 20
-        }
-    };
-
-    function init(plot) {
-        function onZoomClick(e, zoomOut) {
-            var c = plot.offset();
-            c.left = e.pageX - c.left;
-            c.top = e.pageY - c.top;
-            if (zoomOut)
-                plot.zoomOut({ center: c });
-            else
-                plot.zoom({ center: c });
-        }
-
-        function onMouseWheel(e, delta) {
-            onZoomClick(e, delta < 0);
-            return false;
-        }
-        
-        var prevCursor = 'default', prevPageX = 0, prevPageY = 0,
-            panTimeout = null;
-
-        function onDragStart(e) {
-            if (e.which != 1)  // only accept left-click
-                return false;
-            var c = plot.getPlaceholder().css('cursor');
-            if (c)
-                prevCursor = c;
-            plot.getPlaceholder().css('cursor', plot.getOptions().pan.cursor);
-            prevPageX = e.pageX;
-            prevPageY = e.pageY;
-        }
-        
-        function onDrag(e) {
-            var frameRate = plot.getOptions().pan.frameRate;
-            if (panTimeout || !frameRate)
-                return;
-
-            panTimeout = setTimeout(function () {
-                plot.pan({ left: prevPageX - e.pageX,
-                           top: prevPageY - e.pageY });
-                prevPageX = e.pageX;
-                prevPageY = e.pageY;
-                                                    
-                panTimeout = null;
-            }, 1 / frameRate * 1000);
-        }
-
-        function onDragEnd(e) {
-            if (panTimeout) {
-                clearTimeout(panTimeout);
-                panTimeout = null;
-            }
-                    
-            plot.getPlaceholder().css('cursor', prevCursor);
-            plot.pan({ left: prevPageX - e.pageX,
-                       top: prevPageY - e.pageY });
-        }
-        
-        function bindEvents(plot, eventHolder) {
-            var o = plot.getOptions();
-            if (o.zoom.interactive) {
-                eventHolder[o.zoom.trigger](onZoomClick);
-                eventHolder.mousewheel(onMouseWheel);
-            }
-
-            if (o.pan.interactive) {
-                eventHolder.bind("dragstart", { distance: 10 }, onDragStart);
-                eventHolder.bind("drag", onDrag);
-                eventHolder.bind("dragend", onDragEnd);
-            }
-        }
-
-        plot.zoomOut = function (args) {
-            if (!args)
-                args = {};
-            
-            if (!args.amount)
-                args.amount = plot.getOptions().zoom.amount
-
-            args.amount = 1 / args.amount;
-            plot.zoom(args);
-        }
-        
-        plot.zoom = function (args) {
-            if (!args)
-                args = {};
-            
-            var c = args.center,
-                amount = args.amount || plot.getOptions().zoom.amount,
-                w = plot.width(), h = plot.height();
-
-            if (!c)
-                c = { left: w / 2, top: h / 2 };
-                
-            var xf = c.left / w,
-                yf = c.top / h,
-                minmax = {
-                    x: {
-                        min: c.left - xf * w / amount,
-                        max: c.left + (1 - xf) * w / amount
-                    },
-                    y: {
-                        min: c.top - yf * h / amount,
-                        max: c.top + (1 - yf) * h / amount
-                    }
-                };
-
-            $.each(plot.getAxes(), function(_, axis) {
-                var opts = axis.options,
-                    min = minmax[axis.direction].min,
-                    max = minmax[axis.direction].max,
-                    zr = opts.zoomRange;
-
-                if (zr === false) // no zooming on this axis
-                    return;
-                    
-                min = axis.c2p(min);
-                max = axis.c2p(max);
-                if (min > max) {
-                    // make sure min < max
-                    var tmp = min;
-                    min = max;
-                    max = tmp;
-                }
-
-                var range = max - min;
-                if (zr &&
-                    ((zr[0] != null && range < zr[0]) ||
-                     (zr[1] != null && range > zr[1])))
-                    return;
-            
-                opts.min = min;
-                opts.max = max;
-            });
-            
-            plot.setupGrid();
-            plot.draw();
-            
-            if (!args.preventEvent)
-                plot.getPlaceholder().trigger("plotzoom", [ plot ]);
-        }
-
-        plot.pan = function (args) {
-            var delta = {
-                x: +args.left,
-                y: +args.top
-            };
-
-            if (isNaN(delta.x))
-                delta.x = 0;
-            if (isNaN(delta.y))
-                delta.y = 0;
-
-            $.each(plot.getAxes(), function (_, axis) {
-                var opts = axis.options,
-                    min, max, d = delta[axis.direction];
-
-                min = axis.c2p(axis.p2c(axis.min) + d),
-                max = axis.c2p(axis.p2c(axis.max) + d);
-
-                var pr = opts.panRange;
-                if (pr === false) // no panning on this axis
-                    return;
-                
-                if (pr) {
-                    // check whether we hit the wall
-                    if (pr[0] != null && pr[0] > min) {
-                        d = pr[0] - min;
-                        min += d;
-                        max += d;
-                    }
-                    
-                    if (pr[1] != null && pr[1] < max) {
-                        d = pr[1] - max;
-                        min += d;
-                        max += d;
-                    }
-                }
-                
-                opts.min = min;
-                opts.max = max;
-            });
-            
-            plot.setupGrid();
-            plot.draw();
-            
-            if (!args.preventEvent)
-                plot.getPlaceholder().trigger("plotpan", [ plot ]);
-        }
-
-        function shutdown(plot, eventHolder) {
-            eventHolder.unbind(plot.getOptions().zoom.trigger, onZoomClick);
-            eventHolder.unbind("mousewheel", onMouseWheel);
-            eventHolder.unbind("dragstart", onDragStart);
-            eventHolder.unbind("drag", onDrag);
-            eventHolder.unbind("dragend", onDragEnd);
-            if (panTimeout)
-                clearTimeout(panTimeout);
-        }
-        
-        plot.hooks.bindEvents.push(bindEvents);
-        plot.hooks.shutdown.push(shutdown);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'navigate',
-        version: '1.3'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.min.js
deleted file mode 100644
index ecf63c9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.navigate.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(i){i.fn.drag=function(j,k,l){if(k){this.bind("dragstart",j)}if(l){this.bind("dragend",l)}return !j?this.trigger("drag"):this.bind("drag",k?k:j)};var d=i.event,c=d.special,h=c.drag={not:":input",distance:0,which:1,dragging:false,setup:function(j){j=i.extend({distance:h.distance,which:h.which,not:h.not},j||{});j.distance=e(j.distance);d.add(this,"mousedown",f,j);if(this.attachEvent){this.attachEvent("ondragstart",a)}},teardown:function(){d.remove(this,"mousedown",f);if(this===h.dragging){h.dragging=h.proxy=false}g(this,true);if(this.detachEvent){this.detachEvent("ondragstart",a)}}};c.dragstart=c.dragend={setup:function(){},teardown:function(){}};function f(j){var k=this,l,m=j.data||{};if(m.elem){k=j.dragTarget=m.elem;j.dragProxy=h.proxy||k;j.cursorOffsetX=m.pageX-m.left;j.cursorOffsetY=m.pageY-m.top;j.offsetX=j.pageX-j.cursorOffsetX;j.offsetY=j.pageY-j.cursorOffsetY}else{if(h.dragging||(m.which>0&&j.which!=m.which)||i(j.target).is(m.not)){return}}switch(j.type){case"mousedown":i.extend(m,i(k).offset(),{elem:k,target:j.target,pageX:j.pageX,pageY:j.pageY});d.add(document,"mousemove mouseup",f,m);g(k,false);h.dragging=null;return false;case !h.dragging&&"mousemove":if(e(j.pageX-m.pageX)+e(j.pageY-m.pageY)<m.distance){break}j.target=m.target;l=b(j,"dragstart",k);if(l!==false){h.dragging=k;h.proxy=j.dragProxy=i(l||k)[0]}case"mousemove":if(h.dragging){l=b(j,"drag",k);if(c.drop){c.drop.allowed=(l!==false);c.drop.handler(j)}if(l!==false){break}j.type="mouseup"}case"mouseup":d.remove(document,"mousemove mouseup",f);if(h.dragging){if(c.drop){c.drop.handler(j)}b(j,"dragend",k)}g(k,true);h.dragging=h.proxy=m.elem=false;break}return true}function b(m,k,j){m.type=k;var l=i.event.handle.call(j,m);return l===false?false:l||m.result}function e(j){return Math.pow(j,2)}function a(){return(h.dragging===false)}function g(j,k){if(!j){return}j.unselectable=k?"off":"on";j.onselectstart=function(){return k};if(j.style){j.style.MozUserSelect=k?"":"none"}}})(jQuery);(function(f){var e=["DOMMouseScroll","mousewheel"];f.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var a=e.length;a;){this.addEventListener(e[--a],d,false)}}else{this.onmousewheel=d}},teardown:function(){if(this.removeEventListener){for(var a=e.length;a;){this.removeEventListener(e[--a],d,false)}}else{this.onmousewheel=null}}};f.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}});function d(b){var h=[].slice.call(arguments,1),a=0,c=true;b=f.event.fix(b||window.event);b.type="mousewheel";if(b.wheelDelta){a=b.wheelDelta/120}if(b.detail){a=-b.detail/3}h.unshift(b,a);return f.event.handle.apply(this,h)}})(jQuery);(function(b){var a={xaxis:{zoomRange:null,panRange:null},zoom:{interactive:false,trigger:"dblclick",amount:1.5},pan:{interactive:false,cursor:"move",frameRate:20}};function c(o){function m(q,p){var r=o.offset();r.left=q.pageX-r.left;r.top=q.pageY-r.top;if(p){o.zoomOut({center:r})}else{o.zoom({center:r})}}function d(p,q){m(p,q<0);return false}var i="default",g=0,e=0,n=null;function f(p){if(p.which!=1){return false}var q=o.getPlaceholder().css("cursor");if(q){i=q}o.getPlaceholder().css("cursor",o.getOptions().pan.cursor);g=p.pageX;e=p.pageY}function j(q){var p=o.getOptions().pan.frameRate;if(n||!p){return}n=setTimeout(function(){o.pan({left:g-q.pageX,top:e-q.pageY});g=q.pageX;e=q.pageY;n=null},1/p*1000)}function h(p){if(n){clearTimeout(n);n=null}o.getPlaceholder().css("cursor",i);o.pan({left:g-p.pageX,top:e-p.pageY})}function l(q,p){var r=q.getOptions();if(r.zoom.interactive){p[r.zoom.trigger](m);p.mousewheel(d)}if(r.pan.interactive){p.bind("dragstart",{distance:10},f);p.bind("drag",j);p.bind("dragend",h)}}o.zoomOut=function(p){if(!p){p={}}if(!p.amount){p.amount=o.getOptions().zoom.amount}p.amount=1/p.amount;o.zoom(p)};o.zoom=function(q){if(!q){q={}}var x=q.center,r=q.amount||o.getOptions().zoom.amount,p=o.width(),t=o.height();if(!x){x={left:p/2,top:t/2}}var s=x.left/p,v=x.top/t,u={x:{min:x.left-s*p/r,max:x.left+(1-s)*p/r},y:{min:x.top-v*t/r,max:x.top+(1-v)*t/r}};b.each(o.getAxes(),function(z,C){var D=C.options,B=u[C.direction].min,w=u[C.direction].max,E=D.zoomRange;if(E===false){return}B=C.c2p(B);w=C.c2p(w);if(B>w){var A=B;B=w;w=A}var y=w-B;if(E&&((E[0]!=null&&y<E[0])||(E[1]!=null&&y>E[1]))){return}D.min=B;D.max=w});o.setupGrid();o.draw();if(!q.preventEvent){o.getPlaceholder().trigger("plotzoom",[o])}};o.pan=function(p){var q={x:+p.left,y:+p.top};if(isNaN(q.x)){q.x=0}if(isNaN(q.y)){q.y=0}b.each(o.getAxes(),function(s,u){var v=u.options,t,r,w=q[u.direction];t=u.c2p(u.p2c(u.min)+w),r=u.c2p(u.p2c(u.max)+w);var x=v.panRange;if(x===false){return}if(x){if(x[0]!=null&&x[0]>t){w=x[0]-t;t+=w;r+=w}if(x[1]!=null&&x[1]<r){w=x[1]-r;t+=w;r+=w}}v.min=t;v.max=r});o.setupGrid();o.draw();if(!p.preventEvent){o.getPlaceholder().trigger("plotpan",[o])}};function k(q,p){p.unbind(q.getOptions().zoom.trigger,m);p.unbind("mousewheel",d);p.unbind("dragstart",f);p.unbind("drag",j);p.unbind("dragend",h);if(n){clearTimeout(n)}}o.hooks.bindEvents.push(l);o.hooks.shutdown.push(k)}b.plot.plugins.push({init:c,options:a,name:"navigate",version:"1.3"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.js
deleted file mode 100644
index 70941dd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.js
+++ /dev/null
@@ -1,750 +0,0 @@
-/*
-Flot plugin for rendering pie charts. The plugin assumes the data is 
-coming is as a single data value for each series, and each of those 
-values is a positive value or zero (negative numbers don't make 
-any sense and will cause strange effects). The data values do 
-NOT need to be passed in as percentage values because it 
-internally calculates the total and percentages.
-
-* Created by Brian Medendorp, June 2009
-* Updated November 2009 with contributions from: btburnett3, Anthony Aragues and Xavi Ivars
-
-* Changes:
-	2009-10-22: lineJoin set to round
-	2009-10-23: IE full circle fix, donut
-	2009-11-11: Added basic hover from btburnett3 - does not work in IE, and center is off in Chrome and Opera
-	2009-11-17: Added IE hover capability submitted by Anthony Aragues
-	2009-11-18: Added bug fix submitted by Xavi Ivars (issues with arrays when other JS libraries are included as well)
-		
-
-Available options are:
-series: {
-	pie: {
-		show: true/false
-		radius: 0-1 for percentage of fullsize, or a specified pixel length, or 'auto'
-		innerRadius: 0-1 for percentage of fullsize or a specified pixel length, for creating a donut effect
-		startAngle: 0-2 factor of PI used for starting angle (in radians) i.e 3/2 starts at the top, 0 and 2 have the same result
-		tilt: 0-1 for percentage to tilt the pie, where 1 is no tilt, and 0 is completely flat (nothing will show)
-		offset: {
-			top: integer value to move the pie up or down
-			left: integer value to move the pie left or right, or 'auto'
-		},
-		stroke: {
-			color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#FFF')
-			width: integer pixel width of the stroke
-		},
-		label: {
-			show: true/false, or 'auto'
-			formatter:  a user-defined function that modifies the text/style of the label text
-			radius: 0-1 for percentage of fullsize, or a specified pixel length
-			background: {
-				color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#000')
-				opacity: 0-1
-			},
-			threshold: 0-1 for the percentage value at which to hide labels (if they're too small)
-		},
-		combine: {
-			threshold: 0-1 for the percentage value at which to combine slices (if they're too small)
-			color: any hexidecimal color value (other formats may or may not work, so best to stick with something like '#CCC'), if null, the plugin will automatically use the color of the first slice to be combined
-			label: any text value of what the combined slice should be labeled
-		}
-		highlight: {
-			opacity: 0-1
-		}
-	}
-}
-
-More detail and specific examples can be found in the included HTML file.
-
-*/
-
-(function ($) 
-{
-	function init(plot) // this is the "body" of the plugin
-	{
-		var canvas = null;
-		var target = null;
-		var maxRadius = null;
-		var centerLeft = null;
-		var centerTop = null;
-		var total = 0;
-		var redraw = true;
-		var redrawAttempts = 10;
-		var shrink = 0.95;
-		var legendWidth = 0;
-		var processed = false;
-		var raw = false;
-		
-		// interactive variables	
-		var highlights = [];	
-	
-		// add hook to determine if pie plugin in enabled, and then perform necessary operations
-		plot.hooks.processOptions.push(checkPieEnabled);
-		plot.hooks.bindEvents.push(bindEvents);	
-
-		// check to see if the pie plugin is enabled
-		function checkPieEnabled(plot, options)
-		{
-			if (options.series.pie.show)
-			{
-				//disable grid
-				options.grid.show = false;
-				
-				// set labels.show
-				if (options.series.pie.label.show=='auto')
-					if (options.legend.show)
-						options.series.pie.label.show = false;
-					else
-						options.series.pie.label.show = true;
-				
-				// set radius
-				if (options.series.pie.radius=='auto')
-					if (options.series.pie.label.show)
-						options.series.pie.radius = 3/4;
-					else
-						options.series.pie.radius = 1;
-						
-				// ensure sane tilt
-				if (options.series.pie.tilt>1)
-					options.series.pie.tilt=1;
-				if (options.series.pie.tilt<0)
-					options.series.pie.tilt=0;
-			
-				// add processData hook to do transformations on the data
-				plot.hooks.processDatapoints.push(processDatapoints);
-				plot.hooks.drawOverlay.push(drawOverlay);	
-				
-				// add draw hook
-				plot.hooks.draw.push(draw);
-			}
-		}
-	
-		// bind hoverable events
-		function bindEvents(plot, eventHolder) 		
-		{		
-			var options = plot.getOptions();
-			
-			if (options.series.pie.show && options.grid.hoverable)
-				eventHolder.unbind('mousemove').mousemove(onMouseMove);
-				
-			if (options.series.pie.show && options.grid.clickable)
-				eventHolder.unbind('click').click(onClick);
-		}	
-		
-
-		// debugging function that prints out an object
-		function alertObject(obj)
-		{
-			var msg = '';
-			function traverse(obj, depth)
-			{
-				if (!depth)
-					depth = 0;
-				for (var i = 0; i < obj.length; ++i)
-				{
-					for (var j=0; j<depth; j++)
-						msg += '\t';
-				
-					if( typeof obj[i] == "object")
-					{	// its an object
-						msg += ''+i+':\n';
-						traverse(obj[i], depth+1);
-					}
-					else
-					{	// its a value
-						msg += ''+i+': '+obj[i]+'\n';
-					}
-				}
-			}
-			traverse(obj);
-			alert(msg);
-		}
-		
-		function calcTotal(data)
-		{
-			for (var i = 0; i < data.length; ++i)
-			{
-				var item = parseFloat(data[i].data[0][1]);
-				if (item)
-					total += item;
-			}
-		}	
-		
-		function processDatapoints(plot, series, data, datapoints) 
-		{	
-			if (!processed)
-			{
-				processed = true;
-			
-				canvas = plot.getCanvas();
-				target = $(canvas).parent();
-				options = plot.getOptions();
-			
-				plot.setData(combine(plot.getData()));
-			}
-		}
-		
-		function setupPie()
-		{
-			legendWidth = target.children().filter('.legend').children().width();
-		
-			// calculate maximum radius and center point
-			maxRadius =  Math.min(canvas.width,(canvas.height/options.series.pie.tilt))/2;
-			centerTop = (canvas.height/2)+options.series.pie.offset.top;
-			centerLeft = (canvas.width/2);
-			
-			if (options.series.pie.offset.left=='auto')
-				if (options.legend.position.match('w'))
-					centerLeft += legendWidth/2;
-				else
-					centerLeft -= legendWidth/2;
-			else
-				centerLeft += options.series.pie.offset.left;
-					
-			if (centerLeft<maxRadius)
-				centerLeft = maxRadius;
-			else if (centerLeft>canvas.width-maxRadius)
-				centerLeft = canvas.width-maxRadius;
-		}
-		
-		function fixData(data)
-		{
-			for (var i = 0; i < data.length; ++i)
-			{
-				if (typeof(data[i].data)=='number')
-					data[i].data = [[1,data[i].data]];
-				else if (typeof(data[i].data)=='undefined' || typeof(data[i].data[0])=='undefined')
-				{
-					if (typeof(data[i].data)!='undefined' && typeof(data[i].data.label)!='undefined')
-						data[i].label = data[i].data.label; // fix weirdness coming from flot
-					data[i].data = [[1,0]];
-					
-				}
-			}
-			return data;
-		}
-		
-		function combine(data)
-		{
-			data = fixData(data);
-			calcTotal(data);
-			var combined = 0;
-			var numCombined = 0;
-			var color = options.series.pie.combine.color;
-			
-			var newdata = [];
-			for (var i = 0; i < data.length; ++i)
-			{
-				// make sure its a number
-				data[i].data[0][1] = parseFloat(data[i].data[0][1]);
-				if (!data[i].data[0][1])
-					data[i].data[0][1] = 0;
-					
-				if (data[i].data[0][1]/total<=options.series.pie.combine.threshold)
-				{
-					combined += data[i].data[0][1];
-					numCombined++;
-					if (!color)
-						color = data[i].color;
-				}				
-				else
-				{
-					newdata.push({
-						data: [[1,data[i].data[0][1]]], 
-						color: data[i].color, 
-						label: data[i].label,
-						angle: (data[i].data[0][1]*(Math.PI*2))/total,
-						percent: (data[i].data[0][1]/total*100)
-					});
-				}
-			}
-			if (numCombined>0)
-				newdata.push({
-					data: [[1,combined]], 
-					color: color, 
-					label: options.series.pie.combine.label,
-					angle: (combined*(Math.PI*2))/total,
-					percent: (combined/total*100)
-				});
-			return newdata;
-		}		
-		
-		function draw(plot, newCtx)
-		{
-			if (!target) return; // if no series were passed
-			ctx = newCtx;
-		
-			setupPie();
-			var slices = plot.getData();
-		
-			var attempts = 0;
-			while (redraw && attempts<redrawAttempts)
-			{
-				redraw = false;
-				if (attempts>0)
-					maxRadius *= shrink;
-				attempts += 1;
-				clear();
-				if (options.series.pie.tilt<=0.8)
-					drawShadow();
-				drawPie();
-			}
-			if (attempts >= redrawAttempts) {
-				clear();
-				target.prepend('<div class="error">Could not draw pie with labels contained inside canvas</div>');
-			}
-			
-			if ( plot.setSeries && plot.insertLegend )
-			{
-				plot.setSeries(slices);
-				plot.insertLegend();
-			}
-			
-			// we're actually done at this point, just defining internal functions at this point
-			
-			function clear()
-			{
-				ctx.clearRect(0,0,canvas.width,canvas.height);
-				target.children().filter('.pieLabel, .pieLabelBackground').remove();
-			}
-			
-			function drawShadow()
-			{
-				var shadowLeft = 5;
-				var shadowTop = 15;
-				var edge = 10;
-				var alpha = 0.02;
-			
-				// set radius
-				if (options.series.pie.radius>1)
-					var radius = options.series.pie.radius;
-				else
-					var radius = maxRadius * options.series.pie.radius;
-					
-				if (radius>=(canvas.width/2)-shadowLeft || radius*options.series.pie.tilt>=(canvas.height/2)-shadowTop || radius<=edge)
-					return;	// shadow would be outside canvas, so don't draw it
-			
-				ctx.save();
-				ctx.translate(shadowLeft,shadowTop);
-				ctx.globalAlpha = alpha;
-				ctx.fillStyle = '#000';
-
-				// center and rotate to starting position
-				ctx.translate(centerLeft,centerTop);
-				ctx.scale(1, options.series.pie.tilt);
-				
-				//radius -= edge;
-				for (var i=1; i<=edge; i++)
-				{
-					ctx.beginPath();
-					ctx.arc(0,0,radius,0,Math.PI*2,false);
-					ctx.fill();
-					radius -= i;
-				}	
-				
-				ctx.restore();
-			}
-			
-			function drawPie()
-			{
-				startAngle = Math.PI*options.series.pie.startAngle;
-				
-				// set radius
-				if (options.series.pie.radius>1)
-					var radius = options.series.pie.radius;
-				else
-					var radius = maxRadius * options.series.pie.radius;
-				
-				// center and rotate to starting position
-				ctx.save();
-				ctx.translate(centerLeft,centerTop);
-				ctx.scale(1, options.series.pie.tilt);
-				//ctx.rotate(startAngle); // start at top; -- This doesn't work properly in Opera
-				
-				// draw slices
-				ctx.save();
-				var currentAngle = startAngle;
-				for (var i = 0; i < slices.length; ++i)
-				{
-					slices[i].startAngle = currentAngle;
-					drawSlice(slices[i].angle, slices[i].color, true);
-				}
-				ctx.restore();
-				
-				// draw slice outlines
-				ctx.save();
-				ctx.lineWidth = options.series.pie.stroke.width;
-				currentAngle = startAngle;
-				for (var i = 0; i < slices.length; ++i)
-					drawSlice(slices[i].angle, options.series.pie.stroke.color, false);
-				ctx.restore();
-					
-				// draw donut hole
-				drawDonutHole(ctx);
-				
-				// draw labels
-				if (options.series.pie.label.show)
-					drawLabels();
-				
-				// restore to original state
-				ctx.restore();
-				
-				function drawSlice(angle, color, fill)
-				{	
-					if (angle<=0)
-						return;
-				
-					if (fill)
-						ctx.fillStyle = color;
-					else
-					{
-						ctx.strokeStyle = color;
-						ctx.lineJoin = 'round';
-					}
-						
-					ctx.beginPath();
-					if (Math.abs(angle - Math.PI*2) > 0.000000001)
-						ctx.moveTo(0,0); // Center of the pie
-					else if ($.browser.msie)
-						angle -= 0.0001;
-					//ctx.arc(0,0,radius,0,angle,false); // This doesn't work properly in Opera
-					ctx.arc(0,0,radius,currentAngle,currentAngle+angle,false);
-					ctx.closePath();
-					//ctx.rotate(angle); // This doesn't work properly in Opera
-					currentAngle += angle;
-					
-					if (fill)
-						ctx.fill();
-					else
-						ctx.stroke();
-				}
-				
-				function drawLabels()
-				{
-					var currentAngle = startAngle;
-					
-					// set radius
-					if (options.series.pie.label.radius>1)
-						var radius = options.series.pie.label.radius;
-					else
-						var radius = maxRadius * options.series.pie.label.radius;
-					
-					for (var i = 0; i < slices.length; ++i)
-					{
-						if (slices[i].percent >= options.series.pie.label.threshold*100)
-							drawLabel(slices[i], currentAngle, i);
-						currentAngle += slices[i].angle;
-					}
-					
-					function drawLabel(slice, startAngle, index)
-					{
-						if (slice.data[0][1]==0)
-							return;
-							
-						// format label text
-						var lf = options.legend.labelFormatter, text, plf = options.series.pie.label.formatter;
-						if (lf)
-							text = lf(slice.label, slice);
-						else
-							text = slice.label;
-						if (plf)
-							text = plf(text, slice);
-							
-						var halfAngle = ((startAngle+slice.angle) + startAngle)/2;
-						var x = centerLeft + Math.round(Math.cos(halfAngle) * radius);
-						var y = centerTop + Math.round(Math.sin(halfAngle) * radius) * options.series.pie.tilt;
-						
-						var html = '<span class="pieLabel" id="pieLabel'+index+'" style="position:absolute;top:' + y + 'px;left:' + x + 'px;">' + text + "</span>";
-						target.append(html);
-						var label = target.children('#pieLabel'+index);
-						var labelTop = (y - label.height()/2);
-						var labelLeft = (x - label.width()/2);
-						label.css('top', labelTop);
-						label.css('left', labelLeft);
-						
-						// check to make sure that the label is not outside the canvas
-						if (0-labelTop>0 || 0-labelLeft>0 || canvas.height-(labelTop+label.height())<0 || canvas.width-(labelLeft+label.width())<0)
-							redraw = true;
-						
-						if (options.series.pie.label.background.opacity != 0) {
-							// put in the transparent background separately to avoid blended labels and label boxes
-							var c = options.series.pie.label.background.color;
-							if (c == null) {
-								c = slice.color;
-							}
-							var pos = 'top:'+labelTop+'px;left:'+labelLeft+'px;';
-							$('<div class="pieLabelBackground" style="position:absolute;width:' + label.width() + 'px;height:' + label.height() + 'px;' + pos +'background-color:' + c + ';"> </div>').insertBefore(label).css('opacity', options.series.pie.label.background.opacity);
-						}
-					} // end individual label function
-				} // end drawLabels function
-			} // end drawPie function
-		} // end draw function
-		
-		// Placed here because it needs to be accessed from multiple locations 
-		function drawDonutHole(layer)
-		{
-			// draw donut hole
-			if(options.series.pie.innerRadius > 0)
-			{
-				// subtract the center
-				layer.save();
-				innerRadius = options.series.pie.innerRadius > 1 ? options.series.pie.innerRadius : maxRadius * options.series.pie.innerRadius;
-				layer.globalCompositeOperation = 'destination-out'; // this does not work with excanvas, but it will fall back to using the stroke color
-				layer.beginPath();
-				layer.fillStyle = options.series.pie.stroke.color;
-				layer.arc(0,0,innerRadius,0,Math.PI*2,false);
-				layer.fill();
-				layer.closePath();
-				layer.restore();
-				
-				// add inner stroke
-				layer.save();
-				layer.beginPath();
-				layer.strokeStyle = options.series.pie.stroke.color;
-				layer.arc(0,0,innerRadius,0,Math.PI*2,false);
-				layer.stroke();
-				layer.closePath();
-				layer.restore();
-				// TODO: add extra shadow inside hole (with a mask) if the pie is tilted.
-			}
-		}
-		
-		//-- Additional Interactive related functions --
-		
-		function isPointInPoly(poly, pt)
-		{
-			for(var c = false, i = -1, l = poly.length, j = l - 1; ++i < l; j = i)
-				((poly[i][1] <= pt[1] && pt[1] < poly[j][1]) || (poly[j][1] <= pt[1] && pt[1]< poly[i][1]))
-				&& (pt[0] < (poly[j][0] - poly[i][0]) * (pt[1] - poly[i][1]) / (poly[j][1] - poly[i][1]) + poly[i][0])
-				&& (c = !c);
-			return c;
-		}
-		
-		function findNearbySlice(mouseX, mouseY)
-		{
-			var slices = plot.getData(),
-				options = plot.getOptions(),
-				radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;
-			
-			for (var i = 0; i < slices.length; ++i) 
-			{
-				var s = slices[i];	
-				
-				if(s.pie.show)
-				{
-					ctx.save();
-					ctx.beginPath();
-					ctx.moveTo(0,0); // Center of the pie
-					//ctx.scale(1, options.series.pie.tilt);	// this actually seems to break everything when here.
-					ctx.arc(0,0,radius,s.startAngle,s.startAngle+s.angle,false);
-					ctx.closePath();
-					x = mouseX-centerLeft;
-					y = mouseY-centerTop;
-					if(ctx.isPointInPath)
-					{
-						if (ctx.isPointInPath(mouseX-centerLeft, mouseY-centerTop))
-						{
-							//alert('found slice!');
-							ctx.restore();
-							return {datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i};
-						}
-					}
-					else
-					{
-						// excanvas for IE doesn;t support isPointInPath, this is a workaround. 
-						p1X = (radius * Math.cos(s.startAngle));
-						p1Y = (radius * Math.sin(s.startAngle));
-						p2X = (radius * Math.cos(s.startAngle+(s.angle/4)));
-						p2Y = (radius * Math.sin(s.startAngle+(s.angle/4)));
-						p3X = (radius * Math.cos(s.startAngle+(s.angle/2)));
-						p3Y = (radius * Math.sin(s.startAngle+(s.angle/2)));
-						p4X = (radius * Math.cos(s.startAngle+(s.angle/1.5)));
-						p4Y = (radius * Math.sin(s.startAngle+(s.angle/1.5)));
-						p5X = (radius * Math.cos(s.startAngle+s.angle));
-						p5Y = (radius * Math.sin(s.startAngle+s.angle));
-						arrPoly = [[0,0],[p1X,p1Y],[p2X,p2Y],[p3X,p3Y],[p4X,p4Y],[p5X,p5Y]];
-						arrPoint = [x,y];
-						// TODO: perhaps do some mathmatical trickery here with the Y-coordinate to compensate for pie tilt?
-						if(isPointInPoly(arrPoly, arrPoint))
-						{
-							ctx.restore();
-							return {datapoint: [s.percent, s.data], dataIndex: 0, series: s, seriesIndex: i};
-						}			
-					}
-					ctx.restore();
-				}
-			}
-			
-			return null;
-		}
-
-		function onMouseMove(e) 
-		{
-			triggerClickHoverEvent('plothover', e);
-		}
-		
-        function onClick(e) 
-		{
-			triggerClickHoverEvent('plotclick', e);
-        }
-
-		// trigger click or hover event (they send the same parameters so we share their code)
-		function triggerClickHoverEvent(eventname, e) 
-		{
-			var offset = plot.offset(),
-				canvasX = parseInt(e.pageX - offset.left),
-				canvasY =  parseInt(e.pageY - offset.top),
-				item = findNearbySlice(canvasX, canvasY);
-			
-			if (options.grid.autoHighlight) 
-			{
-				// clear auto-highlights
-				for (var i = 0; i < highlights.length; ++i) 
-				{
-					var h = highlights[i];
-					if (h.auto == eventname && !(item && h.series == item.series))
-						unhighlight(h.series);
-				}
-			}
-			
-			// highlight the slice
-			if (item) 
-			    highlight(item.series, eventname);
-				
-			// trigger any hover bind events
-			var pos = { pageX: e.pageX, pageY: e.pageY };
-			target.trigger(eventname, [ pos, item ]);	
-		}
-
-		function highlight(s, auto) 
-		{
-			if (typeof s == "number")
-				s = series[s];
-
-			var i = indexOfHighlight(s);
-			if (i == -1) 
-			{
-				highlights.push({ series: s, auto: auto });
-				plot.triggerRedrawOverlay();
-			}
-			else if (!auto)
-				highlights[i].auto = false;
-		}
-
-		function unhighlight(s) 
-		{
-			if (s == null) 
-			{
-				highlights = [];
-				plot.triggerRedrawOverlay();
-			}
-			
-			if (typeof s == "number")
-				s = series[s];
-
-			var i = indexOfHighlight(s);
-			if (i != -1) 
-			{
-				highlights.splice(i, 1);
-				plot.triggerRedrawOverlay();
-			}
-		}
-
-		function indexOfHighlight(s) 
-		{
-			for (var i = 0; i < highlights.length; ++i) 
-			{
-				var h = highlights[i];
-				if (h.series == s)
-					return i;
-			}
-			return -1;
-		}
-
-		function drawOverlay(plot, octx) 
-		{
-			//alert(options.series.pie.radius);
-			var options = plot.getOptions();
-			//alert(options.series.pie.radius);
-			
-			var radius = options.series.pie.radius > 1 ? options.series.pie.radius : maxRadius * options.series.pie.radius;
-
-			octx.save();
-			octx.translate(centerLeft, centerTop);
-			octx.scale(1, options.series.pie.tilt);
-			
-			for (i = 0; i < highlights.length; ++i) 
-				drawHighlight(highlights[i].series);
-			
-			drawDonutHole(octx);
-
-			octx.restore();
-
-			function drawHighlight(series) 
-			{
-				if (series.angle < 0) return;
-				
-				//octx.fillStyle = parseColor(options.series.pie.highlight.color).scale(null, null, null, options.series.pie.highlight.opacity).toString();
-				octx.fillStyle = "rgba(255, 255, 255, "+options.series.pie.highlight.opacity+")"; // this is temporary until we have access to parseColor
-				
-				octx.beginPath();
-				if (Math.abs(series.angle - Math.PI*2) > 0.000000001)
-					octx.moveTo(0,0); // Center of the pie
-				octx.arc(0,0,radius,series.startAngle,series.startAngle+series.angle,false);
-				octx.closePath();
-				octx.fill();
-			}
-			
-		}	
-		
-	} // end init (plugin body)
-	
-	// define pie specific options and their default values
-	var options = {
-		series: {
-			pie: {
-				show: false,
-				radius: 'auto',	// actual radius of the visible pie (based on full calculated radius if <=1, or hard pixel value)
-				innerRadius:0, /* for donut */
-				startAngle: 3/2,
-				tilt: 1,
-				offset: {
-					top: 0,
-					left: 'auto'
-				},
-				stroke: {
-					color: '#FFF',
-					width: 1
-				},
-				label: {
-					show: 'auto',
-					formatter: function(label, slice){
-						return '<div style="font-size:x-small;text-align:center;padding:2px;color:'+slice.color+';">'+label+'<br/>'+Math.round(slice.percent)+'%</div>';
-					},	// formatter function
-					radius: 1,	// radius at which to place the labels (based on full calculated radius if <=1, or hard pixel value)
-					background: {
-						color: null,
-						opacity: 0
-					},
-					threshold: 0	// percentage at which to hide the label (i.e. the slice is too narrow)
-				},
-				combine: {
-					threshold: -1,	// percentage at which to combine little slices into one larger slice
-					color: null,	// color to give the new slice (auto-generated if null)
-					label: 'Other'	// label to give the new slice
-				},
-				highlight: {
-					//color: '#FFF',		// will add this functionality once parseColor is available
-					opacity: 0.5
-				}
-			}
-		}
-	};
-    
-	$.plot.plugins.push({
-		init: init,
-		options: options,
-		name: "pie",
-		version: "1.0"
-	});
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.min.js
deleted file mode 100644
index b7bf870..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.pie.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(b){function c(D){var h=null;var L=null;var n=null;var B=null;var p=null;var M=0;var F=true;var o=10;var w=0.95;var A=0;var d=false;var z=false;var j=[];D.hooks.processOptions.push(g);D.hooks.bindEvents.push(e);function g(O,N){if(N.series.pie.show){N.grid.show=false;if(N.series.pie.label.show=="auto"){if(N.legend.show){N.series.pie.label.show=false}else{N.series.pie.label.show=true}}if(N.series.pie.radius=="auto"){if(N.series.pie.label.show){N.series.pie.radius=3/4}else{N.series.pie.radius=1}}if(N.series.pie.tilt>1){N.series.pie.tilt=1}if(N.series.pie.tilt<0){N.series.pie.tilt=0}O.hooks.processDatapoints.push(E);O.hooks.drawOverlay.push(H);O.hooks.draw.push(r)}}function e(P,N){var O=P.getOptions();if(O.series.pie.show&&O.grid.hoverable){N.unbind("mousemove").mousemove(t)}if(O.series.pie.show&&O.grid.clickable){N.unbind("click").click(l)}}function G(O){var P="";function N(S,T){if(!T){T=0}for(var R=0;R<S.length;++R){for(var Q=0;Q<T;Q++){P+="\t"}if(typeof S[R]=="object"){P+=""+R+":\n";N(S[R],T+1)}else{P+=""+R+": "+S[R]+"\n"}}}N(O);alert(P)}function q(P){for(var N=0;N<P.length;++N){var O=parseFloat(P[N].data[0][1]);if(O){M+=O}}}function E(Q,N,O,P){if(!d){d=true;h=Q.getCanvas();L=b(h).parent();a=Q.getOptions();Q.setData(K(Q.getData()))}}function I(){A=L.children().filter(".legend").children().width();n=Math.min(h.width,(h.height/a.series.pie.tilt))/2;p=(h.height/2)+a.series.pie.offset.top;B=(h.width/2);if(a.series.pie.offset.left=="auto"){if(a.legend.position.match("w")){B+=A/2}else{B-=A/2}}else{B+=a.series.pie.offset.left}if(B<n){B=n}else{if(B>h.width-n){B=h.width-n}}}function v(O){for(var N=0;N<O.length;++N){if(typeof(O[N].data)=="number"){O[N].data=[[1,O[N].data]]}else{if(typeof(O[N].data)=="undefined"||typeof(O[N].data[0])=="undefined"){if(typeof(O[N].data)!="undefined"&&typeof(O[N].data.label)!="undefined"){O[N].label=O[N].data.label}O[N].data=[[1,0]]}}}return O}function K(Q){Q=v(Q);q(Q);var P=0;var S=0;var N=a.series.pie.combine.color;var R=[];for(var O=0;O<Q.length;++O){Q[O].data[0][1]=parseFloat(Q[O].data[0][1]);if(!Q[O].data[0][1]){Q[O].data[0][1]=0}if(Q[O].data[0][1]/M<=a.series.pie.combine.threshold){P+=Q[O].data[0][1];S++;if(!N){N=Q[O].color}}else{R.push({data:[[1,Q[O].data[0][1]]],color:Q[O].color,label:Q[O].label,angle:(Q[O].data[0][1]*(Math.PI*2))/M,percent:(Q[O].data[0][1]/M*100)})}}if(S>0){R.push({data:[[1,P]],color:N,label:a.series.pie.combine.label,angle:(P*(Math.PI*2))/M,percent:(P/M*100)})}return R}function r(S,Q){if(!L){return}ctx=Q;I();var T=S.getData();var P=0;while(F&&P<o){F=false;if(P>0){n*=w}P+=1;N();if(a.series.pie.tilt<=0.8){O()}R()}if(P>=o){N();L.prepend('<div class="error">Could not draw pie with labels contained inside canvas</div>')}if(S.setSeries&&S.insertLegend){S.setSeries(T);S.insertLegend()}function N(){ctx.clearRect(0,0,h.width,h.height);L.children().filter(".pieLabel, .pieLabelBackground").remove()}function O(){var Z=5;var Y=15;var W=10;var X=0.02;if(a.series.pie.radius>1){var U=a.series.pie.radius}else{var U=n*a.series.pie.radius}if(U>=(h.width/2)-Z||U*a.series.pie.tilt>=(h.height/2)-Y||U<=W){return}ctx.save();ctx.translate(Z,Y);ctx.globalAlpha=X;ctx.fillStyle="#000";ctx.translate(B,p);ctx.scale(1,a.series.pie.tilt);for(var V=1;V<=W;V++){ctx.beginPath();ctx.arc(0,0,U,0,Math.PI*2,false);ctx.fill();U-=V}ctx.restore()}function R(){startAngle=Math.PI*a.series.pie.startAngle;if(a.series.pie.radius>1){var U=a.series.pie.radius}else{var U=n*a.series.pie.radius}ctx.save();ctx.translate(B,p);ctx.scale(1,a.series.pie.tilt);ctx.save();var Y=startAngle;for(var W=0;W<T.length;++W){T[W].startAngle=Y;X(T[W].angle,T[W].color,true)}ctx.restore();ctx.save();ctx.lineWidth=a.series.pie.stroke.width;Y=startAngle;for(var W=0;W<T.length;++W){X(T[W].angle,a.series.pie.stroke.color,false)}ctx.restore();J(ctx);if(a.series.pie.label.show){V()}ctx.restore();function X(ab,Z,aa){if(ab<=0){return}if(aa){ctx.fillStyle=Z}else{ctx.strokeStyle=Z;ctx.lineJoin="round"}ctx.beginPath();if(Math.abs(ab-Math.PI*2)>1e-9){ctx.moveTo(0,0)}else{if(b.browser.msie){ab-=0.0001}}ctx.arc(0,0,U,Y,Y+ab,false);ctx.closePath();Y+=ab;if(aa){ctx.fill()}else{ctx.stroke()}}function V(){var ac=startAngle;if(a.series.pie.label.radius>1){var Z=a.series.pie.label.radius}else{var Z=n*a.series.pie.label.radius}for(var ab=0;ab<T.length;++ab){if(T[ab].percent>=a.series.pie.label.threshold*100){aa(T[ab],ac,ab)}ac+=T[ab].angle}function aa(ap,ai,ag){if(ap.data[0][1]==0){return}var ar=a.legend.labelFormatter,aq,ae=a.series.pie.label.formatter;if(ar){aq=ar(ap.label,ap)}else{aq=ap.label}if(ae){aq=ae(aq,ap)}var aj=((ai+ap.angle)+ai)/2;var ao=B+Math.round(Math.cos(aj)*Z);var am=p+Math.round(Math.sin(aj)*Z)*a.series.pie.tilt;var af='<span class="pieLabel" id="pieLabel'+ag+'" style="position:absolute;top:'+am+"px;left:"+ao+'px;">'+aq+"</span>";L.append(af);var an=L.children("#pieLabel"+ag);var ad=(am-an.height()/2);var ah=(ao-an.width()/2);an.css("top",ad);an.css("left",ah);if(0-ad>0||0-ah>0||h.height-(ad+an.height())<0||h.width-(ah+an.width())<0){F=true}if(a.series.pie.label.background.opacity!=0){var ak=a.series.pie.label.background.color;if(ak==null){ak=ap.color}var al="top:"+ad+"px;left:"+ah+"px;";b('<div class="pieLabelBackground" style="position:absolute;width:'+an.width()+"px;height:"+an.height()+"px;"+al+"background-color:"+ak+';"> </div>').insertBefore(an).css("opacity",a.series.pie.label.background.opacity)}}}}}function J(N){if(a.series.pie.innerRadius>0){N.save();innerRadius=a.series.pie.innerRadius>1?a.series.pie.innerRadius:n*a.series.pie.innerRadius;N.globalCompositeOperation="destination-out";N.beginPath();N.fillStyle=a.series.pie.stroke.color;N.arc(0,0,innerRadius,0,Math.PI*2,false);N.fill();N.closePath();N.restore();N.save();N.beginPath();N.strokeStyle=a.series.pie.stroke.color;N.arc(0,0,innerRadius,0,Math.PI*2,false);N.stroke();N.closePath();N.restore()}}function s(Q,R){for(var S=false,P=-1,N=Q.length,O=N-1;++P<N;O=P){((Q[P][1]<=R[1]&&R[1]<Q[O][1])||(Q[O][1]<=R[1]&&R[1]<Q[P][1]))&&(R[0]<(Q[O][0]-Q[P][0])*(R[1]-Q[P][1])/(Q[O][1]-Q[P][1])+Q[P][0])&&(S=!S)}return S}function u(R,P){var T=D.getData(),O=D.getOptions(),N=O.series.pie.radius>1?O.series.pie.radius:n*O.series.pie.radius;for(var Q=0;Q<T.length;++Q){var S=T[Q];if(S.pie.show){ctx.save();ctx.beginPath();ctx.moveTo(0,0);ctx.arc(0,0,N,S.startAngle,S.startAngle+S.angle,false);ctx.closePath();x=R-B;y=P-p;if(ctx.isPointInPath){if(ctx.isPointInPath(R-B,P-p)){ctx.restore();return{datapoint:[S.percent,S.data],dataIndex:0,series:S,seriesIndex:Q}}}else{p1X=(N*Math.cos(S.startAngle));p1Y=(N*Math.sin(S.startAngle));p2X=(N*Math.cos(S.startAngle+(S.angle/4)));p2Y=(N*Math.sin(S.startAngle+(S.angle/4)));p3X=(N*Math.cos(S.startAngle+(S.angle/2)));p3Y=(N*Math.sin(S.startAngle+(S.angle/2)));p4X=(N*Math.cos(S.startAngle+(S.angle/1.5)));p4Y=(N*Math.sin(S.startAngle+(S.angle/1.5)));p5X=(N*Math.cos(S.startAngle+S.angle));p5Y=(N*Math.sin(S.startAngle+S.angle));arrPoly=[[0,0],[p1X,p1Y],[p2X,p2Y],[p3X,p3Y],[p4X,p4Y],[p5X,p5Y]];arrPoint=[x,y];if(s(arrPoly,arrPoint)){ctx.restore();return{datapoint:[S.percent,S.data],dataIndex:0,series:S,seriesIndex:Q}}}ctx.restore()}}return null}function t(N){m("plothover",N)}function l(N){m("plotclick",N)}function m(N,T){var O=D.offset(),R=parseInt(T.pageX-O.left),P=parseInt(T.pageY-O.top),V=u(R,P);if(a.grid.autoHighlight){for(var Q=0;Q<j.length;++Q){var S=j[Q];if(S.auto==N&&!(V&&S.series==V.series)){f(S.series)}}}if(V){k(V.series,N)}var U={pageX:T.pageX,pageY:T.pageY};L.trigger(N,[U,V])}function k(O,P){if(typeof O=="number"){O=series[O]}var N=C(O);if(N==-1){j.push({series:O,auto:P});D.triggerRedrawOverlay()}else{if(!P){j[N].auto=false}}}function f(O){if(O==null){j=[];D.triggerRedrawOverlay()}if(typeof O=="number"){O=series[O]}var N=C(O);if(N!=-1){j.splice(N,1);D.triggerRedrawOverlay()}}function C(P){for(var N=0;N<j.length;++N){var O=j[N];if(O.series==P){return N}}return -1}function H(Q,R){var P=Q.getOptions();var N=P.series.pie.radius>1?P.series.pie.radius:n*P.series.pie.radius;R.save();R.translate(B,p);R.scale(1,P.series.pie.tilt);for(i=0;i<j.length;++i){O(j[i].series)}J(R);R.restore();function O(S){if(S.angle<0){return}R.fillStyle="rgba(255, 255, 255, "+P.series.pie.highlight.opacity+")";R.beginPath();if(Math.abs(S.angle-Math.PI*2)>1e-9){R.moveTo(0,0)}R.arc(0,0,N,S.startAngle,S.startAngle+S.angle,false);R.closePath();R.fill()}}}var a={series:{pie:{show:false,radius:"auto",innerRadius:0,startAngle:3/2,tilt:1,offset:{top:0,left:"auto"},stroke:{color:"#FFF",width:1},label:{show:"auto",formatter:function(d,e){return'<div style="font-size:x-small;text-align:center;padding:2px;color:'+e.color+';">'+d+"<br/>"+Math.round(e.percent)+"%</div>"},radius:1,background:{color:null,opacity:0},threshold:0},combine:{threshold:-1,color:null,label:"Other"},highlight:{opacity:0.5}}}};b.plot.plugins.push({init:c,options:a,name:"pie",version:"1.0"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.js
deleted file mode 100644
index 69dfb24..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-Flot plugin for automatically redrawing plots when the placeholder
-size changes, e.g. on window resizes.
-
-It works by listening for changes on the placeholder div (through the
-jQuery resize event plugin) - if the size changes, it will redraw the
-plot.
-
-There are no options. If you need to disable the plugin for some
-plots, you can just fix the size of their placeholders.
-*/
-
-
-/* Inline dependency: 
- * jQuery resize event - v1.1 - 3/14/2010
- * http://benalman.com/projects/jquery-resize-plugin/
- * 
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-(function($,h,c){var a=$([]),e=$.resize=$.extend($.resize,{}),i,k="setTimeout",j="resize",d=j+"-special-event",b="delay",f="throttleWindow";e[b]=250;e[f]=true;$.event.special[j]={setup:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.add(l);$.data(this,d,{w:l.width(),h:l.height()});if(a.length===1){g()}},teardown:function(){if(!e[f]&&this[k]){return false}var l=$(this);a=a.not(l);l.removeData(d);if(!a.length){clearTimeout(i)}},add:function(l){if(!e[f]&&this[k]){return false}var n;function m(s,o,p){var q=$(this),r=$.data(this,d);r.w=o!==c?o:q.width();r.h=p!==c?p:q.height();n.apply(this,arguments)}if($.isFunction(l)){n=l;return m}else{n=l.handler;l.handler=m}}};function g(){i=h[k](function(){a.each(function(){var n=$(this),m=n.width(),l=n.height(),o=$.data(this,d);if(m!==o.w||l!==o.h){n.trigger(j,[o.w=m,o.h=l])}});g()},e[b])}})(jQuery,this);
-
-
-(function ($) {
-    var options = { }; // no options
-
-    function init(plot) {
-        function onResize() {
-            var placeholder = plot.getPlaceholder();
-
-            // somebody might have hidden us and we can't plot
-            // when we don't have the dimensions
-            if (placeholder.width() == 0 || placeholder.height() == 0)
-                return;
-
-            plot.resize();
-            plot.setupGrid();
-            plot.draw();
-        }
-        
-        function bindEvents(plot, eventHolder) {
-            plot.getPlaceholder().resize(onResize);
-        }
-
-        function shutdown(plot, eventHolder) {
-            plot.getPlaceholder().unbind("resize", onResize);
-        }
-        
-        plot.hooks.bindEvents.push(bindEvents);
-        plot.hooks.shutdown.push(shutdown);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'resize',
-        version: '1.0'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.min.js
deleted file mode 100644
index 1fa0771..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.resize.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(n,p,u){var w=n([]),s=n.resize=n.extend(n.resize,{}),o,l="setTimeout",m="resize",t=m+"-special-event",v="delay",r="throttleWindow";s[v]=250;s[r]=true;n.event.special[m]={setup:function(){if(!s[r]&&this[l]){return false}var a=n(this);w=w.add(a);n.data(this,t,{w:a.width(),h:a.height()});if(w.length===1){q()}},teardown:function(){if(!s[r]&&this[l]){return false}var a=n(this);w=w.not(a);a.removeData(t);if(!w.length){clearTimeout(o)}},add:function(b){if(!s[r]&&this[l]){return false}var c;function a(d,h,g){var f=n(this),e=n.data(this,t);e.w=h!==u?h:f.width();e.h=g!==u?g:f.height();c.apply(this,arguments)}if(n.isFunction(b)){c=b;return a}else{c=b.handler;b.handler=a}}};function q(){o=p[l](function(){w.each(function(){var d=n(this),a=d.width(),b=d.height(),c=n.data(this,t);if(a!==c.w||b!==c.h){d.trigger(m,[c.w=a,c.h=b])}});q()},s[v])}})(jQuery,this);(function(b){var a={};function c(f){function e(){var h=f.getPlaceholder();if(h.width()==0||h.height()==0){return}f.resize();f.setupGrid();f.draw()}function g(i,h){i.getPlaceholder().resize(e)}function d(i,h){i.getPlaceholder().unbind("resize",e)}f.hooks.bindEvents.push(g);f.hooks.shutdown.push(d)}b.plot.plugins.push({init:c,options:a,name:"resize",version:"1.0"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.js
deleted file mode 100644
index 7f7b326..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.js
+++ /dev/null
@@ -1,344 +0,0 @@
-/*
-Flot plugin for selecting regions.
-
-The plugin defines the following options:
-
-  selection: {
-    mode: null or "x" or "y" or "xy",
-    color: color
-  }
-
-Selection support is enabled by setting the mode to one of "x", "y" or
-"xy". In "x" mode, the user will only be able to specify the x range,
-similarly for "y" mode. For "xy", the selection becomes a rectangle
-where both ranges can be specified. "color" is color of the selection
-(if you need to change the color later on, you can get to it with
-plot.getOptions().selection.color).
-
-When selection support is enabled, a "plotselected" event will be
-emitted on the DOM element you passed into the plot function. The
-event handler gets a parameter with the ranges selected on the axes,
-like this:
-
-  placeholder.bind("plotselected", function(event, ranges) {
-    alert("You selected " + ranges.xaxis.from + " to " + ranges.xaxis.to)
-    // similar for yaxis - with multiple axes, the extra ones are in
-    // x2axis, x3axis, ...
-  });
-
-The "plotselected" event is only fired when the user has finished
-making the selection. A "plotselecting" event is fired during the
-process with the same parameters as the "plotselected" event, in case
-you want to know what's happening while it's happening,
-
-A "plotunselected" event with no arguments is emitted when the user
-clicks the mouse to remove the selection.
-
-The plugin allso adds the following methods to the plot object:
-
-- setSelection(ranges, preventEvent)
-
-  Set the selection rectangle. The passed in ranges is on the same
-  form as returned in the "plotselected" event. If the selection mode
-  is "x", you should put in either an xaxis range, if the mode is "y"
-  you need to put in an yaxis range and both xaxis and yaxis if the
-  selection mode is "xy", like this:
-
-    setSelection({ xaxis: { from: 0, to: 10 }, yaxis: { from: 40, to: 60 } });
-
-  setSelection will trigger the "plotselected" event when called. If
-  you don't want that to happen, e.g. if you're inside a
-  "plotselected" handler, pass true as the second parameter. If you
-  are using multiple axes, you can specify the ranges on any of those,
-  e.g. as x2axis/x3axis/... instead of xaxis, the plugin picks the
-  first one it sees.
-  
-- clearSelection(preventEvent)
-
-  Clear the selection rectangle. Pass in true to avoid getting a
-  "plotunselected" event.
-
-- getSelection()
-
-  Returns the current selection in the same format as the
-  "plotselected" event. If there's currently no selection, the
-  function returns null.
-
-*/
-
-(function ($) {
-    function init(plot) {
-        var selection = {
-                first: { x: -1, y: -1}, second: { x: -1, y: -1},
-                show: false,
-                active: false
-            };
-
-        // FIXME: The drag handling implemented here should be
-        // abstracted out, there's some similar code from a library in
-        // the navigation plugin, this should be massaged a bit to fit
-        // the Flot cases here better and reused. Doing this would
-        // make this plugin much slimmer.
-        var savedhandlers = {};
-
-        var mouseUpHandler = null;
-        
-        function onMouseMove(e) {
-            if (selection.active) {
-                updateSelection(e);
-                
-                plot.getPlaceholder().trigger("plotselecting", [ getSelection() ]);
-            }
-        }
-
-        function onMouseDown(e) {
-            if (e.which != 1)  // only accept left-click
-                return;
-            
-            // cancel out any text selections
-            document.body.focus();
-
-            // prevent text selection and drag in old-school browsers
-            if (document.onselectstart !== undefined && savedhandlers.onselectstart == null) {
-                savedhandlers.onselectstart = document.onselectstart;
-                document.onselectstart = function () { return false; };
-            }
-            if (document.ondrag !== undefined && savedhandlers.ondrag == null) {
-                savedhandlers.ondrag = document.ondrag;
-                document.ondrag = function () { return false; };
-            }
-
-            setSelectionPos(selection.first, e);
-
-            selection.active = true;
-
-            // this is a bit silly, but we have to use a closure to be
-            // able to whack the same handler again
-            mouseUpHandler = function (e) { onMouseUp(e); };
-            
-            $(document).one("mouseup", mouseUpHandler);
-        }
-
-        function onMouseUp(e) {
-            mouseUpHandler = null;
-            
-            // revert drag stuff for old-school browsers
-            if (document.onselectstart !== undefined)
-                document.onselectstart = savedhandlers.onselectstart;
-            if (document.ondrag !== undefined)
-                document.ondrag = savedhandlers.ondrag;
-
-            // no more dragging
-            selection.active = false;
-            updateSelection(e);
-
-            if (selectionIsSane())
-                triggerSelectedEvent();
-            else {
-                // this counts as a clear
-                plot.getPlaceholder().trigger("plotunselected", [ ]);
-                plot.getPlaceholder().trigger("plotselecting", [ null ]);
-            }
-
-            return false;
-        }
-
-        function getSelection() {
-            if (!selectionIsSane())
-                return null;
-
-            var r = {}, c1 = selection.first, c2 = selection.second;
-            $.each(plot.getAxes(), function (name, axis) {
-                if (axis.used) {
-                    var p1 = axis.c2p(c1[axis.direction]), p2 = axis.c2p(c2[axis.direction]); 
-                    r[name] = { from: Math.min(p1, p2), to: Math.max(p1, p2) };
-                }
-            });
-            return r;
-        }
-
-        function triggerSelectedEvent() {
-            var r = getSelection();
-
-            plot.getPlaceholder().trigger("plotselected", [ r ]);
-
-            // backwards-compat stuff, to be removed in future
-            if (r.xaxis && r.yaxis)
-                plot.getPlaceholder().trigger("selected", [ { x1: r.xaxis.from, y1: r.yaxis.from, x2: r.xaxis.to, y2: r.yaxis.to } ]);
-        }
-
-        function clamp(min, value, max) {
-            return value < min ? min: (value > max ? max: value);
-        }
-
-        function setSelectionPos(pos, e) {
-            var o = plot.getOptions();
-            var offset = plot.getPlaceholder().offset();
-            var plotOffset = plot.getPlotOffset();
-            pos.x = clamp(0, e.pageX - offset.left - plotOffset.left, plot.width());
-            pos.y = clamp(0, e.pageY - offset.top - plotOffset.top, plot.height());
-
-            if (o.selection.mode == "y")
-                pos.x = pos == selection.first ? 0 : plot.width();
-
-            if (o.selection.mode == "x")
-                pos.y = pos == selection.first ? 0 : plot.height();
-        }
-
-        function updateSelection(pos) {
-            if (pos.pageX == null)
-                return;
-
-            setSelectionPos(selection.second, pos);
-            if (selectionIsSane()) {
-                selection.show = true;
-                plot.triggerRedrawOverlay();
-            }
-            else
-                clearSelection(true);
-        }
-
-        function clearSelection(preventEvent) {
-            if (selection.show) {
-                selection.show = false;
-                plot.triggerRedrawOverlay();
-                if (!preventEvent)
-                    plot.getPlaceholder().trigger("plotunselected", [ ]);
-            }
-        }
-
-        // function taken from markings support in Flot
-        function extractRange(ranges, coord) {
-            var axis, from, to, key, axes = plot.getAxes();
-
-            for (var k in axes) {
-                axis = axes[k];
-                if (axis.direction == coord) {
-                    key = coord + axis.n + "axis";
-                    if (!ranges[key] && axis.n == 1)
-                        key = coord + "axis"; // support x1axis as xaxis
-                    if (ranges[key]) {
-                        from = ranges[key].from;
-                        to = ranges[key].to;
-                        break;
-                    }
-                }
-            }
-
-            // backwards-compat stuff - to be removed in future
-            if (!ranges[key]) {
-                axis = coord == "x" ? plot.getXAxes()[0] : plot.getYAxes()[0];
-                from = ranges[coord + "1"];
-                to = ranges[coord + "2"];
-            }
-
-            // auto-reverse as an added bonus
-            if (from != null && to != null && from > to) {
-                var tmp = from;
-                from = to;
-                to = tmp;
-            }
-            
-            return { from: from, to: to, axis: axis };
-        }
-        
-        function setSelection(ranges, preventEvent) {
-            var axis, range, o = plot.getOptions();
-
-            if (o.selection.mode == "y") {
-                selection.first.x = 0;
-                selection.second.x = plot.width();
-            }
-            else {
-                range = extractRange(ranges, "x");
-
-                selection.first.x = range.axis.p2c(range.from);
-                selection.second.x = range.axis.p2c(range.to);
-            }
-
-            if (o.selection.mode == "x") {
-                selection.first.y = 0;
-                selection.second.y = plot.height();
-            }
-            else {
-                range = extractRange(ranges, "y");
-
-                selection.first.y = range.axis.p2c(range.from);
-                selection.second.y = range.axis.p2c(range.to);
-            }
-
-            selection.show = true;
-            plot.triggerRedrawOverlay();
-            if (!preventEvent && selectionIsSane())
-                triggerSelectedEvent();
-        }
-
-        function selectionIsSane() {
-            var minSize = 5;
-            return Math.abs(selection.second.x - selection.first.x) >= minSize &&
-                Math.abs(selection.second.y - selection.first.y) >= minSize;
-        }
-
-        plot.clearSelection = clearSelection;
-        plot.setSelection = setSelection;
-        plot.getSelection = getSelection;
-
-        plot.hooks.bindEvents.push(function(plot, eventHolder) {
-            var o = plot.getOptions();
-            if (o.selection.mode != null) {
-                eventHolder.mousemove(onMouseMove);
-                eventHolder.mousedown(onMouseDown);
-            }
-        });
-
-
-        plot.hooks.drawOverlay.push(function (plot, ctx) {
-            // draw selection
-            if (selection.show && selectionIsSane()) {
-                var plotOffset = plot.getPlotOffset();
-                var o = plot.getOptions();
-
-                ctx.save();
-                ctx.translate(plotOffset.left, plotOffset.top);
-
-                var c = $.color.parse(o.selection.color);
-
-                ctx.strokeStyle = c.scale('a', 0.8).toString();
-                ctx.lineWidth = 1;
-                ctx.lineJoin = "round";
-                ctx.fillStyle = c.scale('a', 0.4).toString();
-
-                var x = Math.min(selection.first.x, selection.second.x),
-                    y = Math.min(selection.first.y, selection.second.y),
-                    w = Math.abs(selection.second.x - selection.first.x),
-                    h = Math.abs(selection.second.y - selection.first.y);
-
-                ctx.fillRect(x, y, w, h);
-                ctx.strokeRect(x, y, w, h);
-
-                ctx.restore();
-            }
-        });
-        
-        plot.hooks.shutdown.push(function (plot, eventHolder) {
-            eventHolder.unbind("mousemove", onMouseMove);
-            eventHolder.unbind("mousedown", onMouseDown);
-            
-            if (mouseUpHandler)
-                $(document).unbind("mouseup", mouseUpHandler);
-        });
-
-    }
-
-    $.plot.plugins.push({
-        init: init,
-        options: {
-            selection: {
-                mode: null, // one of null, "x", "y" or "xy"
-                color: "#e8cfac"
-            }
-        },
-        name: 'selection',
-        version: '1.1'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.min.js
deleted file mode 100644
index badc005..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.selection.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(a){function b(k){var p={first:{x:-1,y:-1},second:{x:-1,y:-1},show:false,active:false};var m={};var r=null;function e(s){if(p.active){l(s);k.getPlaceholder().trigger("plotselecting",[g()])}}function n(s){if(s.which!=1){return}document.body.focus();if(document.onselectstart!==undefined&&m.onselectstart==null){m.onselectstart=document.onselectstart;document.onselectstart=function(){return false}}if(document.ondrag!==undefined&&m.ondrag==null){m.ondrag=document.ondrag;document.ondrag=function(){return false}}d(p.first,s);p.active=true;r=function(t){j(t)};a(document).one("mouseup",r)}function j(s){r=null;if(document.onselectstart!==undefined){document.onselectstart=m.onselectstart}if(document.ondrag!==undefined){document.ondrag=m.ondrag}p.active=false;l(s);if(f()){i()}else{k.getPlaceholder().trigger("plotunselected",[]);k.getPlaceholder().trigger("plotselecting",[null])}return false}function g(){if(!f()){return null}var u={},t=p.first,s=p.second;a.each(k.getAxes(),function(v,w){if(w.used){var y=w.c2p(t[w.direction]),x=w.c2p(s[w.direction]);u[v]={from:Math.min(y,x),to:Math.max(y,x)}}});return u}function i(){var s=g();k.getPlaceholder().trigger("plotselected",[s]);if(s.xaxis&&s.yaxis){k.getPlaceholder().trigger("selected",[{x1:s.xaxis.from,y1:s.yaxis.from,x2:s.xaxis.to,y2:s.yaxis.to}])}}function h(t,u,s){return u<t?t:(u>s?s:u)}function d(w,t){var v=k.getOptions();var u=k.getPlaceholder().offset();var s=k.getPlotOffset();w.x=h(0,t.pageX-u.left-s.left,k.width());w.y=h(0,t.pageY-u.top-s.top,k.height());if(v.selection.mode=="y"){w.x=w==p.first?0:k.width()}if(v.selection.mode=="x"){w.y=w==p.first?0:k.height()}}function l(s){if(s.pageX==null){return}d(p.second,s);if(f()){p.show=true;k.triggerRedrawOverlay()}else{q(true)}}function q(s){if(p.show){p.show=false;k.triggerRedrawOverlay();if(!s){k.getPlaceholder().trigger("plotunselected",[])}}}function c(s,w){var t,y,z,A,x=k.getAxes();for(var u in x){t=x[u];if(t.direction==w){A=w+t.n+"axis";if(!s[A]&&t.n==1){A=w+"axis"}if(s[A]){y=s[A].from;z=s[A].to;break}}}if(!s[A]){t=w=="x"?k.getXAxes()[0]:k.getYAxes()[0];y=s[w+"1"];z=s[w+"2"]}if(y!=null&&z!=null&&y>z){var v=y;y=z;z=v}return{from:y,to:z,axis:t}}function o(t,s){var v,u,w=k.getOptions();if(w.selection.mode=="y"){p.first.x=0;p.second.x=k.width()}else{u=c(t,"x");p.first.x=u.axis.p2c(u.from);p.second.x=u.axis.p2c(u.to)}if(w.selection.mode=="x"){p.first.y=0;p.second.y=k.height()}else{u=c(t,"y");p.first.y=u.axis.p2c(u.from);p.second.y=u.axis.p2c(u.to)}p.show=true;k.triggerRedrawOverlay();if(!s&&f()){i()}}function f(){var s=5;return Math.abs(p.second.x-p.first.x)>=s&&Math.abs(p.second.y-p.first.y)>=s}k.clearSelection=q;k.setSelection=o;k.getSelection=g;k.hooks.bindEvents.push(function(t,s){var u=t.getOptions();if(u.selection.mode!=null){s.mousemove(e);s.mousedown(n)}});k.hooks.drawOverlay.push(function(v,D){if(p.show&&f()){var t=v.getPlotOffset();var s=v.getOptions();D.save();D.translate(t.left,t.top);var z=a.color.parse(s.selection.color);D.strokeStyle=z.scale("a",0.8).toString();D.lineWidth=1;D.lineJoin="round";D.fillStyle=z.scale("a",0.4).toString();var B=Math.min(p.first.x,p.second.x),A=Math.min(p.first.y,p.second.y),C=Math.abs(p.second.x-p.first.x),u=Math.abs(p.second.y-p.first.y);D.fillRect(B,A,C,u);D.strokeRect(B,A,C,u);D.restore()}});k.hooks.shutdown.push(function(t,s){s.unbind("mousemove",e);s.unbind("mousedown",n);if(r){a(document).unbind("mouseup",r)}})}a.plot.plugins.push({init:b,options:{selection:{mode:null,color:"#e8cfac"}},name:"selection",version:"1.1"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.js
deleted file mode 100644
index a31d5dc..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.js
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
-Flot plugin for stacking data sets, i.e. putting them on top of each
-other, for accumulative graphs.
-
-The plugin assumes the data is sorted on x (or y if stacking
-horizontally). For line charts, it is assumed that if a line has an
-undefined gap (from a null point), then the line above it should have
-the same gap - insert zeros instead of "null" if you want another
-behaviour. This also holds for the start and end of the chart. Note
-that stacking a mix of positive and negative values in most instances
-doesn't make sense (so it looks weird).
-
-Two or more series are stacked when their "stack" attribute is set to
-the same key (which can be any number or string or just "true"). To
-specify the default stack, you can set
-
-  series: {
-    stack: null or true or key (number/string)
-  }
-
-or specify it for a specific series
-
-  $.plot($("#placeholder"), [{ data: [ ... ], stack: true }])
-  
-The stacking order is determined by the order of the data series in
-the array (later series end up on top of the previous).
-
-Internally, the plugin modifies the datapoints in each series, adding
-an offset to the y value. For line series, extra data points are
-inserted through interpolation. If there's a second y value, it's also
-adjusted (e.g for bar charts or filled areas).
-*/
-
-(function ($) {
-    var options = {
-        series: { stack: null } // or number/string
-    };
-    
-    function init(plot) {
-        function findMatchingSeries(s, allseries) {
-            var res = null
-            for (var i = 0; i < allseries.length; ++i) {
-                if (s == allseries[i])
-                    break;
-                
-                if (allseries[i].stack == s.stack)
-                    res = allseries[i];
-            }
-            
-            return res;
-        }
-        
-        function stackData(plot, s, datapoints) {
-            if (s.stack == null)
-                return;
-
-            var other = findMatchingSeries(s, plot.getData());
-            if (!other)
-                return;
-
-            var ps = datapoints.pointsize,
-                points = datapoints.points,
-                otherps = other.datapoints.pointsize,
-                otherpoints = other.datapoints.points,
-                newpoints = [],
-                px, py, intery, qx, qy, bottom,
-                withlines = s.lines.show,
-                horizontal = s.bars.horizontal,
-                withbottom = ps > 2 && (horizontal ? datapoints.format[2].x : datapoints.format[2].y),
-                withsteps = withlines && s.lines.steps,
-                fromgap = true,
-                keyOffset = horizontal ? 1 : 0,
-                accumulateOffset = horizontal ? 0 : 1,
-                i = 0, j = 0, l;
-
-            while (true) {
-                if (i >= points.length)
-                    break;
-
-                l = newpoints.length;
-
-                if (points[i] == null) {
-                    // copy gaps
-                    for (m = 0; m < ps; ++m)
-                        newpoints.push(points[i + m]);
-                    i += ps;
-                }
-                else if (j >= otherpoints.length) {
-                    // for lines, we can't use the rest of the points
-                    if (!withlines) {
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-                    }
-                    i += ps;
-                }
-                else if (otherpoints[j] == null) {
-                    // oops, got a gap
-                    for (m = 0; m < ps; ++m)
-                        newpoints.push(null);
-                    fromgap = true;
-                    j += otherps;
-                }
-                else {
-                    // cases where we actually got two points
-                    px = points[i + keyOffset];
-                    py = points[i + accumulateOffset];
-                    qx = otherpoints[j + keyOffset];
-                    qy = otherpoints[j + accumulateOffset];
-                    bottom = 0;
-
-                    if (px == qx) {
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-
-                        newpoints[l + accumulateOffset] += qy;
-                        bottom = qy;
-                        
-                        i += ps;
-                        j += otherps;
-                    }
-                    else if (px > qx) {
-                        // we got past point below, might need to
-                        // insert interpolated extra point
-                        if (withlines && i > 0 && points[i - ps] != null) {
-                            intery = py + (points[i - ps + accumulateOffset] - py) * (qx - px) / (points[i - ps + keyOffset] - px);
-                            newpoints.push(qx);
-                            newpoints.push(intery + qy);
-                            for (m = 2; m < ps; ++m)
-                                newpoints.push(points[i + m]);
-                            bottom = qy; 
-                        }
-
-                        j += otherps;
-                    }
-                    else { // px < qx
-                        if (fromgap && withlines) {
-                            // if we come from a gap, we just skip this point
-                            i += ps;
-                            continue;
-                        }
-                            
-                        for (m = 0; m < ps; ++m)
-                            newpoints.push(points[i + m]);
-                        
-                        // we might be able to interpolate a point below,
-                        // this can give us a better y
-                        if (withlines && j > 0 && otherpoints[j - otherps] != null)
-                            bottom = qy + (otherpoints[j - otherps + accumulateOffset] - qy) * (px - qx) / (otherpoints[j - otherps + keyOffset] - qx);
-
-                        newpoints[l + accumulateOffset] += bottom;
-                        
-                        i += ps;
-                    }
-
-                    fromgap = false;
-                    
-                    if (l != newpoints.length && withbottom)
-                        newpoints[l + 2] += bottom;
-                }
-
-                // maintain the line steps invariant
-                if (withsteps && l != newpoints.length && l > 0
-                    && newpoints[l] != null
-                    && newpoints[l] != newpoints[l - ps]
-                    && newpoints[l + 1] != newpoints[l - ps + 1]) {
-                    for (m = 0; m < ps; ++m)
-                        newpoints[l + ps + m] = newpoints[l + m];
-                    newpoints[l + 1] = newpoints[l - ps + 1];
-                }
-            }
-
-            datapoints.points = newpoints;
-        }
-        
-        plot.hooks.processDatapoints.push(stackData);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'stack',
-        version: '1.2'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.min.js
deleted file mode 100644
index bba2a0e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.stack.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(b){var a={series:{stack:null}};function c(f){function d(k,j){var h=null;for(var g=0;g<j.length;++g){if(k==j[g]){break}if(j[g].stack==k.stack){h=j[g]}}return h}function e(C,v,g){if(v.stack==null){return}var p=d(v,C.getData());if(!p){return}var z=g.pointsize,F=g.points,h=p.datapoints.pointsize,y=p.datapoints.points,t=[],x,w,k,J,I,r,u=v.lines.show,G=v.bars.horizontal,o=z>2&&(G?g.format[2].x:g.format[2].y),n=u&&v.lines.steps,E=true,q=G?1:0,H=G?0:1,D=0,B=0,A;while(true){if(D>=F.length){break}A=t.length;if(F[D]==null){for(m=0;m<z;++m){t.push(F[D+m])}D+=z}else{if(B>=y.length){if(!u){for(m=0;m<z;++m){t.push(F[D+m])}}D+=z}else{if(y[B]==null){for(m=0;m<z;++m){t.push(null)}E=true;B+=h}else{x=F[D+q];w=F[D+H];J=y[B+q];I=y[B+H];r=0;if(x==J){for(m=0;m<z;++m){t.push(F[D+m])}t[A+H]+=I;r=I;D+=z;B+=h}else{if(x>J){if(u&&D>0&&F[D-z]!=null){k=w+(F[D-z+H]-w)*(J-x)/(F[D-z+q]-x);t.push(J);t.push(k+I);for(m=2;m<z;++m){t.push(F[D+m])}r=I}B+=h}else{if(E&&u){D+=z;continue}for(m=0;m<z;++m){t.push(F[D+m])}if(u&&B>0&&y[B-h]!=null){r=I+(y[B-h+H]-I)*(x-J)/(y[B-h+q]-J)}t[A+H]+=r;D+=z}}E=false;if(A!=t.length&&o){t[A+2]+=r}}}}if(n&&A!=t.length&&A>0&&t[A]!=null&&t[A]!=t[A-z]&&t[A+1]!=t[A-z+1]){for(m=0;m<z;++m){t[A+z+m]=t[A+m]}t[A+1]=t[A-z+1]}}g.points=t}f.hooks.processDatapoints.push(e)}b.plot.plugins.push({init:c,options:a,name:"stack",version:"1.2"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.js
deleted file mode 100644
index a32fe31..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.js
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-Flot plugin that adds some extra symbols for plotting points.
-
-The symbols are accessed as strings through the standard symbol
-choice:
-
-  series: {
-      points: {
-          symbol: "square" // or "diamond", "triangle", "cross"
-      }
-  }
-
-*/
-
-(function ($) {
-    function processRawData(plot, series, datapoints) {
-        // we normalize the area of each symbol so it is approximately the
-        // same as a circle of the given radius
-
-        var handlers = {
-            square: function (ctx, x, y, radius, shadow) {
-                // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2
-                var size = radius * Math.sqrt(Math.PI) / 2;
-                ctx.rect(x - size, y - size, size + size, size + size);
-            },
-            diamond: function (ctx, x, y, radius, shadow) {
-                // pi * r^2 = 2s^2  =>  s = r * sqrt(pi/2)
-                var size = radius * Math.sqrt(Math.PI / 2);
-                ctx.moveTo(x - size, y);
-                ctx.lineTo(x, y - size);
-                ctx.lineTo(x + size, y);
-                ctx.lineTo(x, y + size);
-                ctx.lineTo(x - size, y);
-            },
-            triangle: function (ctx, x, y, radius, shadow) {
-                // pi * r^2 = 1/2 * s^2 * sin (pi / 3)  =>  s = r * sqrt(2 * pi / sin(pi / 3))
-                var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));
-                var height = size * Math.sin(Math.PI / 3);
-                ctx.moveTo(x - size/2, y + height/2);
-                ctx.lineTo(x + size/2, y + height/2);
-                if (!shadow) {
-                    ctx.lineTo(x, y - height/2);
-                    ctx.lineTo(x - size/2, y + height/2);
-                }
-            },
-            cross: function (ctx, x, y, radius, shadow) {
-                // pi * r^2 = (2s)^2  =>  s = r * sqrt(pi)/2
-                var size = radius * Math.sqrt(Math.PI) / 2;
-                ctx.moveTo(x - size, y - size);
-                ctx.lineTo(x + size, y + size);
-                ctx.moveTo(x - size, y + size);
-                ctx.lineTo(x + size, y - size);
-            }
-        }
-
-        var s = series.points.symbol;
-        if (handlers[s])
-            series.points.symbol = handlers[s];
-    }
-    
-    function init(plot) {
-        plot.hooks.processDatapoints.push(processRawData);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        name: 'symbols',
-        version: '1.0'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.min.js
deleted file mode 100644
index 272e003..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.symbol.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(b){function a(h,e,g){var d={square:function(k,j,n,i,m){var l=i*Math.sqrt(Math.PI)/2;k.rect(j-l,n-l,l+l,l+l)},diamond:function(k,j,n,i,m){var l=i*Math.sqrt(Math.PI/2);k.moveTo(j-l,n);k.lineTo(j,n-l);k.lineTo(j+l,n);k.lineTo(j,n+l);k.lineTo(j-l,n)},triangle:function(l,k,o,j,n){var m=j*Math.sqrt(2*Math.PI/Math.sin(Math.PI/3));var i=m*Math.sin(Math.PI/3);l.moveTo(k-m/2,o+i/2);l.lineTo(k+m/2,o+i/2);if(!n){l.lineTo(k,o-i/2);l.lineTo(k-m/2,o+i/2)}},cross:function(k,j,n,i,m){var l=i*Math.sqrt(Math.PI)/2;k.moveTo(j-l,n-l);k.lineTo(j+l,n+l);k.moveTo(j-l,n+l);k.lineTo(j+l,n-l)}};var f=e.points.symbol;if(d[f]){e.points.symbol=d[f]}}function c(d){d.hooks.processDatapoints.push(a)}b.plot.plugins.push({init:c,name:"symbols",version:"1.0"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.js
deleted file mode 100644
index 0b2e7ac..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.js
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
-Flot plugin for thresholding data. Controlled through the option
-"threshold" in either the global series options
-
-  series: {
-    threshold: {
-      below: number
-      color: colorspec
-    }
-  }
-
-or in a specific series
-
-  $.plot($("#placeholder"), [{ data: [ ... ], threshold: { ... }}])
-
-The data points below "below" are drawn with the specified color. This
-makes it easy to mark points below 0, e.g. for budget data.
-
-Internally, the plugin works by splitting the data into two series,
-above and below the threshold. The extra series below the threshold
-will have its label cleared and the special "originSeries" attribute
-set to the original series. You may need to check for this in hover
-events.
-*/
-
-(function ($) {
-    var options = {
-        series: { threshold: null } // or { below: number, color: color spec}
-    };
-    
-    function init(plot) {
-        function thresholdData(plot, s, datapoints) {
-            if (!s.threshold)
-                return;
-            
-            var ps = datapoints.pointsize, i, x, y, p, prevp,
-                thresholded = $.extend({}, s); // note: shallow copy
-
-            thresholded.datapoints = { points: [], pointsize: ps };
-            thresholded.label = null;
-            thresholded.color = s.threshold.color;
-            thresholded.threshold = null;
-            thresholded.originSeries = s;
-            thresholded.data = [];
-
-            var below = s.threshold.below,
-                origpoints = datapoints.points,
-                addCrossingPoints = s.lines.show;
-
-            threspoints = [];
-            newpoints = [];
-
-            for (i = 0; i < origpoints.length; i += ps) {
-                x = origpoints[i]
-                y = origpoints[i + 1];
-
-                prevp = p;
-                if (y < below)
-                    p = threspoints;
-                else
-                    p = newpoints;
-
-                if (addCrossingPoints && prevp != p && x != null
-                    && i > 0 && origpoints[i - ps] != null) {
-                    var interx = (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]) * (below - y) + x;
-                    prevp.push(interx);
-                    prevp.push(below);
-                    for (m = 2; m < ps; ++m)
-                        prevp.push(origpoints[i + m]);
-                    
-                    p.push(null); // start new segment
-                    p.push(null);
-                    for (m = 2; m < ps; ++m)
-                        p.push(origpoints[i + m]);
-                    p.push(interx);
-                    p.push(below);
-                    for (m = 2; m < ps; ++m)
-                        p.push(origpoints[i + m]);
-                }
-
-                p.push(x);
-                p.push(y);
-            }
-
-            datapoints.points = newpoints;
-            thresholded.datapoints.points = threspoints;
-            
-            if (thresholded.datapoints.points.length > 0)
-                plot.getData().push(thresholded);
-                
-            // FIXME: there are probably some edge cases left in bars
-        }
-        
-        plot.hooks.processDatapoints.push(thresholdData);
-    }
-    
-    $.plot.plugins.push({
-        init: init,
-        options: options,
-        name: 'threshold',
-        version: '1.0'
-    });
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.min.js
deleted file mode 100644
index d8b79df..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/flot-0.7/jquery.flot.threshold.min.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(B){var A={series:{threshold:null}};function C(D){function E(L,S,M){if(!S.threshold){return }var F=M.pointsize,I,O,N,G,K,H=B.extend({},S);H.datapoints={points:[],pointsize:F};H.label=null;H.color=S.threshold.color;H.threshold=null;H.originSeries=S;H.data=[];var P=S.threshold.below,Q=M.points,R=S.lines.show;threspoints=[];newpoints=[];for(I=0;I<Q.length;I+=F){O=Q[I];N=Q[I+1];K=G;if(N<P){G=threspoints}else{G=newpoints}if(R&&K!=G&&O!=null&&I>0&&Q[I-F]!=null){var J=(O-Q[I-F])/(N-Q[I-F+1])*(P-N)+O;K.push(J);K.push(P);for(m=2;m<F;++m){K.push(Q[I+m])}G.push(null);G.push(null);for(m=2;m<F;++m){G.push(Q[I+m])}G.push(J);G.push(P);for(m=2;m<F;++m){G.push(Q[I+m])}}G.push(O);G.push(N)}M.points=newpoints;H.datapoints.points=threspoints;if(H.datapoints.points.length>0){L.getData().push(H)}}D.hooks.processDatapoints.push(E)}B.plot.plugins.push({init:C,options:A,name:"threshold",version:"1.0"})})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/blank.svg b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/blank.svg
deleted file mode 100644
index 730d3d5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/blank.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg onload="window.parent.svgManager._registerSVG();" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-</svg>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/custom_test.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/custom_test.js
deleted file mode 100644
index 4ce446a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/custom_test.js
+++ /dev/null
@@ -1,67 +0,0 @@
-  //var chartArea = [[0.1, 0.1, 0.95, 0.9], [0.2, 0.1, 0.95, 0.9],
-  //                [0.1, 0.1, 0.8, 0.9], [0.1, 0.25, 0.9, 0.9], [0.1, 0.1, 0.9, 0.8]];
-  //var legendArea = [[0.0, 0.0, 0.0, 0.0], [0.005, 0.1, 0.125, 0.5],
-  //        [0.875, 0.1, 0.995, 0.5], [0.2, 0.1, 0.8, 0.2], [0.2, 0.9, 0.8, 0.995]];   
-  //var fills = [['lightblue', 'url(#fadeBlue)'], ['pink', 'url(#fadeRed)'],
-  // ['lightgreen', 'url(#fadeGreen)']];
-  function buildGraph(options) { 
-      var settings = $.extend({
-            svg_container: "",
-            graph_url: "test",
-            id: 1,   
-            dataType: "summary", 
-            chartType: "line", //tell svg plugin if we want line, bar, or pie graphs
-            chartTitle: "",
-            timeframe: "7 days",
-            xTitle: "",
-            yTitle: ""
-          },options||{});
-      var svg = svgManager.getSVGFor(settings.svg_container);
-      var params = {
-            id:settings.id, //id of the node to get graph data for
-            type:settings.dataType, /*this will be what we pass in to tell 
-             *the data api what kind of data to return*/
-            timeframe:settings.timeframe, //what time period do we want back from the data api?
-            isJSON:true}; /*while this is not used right now, there is the chance we will want to 
-              call the data api before rendering the page, this is a flag to allow that*/
-      $.getJSON(settings.graph_url, params, function(response) { 
-          var defs = svg.defs();
-          var legendPos = 1; 
-/*
-* Everything else that is commented out from here down is experimental stuff that we shouldn't need right away, 
-* but may want to play with as we make this look nicer.
-*/                
-          //svg.linearGradient(defs, 'fadeBlue', [[0, 'lightblue'], [1, 'blue']]);
-          //svg.linearGradient(defs, 'fadeRed', [[0, 'pink'], [1, 'red']]);
-          //svg.linearGradient(defs, 'fadeGreen', [[0, 'lightgreen'], [1, 'green']]);
-          svg.graph.noDraw().title(settings.chartTitle,10).
-              chartFormat('lightyellow', 'gray').
-              //gridlines({stroke: 'gray', stroke_dasharray: '2,2'}, 'gray').
-              status(setStatus);
-          $(response.dataset).each(function(){
-            svg.graph.noDraw().
-                    addSeries(this.name, this.values, this.fill, this.stroke, this.strokeWidth);
-
-          });
-          svg.graph.xAxis.title(settings.xTitle).scale(0, 3);
-          if (response.timepoints.length > 0){
-            svg.graph.xAxis.ticks(1, 0).labels(response.timepoints);
-          }
-            svg.graph.yAxis.title(settings.yTitle).scale(-5, 105).ticks(10, 5);
-            //svg.graph.legend.settings({fill: 'lightgoldenrodyellow', stroke: 'gray'});
-            svg.graph.legend.show(legendPos).area([0.0, 0.0, 0.0, 0.0]);
-            //for (var i = 0; i < 3; i++) {
-            //        svg.graph.series()[i].format((fills[i])[0]);
-            //}            
-            svg.graph.noDraw().//chartArea(chartArea[legendPos]).
-                    chartType(settings.chartType, {explode: [2], explodeDist: 10}).redraw();
-
-      });
-}
-/*callback function for when you mouse over the data.
- *I hope for this eventually to highlight the datapoint and show any additional information 
- *the design may call for.  
- **/
-function setStatus(value) {
-    //alert(value);
-} 
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.css b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.css
deleted file mode 100644
index 26ae31f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/* http://home.iprimus.com.au/kbwood/jquery/svg.html
-   SVG for jQuery v1.0.0.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Under the Creative Commons Licence http://creativecommons.org/licenses/by/3.0/
-   Share or Remix it but please Attribute the author. */
-
-svg\:svg { display: none; }
-
-.svg_error { color: red; font-weight: bold; }
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.js
deleted file mode 100644
index dea8794..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.js
+++ /dev/null
@@ -1,1101 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-
-var svgManager = null;
-
-(function($) { // Hide scope, no $ conflict
-
-/* SVG manager.
-   Use the singleton instance of this class, svgManager, 
-   to interact with the SVG functionality. */
-function SVGManager() {
-	this._nextId = 0; // Next ID for a SVG root
-	this._svgs = []; // List of SVG roots indexed by ID
-	this._settings = []; // Settings to be remembered per SVG object:
-		// [0] is width, [1] is height, [2] is URL to load initially, [3] is callback function
-	this._extensions = []; // List of SVG extensions added to SVGRoot
-		// for each entry [0] is extension name, [1] is extension class (function)
-		// the function takes one parameter - the SVGRoot instance
-	this.regional = []; // Localisations, indexed by language, '' for default (English)
-	this.regional[''] = {notSupportedText: 'This browser does not support SVG',
-		errorLoadingText: 'Error loading'};
-	this.local = this.regional['']; // Current localisation
-}
-
-$.extend(SVGManager.prototype, {
-	/* SVG namespace. */
-	svgNS: 'http://www.w3.org/2000/svg',
-	/* XLink namespace. */
-	xlinkNS: 'http://www.w3.org/1999/xlink',
-	
-	/* SVG root class. */
-	_rootClass: SVGRoot,
-	
-	/* Add the SVG object to its container. */
-	_connectSVG: function(container, loadURL, onLoad, settings) {
-		var id = this._nextId++;
-		container._svgId = id;
-		var svg = null;
-		if ($.browser.msie) {
-			container.innerHTML = '<embed type="image/svg+xml" width="' + container.clientWidth +
-				'" height="' + container.clientHeight + '" src="blank.svg"/>';
-			this._settings[id] = [container, loadURL, settings, onLoad];
-		}
-		else if (document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#SVG","1.1") ||
-				document.implementation.hasFeature("org.w3c.svg", "1.1")) {
-			svg = document.createElementNS(this.svgNS, 'svg');
-			svg.setAttribute('version', '1.1');
-			svg.setAttribute('width', container.clientWidth);
-			svg.setAttribute('height', container.clientHeight);
-			container.appendChild(svg);
-			this._afterLoad(id, svg, [container, loadURL, settings, onLoad]);
-		}
-		else {
-			container.innerHTML = '<p class="svg_error">' + this.local.notSupportedText + '</p>';
-		}
-		return id;
-	},
-
-	/* SVG callback after loading - register SVG root. */
-	_registerSVG: function() {
-		for (var i = 0; i < document.embeds.length; i++) { // Check all
-			var id = document.embeds[i].parentNode._svgId;
-			var svg = document.embeds[i].getSVGDocument();
-			svg = (svg ? svg.documentElement : null);
-			if (id != null && svg && !this._svgs[id]) { // Valid and not already done
-				this._afterLoad(id, svg);
-			}
-		}
-	},
-
-	/* Post-processing once loaded. */
-	_afterLoad: function(id, svg, settings) {
-		var settings = settings || this._settings[id];
-		var root = this._svgs[id] = new this._rootClass(svg, settings[0]);
-		if (settings[1]) { // Load URL
-			root.load(settings[1]);
-		}
-		if (settings[2]) { // Additional settings
-			root.configure(settings[2]);
-		}
-		if (settings[3]) { // Onload callback
-			settings[3](settings[0]);
-		}
-	},
-	
-	/* Return the SVG root created for a given container.
-	   @param  container  string - selector for the container or
-	                      element - the container for the SVG object or
-	                      jQuery collection - first entry is the container
-	   @return  the corresponding SVG root element, or null if not attached */
-	getSVGFor: function(container) {
-		container = (typeof container == 'string' ? $(container)[0] :
-			(container.jquery ? container[0] : container));
-		return this._svgs[container._svgId];
-	},
-	
-	/* Extend the SVGRoot object with an embedded class.
-	   The constructor function must take a single parameter that is
-	   a reference to the owning SVG root object. This allows the 
-	   extension to access the basic SVG functionality.
-	   @param  name      string - the name of the SVGRoot attribute to access the new class
-	   @param  extClass  function - the extension class constructor */
-	addExtension: function(name, extClass) {
-		this._extensions[this._extensions.length] = [name, extClass];
-	}
-});
-
-
-
-/* The main SVG interface, which encapsulates the SVG element.
-   Obtain a reference from svgManager.getSVGFor(). */
-function SVGRoot(svg, container) {
-	this._svg = svg; // The SVG root node
-	this._container = container; // The containing div
-	for (var i = 0; i < svgManager._extensions.length; i++) {
-		var extension = svgManager._extensions[i];
-		this[extension[0]] = new extension[1](this);
-	}
-}
-
-$.extend(SVGRoot.prototype, {
-
-	/* Retrieve the width of the SVG object. */
-	_width: function() {
-		return this._container.clientWidth;
-	},
-
-	/* Retrieve the height of the SVG object. */
-	_height: function() {
-		return this._container.clientHeight;
-	},
-	
-	/* Configure the SVG root.
-	   @param  settings  object - additional settings for the root
-	   @param  clear     boolean - true to remove existing attributes first,
-	                     false to add to what is already there (optional)
-	   @return  this root */
-	configure: function(settings, clear) {
-		if (clear) {
-			for (var i = this._svg.attributes.length - 1; i >= 0; i--) {
-				var attr = this._svg.attributes.item(i);
-				if (!(attr.nodeName == 'onload' || attr.nodeName == 'version' || 
-						attr.nodeName.substring(0, 5) == 'xmlns')) {
-					this._svg.attributes.removeNamedItem(attr.nodeName);
-				}
-			}
-		}
-		for (var attrName in settings) {
-			this._svg.setAttribute(attrName, settings[attrName]);
-		}
-		return this;
-	},
-	
-	/* Locate a specific element in the SVG document.
-	   @param  id  the element's identifier
-	   @return  the element reference, or null if not found */
-	getElementById: function(id) {
-		return this._svg.getElementById(id);
-	},
-	
-	/* Add a title.
-	   @param  parent    element - the parent node for the new title
-	   @param  text      string - the text of the title
-	   @param  settings  object - additional settings for the title (optional)
-	   @return  the new title node */
-	title: function(parent, text, settings) {
-		var node = this._makeNode(parent, 'title', settings || {});
-		node.appendChild(this._svg.ownerDocument.createTextNode(text));
-		return node;
-	},
-
-	/* Add a description.
-	   @param  parent    element - the parent node for the new description
-	   @param  text      string - the text of the description
-	   @param  settings  object - additional settings for the description (optional)
-	   @return  the new description node */
-	describe: function(parent, text, settings) {
-		var node = this._makeNode(parent, 'desc', settings || {});
-		node.appendChild(this._svg.ownerDocument.createTextNode(text));
-		return node;
-	},
-
-	/* Add a definitions node.
-	   @param  parent    element - the parent node for the new definitions
-	   @param  id        string - the ID of this definitions (optional)
-	   @param  settings  object - additional settings for the definitions (optional)
-	   @return  the new definitions node */
-	defs: function(parent, id, settings) {
-		if (typeof id != 'string') {
-			settings = id;
-			id = null;
-		}
-		return this._makeNode(parent, 'defs', $.extend(
-			(id ? {id: id} : {}), settings || {}));
-	},
-
-	/* Add a symbol definition.
-	   @param  parent    element - the parent node for the new symbol
-	   @param  id        string - the ID of this symbol
-	   @param  x1        number - the left coordinate for this symbol
-	   @param  y1        number - the top coordinate for this symbol
-	   @param  x2        number - the right coordinate for this symbol
-	   @param  y2        number - the bottom coordinate for this symbol
-	   @param  settings  object - additional settings for the symbol (optional)
-	   @return  the new symbol node */
-	symbol: function(parent, id, x1, y1, x2, y2, settings) {
-		return this._makeNode(parent, 'symbol', $.extend(
-			{id: id, viewBox: x1 + ' ' + y1 + ' ' + x2 + ' ' + y2}, settings || {}));
-	},
-
-	/* Add a marker definition.
-	   @param  parent    element - the parent node for the new marker
-	   @param  id        string - the ID of this marker
-	   @param  refX      number - the x-coordinate for the reference point
-	   @param  refY      number - the y-coordinate for the reference point
-	   @param  mWidth    number - the marker viewport width
-	   @param  mHeight   number - the marker viewport height
-	   @param  orient    string or int - 'auto' or angle (degrees) (optional)
-	   @param  settings  object - additional settings for the marker (optional)
-	   @return  the new marker node */
-	marker: function(parent, id, refX, refY, mWidth, mHeight, orient, settings) {
-		if (typeof orient == 'object') {
-			settings = orient;
-			orient = null;
-		}
-		return this._makeNode(parent, 'marker', $.extend(
-			{id: id, refX: refX, refY: refY, markerWidth: mWidth, 
-			markerHeight: mHeight, orient: orient || 'auto'}, settings || {}));
-	},
-
-	/* Add a style node.
-	   @param  parent    element - the parent node for the new node
-	   @param  styles    string - the CSS styles
-	   @param  settings  object - additional settings for the node (optional)
-	   @return  the new style node */
-	style: function(parent, styles, settings) {
-		var node = this._makeNode(parent, 'style', $.extend(
-			{type: 'text/css'}, settings || {}));
-		node.appendChild(this._svg.ownerDocument.createTextNode(this._escapeXML(styles)));
-		return node;
-	},
-
-	/* Add a script node.
-	   @param  parent    element - the parent node for the new node
-	   @param  script    string - the JavaScript code
-	   @param  type      string - the MIME type for the code (optional, default 'text/javascript')
-	   @param  settings  object - additional settings for the node (optional)
-	   @return  the new script node */
-	script: function(parent, script, type, settings) {
-		if (typeof type == 'object') {
-			settings = type;
-			type = null;
-		}
-		var node = this._makeNode(parent, 'script', $.extend(
-			{type: type || 'text/javascript'}, settings || {}));
-		node.appendChild(this._svg.ownerDocument.createTextNode(this._escapeXML(script)));
-		return node;
-	},
-	
-	/* Add a linear gradient definition.
-	   Specify all of x1, y1, x2, y2 or none of them.
-	   @param  parent    element - the parent node for the new gradient
-	   @param  id        string - the ID for this gradient
-	   @param  stops     string[][] - the gradient stops, each entry is
-	                     [0] is offset (0.0-1.0 or 0%-100%), [1] is colour, 
-						 [2] is opacity (optional)
-	   @param  x1        number - the x-coordinate of the gradient start (optional)
-	   @param  y1        number - the y-coordinate of the gradient start (optional)
-	   @param  x2        number - the x-coordinate of the gradient end (optional)
-	   @param  y2        number - the y-coordinate of the gradient end (optional)
-	   @param  settings  object - additional settings for the gradient (optional)
-	   @return  the new gradient node */
-	linearGradient: function(parent, id, stops, x1, y1, x2, y2, settings) {
-		if (typeof x1 == 'object') {
-			settings = x1;
-			x1 = null;
-		}
-		var sets = $.extend({id: id}, 
-			(x1 != null ? {x1: x1, y1: y1, x2: x2, y2: y2} : {}));
-		return this._gradient(parent, 'linearGradient', 
-			$.extend(sets, settings || {}), stops);
-	},
-	
-	/* Add a radial gradient definition.
-	   Specify all of cx, cy, r, fx, fy or none of them.
-	   @param  parent    element - the parent node for the new gradient
-	   @param  id        string - the ID for this gradient
-	   @param  stops     string[][] - the gradient stops, each entry
-	                     [0] is offset, [1] is colour, [2] is opacity (optional)
-	   @param  cx        number - the x-coordinate of the largest circle centre (optional)
-	   @param  cy        number - the y-coordinate of the largest circle centre (optional)
-	   @param  r         number - the radius of the largest circle (optional)
-	   @param  fx        number - the x-coordinate of the gradient focus (optional)
-	   @param  fy        number - the y-coordinate of the gradient focus (optional)
-	   @param  settings  object - additional settings for the gradient (optional)
-	   @return  the new gradient node */
-	radialGradient: function(parent, id, stops, cx, cy, r, fx, fy, settings) {
-		if (typeof cx == 'object') {
-			settings = cx;
-			cx = null;
-		}
-		var sets = $.extend({id: id}, 
-			(cx != null ? {cx: cx, cy: cy, r: r, fx: fx, fy: fy} : {}));
-		return this._gradient(parent, 'radialGradient', 
-			$.extend(sets, settings || {}), stops);
-	},
-	
-	/* Add a gradient node. */
-	_gradient: function(parent, name, settings, stops) {
-		var node = this._makeNode(parent, name, settings);
-		for (var i = 0; i < stops.length; i++) {
-			var stop = stops[i];
-			this._makeNode(node, 'stop', $.extend(
-				{offset: stop[0], stop_color: stop[1]}, 
-				(stop[2] != null ? {stop_opacity: stop[2]} : {})));
-		}
-		return node;
-	},
-
-	/* Add a pattern definition.
-	   Specify all of vx, vy, xwidth, vheight or none of them.
-	   @param  parent    element - the parent node for the new pattern
-	   @param  id        string - the ID for this pattern
-	   @param  x         number - the x-coordinate for the left edge of the pattern
-	   @param  y         number - the y-coordinate for the top edge of the pattern
-	   @param  width     number - the width of the pattern
-	   @param  height    number - the height of the pattern
-	   @param  vx        number - the minimum x-coordinate for view box (optional)
-	   @param  vy        number - the minimum y-coordinate for the view box (optional)
-	   @param  vwidth    number - the width of the view box (optional)
-	   @param  vheight   number - the height of the view box (optional)
-	   @param  settings  object - additional settings for the pattern (optional)
-	   @return  the new pattern node */
-	pattern: function(parent, id, x, y, width, height, vx, vy, vwidth, vheight, settings) {
-		if (typeof vx == 'object') {
-			settings = vx;
-			vx = null;
-		}
-		var sets = $.extend({id: id, x: x, y: y, width: width, height: height}, 
-			(vx != null ? {viewBox: vx + ' ' + vy + ' ' + vwidth + ' ' + vheight} : {}));
-		return this._makeNode(parent, 'pattern', $.extend(sets, settings || {}));
-	},
-
-	/* Add a mask definition.
-	   @param  parent    element - the parent node for the new mask
-	   @param  id        string - the ID for this mask
-	   @param  x         number - the x-coordinate for the left edge of the mask
-	   @param  y         number - the y-coordinate for the top edge of the mask
-	   @param  width     number - the width of the mask
-	   @param  height    number - the height of the mask
-	   @param  settings  object - additional settings for the mask (optional)
-	   @return  the new mask node */
-	mask: function(parent, id, x, y, width, height, settings) {
-		return this._makeNode(parent, 'mask', $.extend(
-			{id: id, x: x, y: y, width: width, height: height}, settings || {}));
-	},
-
-	/* Create a new path object.
-	   @return  a new path object */
-	createPath: function() {
-		return new SVGPath();
-	},
-
-	/* Create a new text object.
-	   @return  a new text object */
-	createText: function() {
-		return new SVGText();
-	},
-
-	/* Add an embedded SVG element.
-	   Specify all of vx, vy, vwidth, vheight or none of them.
-	   @param  parent    element - the parent node for the new node
-	   @param  x         number - the x-coordinate for the left edge of the node
-	   @param  y         number - the y-coordinate for the top edge of the node
-	   @param  width     number - the width of the node
-	   @param  height    number - the height of the node
-	   @param  vx        number - the minimum x-coordinate for view box (optional)
-	   @param  vy        number - the minimum y-coordinate for the view box (optional)
-	   @param  vwidth    number - the width of the view box (optional)
-	   @param  vheight   number - the height of the view box (optional)
-	   @param  settings  object - additional settings for the node (optional)
-	   @return  the new node */
-	svg: function(parent, x, y, width, height, vx, vy, vwidth, vheight, settings) {
-		if (typeof vx == 'object') {
-			settings = vx;
-			vx = null;
-		}
-		var sets = $.extend({x: x, y: y, width: width, height: height}, 
-			(vx != null ? {viewBox: vx + ' ' + vy + ' ' + vwidth + ' ' + vheight} : {}));
-		return this._makeNode(parent, 'svg', $.extend(sets, settings || {}));
-	},
-
-	/* Create a group.
-	   @param  parent    element - the parent node for the new group
-	   @param  id        string - the ID of this group (optional)
-	   @param  settings  object - additional settings for the group (optional)
-	   @return  the new group node */
-	group: function(parent, id, settings) {
-		if (typeof id == 'object') {
-			settings = id;
-			id = null;
-		}
-		return this._makeNode(parent, 'g', $.extend({id: id}, settings || {}));
-	},
-
-	/* Add a usage reference.
-	   Specify all of x, y, width, height or none of them.
-	   @param  parent    element - the parent node for the new node
-	   @param  x         number - the x-coordinate for the left edge of the node (optional)
-	   @param  y         number - the y-coordinate for the top edge of the node (optional)
-	   @param  width     number - the width of the node (optional)
-	   @param  height    number - the height of the node (optional)
-	   @param  ref       string - the ID of the definition node
-	   @param  settings  object - additional settings for the node (optional)
-	   @return  the new node */
-	use: function(parent, x, y, width, height, ref, settings) {
-		if (typeof x == 'string') {
-			ref = x;
-			settings = y;
-			x = y = width = height = null;
-		}
-		var node = this._makeNode(parent, 'use', $.extend(
-			{x: x, y: y, width: width, height: height}, settings || {}));
-		node.setAttributeNS(svgManager.xlinkNS, 'href', ref);
-		return node;
-	},
-
-	/* Add a link, which applies to all child elements.
-	   @param  parent    element - the parent node for the new link
-	   @param  ref       string - the target URL
-	   @param  settings  object - additional settings for the link (optional)
-	   @return  the new link node */
-	link: function(parent, ref, settings) {
-		var node = this._makeNode(parent, 'a', settings);
-		node.setAttributeNS(svgManager.xlinkNS, 'href', ref);
-		return node;
-	},
-
-	/* Add an image.
-	   @param  parent    element - the parent node for the new image
-	   @param  x         number - the x-coordinate for the left edge of the image
-	   @param  y         number - the y-coordinate for the top edge of the image
-	   @param  width     number - the width of the image
-	   @param  height    number - the height of the image
-	   @param  ref       string - the path to the image
-	   @param  settings  object - additional settings for the image (optional)
-	   @return  the new image node */
-	image: function(parent, x, y, width, height, ref, settings) {
-		var node = this._makeNode(parent, 'image', $.extend(
-			{x: x, y: y, width: width, height: height}, settings || {}));
-		node.setAttributeNS(svgManager.xlinkNS, 'href', ref);
-		return node;
-	},
-
-	/* Draw a path.
-	   @param  parent    element - the parent node for the new shape
-	   @param  path      string or SVGPath - the path to draw
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	path: function(parent, path, settings) {
-		return this._makeNode(parent, 'path', $.extend(
-			{d: (path.path ? path.path() : path)}, settings || {}));
-	},
-
-	/* Draw a rectangle.
-	   @param  parent    element - the parent node for the new shape
-	   @param  x         number - the x-coordinate for the left edge of the rectangle
-	   @param  y         number - the y-coordinate for the top edge of the rectangle
-	   @param  width     number - the width of the rectangle
-	   @param  height    number - the height of the rectangle
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	rect: function(parent, x, y, width, height, settings) {
-		return this._makeNode(parent, 'rect', $.extend(
-			{x: x, y: y, width: width, height: height}, settings || {}));
-	},
-
-	/* Draw a rounded rectangle.
-	   @param  parent    element - the parent node for the new shape
-	   @param  x         number - the x-coordinate for the left edge of the rectangle
-	   @param  y         number - the y-coordinate for the top edge of the rectangle
-	   @param  width     number - the width of the rectangle
-	   @param  height    number - the height of the rectangle
-	   @param  rx        number - the x-radius of the ellipse for the rounded corners
-	   @param  ry        number - the y-radius of the ellipse for the rounded corners
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	roundrect: function(parent, x, y, width, height, rx, ry, settings) {
-		return this._makeNode(parent, 'rect', $.extend(
-			{x: x, y: y, width: width, height: height, rx: rx, ry: ry}, settings || {}));
-	},
-
-	/* Draw a circle.
-	   @param  parent    element - the parent node for the new shape
-	   @param  cx        number - the x-coordinate for the centre of the circle
-	   @param  cy        number - the y-coordinate for the centre of the circle
-	   @param  r         number - the radius of the circle
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	circle: function(parent, cx, cy, r, settings) {
-		return this._makeNode(parent, 'circle', $.extend(
-			{cx: cx, cy: cy, r: r}, settings || {}));
-	},
-
-	/* Draw an ellipse.
-	   @param  parent    element - the parent node for the new shape
-	   @param  cx        number - the x-coordinate for the centre of the ellipse
-	   @param  cy        number - the y-coordinate for the centre of the ellipse
-	   @param  rx        number - the x-radius of the ellipse
-	   @param  ry        number - the y-radius of the ellipse
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	ellipse: function(parent, cx, cy, rx, ry, settings) {
-		return this._makeNode(parent, 'ellipse', $.extend(
-			{cx: cx, cy: cy, rx: rx, ry: ry}, settings || {}));
-	},
-
-	/* Draw a line.
-	   @param  parent    element - the parent node for the new shape
-	   @param  x1        number - the x-coordinate for the start of the line
-	   @param  y1        number - the y-coordinate for the start of the line
-	   @param  x2        number - the x-coordinate for the end of the line
-	   @param  y2        number - the y-coordinate for the end of the line
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	line: function(parent, x1, y1, x2, y2, settings) {
-		return this._makeNode(parent, 'line', $.extend(
-			{x1: x1, y1: y1, x2: x2, y2: y2}, settings || {}));
-	},
-
-	/* Draw a polygonal line.
-	   @param  parent    element - the parent node for the new shape
-	   @param  points    number[][] - the x-/y-coordinates for the points on the line
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	polyline: function(parent, points, settings) {
-		return this._poly(parent, 'polyline', points, settings);
-	},
-
-	/* Draw a polygonal shape.
-	   @param  parent    element - the parent node for the new shape
-	   @param  points    number[][] - the x-/y-coordinates for the points on the shape
-	   @param  settings  object - additional settings for the shape (optional)
-	   @return  the new shape node */
-	polygon: function(parent, points, settings) {
-		return this._poly(parent, 'polygon', points, settings);
-	},
-
-	/* Draw a polygonal line or shape. */
-	_poly: function(parent, name, points, settings) {
-		var ps = '';
-		for (var i = 0; i < points.length; i++) {
-			ps += points[i].join() + ' ';
-		}
-		return this._makeNode(parent, name, $.extend(
-			{points: ps}, settings || {}));
-	},
-	
-	/* Draw text.
-	   Specify both of x and y or neither of them.
-	   @param  parent    element - the parent node for the text
-	   @param  x         number or number[] - the x-coordinate(s) for the text (optional)
-	   @param  y         number or number[] - the y-coordinate(s) for the text (optional)
-	   @param  value     string - the text content or
-	                     SVGText - text with spans and references
-	   @param  settings  object - additional settings for the text (optional)
-	   @return  the new text node */
-	text: function(parent, x, y, value, settings) {
-		if (typeof x == 'string' && arguments.length < 4) {
-			value = x;
-			settings = y;
-			x = y = null;
-		}
-		return this._text(parent, 'text', value, $.extend(
-			{x: (x && isArray(x) ? x.join(' ') : x), y: (y && isArray(y) ? y.join(' ') : y)}, 
-			settings || {}));
-	},
-	
-	/* Draw text along a path.
-	   @param  parent    element - the parent node for the text
-	   @param  path      string - the ID of the path
-	   @param  value     string - the text content or
-	                     SVGText - text with spans and references
-	   @param  settings  object - additional settings for the text (optional)
-	   @return  the new text node */
-	textpath: function(parent, path, value, settings) {
-		var node = this._text(parent, 'textPath', value, settings || {});
-		node.setAttributeNS(svgManager.xlinkNS, 'href', path);
-		return node;
-	},
-	
-	/* Draw text. */
-	_text: function(parent, name, value, settings) {
-		var node = this._makeNode(parent, name, settings);
-		if (typeof value == 'string') {
-			node.appendChild(node.ownerDocument.createTextNode(value));
-		}
-		else {
-			for (var i = 0; i < value._parts.length; i++) {
-				var part = value._parts[i];
-				if (part[0] == 'tspan') {
-					var child = this._makeNode(node, part[0], part[2]);
-					child.appendChild(node.ownerDocument.createTextNode(part[1]));
-					node.appendChild(child);
-				}
-				else if (part[0] == 'tref') {
-					var child = this._makeNode(node, part[0], part[2]);
-					child.setAttributeNS(svgManager.xlinkNS, 'href', part[1]);
-					node.appendChild(child);
-				}
-				else if (part[0] == 'textpath') {
-					var pathId = part[2].href;
-					part[2].href = null;
-					var child = this._makeNode(node, part[0], part[2]);
-					child.setAttributeNS(svgManager.xlinkNS, 'href', pathId);
-					child.appendChild(node.ownerDocument.createTextNode(part[1]));
-					node.appendChild(child);
-				}
-				else { // straight text
-					node.appendChild(node.ownerDocument.createTextNode(part[1]));
-				}
-			}
-		}
-		return node;
-	},
-
-	/* Add a custom SVG element.
-	   @param  parent    element - the parent node for the new element
-	   @param  name      string - the name of the element
-	   @param  settings  object - additional settings for the element (optional)
-	   @return  the new title node */
-	other: function(parent, name, settings) {
-		return this._makeNode(parent, other, settings || {});
-	},
-
-	/* Create a shape node with the given settings. */
-	_makeNode: function(parent, name, settings) {
-		parent = parent || this._svg;
-		var node = this._svg.ownerDocument.createElementNS(svgManager.svgNS, name);
-		for (var name in settings) {
-			var value = settings[name];
-			if (value != null && value != null && 
-					(typeof value != 'string' || value != '')) {
-				node.setAttribute(this._fromJSName(name), value);
-			}
-		}
-		parent.appendChild(node);
-		return node;
-	},
-	
-	/* JavaScript identifiers can't use '-', so convert from '_'. */
-	_fromJSName: function(name) {
-		return name.replace(/^_/, '').replace(/_/g, '-');
-	},
-	
-	/* Add an existing SVG node to the diagram.
-	   @param  parent  element - the parent node for the new node
-	   @param  node    element - the new node to add or
-	                   string - the jQuery selector for the node or
-	                   jQuery collection - set of nodes to add */
-	add: function(parent, node) {
-		var svg = this;
-		parent = parent || this._svg;
-		node = (node.jquery ? node : $(node));
-		node.each(function() {
-			var child = svg._cloneAsSVG(this);
-			if (child) {
-				parent.appendChild(child);
-			}
-		});
-	},
-	
-	/* SVG nodes must belong to the SVG namespace, so clone and ensure this is so. */
-	_cloneAsSVG: function(node) {
-		var newNode = null;
-		if (node.nodeType == 1) { // element
-			newNode = this._svg.ownerDocument.createElementNS(
-				node.namespaceURI || svgManager.svgNS, this._checkName(node.nodeName));
-			for (var i = 0; i < node.attributes.length; i++) {
-				var attr = node.attributes.item(i);
-				if (attr.nodeName != 'xmlns') {
-					if (attr.prefix == 'xlink') {
-						newNode.setAttributeNS(svgManager.xlinkNS, attr.localName, attr.nodeValue);
-					}
-					else {
-						newNode.setAttribute(this._checkName(attr.nodeName), attr.nodeValue);
-					}
-				}
-			}
-			for (var i = 0; i < node.childNodes.length; i++) {
-				var child = this._cloneAsSVG(node.childNodes[i]);
-				if (child) {
-					newNode.appendChild(child);
-				}
-			}
-		}
-		else if (node.nodeType == 3) { // text
-			if ($.trim(node.nodeValue)) {
-				newNode = this._svg.ownerDocument.createTextNode(node.nodeValue);
-			}
-		}
-		else if (node.nodeType == 4) { // CDATA
-			if ($.trim(node.nodeValue)) {
-				newNode = this._svg.ownerDocument.createCDATASection(node.nodeValue);
-			}
-		}
-		return newNode;
-	},
-	
-	/* Node names must be lower case and without SVG namespace prefix. */
-	_checkName: function(name) {
-		name = (name.substring(0, 1) >= 'A' && name.substring(0, 1) <= 'Z' ? name.toLowerCase() : name);
-		return (name.substring(0, 4) == 'svg:' ? name.substring(4) : name);
-	},
-
-	/* Load an external SVG document.
-	   @param  url    string - the location of the SVG document
-	   @param  addTo  boolean - true to add to what's already there, or false to clear the canvas first */
-	load: function(url, addTo) {
-		if (!addTo) {
-			this.clear(true);
-		}
-		var root = this;
-		var http = $.ajax({url: url, dataType: 'xml', success: function(data) {
-			if ($.browser.msie) { // Doesn't load properly!
-				data.loadXML(http.responseText);
-				if (data.parseError.errorCode != 0) {
-					root.text(null, 10, 20, svgManager.local.errorLoadingText + ': ' +
-						data.parseError.reason);
-					return;
-				}
-			}
-			var attrs = {};
-			for (var i = 0; i < data.documentElement.attributes.length; i++) {
-				var attr = data.documentElement.attributes.item(i);
-				if (!(attr.nodeName == 'version' || attr.nodeName.substring(0, 5) == 'xmlns')) {
-					attrs[attr.nodeName] = attr.nodeValue;
-				}
-			}
-			root.configure(attrs, true);
-			var nodes = data.documentElement.childNodes;
-			for (var i = 0; i < nodes.length; i++) {
-				root.add(null, nodes[i]);
-			}
-		}, error: function(http, message, exc) {
-			root.text(null, 10, 20, svgManager.local.errorLoadingText + ': ' +
-				message + (exc ? ' ' + exc.message : ''));
-		}});
-	},
-
-	/* Delete a specified node.
-	   @param  node  element - the drawing node to remove */
-	remove: function(node) {
-		node.parentNode.removeChild(node);
-	},
-
-	/* Delete everything in the current document.
-	   @param  attrsToo  boolean - true to clear any root attributes as well,
-	                     false to leave them (optional) */
-	clear: function(attrsToo) {
-		if (attrsToo) {
-			this.configure({}, true);
-		}
-		while (this._svg.firstChild) {
-			this._svg.removeChild(this._svg.firstChild);
-		}
-	},
-	
-	/* Serialise the current diagram into an SVG text document.
-	   @return  the SVG as text */
-	toSVG: function() {
-		return this._toSVG(this._svg);
-	},
-	
-	/* Serialise one node in the SVG hierarchy. */
-	_toSVG: function(node) {
-		var svgDoc = '';
-		if (!node) {
-			return svgDoc;
-		}
-		if (node.nodeType == 3) { // Text
-			svgDoc = node.nodeValue;
-		}
-		else if (node.nodeType == 4) { // CDATA
-			svgDoc = '<![CDATA[' + node.nodeValue + ']]>';
-		}
-		else { // Element
-			svgDoc = '<' + node.nodeName;
-			if (node.attributes) {
-				for (var i = 0; i < node.attributes.length; i++) {
-					var attr = node.attributes.item(i);
-					if (!($.trim(attr.nodeValue) == '' || attr.nodeValue.match(/^\[object/) ||
-							attr.nodeValue.match(/^function/))) {
-						svgDoc += ' ' + (attr.namespaceURI == svgManager.xlinkNS ? 'xlink:' : '') + 
-							attr.nodeName + '="' + attr.nodeValue + '"';
-					}
-				}
-			}	
-			if (node.firstChild) {
-				svgDoc += '>';
-				var child = node.firstChild;
-				while (child) {
-					svgDoc += this._toSVG(child);
-					child = child.nextSibling;
-				}
-				svgDoc += '</' + node.nodeName + '>';
-			}
-				else {
-				svgDoc += '/>';
-			}
-		}
-		return svgDoc;
-	},
-	
-	/* Escape reserved characters in XML. */
-	_escapeXML: function(text) {
-		text = text.replace(/&/g, '&amp;');
-		text = text.replace(/</g, '&lt;');
-		text = text.replace(/>/g, '&gt;');
-		return text;
-	}
-});
-
-/* Helper to generate an SVG path.
-   Obtain an instance from the SVGRoot object.
-   String calls together to generate the path and use its value:
-   var path = root.createPath();
-   root.path(null, path.moveTo(100, 100).lineTo(300, 100).lineTo(200, 300).close(), {fill: 'red'});
-   or
-   root.path(null, path.moveTo(100, 100).lineTo([[300, 100], [200, 300]]).close(), {fill: 'red'}); */
-function SVGPath() {
-	this._path = '';
-}
-
-$.extend(SVGPath.prototype, {
-	/* Prepare to create a new path.
-	   @return  this path */
-	reset: function() {
-		this._path = '';
-		return this;
-	},
-
-	/* Move the pointer to a position.
-	   @param  x         number - x-coordinate to move to or
-	                     number[][] - x-/y-coordinates to move to
-	   @param  y         number - y-coordinate to move to (omitted if x is array)
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	moveTo: function(x, y, relative) {
-		relative = (isArray(x) ? y : relative);
-		return this._coords((relative ? 'm' : 'M'), x, y);
-	},
-
-	/* Draw a line to a position.
-	   @param  x         number - x-coordinate to move to or
-	                     number[][] - x-/y-coordinates to move to
-	   @param  y         number - y-coordinate to move to (omitted if x is array)
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	lineTo: function(x, y, relative) {
-		relative = (isArray(x) ? y : relative);
-		return this._coords((relative ? 'l' : 'L'), x, y);
-	},
-
-	/* Draw a horizontal line to a position.
-	   @param  x         number - x-coordinate to draw to
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	horizTo: function(x, relative) {
-		this._path += (relative ? 'h' : 'H') + x;
-		return this;
-	},
-
-	/* Draw a vertical line to a position.
-	   @param  y         number - y-coordinate to draw to
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	vertTo: function(y, relative) {
-		this._path += (relative ? 'v' : 'V') + y;
-		return this;
-	},
-
-	/* Draw a cubic B�zier curve.
-	   @param  x1        number - x-coordinate of beginning control point or
-	                     number[][] - x-/y-coordinates of control and end points to draw to
-	   @param  y1        number - y-coordinate of beginning control point (omitted if x1 is array)
-	   @param  x2        number - x-coordinate of ending control point (omitted if x1 is array)
-	   @param  y2        number - y-coordinate of ending control point (omitted if x1 is array)
-	   @param  x         number - x-coordinate of curve end (omitted if x1 is array)
-	   @param  y         number - y-coordinate of curve end (omitted if x1 is array)
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	curveCTo: function(x1, y1, x2, y2, x, y, relative) {
-		relative = (isArray(x1) ? y1 : relative);
-		return this._coords((relative ? 'c' : 'C'), x1, y1, x2, y2, x, y);
-	},
-
-	/* Continue a cubic B�zier curve.
-	   Starting control point is the reflection of the previous end control point.
-	   @param  x2        number - x-coordinate of ending control point or
-	                     number[][] - x-/y-coordinates of control and end points to draw to
-	   @param  y2        number - y-coordinate of ending control point (omitted if x2 is array)
-	   @param  x         number - x-coordinate of curve end (omitted if x2 is array)
-	   @param  y         number - y-coordinate of curve end (omitted if x2 is array)
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	smoothCTo: function(x2, y2, x, y, relative) {
-		relative = (isArray(x2) ? y2 : relative);
-		return this._coords((relative ? 's' : 'S'), x2, y2, x, y);
-	},
-
-	/* Draw a quadratic B�zier curve.
-	   @param  x1        number - x-coordinate of control point or
-	                     number[][] - x-/y-coordinates of control and end points to draw to
-	   @param  y1        number - y-coordinate of control point (omitted if x1 is array)
-	   @param  x         number - x-coordinate of curve end (omitted if x1 is array)
-	   @param  y         number - y-coordinate of curve end (omitted if x1 is array)
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	curveQTo: function(x1, y1, x, y, relative) {
-		relative = (isArray(x1) ? y1 : relative);
-		return this._coords((relative ? 'q' : 'Q'), x1, y1, x, y);
-	},
-
-	/* Continue a quadratic B�zier curve.
-	   Control point is the reflection of the previous control point.
-	   @param  x         number - x-coordinate of curve end or
-	                     number[][] - x-/y-coordinates of points to draw to
-	   @param  y         number - y-coordinate of curve end (omitted if x is array)
-	   @param  relative  boolean - true for coordinates relative to the current point,
-	                     false for coordinates being absolute
-	   @return  this path */
-	smoothQTo: function(x, y, relative) {
-		relative = (isArray(x) ? y : relative);
-		return this._coords((relative ? 't' : 'T'), x, y);
-	},
-
-	/* Generate a path command with (a list of) coordinates. */
-	_coords: function(cmd, x1, y1, x2, y2, x3, y3) {
-		if (isArray(x1)) {
-			for (var i = 0; i < x1.length; i++) {
-				var cs = x1[i];
-				this._path += (i == 0 ? cmd : ' ') + cs[0] + ',' + cs[1] + 
-					(cs.length < 4 ? '' : ' ' + cs[2] + ',' + cs[3] + 
-					(cs.length < 6 ? '': ' ' + cs[4] + ',' + cs[5]));
-			}
-		}
-		else {
-			this._path += cmd + x1 + ',' + y1 + 
-				(x2 == null ? '' : ' ' + x2 + ',' + y2 +
-				(x3 == null ? '' : ' ' + x3 + ',' + y3));
-		}
-		return this;
-	},
-
-	/* Draw an arc to a position.
-	   @param  rx         number - x-radius of arc or
-	                      number/boolean[][] - x-/y-coordinates and flags for points to draw to
-	   @param  ry         number - y-radius of arc (omitted if rx is array)
-	   @param  xRotate    number - x-axis rotation (degrees, clockwise) (omitted if rx is array)
-	   @param  large      boolean - true to draw the large part of the arc,
-	                      false to draw the small part (omitted if rx is array)
-	   @param  clockwise  boolean - true to draw the clockwise arc,
-	                      false to draw the anti-clockwise arc (omitted if rx is array)
-	   @param  x          number - x-coordinate of arc end (omitted if rx is array)
-	   @param  y          number - y-coordinate of arc end (omitted if rx is array)
-	   @param  relative   boolean - true for coordinates relative to the current point,
-	                      false for coordinates being absolute
-	   @return  this path */
-	arcTo: function(rx, ry, xRotate, large, clockwise, x, y, relative) {
-		relative = (isArray(rx) ? ry : relative);
-		this._path += (relative ? 'a' : 'A');
-		if (isArray(rx)) {
-			for (var i = 0; i < rx.length; i++) {
-				var cs = rx[i];
-				this._path += (i == 0 ? '' : ' ') + cs[0] + ',' + cs[1] + ' ' +
-					cs[2] + ' ' + (cs[3] ? '1' : '0') + ',' +
-					(cs[4] ? '1' : '0') + ' ' + cs[5] + ',' + cs[6];
-			}
-		}
-		else {
-			this._path += rx + ',' + ry + ' ' + xRotate + ' ' +
-				(large ? '1' : '0') + ',' + (clockwise ? '1' : '0') + ' ' + x + ',' + y;
-		}
-		return this;
-	},
-	
-	/* Close the current path.
-	   @return  this path */
-	close: function() {
-		this._path += 'z';
-		return this;
-	},
-
-	/* Return the string rendering of the specified path.
-	   @return  stringified path */
-	path: function() {
-		return this._path;
-	}
-});
-
-/* Helper to generate an SVG text object.
-   Obtain an instance from the SVGRoot object.
-   String calls together to generate the text and use its value:
-   var text = root.createText();
-   root.text(null, x, y, text.string('This is ').
-     span('red', {fill: 'red'}).string('!'), {fill: 'blue'}); */
-function SVGText() {
-	this._parts = []; // The components of the text object
-}
-
-$.extend(SVGText.prototype, {
-	/* Prepare to create a new text object.
-	   @return  this text */
-	reset: function() {
-		this._parts = [];
-		return this;
-	},
-	
-	/* Add a straight string value.
-	   @param  value  string - the actual text
-	   @return  this text object */
-	string: function(value) {
-		this._parts[this._parts.length] = ['text', value];
-		return this;
-	},
-	
-	/* Add a separate text span that has its own settings.
-	   @param  value     string - the actual text
-	   @param  settings  object - the settings for this text
-	   @return  this text object */
-	span: function(value, settings) {
-		this._parts[this._parts.length] = ['tspan', value, settings];
-		return this;
-	},
-	
-	/* Add a reference to a previously defined text string.
-	   @param  id        string - the ID of the actual text
-	   @param  settings  object - the settings for this text
-	   @return  this text object */
-	ref: function(id, settings) {
-		this._parts[this._parts.length] = ['tref', id, settings];
-		return this;
-	},
-
-	/* Add text drawn along a path.
-	   @param  id        string - the ID of the path
-	   @param  value     string - the actual text
-	   @param  settings  object - the settings for this text
-	   @return  this text object */
-	path: function(id, value, settings) {
-		this._parts[this._parts.length] = ['textpath', value, 
-			$.extend({href: id}, settings || {})];
-		return this;
-	}
-});
-
-/* Attach the SVG functionality to a jQuery selection.
-   @param  loadURL   string - the URL of the initial document to load (optional)
-   @param  onLoad    function - a callback functional invoked following loading (optional)
-   @param  settings  object - the new settings to use for this SVG instance (optional)
-   @return jQuery object - for chaining further calls */
-$.fn.svg = function(loadURL, onLoad, settings) {
-	if (typeof loadURL == 'function') {
-		settings = onLoad;
-		onLoad = loadURL;
-		loadURL = null;
-	}
-	if (loadURL && typeof loadURL == 'object') {
-		settings = loadURL;
-		loadURL = onLoad = null;
-	}
-	if (onLoad && typeof onLoad == 'object') {
-		settings = onLoad;
-		onLoad = null;
-	}
-	return this.each(function() {
-		svgManager._connectSVG(this, loadURL, onLoad, settings);
-	});
-};
-
-/* Determine whether an object is an array. */
-function isArray(a) {
-	return (a.constructor && a.constructor.toString().match(/\Array\(\)/));
-}
-
-// Singleton primary SVG interface
-svgManager = new SVGManager();
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.min.js
deleted file mode 100644
index e0b75fe..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-var svgManager=null;(function($){function SVGManager(){this._nextId=0;this._svgs=[];this._settings=[];this._extensions=[];this.regional=[];this.regional['']={notSupportedText:'This browser does not support SVG',errorLoadingText:'Error loading'};this.local=this.regional['']}$.extend(SVGManager.prototype,{svgNS:'http://www.w3.org/2000/svg',xlinkNS:'http://www.w3.org/1999/xlink',_rootClass:SVGRoot,_connectSVG:function(a,b,c,d){var e=this._nextId++;a._svgId=e;var f=null;if($.browser.msie){a.innerHTML='<embed type="image/svg+xml" width="'+a.clientWidth+'" height="'+a.clientHeight+'" src="blank.svg"/>';this._settings[e]=[a,b,d,c]}else if(document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#SVG","1.1")||document.implementation.hasFeature("org.w3c.svg","1.1")){f=document.createElementNS(this.svgNS,'svg');f.setAttribute('version','1.1');f.setAttribute('width',a.clientWidth);f.setAttribute('height',a.clientHeight);a.appendChild(f);this._afterLoad(e,f,[a,b,d,c])}else{a.innerHTML='<p class="svg_error">'+this.local.notSupportedText+'</p>'}return e},_registerSVG:function(){for(var i=0;i<document.embeds.length;i++){var a=document.embeds[i].parentNode._svgId;var b=document.embeds[i].getSVGDocument();b=(b?b.documentElement:null);if(a!=null&&b&&!this._svgs[a]){this._afterLoad(a,b)}}},_afterLoad:function(a,b,c){var c=c||this._settings[a];var d=this._svgs[a]=new this._rootClass(b,c[0]);if(c[1]){d.load(c[1])}if(c[2]){d.configure(c[2])}if(c[3]){c[3](c[0])}},getSVGFor:function(a){a=(typeof a=='string'?$(a)[0]:(a.jquery?a[0]:a));return this._svgs[a._svgId]},addExtension:function(a,b){this._extensions[this._extensions.length]=[a,b]}});function SVGRoot(a,b){this._svg=a;this._container=b;for(var i=0;i<svgManager._extensions.length;i++){var c=svgManager._extensions[i];this[c[0]]=new c[1](this)}}$.extend(SVGRoot.prototype,{_width:function(){return this._container.clientWidth},_height:function(){return this._container.clientHeight},configure:function(a,b){if(b){for(var i=this._svg.attributes.length-1;i>=0;i--){var c=this._svg.attributes.item(i);if(!(c.nodeName=='onload'||c.nodeName=='version'||c.nodeName.substring(0,5)=='xmlns')){this._svg.attributes.removeNamedItem(c.nodeName)}}}for(var d in a){this._svg.setAttribute(d,a[d])}return this},getElementById:function(a){return this._svg.getElementById(a)},title:function(a,b,c){var d=this._makeNode(a,'title',c||{});d.appendChild(this._svg.ownerDocument.createTextNode(b));return d},describe:function(a,b,c){var d=this._makeNode(a,'desc',c||{});d.appendChild(this._svg.ownerDocument.createTextNode(b));return d},defs:function(a,b,c){if(typeof b!='string'){c=b;b=null}return this._makeNode(a,'defs',$.extend((b?{id:b}:{}),c||{}))},symbol:function(a,b,c,d,e,f,g){return this._makeNode(a,'symbol',$.extend({id:b,viewBox:c+' '+d+' '+e+' '+f},g||{}))},marker:function(a,b,c,d,e,f,g,h){if(typeof g=='object'){h=g;g=null}return this._makeNode(a,'marker',$.extend({id:b,refX:c,refY:d,markerWidth:e,markerHeight:f,orient:g||'auto'},h||{}))},style:function(a,b,c){var d=this._makeNode(a,'style',$.extend({type:'text/css'},c||{}));d.appendChild(this._svg.ownerDocument.createTextNode(this._escapeXML(b)));return d},script:function(a,b,c,d){if(typeof c=='object'){d=c;c=null}var e=this._makeNode(a,'script',$.extend({type:c||'text/javascript'},d||{}));e.appendChild(this._svg.ownerDocument.createTextNode(this._escapeXML(b)));return e},linearGradient:function(a,b,c,d,e,f,g,h){if(typeof d=='object'){h=d;d=null}var i=$.extend({id:b},(d!=null?{x1:d,y1:e,x2:f,y2:g}:{}));return this._gradient(a,'linearGradient',$.extend(i,h||{}),c)},radialGradient:function(a,b,c,d,e,r,f,g,h){if(typeof d=='object'){h=d;d=null}var i=$.extend({id:b},(d!=null?{cx:d,cy:e,r:r,fx:f,fy:g}:{}));return this._gradient(a,'radialGradient',$.extend(i,h||{}),c)},_gradient:function(a,b,c,d){var e=this._makeNode(a,b,c);for(var i=0;i<d.length;i++){var f=d[i];this._makeNode(e,'stop',$.extend({offset:f[0],stop_color:f[1]},(f[2]!=null?{stop_opacity:f[2]}:{})))}return e},pattern:function(a,b,x,y,c,d,e,f,g,h,i){if(typeof e=='object'){i=e;e=null}var j=$.extend({id:b,x:x,y:y,width:c,height:d},(e!=null?{viewBox:e+' '+f+' '+g+' '+h}:{}));return this._makeNode(a,'pattern',$.extend(j,i||{}))},mask:function(a,b,x,y,c,d,e){return this._makeNode(a,'mask',$.extend({id:b,x:x,y:y,width:c,height:d},e||{}))},createPath:function(){return new SVGPath()},createText:function(){return new SVGText()},svg:function(a,x,y,b,c,d,e,f,g,h){if(typeof d=='object'){h=d;d=null}var i=$.extend({x:x,y:y,width:b,height:c},(d!=null?{viewBox:d+' '+e+' '+f+' '+g}:{}));return this._makeNode(a,'svg',$.extend(i,h||{}))},group:function(a,b,c){if(typeof b=='object'){c=b;b=null}return this._makeNode(a,'g',$.extend({id:b},c||{}))},use:function(a,x,y,b,c,d,e){if(typeof x=='string'){d=x;e=y;x=y=b=c=null}var f=this._makeNode(a,'use',$.extend({x:x,y:y,width:b,height:c},e||{}));f.setAttributeNS(svgManager.xlinkNS,'href',d);return f},link:function(a,b,c){var d=this._makeNode(a,'a',c);d.setAttributeNS(svgManager.xlinkNS,'href',b);return d},image:function(a,x,y,b,c,d,e){var f=this._makeNode(a,'image',$.extend({x:x,y:y,width:b,height:c},e||{}));f.setAttributeNS(svgManager.xlinkNS,'href',d);return f},path:function(a,b,c){return this._makeNode(a,'path',$.extend({d:(b.path?b.path():b)},c||{}))},rect:function(a,x,y,b,c,d){return this._makeNode(a,'rect',$.extend({x:x,y:y,width:b,height:c},d||{}))},roundrect:function(a,x,y,b,c,d,e,f){return this._makeNode(a,'rect',$.extend({x:x,y:y,width:b,height:c,rx:d,ry:e},f||{}))},circle:function(a,b,c,r,d){return this._makeNode(a,'circle',$.extend({cx:b,cy:c,r:r},d||{}))},ellipse:function(a,b,c,d,e,f){return this._makeNode(a,'ellipse',$.extend({cx:b,cy:c,rx:d,ry:e},f||{}))},line:function(a,b,c,d,e,f){return this._makeNode(a,'line',$.extend({x1:b,y1:c,x2:d,y2:e},f||{}))},polyline:function(a,b,c){return this._poly(a,'polyline',b,c)},polygon:function(a,b,c){return this._poly(a,'polygon',b,c)},_poly:function(a,b,c,d){var e='';for(var i=0;i<c.length;i++){e+=c[i].join()+' '}return this._makeNode(a,b,$.extend({points:e},d||{}))},text:function(a,x,y,b,c){if(typeof x=='string'&&arguments.length<4){b=x;c=y;x=y=null}return this._text(a,'text',b,$.extend({x:(x&&isArray(x)?x.join(' '):x),y:(y&&isArray(y)?y.join(' '):y)},c||{}))},textpath:function(a,b,c,d){var e=this._text(a,'textPath',c,d||{});e.setAttributeNS(svgManager.xlinkNS,'href',b);return e},_text:function(a,b,c,d){var e=this._makeNode(a,b,d);if(typeof c=='string'){e.appendChild(e.ownerDocument.createTextNode(c))}else{for(var i=0;i<c._parts.length;i++){var f=c._parts[i];if(f[0]=='tspan'){var g=this._makeNode(e,f[0],f[2]);g.appendChild(e.ownerDocument.createTextNode(f[1]));e.appendChild(g)}else if(f[0]=='tref'){var g=this._makeNode(e,f[0],f[2]);g.setAttributeNS(svgManager.xlinkNS,'href',f[1]);e.appendChild(g)}else if(f[0]=='textpath'){var h=f[2].href;f[2].href=null;var g=this._makeNode(e,f[0],f[2]);g.setAttributeNS(svgManager.xlinkNS,'href',h);g.appendChild(e.ownerDocument.createTextNode(f[1]));e.appendChild(g)}else{e.appendChild(e.ownerDocument.createTextNode(f[1]))}}}return e},other:function(a,b,c){return this._makeNode(a,other,c||{})},_makeNode:function(a,b,c){a=a||this._svg;var d=this._svg.ownerDocument.createElementNS(svgManager.svgNS,b);for(var b in c){var e=c[b];if(e!=null&&e!=null&&(typeof e!='string'||e!='')){d.setAttribute(this._fromJSName(b),e)}}a.appendChild(d);return d},_fromJSName:function(a){return a.replace(/^_/,'').replace(/_/g,'-')},add:function(b,c){var d=this;b=b||this._svg;c=(c.jquery?c:$(c));c.each(function(){var a=d._cloneAsSVG(this);if(a){b.appendChild(a)}})},_cloneAsSVG:function(a){var b=null;if(a.nodeType==1){b=this._svg.ownerDocument.createElementNS(a.namespaceURI||svgManager.svgNS,this._checkName(a.nodeName));for(var i=0;i<a.attributes.length;i++){var c=a.attributes.item(i);if(c.nodeName!='xmlns'){if(c.prefix=='xlink'){b.setAttributeNS(svgManager.xlinkNS,c.localName,c.nodeValue)}else{b.setAttribute(this._checkName(c.nodeName),c.nodeValue)}}}for(var i=0;i<a.childNodes.length;i++){var d=this._cloneAsSVG(a.childNodes[i]);if(d){b.appendChild(d)}}}else if(a.nodeType==3){if($.trim(a.nodeValue)){b=this._svg.ownerDocument.createTextNode(a.nodeValue)}}else if(a.nodeType==4){if($.trim(a.nodeValue)){b=this._svg.ownerDocument.createCDATASection(a.nodeValue)}}return b},_checkName:function(a){a=(a.substring(0,1)>='A'&&a.substring(0,1)<='Z'?a.toLowerCase():a);return(a.substring(0,4)=='svg:'?a.substring(4):a)},load:function(e,f){if(!f){this.clear(true)}var g=this;var h=$.ajax({url:e,dataType:'xml',success:function(a){if($.browser.msie){a.loadXML(h.responseText);if(a.parseError.errorCode!=0){g.text(null,10,20,svgManager.local.errorLoadingText+': '+a.parseError.reason);return}}var b={};for(var i=0;i<a.documentElement.attributes.length;i++){var c=a.documentElement.attributes.item(i);if(!(c.nodeName=='version'||c.nodeName.substring(0,5)=='xmlns')){b[c.nodeName]=c.nodeValue}}g.configure(b,true);var d=a.documentElement.childNodes;for(var i=0;i<d.length;i++){g.add(null,d[i])}},error:function(a,b,c){g.text(null,10,20,svgManager.local.errorLoadingText+': '+b+(c?' '+c.message:''))}})},remove:function(a){a.parentNode.removeChild(a)},clear:function(a){if(a){this.configure({},true)}while(this._svg.firstChild){this._svg.removeChild(this._svg.firstChild)}},toSVG:function(){return this._toSVG(this._svg)},_toSVG:function(a){var b='';if(!a){return b}if(a.nodeType==3){b=a.nodeValue}else if(a.nodeType==4){b='<![CDATA['+a.nodeValue+']]>'}else{b='<'+a.nodeName;if(a.attributes){for(var i=0;i<a.attributes.length;i++){var c=a.attributes.item(i);if(!($.trim(c.nodeValue)==''||c.nodeValue.match(/^\[object/)||c.nodeValue.match(/^function/))){b+=' '+(c.namespaceURI==svgManager.xlinkNS?'xlink:':'')+c.nodeName+'="'+c.nodeValue+'"'}}}if(a.firstChild){b+='>';var d=a.firstChild;while(d){b+=this._toSVG(d);d=d.nextSibling}b+='</'+a.nodeName+'>'}else{b+='/>'}}return b},_escapeXML:function(a){a=a.replace(/&/g,'&amp;');a=a.replace(/</g,'&lt;');a=a.replace(/>/g,'&gt;');return a}});function SVGPath(){this._path=''}$.extend(SVGPath.prototype,{reset:function(){this._path='';return this},moveTo:function(x,y,a){a=(isArray(x)?y:a);return this._coords((a?'m':'M'),x,y)},lineTo:function(x,y,a){a=(isArray(x)?y:a);return this._coords((a?'l':'L'),x,y)},horizTo:function(x,a){this._path+=(a?'h':'H')+x;return this},vertTo:function(y,a){this._path+=(a?'v':'V')+y;return this},curveCTo:function(a,b,c,d,x,y,e){e=(isArray(a)?b:e);return this._coords((e?'c':'C'),a,b,c,d,x,y)},smoothCTo:function(a,b,x,y,c){c=(isArray(a)?b:c);return this._coords((c?'s':'S'),a,b,x,y)},curveQTo:function(a,b,x,y,c){c=(isArray(a)?b:c);return this._coords((c?'q':'Q'),a,b,x,y)},smoothQTo:function(x,y,a){a=(isArray(x)?y:a);return this._coords((a?'t':'T'),x,y)},_coords:function(a,b,c,d,e,f,g){if(isArray(b)){for(var i=0;i<b.length;i++){var h=b[i];this._path+=(i==0?a:' ')+h[0]+','+h[1]+(h.length<4?'':' '+h[2]+','+h[3]+(h.length<6?'':' '+h[4]+','+h[5]))}}else{this._path+=a+b+','+c+(d==null?'':' '+d+','+e+(f==null?'':' '+f+','+g))}return this},arcTo:function(a,b,c,d,e,x,y,f){f=(isArray(a)?b:f);this._path+=(f?'a':'A');if(isArray(a)){for(var i=0;i<a.length;i++){var g=a[i];this._path+=(i==0?'':' ')+g[0]+','+g[1]+' '+g[2]+' '+(g[3]?'1':'0')+','+(g[4]?'1':'0')+' '+g[5]+','+g[6]}}else{this._path+=a+','+b+' '+c+' '+(d?'1':'0')+','+(e?'1':'0')+' '+x+','+y}return this},close:function(){this._path+='z';return this},path:function(){return this._path}});function SVGText(){this._parts=[]}$.extend(SVGText.prototype,{reset:function(){this._parts=[];return this},string:function(a){this._parts[this._parts.length]=['text',a];return this},span:function(a,b){this._parts[this._parts.length]=['tspan',a,b];return this},ref:function(a,b){this._parts[this._parts.length]=['tref',a,b];return this},path:function(a,b,c){this._parts[this._parts.length]=['textpath',b,$.extend({href:a},c||{})];return this}});$.fn.svg=function(a,b,c){if(typeof a=='function'){c=b;b=a;a=null}if(a&&typeof a=='object'){c=a;a=b=null}if(b&&typeof b=='object'){c=b;b=null}return this.each(function(){svgManager._connectSVG(this,a,b,c)})};function isArray(a){return(a.constructor&&a.constructor.toString().match(/\Array\(\)/))}svgManager=new SVGManager()})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.pack.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.pack.js
deleted file mode 100644
index 24fc148..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svg.pack.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('k E=o;(8($){8 1t(){7.27=0;7.1j=[];7.1u=[];7.1f=[];7.1v=[];7.1v[\'\']={28:\'2W 1w 2X 2Y 2Z 29\',1x:\'30 31\'};7.1k=7.1v[\'\']}$.u(1t.1l,{1m:\'1y://1z.1A.1n/32/Y\',11:\'1y://1z.1A.1n/33/1B\',2a:1C,2b:8(a,b,c,d){k e=7.27++;a.1D=e;k f=o;n($.1w.2c){a.2d=\'<34 1E="1F/Y+2e" 12="\'+a.1G+\'" 13="\'+a.1H+\'" 35="36.Y"/>\';7.1u[e]=[a,b,d,c]}J n(1o||1b.2f.2g("1y://1z.1A.1n/37/38/39#29","1.1")||1b.2f.2g("1n.3a.Y","1.1")){f=1b.1I(7.1m,\'Y\');f.1c(\'1J\',\'1.1\');f.1c(\'12\',a.1G);f.1c(\'13\',a.1H);a.G(f);7.1K(e,f,[a,b,d,c])}J{a.2d=\'<p 3b="3c">\'+7.1k.28+\'</p>\'}9 e},3d:8(){I(k i=0;i<1b.1L.B;i++){k a=1b.1L[i].2h.1D;k b=1b.1L[i].3e();b=(b?b.1p:o);n(a!=o&&b&&!7.1j[a]){7.1K(a,b)}}},1K:8(a,b,c){k c=c||7.1u[a];k d=7.1j[a]=1g 7.2a(b,c[0]);n(c[1]){d.2i(c[1])}n(c[2]){d.1q(c[2])}n(c[3]){c[3](c[0])}},3f:8(a){a=(F a==\'17\'?$(a)[0]:(a.2j?a[0]:a));9 7.1j[a.1D]},3g:8(a,b){7.1f[7.1f.B]=[a,b]}});8 1C(a,b){7.D=a;7.1M=b;I(k i=0;i<E.1f.B;i++){k c=E.1f[i];7[c[0]]=1g c[1](7)}}$.u(1C.1l,{3h:8(){9 7.1M.1G},3i:8(){9 7.1M.1H},1q:8(a,b){n(b){I(k i=7.D.W.B-1;i>=0;i--){k c=7.D.W.1r(i);n(!(c.K==\'3j\'||c.K==\'1J\'||c.K.1d(0,5)==\'1N\')){7.D.W.3k(c.K)}}}I(k d 2k a){7.D.1c(d,a[d])}9 7},2l:8(a){9 7.D.2l(a)},2m:8(a,b,c){k d=7.w(a,\'2m\',c||{});d.G(7.D.O.14(b));9 d},3l:8(a,b,c){k d=7.w(a,\'3m\',c||{});d.G(7.D.O.14(b));9 d},2n:8(a,b,c){n(F b!=\'17\'){c=b;b=o}9 7.w(a,\'2n\',$.u((b?{16:b}:{}),c||{}))},2o:8(a,b,c,d,e,f,g){9 7.w(a,\'2o\',$.u({16:b,1O:c+\' \'+d+\' \'+e+\' \'+f},g||{}))},2p:8(a,b,c,d,e,f,g,h){n(F g==\'X\'){h=g;g=o}9 7.w(a,\'2p\',$.u({16:b,3n:c,3o:d,3p:e,3q:f,3r:g||\'3s\'},h||{}))},2q:8(a,b,c){k d=7.w(a,\'2q\',$.u({1E:\'18/3t\'},c||{}));d.G(7.D.O.14(7.1P(b)));9 d},2r:8(a,b,c,d){n(F c==\'X\'){d=c;c=o}k e=7.w(a,\'2r\',$.u({1E:c||\'18/3u\'},d||{}));e.G(7.D.O.14(7.1P(b)));9 e},2s:8(a,b,c,d,e,f,g,h){n(F d==\'X\'){h=d;d=o}k i=$.u({16:b},(d!=o?{2t:d,2u:e,2v:f,2w:g}:{}));9 7.1Q(a,\'2s\',$.u(i,h||{}),c)},2x:8(a,b,c,d,e,r,f,g,h){n(F d==\'X\'){h=d;d=o}k i=$.u({16:b},(d!=o?{1R:d,1S:e,r:r,3v:f,3w:g}:{}));9 7.1Q(a,\'2x\',$.u(i,h||{}),c)},1Q:8(a,b,c,d){k e=7.w(a,b,c);I(k i=0;i<d.B;i++){k f=d[i];7.w(e,\'3x\',$.u({3y:f[0],3z:f[1]},(f[2]!=o?{3A:f[2]}:{})))}9 e},2y:8(a,b,x,y,c,d,e,f,g,h,i){n(F e==\'X\'){i=e;e=o}k j=$.u({16:b,x:x,y:y,12:c,13:d},(e!=o?{1O:e+\' \'+f+\' \'+g+\' \'+h}:{}));9 7.w(a,\'2y\',$.u(j,i||{}))},2z:8(a,b,x,y,c,d,e){9 7.w(a,\'2z\',$.u({16:b,x:x,y:y,12:c,13:d},e||{}))},3B:8(){9 1g 1T()},3C:8(){9 1g 1U()},Y:8(a,x,y,b,c,d,e,f,g,h){n(F d==\'X\'){h=d;d=o}k i=$.u({x:x,y:y,12:b,13:c},(d!=o?{1O:d+\' \'+e+\' \'+f+\' \'+g}:{}));9 7.w(a,\'Y\',$.u(i,h||{}))},3D:8(a,b,c){n(F b==\'X\'){c=b;b=o}9 7.w(a,\'g\',$.u({16:b},c||{}))},2A:8(a,x,y,b,c,d,e){n(F x==\'17\'){d=x;e=y;x=y=b=c=o}k f=7.w(a,\'2A\',$.u({x:x,y:y,12:b,13:c},e||{}));f.19(E.11,\'15\',d);9 f},3E:8(a,b,c){k d=7.w(a,\'a\',c);d.19(E.11,\'15\',b);9 d},1F:8(a,x,y,b,c,d,e){k f=7.w(a,\'1F\',$.u({x:x,y:y,12:b,13:c},e||{}));f.19(E.11,\'15\',d);9 f},1e:8(a,b,c){9 7.w(a,\'1e\',$.u({d:(b.1e?b.1e():b)},c||{}))},1V:8(a,x,y,b,c,d){9 7.w(a,\'1V\',$.u({x:x,y:y,12:b,13:c},d||{}))},3F:8(a,x,y,b,c,d,e,f){9 7.w(a,\'1V\',$.u({x:x,y:y,12:b,13:c,2B:d,2C:e},f||{}))},2D:8(a,b,c,r,d){9 7.w(a,\'2D\',$.u({1R:b,1S:c,r:r},d||{}))},2E:8(a,b,c,d,e,f){9 7.w(a,\'2E\',$.u({1R:b,1S:c,2B:d,2C:e},f||{}))},2F:8(a,b,c,d,e,f){9 7.w(a,\'2F\',$.u({2t:b,2u:c,2v:d,2w:e},f||{}))},2G:8(a,b,c){9 7.1W(a,\'2G\',b,c)},2H:8(a,b,c){9 7.1W(a,\'2H\',b,c)},1W:8(a,b,c,d){k e=\'\';I(k i=0;i<c.B;i++){e+=c[i].1X()+\' \'}9 7.w(a,b,$.u({3G:e},d||{}))},18:8(a,x,y,b,c){n(F x==\'17\'&&3H.B<4){b=x;c=y;x=y=o}9 7.1Y(a,\'18\',b,$.u({x:(x&&P(x)?x.1X(\' \'):x),y:(y&&P(y)?y.1X(\' \'):y)},c||{}))},1Z:8(a,b,c,d){k e=7.1Y(a,\'3I\',c,d||{});e.19(E.11,\'15\',b);9 e},1Y:8(a,b,c,d){k e=7.w(a,b,d);n(F c==\'17\'){e.G(e.O.14(c))}J{I(k i=0;i<c.R.B;i++){k f=c.R[i];n(f[0]==\'2I\'){k g=7.w(e,f[0],f[2]);g.G(e.O.14(f[1]));e.G(g)}J n(f[0]==\'2J\'){k g=7.w(e,f[0],f[2]);g.19(E.11,\'15\',f[1]);e.G(g)}J n(f[0]==\'1Z\'){k h=f[2].15;f[2].15=o;k g=7.w(e,f[0],f[2]);g.19(E.11,\'15\',h);g.G(e.O.14(f[1]));e.G(g)}J{e.G(e.O.14(f[1]))}}}9 e},2K:8(a,b,c){9 7.w(a,2K,c||{})},w:8(a,b,c){a=a||7.D;k d=7.D.O.1I(E.1m,b);I(k b 2k c){k e=c[b];n(e!=o&&e!=o&&(F e!=\'17\'||e!=\'\')){d.1c(7.2L(b),e)}}a.G(d);9 d},2L:8(a){9 a.1h(/^2M/,\'\').1h(/2M/g,\'-\')},2N:8(b,c){k d=7;b=b||7.D;c=(c.2j?c:$(c));c.2O(8(){k a=d.21(7);n(a){b.G(a)}})},21:8(a){k b=o;n(a.1i==1){b=7.D.O.1I(a.2P||E.1m,7.22(a.K));I(k i=0;i<a.W.B;i++){k c=a.W.1r(i);n(c.K!=\'1N\'){n(c.3J==\'1B\'){b.19(E.11,c.3K,c.N)}J{b.1c(7.22(c.K),c.N)}}}I(k i=0;i<a.23.B;i++){k d=7.21(a.23[i]);n(d){b.G(d)}}}J n(a.1i==3){n($.24(a.N)){b=7.D.O.14(a.N)}}J n(a.1i==4){n($.24(a.N)){b=7.D.O.3L(a.N)}}9 b},22:8(a){a=(a.1d(0,1)>=\'A\'&&a.1d(0,1)<=\'Z\'?a.3M():a);9(a.1d(0,4)==\'Y:\'?a.1d(4):a)},2i:8(e,f){n(!f){7.2Q(1o)}k g=7;k h=$.3N({3O:e,3P:\'2e\',3Q:8(a){n($.1w.2c){a.3R(h.3S);n(a.2R.3T!=0){g.18(o,10,20,E.1k.1x+\': \'+a.2R.3U);9}}k b={};I(k i=0;i<a.1p.W.B;i++){k c=a.1p.W.1r(i);n(!(c.K==\'1J\'||c.K.1d(0,5)==\'1N\')){b[c.K]=c.N}}g.1q(b,1o);k d=a.1p.23;I(k i=0;i<d.B;i++){g.2N(o,d[i])}},3V:8(a,b,c){g.18(o,10,20,E.1k.1x+\': \'+b+(c?\' \'+c.3W:\'\'))}})},3X:8(a){a.2h.2S(a)},2Q:8(a){n(a){7.1q({},1o)}2T(7.D.1s){7.D.2S(7.D.1s)}},3Y:8(){9 7.25(7.D)},25:8(a){k b=\'\';n(!a){9 b}n(a.1i==3){b=a.N}J n(a.1i==4){b=\'<![3Z[\'+a.N+\']]>\'}J{b=\'<\'+a.K;n(a.W){I(k i=0;i<a.W.B;i++){k c=a.W.1r(i);n(!($.24(c.N)==\'\'||c.N.26(/^\\[X/)||c.N.26(/^8/))){b+=\' \'+(c.2P==E.11?\'1B:\':\'\')+c.K+\'="\'+c.N+\'"\'}}}n(a.1s){b+=\'>\';k d=a.1s;2T(d){b+=7.25(d);d=d.40}b+=\'</\'+a.K+\'>\'}J{b+=\'/>\'}}9 b},1P:8(a){a=a.1h(/&/g,\'&41;\');a=a.1h(/</g,\'&42;\');a=a.1h(/>/g,\'&43;\');9 a}});8 1T(){7.U=\'\'}$.u(1T.1l,{2U:8(){7.U=\'\';9 7},44:8(x,y,a){a=(P(x)?y:a);9 7.1a((a?\'m\':\'M\'),x,y)},45:8(x,y,a){a=(P(x)?y:a);9 7.1a((a?\'l\':\'L\'),x,y)},46:8(x,a){7.U+=(a?\'h\':\'H\')+x;9 7},47:8(y,a){7.U+=(a?\'v\':\'V\')+y;9 7},48:8(a,b,c,d,x,y,e){e=(P(a)?b:e);9 7.1a((e?\'c\':\'C\'),a,b,c,d,x,y)},49:8(a,b,x,y,c){c=(P(a)?b:c);9 7.1a((c?\'s\':\'S\'),a,b,x,y)},4a:8(a,b,x,y,c){c=(P(a)?b:c);9 7.1a((c?\'q\':\'Q\'),a,b,x,y)},4b:8(x,y,a){a=(P(x)?y:a);9 7.1a((a?\'t\':\'T\'),x,y)},1a:8(a,b,c,d,e,f,g){n(P(b)){I(k i=0;i<b.B;i++){k h=b[i];7.U+=(i==0?a:\' \')+h[0]+\',\'+h[1]+(h.B<4?\'\':\' \'+h[2]+\',\'+h[3]+(h.B<6?\'\':\' \'+h[4]+\',\'+h[5]))}}J{7.U+=a+b+\',\'+c+(d==o?\'\':\' \'+d+\',\'+e+(f==o?\'\':\' \'+f+\',\'+g))}9 7},4c:8(a,b,c,d,e,x,y,f){f=(P(a)?b:f);7.U+=(f?\'a\':\'A\');n(P(a)){I(k i=0;i<a.B;i++){k g=a[i];7.U+=(i==0?\'\':\' \')+g[0]+\',\'+g[1]+\' \'+g[2]+\' \'+(g[3]?\'1\':\'0\')+\',\'+(g[4]?\'1\':\'0\')+\' \'+g[5]+\',\'+g[6]}}J{7.U+=a+\',\'+b+\' \'+c+\' \'+(d?\'1\':\'0\')+\',\'+(e?\'1\':\'0\')+\' \'+x+\',\'+y}9 7},4d:8(){7.U+=\'z\';9 7},1e:8(){9 7.U}});8 1U(){7.R=[]}$.u(1U.1l,{2U:8(){7.R=[];9 7},17:8(a){7.R[7.R.B]=[\'18\',a];9 7},4e:8(a,b){7.R[7.R.B]=[\'2I\',a,b];9 7},4f:8(a,b){7.R[7.R.B]=[\'2J\',a,b];9 7},1e:8(a,b,c){7.R[7.R.B]=[\'1Z\',b,$.u({15:a},c||{})];9 7}});$.4g.Y=8(a,b,c){n(F a==\'8\'){c=b;b=a;a=o}n(a&&F a==\'X\'){c=a;a=b=o}n(b&&F b==\'X\'){c=b;b=o}9 7.2O(8(){E.2b(7,a,b,c)})};8 P(a){9(a.2V&&a.2V.4h().26(/\\4i\\(\\)/))}E=1g 1t()})(4j);',62,268,'|||||||this|function|return|||||||||||var|||if|null||||||extend||_makeNode|||||length||_svg|svgManager|typeof|appendChild||for|else|nodeName|||nodeValue|ownerDocument|isArray||_parts|||_path||attributes|object|svg|||xlinkNS|width|height|createTextNode|href|id|string|text|setAttributeNS|_coords|document|setAttribute|substring|path|_extensions|new|replace|nodeType|_svgs|local|prototype|svgNS|org|true|documentElement|configure|item|firstChild|SVGManager|_settings|regional|browser|errorLoadingText|http|www|w3|xlink|SVGRoot|_svgId|type|image|clientWidth|clientHeight|createElementNS|version|_afterLoad|embeds|_container|xmlns|viewBox|_escapeXML|_gradient|cx|cy|SVGPath|SVGText|rect|_poly|join|_text|textpath||_cloneAsSVG|_checkName|childNodes|trim|_toSVG|match|_nextId|notSupportedText|SVG|_rootClass|_connectSVG|msie|innerHTML|xml|implementation|hasFeature|parentNode|load|jquery|in|getElementById|title|defs|symbol|marker|style|script|linearGradient|x1|y1|x2|y2|radialGradient|pattern|mask|use|rx|ry|circle|ellipse|line|polyline|polygon|tspan|tref|other|_fromJSName|_|add|each|namespaceURI|clear|parseError|removeChild|while|reset|constructor|This|does|not|support|Error|loading|2000|1999|embed|src|blank|TR|SVG11|feature|w3c|class|svg_error|_registerSVG|getSVGDocument|getSVGFor|addExtension|_width|_height|onload|removeNamedItem|describe|desc|refX|refY|markerWidth|markerHeight|orient|auto|css|javascript|fx|fy|stop|offset|stop_color|stop_opacity|createPath|createText|group|link|roundrect|points|arguments|textPath|prefix|localName|createCDATASection|toLowerCase|ajax|url|dataType|success|loadXML|responseText|errorCode|reason|error|message|remove|toSVG|CDATA|nextSibling|amp|lt|gt|moveTo|lineTo|horizTo|vertTo|curveCTo|smoothCTo|curveQTo|smoothQTo|arcTo|close|span|ref|fn|toString|Array|jQuery'.split('|'),0,{}))
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.js
deleted file mode 100644
index cd9e6bd..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.js
+++ /dev/null
@@ -1,396 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG filters for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-
-(function($) { // Hide scope, no $ conflict
-
-svgManager.addExtension('filters', SVGFilter);
-
-$.extend(svgManager._rootClass.prototype, {
-
-	/* Add a filter definition.
-	   @param  parent    element - the parent node for the new filter
-	   @param  id        string - the ID for this filter
-	   @param  x         number - the x-coordinate for the left edge of the filter
-	   @param  y         number - the y-coordinate for the top edge of the filter
-	   @param  width     number - the width of the filter
-	   @param  height    number - the height of the filter
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	filter: function(parent, id, x, y, width, height, settings) {
-		return this._makeNode(parent, 'filter', $.extend(
-			{id: id, x: x, y: y, width: width, height: height}, settings || {}));
-	}
-});
-
-/* Extension point for SVG filters.
-   Access through root.filters. */
-function SVGFilter(root) {
-	this._root = root; // The attached SVG root object
-}
-
-$.extend(SVGFilter.prototype, {
-
-	/* Add a distant light filter.
-	   @param  parent     element - the parent node for the new filter
-	   @param  result     string - the ID of this filter
-	   @param  azimuth    number - the angle (degrees) in the XY plane for the light source
-	   @param  elevation  number - the angle (degrees) in the YZ plane for the light source
-	   @param  settings   object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	distantLight: function(parent, result, azimuth, elevation, settings) {
-		return this._root._makeNode(parent, 'feDistantLight', $.extend(
-			{result: result, azimuth: azimuth, elevantion: elevation}, settings || {}));
-	},
-
-	/* Add a point light filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  x         number - the x-coordinate for the light source
-	   @param  y         number - the y-coordinate for the light source
-	   @param  z         number - the z-coordinate for the light source
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	pointLight: function(parent, result, x, y, z, settings) {
-		return this._root._makeNode(parent, 'fePointLight', $.extend(
-			{result: result, x: x, y: y, z: z}, settings || {}));
-	},
-
-	/* Add a spot light filter.
-	   Specify all of toX, toY, toZ or none of them.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  x         number - the x-coordinate for the light source
-	   @param  y         number - the y-coordinate for the light source
-	   @param  z         number - the z-coordinate for the light source
-	   @param  toX       number - the x-coordinate for where the light is pointing (optional)
-	   @param  toY       number - the y-coordinate for where the light is pointing (optional)
-	   @param  toZ       number - the z-coordinate for where the light is pointing (optional)
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	spotLight: function(parent, result, x, y, z, toX, toY, toZ, settings) {
-		if (typeof toX == 'object') {
-			settings = toX;
-			toX = null;
-		}
-		var sets = $.extend({result: result, x: x, y: y, z: z}, 
-			(toX != null ? {pointsAtX: toX, pointsAtY: toY, pointsAtZ: toZ} : {}));
-		return this._root._makeNode(parent, 'feSpotLight', $.extend(sets, settings || {}));
-	},
-
-	/* Add a blend filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  mode      string - normal | multiply | screen | darken | lighten
-	   @param  in1       string - the first image to blend
-	   @param  in2       string - the second image to blend
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	blend: function(parent, result, mode, in1, in2, settings) {
-		return this._root._makeNode(parent, 'feBlend', $.extend(
-			{result: result, mode: mode, _in: in1, in2: in2}, settings || {}));
-	},
-
-	/* Add a colour matrix filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  in1       string - the source to colour
-	   @param  type      string - matrix | saturate | hueRotate | luminanceToAlpha
-	   @param  values    number[][] - for 'matrix' the matrix (5x4) values to apply
-	                     number - for 'saturate' 0.0 to 1.0
-						 number - for 'hueRotate' degrees
-						 void - for 'luminanceToAlpha'
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	colorMatrix: function(parent, result, in1, type, values, settings) {
-		if (isArray(values)) {
-			var vs = '';
-			for (var i = 0; i < values.length; i++) {
-				vs += (i == 0 ? '' : ' ') + values[i].join(' ');
-			}
-			values = vs;
-		}
-		else if (typeof values == 'object') {
-			settings = values;
-			values = null;
-		}
-		var sets = $.extend({result: result, _in: in1, type: type},
-			(values != null ? {values: values} : {}));
-		return this._root._makeNode(parent, 'feColorMatrix', $.extend(sets, settings || {}));
-	},
-
-	/* Add a component transfer filter.
-	   @param  parent     element - the parent node for the new filter
-	   @param  result     string - the ID of this filter
-	   @param  functions  object[] - one for each of RGB and A (alpha, optional)
-	                      for each entry: 
-	                      [0] is string - identity | table | discrete | linear | gamma
-	                      [1] is number[] - for 'table' or 'discrete' the list of 
-	                      interpolation or step values OR
-	                      number - for 'linear' the slope, for 'gamma' the amplitude,
-	                      [2] is number - for 'linear' the intercept, for 'gamma' the exponent,
-	                      [3] is number - for 'gamma' the offset
-	   @param  settings   object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	componentTransfer: function(parent, result, functions, settings) {
-		var node = this._root._makeNode(parent, 'feComponentTransfer', 
-			$.extend({result: result}, settings || {}));
-		var rgba = ['R', 'G', 'B', 'A'];
-		for (var i = 0; i < Math.min(4, functions.length); i++) {
-			var props = functions[i];
-			var sets = $.extend({type: props[0]}, 
-				(type == 'table' || type == 'discrete' ? {table: props[1].join(' ')} : 
-				(type == 'linear' ? {slope: props[1], intercept: props[2]} : 
-				(type == 'gamma' ? {amplitude: props[1], 
-				exponent: props[2], offset: props[3]} : {}))));
-			this._root._makeNode(node, 'feFunc' + rgba[i], sets);
-		}
-		return node;
-	},
-
-	/* Add a composite filter.
-	   Specify all of k1, k2, k3, k4 or none of them.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  operator  string - over | in | out | atop | xor | arithmetic
-	   @param  in1       string - the first filter to compose
-	   @param  in2       string - the second filter to compose
-	   @param  k1        number - for 'arithmetic' (optional)
-	   @param  k2        number - for 'arithmetic' (optional)
-	   @param  k3        number - for 'arithmetic' (optional)
-	   @param  k4        number - for 'arithmetic' (optional)
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	composite: function(parent, result, operator, in1, in2, k1, k2, k3, k4, settings) {
-		if (typeof k1 == 'object') {
-			settings = k1;
-			k1 = null;
-		}
-		var sets = $.extend({result: result, operator: operator, _in: in1, in2: in2},
-			(k1 != null ? {k1: k1, k2: k2, k3: k3, k4: k4} : {}));
-		return this._root._makeNode(parent, 'feComposite', 
-			$.extend(sets, settings || {}));
-	},
-
-	/* Add a convolve matrix filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  order     int or 'int int' - the size(s) of the matrix
-	   @param  matrix    number[][] - the kernel matrix for the convolution
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	convolveMatrix: function(parent, result, order, matrix, settings) {
-		var mx = '';
-		for (var i = 0; i < matrix.length; i++) {
-			mx += (i == 0 ? '' : ' ') + matrix[i].join(' ');
-		}
-		matrix = mx;
-		return this._root._makeNode(parent, 'feConvolveMatrix', $.extend(
-			{result: result, order: order, kernelMatrix: matrix}, settings || {}));
-	},
-
-	/* Add a diffuse lighting filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  colour    string - the lighting colour (optional)
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	diffuseLighting: function(parent, result, colour, settings) {
-		if (typeof colour == 'object') {
-			settings = colour;
-			colour = null;
-		}
-		return this._root._makeNode(parent, 'feDiffuseLighting', 
-			$.extend($.extend({result: result}, (colour ? {lighting_color: colour} : {})), settings || {}));
-	},
-
-	/* Add a displacement map filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  in1       string - the source image
-	   @param  in2       string - the displacement image
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	displacementMap: function(parent, result, in1, in2, settings) {
-		return this._root._makeNode(parent, 'feDisplacementMap', 
-			$.extend({result: result, _in: in1, in2: in2}, settings || {}));
-	},
-
-	/* Add a flood filter.
-	   Specify all of x, y, width, height or none of them.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  x         number - the left coordinate of the rectangle (optional)
-	   @param  y         number - the top coordinate of the rectangle (optional)
-	   @param  width     number - the width of the rectangle (optional)
-	   @param  height    number - the height of the rectangle (optional)
-	   @param  colour    string - the colour to fill with
-	   @param  opacity   number - the opacity 0.0-1.0
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	flood: function(parent, result, x, y, width, height, colour, opacity, settings) {
-		if (arguments.length < 6) {
-			colour = x;
-			opacity = y;
-			settings = width;
-			x = null;
-		}
-		var sets = $.extend({result: result, flood_color: colour, flood_opacity: opacity},
-			(x != null ? {x: x, y: y, width: width, height: height} : {}));
-		return this._root._makeNode(parent, 'feFlood', 
-			$.extend(sets, settings || {}));
-	},
-
-	/* Add a Gaussian blur filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  in1       string - the source filter
-	   @param  stdDevX   number - the standard deviation along the x-axis
-	   @param  stdDevY   number - the standard deviation along the y-axis (optional)
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	gaussianBlur: function(parent, result, in1, stdDevX, stdDevY, settings) {
-		if (typeof stdDevY == 'object') {
-			settings = stdDevY;
-			stdDevY = null;
-		}
-		return this._root._makeNode(parent, 'feGaussianBlur', $.extend(
-			{result: result, _in: in1, stdDeviation: stdDevX + (stdDevY ? ' ' + stdDevY : '')}, 
-			settings || {}));
-	},
-
-	/* Add an image filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  href      string - the URL of the image
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	image: function(parent, result, href, settings) {
-		var node = this._root._makeNode(parent, 'feImage', $.extend(
-			{result: result}, settings || {}));
-		node.setAttributeNS(svgManager._xlinkNS, 'href', href);
-		return node;
-	},
-
-	/* Add a merge filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  refs      string[] - the IDs of the filters to merge
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	merge: function(parent, result, refs, settings) {
-		var node = this._root._makeNode(parent, 'feMerge', $.extend(
-			{result: result}, settings || {}));
-		for (var i = 0; i < refs.length; i++) {
-			this._root._makeNode(node, 'feMergeNode', {_in: refs[i]});
-		}
-		return node;
-	},
-
-	/* Add a morphology filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  in1       string - the source filter
-	   @param  operator  string - erode | dilate
-	   @param  radiusX   number - the size of the operation in the x-axis
-	   @param  radiusY   number - the size of the operation in the y-axis (optional)
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	morphology: function(parent, result, in1, operator, radiusX, radiusY, settings) {
-		if (typeof radiusY == 'object') {
-			settings = radiusY;
-			radiusY = null;
-		}
-		return this._root._makeNode(parent, 'feMorphology', $.extend(
-			{result: result, _in: in1, operator: operator, 
-			radius: radiusX + (radiusY ? ' ' + radiusY : '')}, settings || {}));
-	},
-
-	/* Add an offset filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  in1       string - the source filter
-	   @param  dX        number - the offset in the x-axis
-	   @param  dY        number - the offset in the y-axis
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	offset: function(parent, result, in1, dx, dy, settings) {
-		return this._root._makeNode(parent, 'feOffset', $.extend(
-			{result: result, _in: in1, dx: dx, dy: dy}, settings || {}));
-	},
-
-	/* Add a specular lighting filter.
-	   Numeric params are only optional if following numeric params are also omitted.
-	   @param  parent            element - the parent node for the new filter
-	   @param  result            string - the ID of this filter
-	   @param  in1               string - the source filter
-	   @param  surfaceScale      number - the surface height when Ain = 1 (optional)
-	   @param  specularConstant  number - the ks in Phong lighting model (optional)
-	   @param  specularExponent  number - the shininess 1.0-128.0 (optional)
-	   @param  settings          object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	specularLighting: function(parent, result, in1, surfaceScale, 
-			specularConstant, specularExponent, settings) {
-		if (typeof surfaceScale == 'object') {
-			settings = surfaceScale;
-			surfaceScale = null;
-		}
-		if (typeof specularConstant == 'object') {
-			settings = specularConstant;
-			specularConstant = null;
-		}
-		if (typeof specularExponent == 'object') {
-			settings = specularExponent;
-			specularExponent = null;
-		}
-		return this._root._makeNode(parent, 'feSpecularLighting', $.extend(
-			{result: result, _in: in1, surfaceScale: surfaceScale, 
-			specularConstant: specularConstant, specularExponent: specularExponent}, 
-			settings || {}));
-	},
-
-	/* Add a tile filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  in1       string - the source filter
-	   @param  x         number - the left coordinate of the rectangle
-	   @param  y         number - the top coordinate of the rectangle
-	   @param  width     number - the width of the rectangle
-	   @param  height    number - the height of the rectangle
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	tile: function(parent, result, in1, x, y, width, height, settings) {
-		return this._root._makeNode(parent, 'feTile', $.extend(
-			{result: result, _in: in1, x: x, y: y, width: width, height: height}, 
-			settings || {}));
-	},
-
-	/* Add a turbulence filter.
-	   @param  parent    element - the parent node for the new filter
-	   @param  result    string - the ID of this filter
-	   @param  type      string - fractalNoise | turbulence
-	   @param  baseFreq  number or 'number number' - the base frequency,
-	                     optionally separated into x- and y-components
-	   @param  octaves   number - the amount of turbulence (optional)
-	   @param  settings  object - additional settings for the filter (optional)
-	   @return  the new filter node */
-	turbulence: function(parent, result, type, baseFreq, octaves, settings) {
-		if (typeof octaves == 'object') {
-			settings = octaves;
-			octaves = null;
-		}
-		return this._root._makeNode(parent, 'feTurbulence', $.extend(
-			{result: result, type: type, baseFrequency: baseFreq, numOctaves: octaves}, 
-			settings || {}));
-	}
-});
-
-/* Determine whether an object is an array. */
-function isArray(a) {
-	return (a.constructor && a.constructor.toString().match(/\Array\(\)/));
-}
-
-})(jQuery)
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.min.js
deleted file mode 100644
index 6177beb..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG filters for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-(function($){svgManager.addExtension('filters',SVGFilter);$.extend(svgManager._rootClass.prototype,{filter:function(a,b,x,y,c,d,e){return this._makeNode(a,'filter',$.extend({id:b,x:x,y:y,width:c,height:d},e||{}))}});function SVGFilter(a){this._root=a}$.extend(SVGFilter.prototype,{distantLight:function(a,b,c,d,e){return this._root._makeNode(a,'feDistantLight',$.extend({result:b,azimuth:c,elevantion:d},e||{}))},pointLight:function(a,b,x,y,z,c){return this._root._makeNode(a,'fePointLight',$.extend({result:b,x:x,y:y,z:z},c||{}))},spotLight:function(a,b,x,y,z,c,d,e,f){if(typeof c=='object'){f=c;c=null}var g=$.extend({result:b,x:x,y:y,z:z},(c!=null?{pointsAtX:c,pointsAtY:d,pointsAtZ:e}:{}));return this._root._makeNode(a,'feSpotLight',$.extend(g,f||{}))},blend:function(a,b,c,d,e,f){return this._root._makeNode(a,'feBlend',$.extend({result:b,mode:c,_in:d,in2:e},f||{}))},colorMatrix:function(a,b,c,d,e,f){if(isArray(e)){var g='';for(var i=0;i<e.length;i++){g+=(i==0?'':' ')+e[i].join(' ')}e=g}else if(typeof e=='object'){f=e;e=null}var h=$.extend({result:b,_in:c,type:d},(e!=null?{values:e}:{}));return this._root._makeNode(a,'feColorMatrix',$.extend(h,f||{}))},componentTransfer:function(a,b,c,d){var e=this._root._makeNode(a,'feComponentTransfer',$.extend({result:b},d||{}));var f=['R','G','B','A'];for(var i=0;i<Math.min(4,c.length);i++){var g=c[i];var h=$.extend({type:g[0]},(type=='table'||type=='discrete'?{table:g[1].join(' ')}:(type=='linear'?{slope:g[1],intercept:g[2]}:(type=='gamma'?{amplitude:g[1],exponent:g[2],offset:g[3]}:{}))));this._root._makeNode(e,'feFunc'+f[i],h)}return e},composite:function(a,b,c,d,e,f,g,h,i,j){if(typeof f=='object'){j=f;f=null}var k=$.extend({result:b,operator:c,_in:d,in2:e},(f!=null?{k1:f,k2:g,k3:h,k4:i}:{}));return this._root._makeNode(a,'feComposite',$.extend(k,j||{}))},convolveMatrix:function(a,b,c,d,e){var f='';for(var i=0;i<d.length;i++){f+=(i==0?'':' ')+d[i].join(' ')}d=f;return this._root._makeNode(a,'feConvolveMatrix',$.extend({result:b,order:c,kernelMatrix:d},e||{}))},diffuseLighting:function(a,b,c,d){if(typeof c=='object'){d=c;c=null}return this._root._makeNode(a,'feDiffuseLighting',$.extend($.extend({result:b},(c?{lighting_color:c}:{})),d||{}))},displacementMap:function(a,b,c,d,e){return this._root._makeNode(a,'feDisplacementMap',$.extend({result:b,_in:c,in2:d},e||{}))},flood:function(a,b,x,y,c,d,e,f,g){if(arguments.length<6){e=x;f=y;g=c;x=null}var h=$.extend({result:b,flood_color:e,flood_opacity:f},(x!=null?{x:x,y:y,width:c,height:d}:{}));return this._root._makeNode(a,'feFlood',$.extend(h,g||{}))},gaussianBlur:function(a,b,c,d,e,f){if(typeof e=='object'){f=e;e=null}return this._root._makeNode(a,'feGaussianBlur',$.extend({result:b,_in:c,stdDeviation:d+(e?' '+e:'')},f||{}))},image:function(a,b,c,d){var e=this._root._makeNode(a,'feImage',$.extend({result:b},d||{}));e.setAttributeNS(svgManager._xlinkNS,'href',c);return e},merge:function(a,b,c,d){var e=this._root._makeNode(a,'feMerge',$.extend({result:b},d||{}));for(var i=0;i<c.length;i++){this._root._makeNode(e,'feMergeNode',{_in:c[i]})}return e},morphology:function(a,b,c,d,e,f,g){if(typeof f=='object'){g=f;f=null}return this._root._makeNode(a,'feMorphology',$.extend({result:b,_in:c,operator:d,radius:e+(f?' '+f:'')},g||{}))},offset:function(a,b,c,d,e,f){return this._root._makeNode(a,'feOffset',$.extend({result:b,_in:c,dx:d,dy:e},f||{}))},specularLighting:function(a,b,c,d,e,f,g){if(typeof d=='object'){g=d;d=null}if(typeof e=='object'){g=e;e=null}if(typeof f=='object'){g=f;f=null}return this._root._makeNode(a,'feSpecularLighting',$.extend({result:b,_in:c,surfaceScale:d,specularConstant:e,specularExponent:f},g||{}))},tile:function(a,b,c,x,y,d,e,f){return this._root._makeNode(a,'feTile',$.extend({result:b,_in:c,x:x,y:y,width:d,height:e},f||{}))},turbulence:function(a,b,c,d,e,f){if(typeof e=='object'){f=e;e=null}return this._root._makeNode(a,'feTurbulence',$.extend({result:b,type:c,baseFrequency:d,numOctaves:e},f||{}))}});function isArray(a){return(a.constructor&&a.constructor.toString().match(/\Array\(\)/))}})(jQuery)
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.pack.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.pack.js
deleted file mode 100644
index e176e75..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svgfilter.pack.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG filters for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(7($){C.2d(\'1B\',H);$.5(C.2a.N,{J:7(a,b,x,y,c,d,e){m 8.l(a,\'J\',$.5({1s:b,x:x,y:y,E:c,F:d},e||{}))}});7 H(a){8.9=a}$.5(H.N,{1d:7(a,b,c,d,e){m 8.9.l(a,\'1a\',$.5({n:b,X:c,U:d},e||{}))},T:7(a,b,x,y,z,c){m 8.9.l(a,\'29\',$.5({n:b,x:x,y:y,z:z},c||{}))},1T:7(a,b,x,y,z,c,d,e,f){q(s c==\'r\'){f=c;c=p}o g=$.5({n:b,x:x,y:y,z:z},(c!=p?{1w:c,1r:d,1p:e}:{}));m 8.9.l(a,\'1o\',$.5(g,f||{}))},1l:7(a,b,c,d,e,f){m 8.9.l(a,\'1k\',$.5({n:b,1i:c,t:d,I:e},f||{}))},1c:7(a,b,c,d,e,f){q(M(e)){o g=\'\';w(o i=0;i<e.v;i++){g+=(i==0?\'\':\' \')+e[i].D(\' \')}e=g}Z q(s e==\'r\'){f=e;e=p}o h=$.5({n:b,t:c,u:d},(e!=p?{S:e}:{}));m 8.9.l(a,\'13\',$.5(h,f||{}))},Q:7(a,b,c,d){o e=8.9.l(a,\'15\',$.5({n:b},d||{}));o f=[\'R\',\'G\',\'B\',\'A\'];w(o i=0;i<1P.1M(4,c.v);i++){o g=c[i];o h=$.5({u:g[0]},(u==\'O\'||u==\'1K\'?{O:g[1].D(\' \')}:(u==\'1J\'?{1I:g[1],1G:g[2]}:(u==\'1D\'?{1C:g[1],1A:g[2],K:g[3]}:{}))));8.9.l(e,\'1t\'+f[i],h)}m e},1q:7(a,b,c,d,e,f,g,h,i,j){q(s f==\'r\'){j=f;f=p}o k=$.5({n:b,L:c,t:d,I:e},(f!=p?{1n:f,1m:g,1u:h,1v:i}:{}));m 8.9.l(a,\'1j\',$.5(k,j||{}))},1x:7(a,b,c,d,e){o f=\'\';w(o i=0;i<d.v;i++){f+=(i==0?\'\':\' \')+d[i].D(\' \')}d=f;m 8.9.l(a,\'1y\',$.5({n:b,1z:c,1h:d},e||{}))},1g:7(a,b,c,d){q(s c==\'r\'){d=c;c=p}m 8.9.l(a,\'1f\',$.5($.5({n:b},(c?{1e:c}:{})),d||{}))},1E:7(a,b,c,d,e){m 8.9.l(a,\'1F\',$.5({n:b,t:c,I:d},e||{}))},1b:7(a,b,x,y,c,d,e,f,g){q(1H.v<6){e=x;f=y;g=c;x=p}o h=$.5({n:b,19:e,18:f},(x!=p?{x:x,y:y,E:c,F:d}:{}));m 8.9.l(a,\'1L\',$.5(h,g||{}))},17:7(a,b,c,d,e,f){q(s e==\'r\'){f=e;e=p}m 8.9.l(a,\'16\',$.5({n:b,t:c,Y:d+(e?\' \'+e:\'\')},f||{}))},1O:7(a,b,c,d){o e=8.9.l(a,\'W\',$.5({n:b},d||{}));e.V(C.1Q,\'1R\',c);m e},10:7(a,b,c,d){o e=8.9.l(a,\'1S\',$.5({n:b},d||{}));w(o i=0;i<c.v;i++){8.9.l(e,\'11\',{t:c[i]})}m e},1U:7(a,b,c,d,e,f,g){q(s f==\'r\'){g=f;f=p}m 8.9.l(a,\'12\',$.5({n:b,t:c,L:d,1W:e+(f?\' \'+f:\'\')},g||{}))},K:7(a,b,c,d,e,f){m 8.9.l(a,\'1X\',$.5({n:b,t:c,1Y:d,14:e},f||{}))},1Z:7(a,b,c,d,e,f,g){q(s d==\'r\'){g=d;d=p}q(s e==\'r\'){g=e;e=p}q(s f==\'r\'){g=f;f=p}m 8.9.l(a,\'20\',$.5({n:b,t:c,21:d,23:e,22:f},g||{}))},1V:7(a,b,c,x,y,d,e,f){m 8.9.l(a,\'24\',$.5({n:b,t:c,x:x,y:y,E:d,F:e},f||{}))},25:7(a,b,c,d,e,f){q(s e==\'r\'){f=e;e=p}m 8.9.l(a,\'26\',$.5({n:b,u:c,27:d,28:e},f||{}))}});7 M(a){m(a.P&&a.P.1N().2b(/\\2c\\(\\)/))}})(2e)',62,139,'|||||extend||function|this|_root||||||||||||_makeNode|return|result|var|null|if|object|typeof|_in|type|length|for||||||svgManager|join|width|height||SVGFilter|in2|filter|offset|operator|isArray|prototype|table|constructor|componentTransfer||values|pointLight|elevantion|setAttributeNS|feImage|azimuth|stdDeviation|else|merge|feMergeNode|feMorphology|feColorMatrix|dy|feComponentTransfer|feGaussianBlur|gaussianBlur|flood_opacity|flood_color|feDistantLight|flood|colorMatrix|distantLight|lighting_color|feDiffuseLighting|diffuseLighting|kernelMatrix|mode|feComposite|feBlend|blend|k2|k1|feSpotLight|pointsAtZ|composite|pointsAtY|id|feFunc|k3|k4|pointsAtX|convolveMatrix|feConvolveMatrix|order|exponent|filters|amplitude|gamma|displacementMap|feDisplacementMap|intercept|arguments|slope|linear|discrete|feFlood|min|toString|image|Math|_xlinkNS|href|feMerge|spotLight|morphology|tile|radius|feOffset|dx|specularLighting|feSpecularLighting|surfaceScale|specularExponent|specularConstant|feTile|turbulence|feTurbulence|baseFrequency|numOctaves|fePointLight|_rootClass|match|Array|addExtension|jQuery'.split('|'),0,{}))
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.js
deleted file mode 100644
index d97091a..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.js
+++ /dev/null
@@ -1,1337 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG graphing extension for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-
-var svgGraphing = null;
-
-(function($) { // Hide scope, no $ conflict
-
-svgManager.addExtension('graph', SVGGraph);
-
-// Singleton primary SVG graphing interface
-svgGraphing = new SVGGraphing();
-
-function SVGGraphing() {
-	this.regional = [];
-	this.regional[''] = {percentageText: 'Percentage'};
-	this.region = this.regional[''];
-}
-
-$.extend(SVGGraphing.prototype, {
-	_chartTypes: [],
-	
-	/* Add a new chart rendering type to the package.
-	   The rendering object must implement the following functions:
-	   getTitle(), getDescription(), getOptions(), drawChart(graph).
-	   @param  id         string - the ID of this graph renderer
-	   @param  chartType  object - the object implementing this chart type */
-	addChartType: function(id, chartType) {
-		this._chartTypes[id] = chartType;
-	},
-	
-	/* Retrieve the list of chart types.
-	   @return  object[string] - the array of chart types indexed by ID */
-	chartTypes: function() {
-		return this._chartTypes;
-	}
-});
-
-/* Extension point for SVG graphing.
-   Access through root.filters. */
-function SVGGraph(root) {
-	this._root = root; // The attached SVG root object
-	this._drawNow = true; // True for immediate update, false to wait for redraw call
-	for (var id in svgGraphing._chartTypes) {
-		this._chartType = svgGraphing._chartTypes[id]; // Use first graph renderer
-		break;
-	}
-	this._chartOptions = {}; // Extra options for the graph type
-	// The graph title and settings
-	this._title = {value: '', offset: 25, settings: {text_anchor: 'middle'}};
-	this._area = [0.1, 0.1, 0.8, 0.9]; // The chart area: left, top, right, bottom, 
-		// > 1 in pixels, <= 1 as proportion
-	this._chartFormat = {fill: 'none', stroke: 'black'}; // The formatting for the chart area
-	this._gridlines = []; // The formatting of the x- and y-gridlines
-	this._series = []; // The series to be plotted, each is an object
-	this._onstatus = null; // The callback function for status updates
-	this._chartGroup = this._root.group(null, 'graph'); // The main group for the graph
-	
-	this.xAxis = new SVGGraphAxis(); // The main x-axis
-	this.xAxis.title('', 40);
-	this.yAxis = new SVGGraphAxis(); // The main y-axis
-	this.yAxis.title('', 40);
-	this.x2Axis = null; // The secondary x-axis
-	this.y2Axis = null; // The secondary y-axis
-	this.legend = new SVGGraphLegend(); // The chart legend
-}
-
-$.extend(SVGGraph.prototype, {
-
-	/* Useful indexes. */
-	X: 0,
-	Y: 1,
-	W: 2,
-	H: 3,
-	L: 0,
-	T: 1,
-	R: 2,
-	B: 3,
-	
-	/* Standard percentage axis. */
-	_percentageAxis: new SVGGraphAxis(svgGraphing.region.percentageText, 0, 100, 10, 0),
-
-	/* Set or retrieve the type of chart to be rendered.
-	   See svgGraphing.getChartTypes() for the list of available types.
-	   @param  id       string - the ID of the chart type
-	   @param  options  object - additional settings for this chart type (optional)
-	   @return  SVGGraph - this graph object or 
-	            string - the chart type (if no parameters) */
-	chartType: function(id, options) {
-		if (arguments.length == 0) {
-			return this._chartType;
-		}
-		var chartType = svgGraphing._chartTypes[id];
-		if (chartType) {
-			this._chartType = chartType;
-			this._chartOptions = $.extend({}, options || {});
-		}
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Set or retrieve additional options for the particular chart type.
-	   @param  options  object - the extra options
-	   @return  SVGGraph - this graph object or
-	            object - the chart options (if no parameters) */
-	chartOptions: function(options) {
-		if (arguments.length == 0) {
-			return this._chartOptions;
-		}
-		this._chartOptions = $.extend({}, options);
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Set or retrieve the background of the graph chart.
-	   @param  fill      string - how to fill the chart background
-	   @param  stroke    string - the colour of the outline (optional)
-	   @param  settings  object - additional formatting for the chart background (optional)
-	   @return  SVGGraph - this graph object or
-	            object - the chart format (if no parameters) */
-	chartFormat: function(fill, stroke, settings) {
-		if (arguments.length == 0) {
-			return this._chartFormat;
-		}
-		if (typeof stroke == 'object') {
-			settings = stroke;
-			stroke = null;
-		}
-		this._chartFormat = $.extend($.extend({fill: fill},
-			(stroke ? {stroke: stroke} : {})), settings || {});
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Set or retrieve the main chart area.
-	   @param  left    number - > 1 is pixels, <= 1 is proportion of width or
-	                   number[4] - for left, top, right, bottom
-	   @param  top     number - > 1 is pixels, <= 1 is proportion of height
-	   @param  right   number - > 1 is pixels, <= 1 is proportion of width
-	   @param  bottom  number - > 1 is pixels, <= 1 is proportion of height
-	   @return  SVGGraph - this graph object or
-	            number[4] - the chart area: left, top, right, bottom (if no parameters) */
-	chartArea: function(left, top, right, bottom) {
-		if (arguments.length == 0) {
-			return this._area;
-		}
-		this._area = (isArray(left) ? left : [left, top, right, bottom]);
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Set or retrieve the gridlines formatting for the graph chart.
-	   @param  xSettings  string - the colour of the gridlines along the x-axis, or
-	                      object - formatting for the gridlines along the x-axis, or
-						  null for none
-	   @param  ySettings  string - the colour of the gridlines along the y-axis, or
-	                      object - formatting for the gridlines along the y-axis, or
-						  null for none
-	   @return  SVGGraph - this graph object or
-	            object[2] - the gridlines formatting (if no parameters) */
-	gridlines: function(xSettings, ySettings) {
-		if (arguments.length == 0) {
-			return this._gridlines;
-		}
-		this._gridlines = [(typeof xSettings == 'string' ? {stroke: xSettings} : xSettings),
-			(typeof ySettings == 'string' ? {stroke: ySettings} : ySettings)];
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Set or retrieve the title of the graph and its formatting.
-	   @param  value     string - the title
-	   @param  offset    number - the vertical positioning of the title
-                          > 1 is pixels, <= 1 is proportion of width (optional)
-	   @param  settings  object - formatting for the title (optional)
-	   @return  SVGGraph - this graph object or
-	            object - value, offset, and settings for the title (if no parameters) */
-	title: function(value, offset, settings) {
-		if (arguments.length == 0) {
-			return this._title;
-		}
-		if (typeof offset == 'object') {
-			settings = offset;
-			offset = null;
-		}
-		this._title = {value: value, offset: offset || this._title.offset,
-			settings: $.extend({text_anchor: 'middle'}, settings || {})};
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Add a series of values to be plotted on the graph.
-	   @param  name         string - the name of this series
-	   @param  values       number[] - the values to be plotted
-	   @param  fill         string - how the plotted values are filled
-	   @param  stroke       string - the colour of the plotted lines
-	   @param  strokeWidth  number - the width of the plotted lines (optional)
-	   @param  settings     object - additional settings for the plotted values (optional)
-	   @return  SVGGraph - this graph object */
-	addSeries: function(name, values, fill, stroke, strokeWidth, settings) {
-		if (typeof strokeWidth == 'object') {
-			settings = strokeWidth;
-			strokeWidth = null;
-		}
-		this._series[this._series.length] = 
-			new SVGGraphSeries(name, values, fill, stroke, strokeWidth, settings || {});
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Retrieve the series wrappers.
-	   @return  SVGGraphSeries[] - the list of series */
-	series: function() {
-		return this._series;
-	},
-	
-	/* Suppress drawing of the graph until redraw() is called.
-	   @return  SVGGraph - this graph object */
-	noDraw: function() {
-		this._drawNow = false;
-		return this;
-	},
-	
-	/* Redraw the entire graph with the current settings and values.
-	   @return  SVGGraph - this graph object */
-	redraw: function() {
-		this._drawNow = true;
-		this._drawGraph();
-		return this;
-	},
-	
-	/* Set the callback function for status updates.
-	   @param  onstatus  function - the callback function
-	   @return  SVGGraph - this graph object */
-	status: function(onstatus) {
-		this._onstatus = onstatus;
-		return this;
-	},
-	
-	/* Actually draw the graph (if allowed) based on the graph type set. */
-	_drawGraph: function() {
-		if (!this._drawNow) {
-			return;
-		}
-		while (this._chartGroup.firstChild) {
-			this._chartGroup.removeChild(this._chartGroup.firstChild);
-		}
-		if (!this._chartGroup.parent) {
-			this._root._svg.appendChild(this._chartGroup);
-		}
-		this._chartType.drawGraph(this);
-	},
-
-	/* Draw the graph title - centred. */
-	_drawTitle: function() {
-		this._root.text(this._chartGroup, this._root._width() / 2, this._title.offset,
-			this._title.value, this._title.settings);
-	},
-	
-	/* Calculate the actual dimensions of the chart area.
-	    @param  area  number[4] - the area values to evaluate (optional)
-		@return  an array of dimension values: left, top, width, height */
-	_getDims: function(area) {
-		area = area || this._area;
-		var left = (area[this.L] > 1 ? area[this.L] :
-			this._root._width() * area[this.L]);
-		var top = (area[this.T] > 1 ? area[this.T] :
-			this._root._height() * area[this.T]);
-		var width = (area[this.R] > 1 ? area[this.R] :
-			this._root._width() * area[this.R]) - left;
-		var height = (area[this.B] > 1 ? area[this.B] :
-			this._root._height() * area[this.B]) - top;
-		return [left, top, width, height];
-	},
-	
-	/* Draw the chart background, including gridlines.
-	   @param  noXGrid  boolean - true to suppress the x-gridlines, false to draw them (optional)
-	   @param  noYGrid  boolean - true to suppress the y-gridlines, false to draw them (optional)
-	   @return  the background group element */
-	_drawChartBackground: function(noXGrid, noYGrid) {
-		var bg = this._root.group(this._chartGroup, 'background');
-		var dims = this._getDims();
-		this._root.rect(bg, dims[this.X], dims[this.Y], dims[this.W], dims[this.H], this._chartFormat);
-		if (this._gridlines[0] && this.yAxis._ticks.major && !noYGrid) {
-			this._drawGridlines(bg, this.yAxis, true, dims, this._gridlines[0]);
-		}
-		if (this._gridlines[1] && this.xAxis._ticks.major && !noXGrid) {
-			this._drawGridlines(bg, this.xAxis, false, dims, this._gridlines[1]);
-		}
-		return bg;
-	},
-	
-	/* Draw one set of gridlines.
-	   @param  bg      element - the background group element
-	   @param  axis    SVGGraphAxis - the axis definition
-	   @param  horiz   boolean - true if horizontal, false if vertical
-	   @param  dims    number[] - the left, top, width, height of the chart area
-	   @param  format  object - additional settings for the gridlines */
-	_drawGridlines: function(bg, axis, horiz, dims, format) {
-		var g = this._root.group(bg, format);
-		var scale = (horiz ? dims[this.H] : dims[this.W]) / (axis._scale.max - axis._scale.min);
-		var major = Math.floor(axis._scale.min / axis._ticks.major) * axis._ticks.major;
-		major = (major < axis._scale.min ? major + axis._ticks.major : major);
-		while (major <= axis._scale.max) {
-			var v = (horiz ? axis._scale.max - major : major - axis._scale.min) * scale +
-				(horiz ? dims[this.Y] : dims[this.X]);
-			this._root.line(g, (horiz ? dims[this.X] : v), (horiz ? v : dims[this.Y]), 
-				(horiz ? dims[this.X] + dims[this.W] : v), (horiz ? v : dims[this.Y] + dims[this.H]));
-			major += axis._ticks.major;
-		}
-	},
-	
-	/* Draw the axes in their standard configuration.
-	   @param  noX  boolean - true to suppress the x-axes, false to draw it (optional) */
-	_drawAxes: function(noX) {
-		var dims = this._getDims();
-		if (this.xAxis && !noX) {
-			if (this.xAxis._title) {
-				this._root.text(this._chartGroup, dims[this.X] + dims[this.W] / 2,
-					dims[this.Y] + dims[this.H] + this.xAxis._titleOffset, this.xAxis._title);
-			}
-			this._drawAxis(this.xAxis, 'xAxis', dims[this.X], dims[this.Y] + dims[this.H],
-				dims[this.X] + dims[this.W], dims[this.Y] + dims[this.H]);
-		}
-		if (this.yAxis) {
-			if (this.yAxis._title) {
-				this._root.text(this._chartGroup, 0, 0, this.yAxis._title, {text_anchor: 'middle',
-					transform: 'translate(' + (dims[this.X] - this.yAxis._titleOffset) + ',' +
-					(dims[this.Y] + dims[this.H] / 2) + ') rotate(-90)'});
-			}
-			this._drawAxis(this.yAxis, 'yAxis', dims[this.X], dims[this.Y],
-				dims[this.X], dims[this.Y] + dims[this.H]);
-		}
-		if (this.x2Axis && !noX) {
-			if (this.x2Axis._title) {
-				this._root.text(this._chartGroup, dims[this.X] + dims[this.W] / 2,
-					dims[this.X] - this.x2Axis._titleOffset, this.x2Axis._title);
-			}
-			this._drawAxis(this.x2Axis, 'x2Axis', dims[this.X], dims[this.Y],
-				dims[this.X] + dims[this.W], dims[this.Y]);
-		}
-		if (this.y2Axis) {
-			if (this.y2Axis._title) {
-				this._root.text(this._chartGroup, 0, 0, this.y2Axis._title, {text_anchor: 'middle',
-					transform: 'translate(' + (dims[this.X] + dims[this.W] + this.y2Axis._titleOffset) +
-					',' + (dims[this.Y] + dims[this.H] / 2) + ') rotate(-90)'});
-			}
-			this._drawAxis(this.y2Axis, 'y2Axis', dims[this.X] + dims[this.W], dims[this.Y],
-				dims[this.X] + dims[this.W], dims[this.Y] + dims[this.H]);
-		}
-	},
-	
-	/* Draw an axis and its tick marks.
-	   @param  axis  SVGGraphAxis - the axis definition
-	   @param  id    string - the identifier for the axis group element
-	   @param  x1    number - starting x-coodinate for the axis
-	   @param  y1    number - starting y-coodinate for the axis
-	   @param  x2    number - ending x-coodinate for the axis
-	   @param  y2    number - ending y-coodinate for the axis */
-	_drawAxis: function(axis, id, x1, y1, x2, y2) {
-		var horiz = (y1 == y2);
-		var gl = this._root.group(this._chartGroup, id, axis._lineFormat);
-		var gt = this._root.group(this._chartGroup, id + 'Labels',
-			$.extend({text_anchor: (horiz ? 'middle' : 'end')}, axis._labelFormat));
-		this._root.line(gl, x1, y1, x2, y2);
-		if (axis._ticks.major) {
-			var bottomRight = (x2 > (this._root._width() / 2) && 
-				y2 > (this._root._height() / 2));
-			var scale = (horiz ? x2 - x1 : y2 - y1) / (axis._scale.max - axis._scale.min);
-			var size = axis._ticks.size;
-			var major = Math.floor(axis._scale.min / axis._ticks.major) * axis._ticks.major;
-			major = (major < axis._scale.min ? major + axis._ticks.major : major);
-			var minor = (!axis._ticks.minor ? axis._scale.max + 1 :
-				Math.floor(axis._scale.min / axis._ticks.minor) * axis._ticks.minor);
-			minor = (minor < axis._scale.min ? minor + axis._ticks.minor : minor);
-			var offsets = this._getTickOffsets(axis, bottomRight);
-			while (major <= axis._scale.max || minor <= axis._scale.max) {
-				var cur = Math.min(major, minor);
-				var len = (cur == major ? size : size / 2);
-				var v = (horiz ? x1 : y1) +
-					(horiz ? cur - axis._scale.min : axis._scale.max - cur) * scale;
-				this._root.line(gl, (horiz ? v : x1 + len * offsets[0]), 
-					(horiz ? y1 + len * offsets[0] : v), 
-					(horiz ? v : x1 + len * offsets[1]), 
-					(horiz ? y1 + len * offsets[1] : v));
-				if (cur == major) {
-					this._root.text(gt, (horiz ? v : x1 - size), (horiz ? y1 + 2 * size : v),
-						(axis._labels ? axis._labels[cur] : '' + cur));
-				}
-				major += (cur == major ? axis._ticks.major : 0);
-				minor += (cur == minor ? axis._ticks.minor : 0);
-			}
-		}
-	},
-	
-	/* Calculate offsets based on axis and tick positions.
-	   @param  axis         SVGGraphAxis - the axis definition
-	   @param  bottomRight  boolean - true if this axis is appearing on the bottom or 
-	                        right of the chart area, false if to the top or left
-	   @return  the array of offset multipliers (-1..+1) */
-	_getTickOffsets: function(axis, bottomRight) {
-		return [(axis._ticks.position == (bottomRight ? 'in' : 'out') || 
-			axis._ticks.position == 'both' ? -1 : 0), 
-			(axis._ticks.position == (bottomRight ? 'out' : 'in') || 
-			axis._ticks.position == 'both' ? +1 : 0), ];
-	},
-	
-	/* Retrieve the standard percentage axis.
-	   @return  percentage axis */
-	_getPercentageAxis: function() {
-		this._percentageAxis._title = svgGraphing.region.percentageText;
-		return this._percentageAxis;
-	},
-
-	/* Calculate the column totals across all the series. */
-	_getTotals: function() {
-		var totals = [];
-		var numVal = (this._series.length ? this._series[0]._values.length : 0);
-		for (var i = 0; i < numVal; i++) {
-			totals[i] = 0;
-			for (var j = 0; j < this._series.length; j++) {
-				totals[i] += this._series[j]._values[i];
-			}
-		}
-		return totals;
-	},
-	
-	/* Draw the chart legend. */
-	_drawLegend: function() {
-		if (!this.legend._show) {
-			return;
-		}
-		var g = this._root.group(this._chartGroup, 'legend');
-		var dims = this._getDims(this.legend._area);
-		this._root.rect(g, dims[this.X], dims[this.Y], dims[this.W], dims[this.H],
-			this.legend._bgSettings);
-		var horiz =  dims[this.W] > dims[this.H];
-		var numSer = this._series.length;
-		var offset = (horiz ? dims[this.W] : dims[this.H]) / numSer;
-		var xBase = dims[this.X] + 5;
-		var yBase = dims[this.Y] + (horiz ? dims[this.H] / 2 : offset / 2);
-		for (var i = 0; i < numSer; i++) {
-			var series = this._series[i];
-			this._root.rect(g, xBase + (horiz ? i * offset : 0),
-				yBase + (horiz ? 0 : i * offset) - this.legend._sampleSize,
-				this.legend._sampleSize, this.legend._sampleSize,
-				{fill: series._fill, stroke: series._stroke, stroke_width: 1});
-			this._root.text(g, xBase + (horiz ? i * offset : 0) + this.legend._sampleSize + 5,
-				yBase + (horiz ? 0 : i * offset), series._name, this.legend._textSettings);
-		}
-	},
-	
-	/* Show the current value status on hover. */
-	_showStatus: function(value) {
-		var onStatus = (!this._onstatus ? '' :
-			this._onstatus.toString().replace(/function (.*)\([\s\S]*/m, '$1'));
-		return (!this._onstatus ? {} :
-			{onmouseover: 'window.parent.' + onStatus + '(\'' + value + '\');',
-			onmouseout: 'window.parent.' + onStatus  + '(\'\');'});
-	}
-});
-
-/* Details about each graph axis.
-   @param  title  string - the title of the axis
-   @param  min    number - the minimum value displayed on this axis
-   @param  max    number - the maximum value displayed on this axis
-   @param  major  number - the distance between major ticks
-   @param  minor  number - the distance between minor ticks (optional)
-   @return  the new axis object */
-function SVGGraphAxis(title, min, max, major, minor) {
-	/* Title of this axis. */
-	this._title = title || '';
-	/* Formatting settings for the title. */
-	this._titleFormat = {};
-	/* The offset for positioning the title. */
-	this._titleOffset = 0;
-	/* List of labels for this axis - one per possible value across all series. */
-	this._labels = null;
-	/* Formatting settings for the labels. */
-	this._labelFormat = {};
-	/* Formatting settings for the axis lines. */
-	this._lineFormat = {stroke: 'black'};
-	/* Tick mark options. */
-	this._ticks = {major: major || 10, minor: minor || 0, size: 10, position: 'out'};
-	/* Axis scale settings. */
-	this._scale = {min: min || 0, max: max || 100};
-	/* Where this axis crosses the other one. */
-	this._crossAt = 0;
-}
-
-$.extend(SVGGraphAxis.prototype, {
-
-	/* Set or retrieve the scale for this axis.
-	   @param  min  number - the minimum value shown
-	   @param  max  number - the maximum value shown
-	   @return  SVGGraphAxis - this axis object or
-	            object - min and max values (if no parameters) */
-	scale: function(min, max) {
-		if (arguments.length == 0) {
-			return this._scale;
-		}
-		this._scale.min = min;
-		this._scale.max = max;
-		return this;
-	},
-	
-	/* Set or retrieve the ticks for this axis.
-	   @param  major     number - the distance between major ticks
-	   @param  minor     number - the distance between minor ticks
-	   @param  size      number - the length of the major ticks (minor are half) (optional)
-	   @param  position  string - the location of the ticks:
-	                     'in', 'out', 'both' (optional)
-	   @return  SVGGraphAxis - this axis object or
-	            object - major, minor, size, and position values (if no parameters) */
-	ticks: function(major, minor, size, position) {
-		if (arguments.length == 0) {
-			return this._ticks;
-		}
-		if (typeof size == 'string') {
-			position = size;
-			size = null;
-		}
-		this._ticks.major = major;
-		this._ticks.minor = minor;
-		this._ticks.size = size || 10;
-		this._ticks.position = position || 'out';
-		return this;
-	},
-	
-	/* Set or retrieve the title for this axis.
-	   @param  title   string - the title text
-	   @param  offset  number - the distance to offset the title position (optional)
-	   @param  format  object - formatting settings for the title (optional)
-	   @return  SVGGraphAxis - this axis object or
-	            object - title, offset, and format values (if no parameters) */
-	title: function(title, offset, format) {
-		if (arguments.length == 0) {
-			return {title: this._title, offset: this._titleOffset, format: this._titleFormat};
-		}
-		if (typeof offset == 'object') {
-			format = offset;
-			offset = null;
-		}
-		this._title = title;
-		if (offset != null) {
-			this._titleOffset = offset;
-		}
-		if (format) {
-			this._titleFormat = format;
-		}
-		return this;
-	},
-	
-	/* Set or retrieve the labels for this axis.
-	   @param  labels  string[] - the text for each entry
-	   @param  format  object - formatting settings for the labels (optional)
-	   @return  SVGGraphAxis - this axis object or
-	            object - labels and format values (if no parameters) */
-	labels: function(labels, format) {
-		if (arguments.length == 0) {
-			return {labels: this._labels, format: this._labelFormat};
-		}
-		this._labels = labels;
-		if (format) {
-			this._labelFormat = format;
-		}
-		return this;
-	},
-	
-	/* Set or retrieve the line formatting for this axis.
-	   @param  colour    string - the line's colour
-	   @param  width     number - the line's width (optional)
-	   @param  settings  object - additional formatting settings for the line (optional)
-	   @return  SVGGraphAxis - this axis object or
-	            object - line formatting values (if no parameters) */
-	line: function(colour, width, settings) {
-		if (arguments.length == 0) {
-			return this._lineFormat;
-		}
-		if (typeof width == 'object') {
-			settings = width;
-			width = null;
-		}
-		$.extend(this._lineFormat, {stroke: colour, stroke_width: width || 1});
-		$.extend(this._lineFormat, settings || {});
-		return this;
-	}
-});
-
-var defaultSeriesFill = 'green';
-var defaultSeriesStroke = 'black';
-
-/* Details about each graph series.
-   @param  name         string - the name of this series
-   @param  values       number[] - the list of values to be plotted
-   @param  fill         string - how the series should be displayed
-   @param  stroke       string - the colour of the (out)line for the series
-   @param  strokeWidth  number - the width of the (out)line for the series
-   @param  settings     object - additional formatting settings
-   @return  the new series object */
-function SVGGraphSeries(name, values, fill, stroke, strokeWidth, settings) {
-	/* The name of this series. */
-	this._name = name || '';
-	/* The list of values for this series. */
-	this._values = values || [];
-	/* Which axis this series applies to: 1 = primary, 2 = secondary. */
-	this._axis = 1;
-	/* How the series is plotted. */
-	this._fill = fill || defaultSeriesFill;
-	/* The colour for the (out)line. */
-	this._stroke = stroke || defaultSeriesStroke;
-	/* The (out)line width. */
-	this._strokeWidth = strokeWidth || 1;
-	/* Additional formatting settings for the series. */
-	this._settings = settings || {};
-}
-
-$.extend(SVGGraphSeries.prototype, {
-
-	/* Set or retrieve the name for this series.
-	   @param  name    string - the series' name
-	   @return  SVGGraphSeries - this series object or
-	            string - the series name (if no parameters) */
-	name: function(name) {
-		if (arguments.length == 0) {
-			return this._name;
-		}
-		this._name = name;
-		return this;
-	},
-
-	/* Set or retrieve the values for this series.
-	   @param  name    string - the series' name (optional)
-	   @param  values  number[] - the values to be graphed
-	   @return  SVGGraphSeries - this series object or
-	            number[] - the series values (if no parameters) */
-	values: function(name, values) {
-		if (arguments.length == 0) {
-			return this._values;
-		}
-		if (isArray(name)) {
-			valus = name;
-			name = null;
-		}
-		this._name = name || this._name;
-		this._values = values;
-		return this;
-	},
-	
-	/* Set or retrieve the formatting for this series.
-	   @param  fill         string - how the values are filled when plotted
-	   @param  stroke       string - the (out)line colour
-	   @param  strokeWidth  number - the line's width (optional)
-	   @param  settings     object - additional formatting settings for the series (optional)
-	   @return  SVGGraphSeries - this series object or
-	            object - formatting settings (if no parameters) */
-	format: function(fill, stroke, strokeWidth, settings) {
-		if (arguments.length == 0) {
-			return $.extend({fill: this._fill, stroke: this._stroke,
-				stroke_width: this._strokeWidth}, this._settings);
-		}
-		if (typeof strokeWidth == 'object') {
-			settings = strokeWidth;
-			strokeWidth = null;
-		}
-		this._fill = fill || defaultSeriesFill;
-		this._stroke = stroke || this._stroke;
-		this._strokeWidth = strokeWidth || this._strokeWidth;
-		$.extend(this._settings, settings || {});
-		return this;
-	}
-});
-
-/* Details about the graph legend.
-   @param  bgSettings    object - additional formatting settings for the legend background (optional)
-   @param  textSettings  object - additional formatting settings for the legend text (optional)
-   @return  the new legend object */
-function SVGGraphLegend(bgSettings, textSettings) {
-	this._show = true; // Show the legend?
-	this._area = [0.9, 0.1, 1.0, 0.9]; // The legend area: left, top, right, bottom, 
-		// > 1 in pixels, <= 1 as proportion
-	this._sampleSize = 15; // Size of sample box
-	this._bgSettings = bgSettings || {stroke: 'gray'}; // Additional formatting settings for the legend background
-	this._textSettings = textSettings || {}; // Additional formatting settings for the text
-}
-
-$.extend(SVGGraphLegend.prototype, {
-
-	/* Set or retrieve whether the legend should be shown.
-	   @param  show  boolean - true to display it, false to hide it
-	   @return  SVGGraphLegend - this legend object or
-	            boolean - show the legend? (if no parameters) */
-	show: function(show) {
-		if (arguments.length == 0) {
-			return this._show;
-		}
-		this._show = show;
-		return this;
-	},
-	
-	/* Set or retrieve the legend area.
-	   @param  left    number - > 1 is pixels, <= 1 is proportion of width or
-	                   number[4] - for left, top, right, bottom
-	   @param  top     number - > 1 is pixels, <= 1 is proportion of height
-	   @param  right   number - > 1 is pixels, <= 1 is proportion of width
-	   @param  bottom  number - > 1 is pixels, <= 1 is proportion of height
-	   @return  SVGGraphLegend - this legend object or
-	            number[4] - the legend area: left, top, right, bottom (if no parameters) */
-	area: function(left, top, right, bottom) {
-		if (arguments.length == 0) {
-			return this._area;
-		}
-		this._area = (isArray(left) ? left : [left, top, right, bottom]);
-		return this;
-	},
-
-	/* Set or retrieve additional settings for the legend area.
-	   @param  sampleSize    number - the size of the sample box to display (optional)
-	   @param  bgSettings    object - additional formatting settings for the legend background
-	   @param  textSettings  object - additional formatting settings for the legend text (optional)
-	   @return  SVGGraphLegend - this legend object or
-	            object - bgSettings and textSettings for the legend (if no parameters) */
-	settings: function(sampleSize, bgSettings, textSettings) {
-		if (arguments.length == 0) {
-			return {sampleSize: this._sampleSize, bgSettings: this._bgSettings,
-				textSettings: this._textSettings};
-		}
-		if (typeof sampleSize == 'object') {
-			textSettings = bgSettings;
-			bgSettings = sampleSize;
-			sampleSize = null;
-		}
-		if (sampleSize) {
-			this._sampleSize = sampleSize;
-		}
-		this._bgSettings = bgSettings;
-		if (textSettings) {
-			this._textSettings = textSettings;
-		}
-		return this;
-	}
-});
-
-//==============================================================================
-
-/* Round a number to a given number of decimal points. */
-function roundNumber(num, dec) {
-	return Math.round(num * Math.pow(10, dec)) / Math.pow(10, dec);
-}
-
-var barOptions = ['barWidth (number) - the width of each bar',
-	'barGap (number) - the gap between sets of bars'];
-
-//------------------------------------------------------------------------------
-
-/* Draw a standard grouped column bar chart. */
-function SVGColumnChart() {
-}
-
-$.extend(SVGColumnChart.prototype, {
-
-	/* Retrieve the display title for this chart type.
-	   @return  the title */
-	title: function() {
-		return 'Basic column chart';
-	},
-
-	/* Retrieve a description of this chart type.
-	   @return  its description */
-	description: function() {
-		return 'Compare sets of values as vertical bars with grouped categories.';
-	},
-
-	/* Retrieve a list of the options that may be set for this chart type.
-	   @return  options list */
-	options: function() {
-		return barOptions;
-	},
-
-	/* Actually draw the graph in this type's style.
-	   @param  graph  object - the SVGGraph object */
-	drawGraph: function(graph) {
-		graph._drawChartBackground(true);
-		var barWidth = graph._chartOptions.barWidth || 10;
-		var barGap = graph._chartOptions.barGap || 10;
-		var numSer = graph._series.length;
-		var numVal = (numSer ? (graph._series[0])._values.length : 0);
-		var dims = graph._getDims();
-		var xScale = dims[graph.W] / ((numSer * barWidth + barGap) * numVal + barGap);
-		var yScale = dims[graph.H] / (graph.yAxis._scale.max - graph.yAxis._scale.min);
-		this._chart = graph._root.group(graph._chartGroup, 'chart');
-		for (var i = 0; i < numSer; i++) {
-			this._drawSeries(graph, i, numSer, barWidth, barGap, dims, xScale, yScale);
-		}
-		graph._drawTitle();
-		graph._drawAxes(true);
-		this._drawXAxis(graph, numSer, numVal, barWidth, barGap, dims, xScale);
-		graph._drawLegend();
-	},
-	
-	/* Plot an individual series. */
-	_drawSeries: function(graph, cur, numSer, barWidth, barGap, dims, xScale, yScale) {
-		var series = graph._series[cur];
-		var g = graph._root.group(this._chart, 'series' + cur,
-			$.extend({stroke: series._stroke,
-			stroke_width: series._strokeWidth}, series._settings || {}));
-		for (var i = 0; i < series._values.length; i++) {
-			graph._root.rect(g, 
-				dims[graph.X] + xScale * (barGap + i * (numSer * barWidth + barGap) + (cur * barWidth)),
-				dims[graph.Y] + yScale * (graph.yAxis._scale.max - series._values[i]), 
-				xScale * barWidth, yScale * series._values[i], $.extend({fill: series._fill},
-				graph._showStatus(series._name + ' ' + series._values[i])));
-		}
-	},
-	
-	/* Draw the x-axis and its ticks. */
-	_drawXAxis: function(graph, numSer, numVal, barWidth, barGap, dims, xScale) {
-		var axis = graph.xAxis;
-		if (axis._title) {
-			graph._root.text(graph._chartGroup, dims[graph.X] + dims[graph.W] / 2,
-				dims[graph.Y] + dims[graph.H] + axis._titleOffset,
-				axis._title, {text_anchor: 'middle'});
-		}
-		var gl = graph._root.group(graph._chartGroup, 'xAxis', axis._lineFormat);
-		var gt = graph._root.group(graph._chartGroup, 'xAxisLabels',
-			$.extend({text_anchor: 'middle'}, axis._labelFormat));
-		graph._root.line(gl, dims[graph.X], dims[graph.Y] + dims[graph.H],
-			dims[graph.X] + dims[graph.W], dims[graph.Y] + dims[graph.H]);
-		if (axis._ticks.major) {
-			var offsets = graph._getTickOffsets(axis, true);
-			for (var i = 1; i < numVal; i++) {
-				var x = dims[graph.X] + xScale * (barGap / 2 + i * (numSer * barWidth + barGap));
-				graph._root.line(gl, x, dims[graph.Y] + dims[graph.H] + offsets[0] * axis._ticks.size,
-					x, dims[graph.Y] + dims[graph.H] + offsets[1] * axis._ticks.size);
-			}
-			for (var i = 0; i < numVal; i++) {
-				var x = dims[graph.X] + xScale * (barGap / 2 + (i + 0.5) * (numSer * barWidth + barGap));
-				graph._root.text(gt, x, dims[graph.Y] + dims[graph.H] + 2 * axis._ticks.size,
-					(axis._labels ? axis._labels[i] : '' + i));
-			}
-		}
-	}
-});
-
-//------------------------------------------------------------------------------
-
-/* Draw a stacked column bar chart. */
-function SVGStackedColumnChart() {
-}
-
-$.extend(SVGStackedColumnChart.prototype, {
-
-	/* Retrieve the display title for this chart type.
-	   @return  the title */
-	title: function() {
-		return 'Stacked column chart';
-	},
-
-	/* Retrieve a description of this chart type.
-	   @return  its description */
-	description: function() {
-		return 'Compare sets of values as vertical bars showing ' +
-			'relative contributions to the whole for each category.';
-	},
-
-	/* Retrieve a list of the options that may be set for this chart type.
-	   @return  options list */
-	options: function() {
-		return barOptions;
-	},
-
-	/* Actually draw the graph in this type's style.
-	   @param  graph  object - the SVGGraph object */
-	drawGraph: function(graph) {
-		var bg = graph._drawChartBackground(true, true);
-		var dims = graph._getDims();
-		if (graph._gridlines[0] && graph.xAxis._ticks.major) {
-			graph._drawGridlines(bg, graph._getPercentageAxis(), true, dims, graph._gridlines[0]);
-		}
-		var barWidth = graph._chartOptions.barWidth || 10;
-		var barGap = graph._chartOptions.barGap || 10;
-		var numSer = graph._series.length;
-		var numVal = (numSer ? (graph._series[0])._values.length : 0);
-		var xScale = dims[graph.W] / ((barWidth + barGap) * numVal + barGap);
-		var yScale = dims[graph.H];
-		this._chart = graph._root.group(graph._chartGroup, 'chart');
-		this._drawColumns(graph, numSer, numVal, barWidth, barGap, dims, xScale, yScale);
-		graph._drawTitle();
-		graph._root.text(graph._chartGroup, 0, 0, svgGraphing.region.percentageText,
-			{text_anchor: 'middle', transform: 'translate(' + (dims[graph.X] - graph.yAxis._titleOffset) +
-			',' +(dims[graph.Y] + dims[graph.H] / 2) + ') rotate(-90)'});
-		//graph._drawAxis(graph._getPercentageAxis(), 'yAxis',
-			//dims[graph.X], dims[graph.Y], dims[graph.X], dims[graph.Y] + dims[graph.H]);
-		this._drawXAxis(graph, numVal, barWidth, barGap, dims, xScale);
-		graph._drawLegend();
-	},
-	
-	/* Plot all of the columns. */
-	_drawColumns: function(graph, numSer, numVal, barWidth, barGap, dims, xScale, yScale) {
-		var totals = graph._getTotals();
-		var accum = [];
-		for (var i = 0; i < numVal; i++) {
-			accum[i] = 0;
-		}
-		for (var s = 0; s < numSer; s++) {
-			var series = graph._series[s];
-			var g = graph._root.group(this._chart, 'series' + s,
-				$.extend({stroke: series._stroke, stroke_width: series._strokeWidth},
-				series._settings || {}));
-			for (var i = 0; i < series._values.length; i++) {
-				accum[i] += series._values[i];
-				graph._root.rect(g,
-					dims[graph.X] + xScale * (barGap + i * (barWidth + barGap)),
-					dims[graph.Y] + yScale * (totals[i] - accum[i]) / totals[i],
-					xScale * barWidth, yScale * series._values[i] / totals[i],
-					$.extend({fill: series._fill}, graph._showStatus(series._name + ' ' +
-					roundNumber(series._values[i] / totals[i] * 100, 2) + '%')));
-			}
-		}
-	},
-	
-	/* Draw the x-axis and its ticks. */
-	_drawXAxis: function(graph, numVal, barWidth, barGap, dims, xScale) {
-		var axis = graph.xAxis;
-		if (axis._title) {
-			graph._root.text(graph._chartGroup, dims[graph.X] + dims[graph.W] / 2,
-				dims[graph.Y] + dims[graph.H] + axis._titleOffset,
-				axis._title, {text_anchor: 'middle'});
-		}
-		var gl = graph._root.group(graph._chartGroup, 'xAxis', axis._lineFormat);
-		var gt = graph._root.group(graph._chartGroup, 'xAxisLabels',
-			$.extend({text_anchor: 'middle'}, axis._labelFormat));
-		graph._root.line(gl, dims[graph.X], dims[graph.Y] + dims[graph.H],
-		dims[graph.X] + dims[graph.W], dims[graph.Y] + dims[graph.H]);
-		if (axis._ticks.major) {
-			var offsets = graph._getTickOffsets(axis, true);
-			for (var i = 1; i < numVal; i++) {
-				var x = dims[graph.X] + xScale * (barGap / 2 + i * (barWidth + barGap));
-				graph._root.line(gl, x, dims[graph.Y] + dims[graph.H] + offsets[0] * axis._ticks.size,
-					x, dims[graph.Y] + dims[graph.H] + offsets[1] * axis._ticks.size);
-			}
-			for (var i = 0; i < numVal; i++) {
-				var x = dims[graph.X] + xScale * (barGap / 2 + (i + 0.5) * (barWidth + barGap));
-				graph._root.text(gt, x, dims[graph.Y] + dims[graph.H] + 2 * axis._ticks.size,
-					(axis._labels ? axis._labels[i] : '' + i));
-			}
-		}
-	}
-});
-
-//------------------------------------------------------------------------------
-
-/* Draw a standard grouped row bar chart. */
-function SVGRowChart() {
-}
-
-$.extend(SVGRowChart.prototype, {
-
-	/* Retrieve the display title for this chart type.
-	   @return  the title */
-	title: function() {
-		return 'Basic row chart';
-	},
-
-	/* Retrieve a description of this chart type.
-	   @return  its description */
-	description: function() {
-		return 'Compare sets of values as horizontal rows with grouped categories.';
-	},
-
-	/* Retrieve a list of the options that may be set for this chart type.
-	   @return  options list */
-	options: function() {
-		return barOptions;
-	},
-
-	/* Actually draw the graph in this type's style.
-	   @param  graph  object - the SVGGraph object */
-	drawGraph: function(graph) {
-		var bg = graph._drawChartBackground(true, true);
-		var dims = graph._getDims();
-		graph._drawGridlines(bg, graph.yAxis, false, dims, graph._gridlines[0]);
-		var barWidth = graph._chartOptions.barWidth || 10;
-		var barGap = graph._chartOptions.barGap || 10;
-		var numSer = graph._series.length;
-		var numVal = (numSer ? (graph._series[0])._values.length : 0);
-		var xScale = dims[graph.W] / (graph.yAxis._scale.max - graph.yAxis._scale.min);
-		var yScale = dims[graph.H] / ((numSer * barWidth + barGap) * numVal + barGap);
-		this._chart = graph._root.group(graph._chartGroup, 'chart');
-		for (var i = 0; i < numSer; i++) {
-			this._drawSeries(graph, i, numSer, barWidth, barGap, dims, xScale, yScale);
-		}
-		graph._drawTitle();
-		this._drawAxes(graph, numSer, numVal, barWidth, barGap, dims, yScale);
-		graph._drawLegend();
-	},
-	
-	/* Plot an individual series. */
-	_drawSeries: function(graph, cur, numSer, barWidth, barGap, dims, xScale, yScale) {
-		var series = graph._series[cur];
-		var g = graph._root.group(this._chart, 'series' + cur,
-			$.extend({stroke: series._stroke, stroke_width: series._strokeWidth},
-			series._settings || {}));
-		for (var i = 0; i < series._values.length; i++) {
-			graph._root.rect(g,
-				dims[graph.X] + xScale * (0 - graph.yAxis._scale.min),
-				dims[graph.Y] + yScale * (barGap + i * (numSer * barWidth + barGap) + (cur * barWidth)),
-				xScale * series._values[i], yScale * barWidth, $.extend({fill: series._fill},
-				graph._showStatus(series._name + ' ' + series._values[i])));
-		}
-	},
-	
-	/* Draw the axes for this graph. */
-	_drawAxes: function(graph, numSer, numVal, barWidth, barGap, dims, yScale) {
-		// X-axis
-		var axis = graph.yAxis;
-		if (axis) {
-			if (axis._title) {
-				graph._root.text(graph._chartGroup, dims[graph.X] + dims[graph.W] / 2,
-					dims[graph.Y] + dims[graph.H] + axis._titleOffset, axis._title, axis._titleFormat);
-			}
-			graph._drawAxis(axis, 'xAxis', dims[graph.X], dims[graph.Y] + dims[graph.H],
-				dims[graph.X] + dims[graph.W], dims[graph.Y] + dims[graph.H]);
-		}
-		// Y-axis
-		var axis = graph.xAxis;
-		if (axis._title) {
-			graph._root.text(graph._chartGroup, 0, 0, axis._title, {text_anchor: 'middle',
-				transform: 'translate(' + (dims[graph.X] - axis._titleOffset) + ',' +
-				(dims[graph.Y] + dims[graph.H] / 2) + ') rotate(-90)'});
-		}
-		var gl = graph._root.group(graph._chartGroup, 'yAxis', axis._lineFormat);
-		var gt = graph._root.group(graph._chartGroup, 'yAxisLabels',
-			$.extend({text_anchor: 'end'}, axis._labelFormat));
-		graph._root.line(gl, dims[graph.X], dims[graph.Y], dims[graph.X], dims[graph.Y] + dims[graph.H]);
-		if (axis._ticks.major) {
-			var offsets = graph._getTickOffsets(axis, false);
-			for (var i = 1; i < numVal; i++) {
-				var y = dims[graph.Y] + yScale * (barGap / 2 + i * (numSer * barWidth + barGap));
-				graph._root.line(gl, dims[graph.X] + offsets[0] * axis._ticks.size, y,
-					dims[graph.X] + offsets[1] * axis._ticks.size, y);
-			}
-			for (var i = 0; i < numVal; i++) {
-				var y = dims[graph.Y] + yScale * (barGap / 2 + (i + 0.5) * (numSer * barWidth + barGap));
-				graph._root.text(gt, dims[graph.X] - axis._ticks.size, y,
-					(axis._labels ? axis._labels[i] : '' + i));
-			}
-		}
-	}
-});
-
-//------------------------------------------------------------------------------
-
-/* Draw a stacked row bar chart. */
-function SVGStackedRowChart() {
-}
-
-$.extend(SVGStackedRowChart.prototype, {
-
-	/* Retrieve the display title for this chart type.
-	   @return  the title */
-	title: function() {
-		return 'Stacked row chart';
-	},
-
-	/* Retrieve a description of this chart type.
-	   @return  its description */
-	description: function() {
-		return 'Compare sets of values as horizontal bars showing ' +
-			'relative contributions to the whole for each category.';
-	},
-
-	/* Retrieve a list of the options that may be set for this chart type.
-	   @return  options list */
-	options: function() {
-		return barOptions;
-	},
-
-	/* Actually draw the graph in this type's style.
-	   @param  graph  object - the SVGGraph object */
-	drawGraph: function(graph) {
-		var bg = graph._drawChartBackground(true, true);
-		var dims = graph._getDims();
-		if (graph._gridlines[0] && graph.xAxis._ticks.major) {
-			graph._drawGridlines(bg, graph._getPercentageAxis(), false, dims, graph._gridlines[0]);
-		}
-		var barWidth = graph._chartOptions.barWidth || 10;
-		var barGap = graph._chartOptions.barGap || 10;
-		var numSer = graph._series.length;
-		var numVal = (numSer ? (graph._series[0])._values.length : 0);
-		var xScale = dims[graph.W];
-		var yScale = dims[graph.H] / ((barWidth + barGap) * numVal + barGap);
-		this._chart = graph._root.group(graph._chartGroup, 'chart');
-		this._drawRows(graph, numSer, numVal, barWidth, barGap, dims, xScale, yScale);
-		graph._drawTitle();
-		graph._root.text(graph._chartGroup, dims[graph.X] + dims[graph.W] / 2,
-			dims[graph.Y] + dims[graph.H] + graph.xAxis._titleOffset,
-			svgGraphing.region.percentageText, {text_anchor: 'middle'});
-	//	graph._drawAxis(graph._getPercentageAxis(), 'xAxis',
-	//		dims[graph.X], dims[graph.Y] + dims[graph.H],
-	//		dims[graph.X] + dims[graph.W], dims[graph.Y] + dims[graph.H]);
-	//	this._drawYAxis(graph, numVal, barWidth, barGap, dims, yScale);
-		graph._drawLegend();
-	},
-	
-	/* Plot all of the rows. */
-	_drawRows: function(graph, numSer, numVal, barWidth, barGap, dims, xScale, yScale) {
-		var totals = graph._getTotals();
-		var accum = [];
-		for (var i = 0; i < numVal; i++) {
-			accum[i] = 0;
-		}
-		for (var s = 0; s < numSer; s++) {
-			var series = graph._series[s];
-			var g = graph._root.group(this._chart, 'series' + s,
-				$.extend({stroke: series._stroke, stroke_width: series._strokeWidth},
-				series._settings || {}));
-			for (var i = 0; i < series._values.length; i++) {
-				graph._root.rect(g,
-					dims[graph.X] + xScale * accum[i] / totals[i],
-					dims[graph.Y] + yScale * (barGap + i * (barWidth + barGap)),
-					xScale * series._values[i] / totals[i], yScale * barWidth,
-					$.extend({fill: series._fill}, graph._showStatus(series._name + ' ' +
-					roundNumber(series._values[i] / totals[i] * 100, 2) + '%')));
-				accum[i] += series._values[i];
-			}
-		}
-	},
-	
-	/* Draw the y-axis and its ticks. */
-	_drawYAxis: function(graph, numVal, barWidth, barGap, dims, yScale) {
-		var axis = graph.xAxis;
-		if (axis._title) {
-			graph._root.text(graph._chartGroup, 0, 0, axis._title, {text_anchor: 'middle',
-				transform: 'translate(' + (dims[graph.X] - axis._titleOffset) + ',' +
-				(dims[graph.Y] + dims[graph.H] / 2) + ') rotate(-90)'});
-		}
-		var gl = graph._root.group(graph._chartGroup, 'yAxis', axis._lineFormat);
-		var gt = graph._root.group(graph._chartGroup, 'yAxisLabels',
-			$.extend({text_anchor: 'end'}, axis._labelFormat));
-		graph._root.line(gl, dims[graph.X], dims[graph.Y], dims[graph.X], dims[graph.Y] + dims[graph.H]);
-		if (axis._ticks.major) {
-			var offsets = graph._getTickOffsets(axis, false);
-			for (var i = 1; i < numVal; i++) {
-				var y = dims[graph.Y] + yScale * (barGap / 2 + i * (barWidth + barGap));
-				graph._root.line(gl, dims[graph.X] + offsets[0] * axis._ticks.size, y,
-					dims[graph.X] + offsets[1] * axis._ticks.size, y);
-			}
-			for (var i = 0; i < numVal; i++) {
-				var y = dims[graph.Y] + yScale * (barGap / 2 + (i + 0.5) * (barWidth + barGap));
-				graph._root.text(gt, dims[graph.X] - axis._ticks.size, y,
-					(axis._labels ? axis._labels[i] : '' + i));
-			}
-		}
-	}
-});
-
-//------------------------------------------------------------------------------
-
-/* Draw a standard line chart. */
-function SVGLineChart() {
-}
-
-$.extend(SVGLineChart.prototype, {
-
-	/* Retrieve the display title for this chart type.
-	   @return  the title */
-	title: function() {
-		return 'Basic line chart';
-	},
-
-	/* Retrieve a description of this chart type.
-	   @return  its description */
-	description: function() {
-		return 'Compare sets of values as continuous lines.';
-	},
-
-	/* Retrieve a list of the options that may be set for this chart type.
-	   @return  options list */
-	options: function() {
-		return [];
-	},
-	
-	/* Actually draw the graph in this type's style.
-	   @param  graph  object - the SVGGraph object */
-	drawGraph: function(graph) {
-		graph._drawChartBackground();
-		var dims = graph._getDims();
-		var xScale = dims[graph.W] / (graph.xAxis._scale.max - graph.xAxis._scale.min);
-		var yScale = dims[graph.H] / (graph.yAxis._scale.max - graph.yAxis._scale.min);
-		this._chart = graph._root.group(graph._chartGroup, 'chart');
-		for (var i = 0; i < graph._series.length; i++) {
-			this._drawSeries(graph, i, dims, xScale, yScale);
-		}
-		graph._drawTitle();
-		graph._drawAxes();
-		graph._drawLegend();
-	},
-	
-	/* Plot an individual series. */
-	_drawSeries: function(graph, cur, dims, xScale, yScale) {
-		var series = graph._series[cur];
-		var path = graph._root.createPath();
-		for (var i = 0; i < series._values.length; i++) {
-			var x = dims[graph.X] + i * xScale;
-			var y = dims[graph.Y] + (graph.yAxis._scale.max - series._values[i]) * yScale;
-			if (i == 0) {
-				path.moveTo(x, y);
-			}
-			else {
-				path.lineTo(x, y);
-			}
-		}
-		graph._root.path(this._chart, path, 
-			$.extend($.extend({id: 'series' + cur, fill: 'none', stroke: series._stroke, 
-			stroke_width: series._strokeWidth}, graph._showStatus(series._name),
-			series._settings || {})));
-	}
-});
-
-//------------------------------------------------------------------------------
-
-/* Draw a standard pie chart. */
-function SVGPieChart() {
-}
-
-$.extend(SVGPieChart.prototype, {
-
-	_options: ['explode (number[]) - indexes of sections to explode out of the pie',
-		'explodeDist (number) - the distance to move an exploded section',
-		'pieGap (number) - the distance between pies for multiple values'],
-
-	/* Retrieve the display title for this chart type.
-	   @return  the title */
-	title: function() {
-		return 'Pie chart';
-	},
-
-	/* Retrieve a description of this chart type.
-	   @return  its description */
-	description: function() {
-		return 'Compare relative sizes of values as contributions to the whole.';
-	},
-
-	/* Retrieve a list of the options that may be set for this chart type.
-	   @return  options list */
-	options: function() {
-		return this._options;
-	},
-	
-	/* Actually draw the graph in this type's style.
-	   @param  graph  object - the SVGGraph object */
-	drawGraph: function(graph) {
-		graph._drawChartBackground(true, true);
-		this._chart = graph._root.group(graph._chartGroup, 'chart');
-		var dims = graph._getDims();
-		this._drawSeries(graph, dims);
-		graph._drawTitle();
-		graph._drawLegend();
-	},
-	
-	/* Plot all the series. */
-	_drawSeries: function(graph, dims) {
-		var totals = graph._getTotals();
-		var numSer = graph._series.length;
-		var numVal = (numSer ? (graph._series[0])._values.length : 0);
-		var path = graph._root.createPath();
-		var explode = graph._chartOptions.explode || [];
-		var explodeDist = graph._chartOptions.explodeDist || 10;
-		var pieGap = (numVal <= 1 ? 0 : graph._chartOptions.pieGap || 10);
-		var xBase = (dims[graph.W] - (numVal * pieGap) - pieGap) / numVal / 2;
-		var yBase = dims[graph.H] / 2;
-		var radius = Math.min(xBase, yBase) - (explode.length > 0 ? explodeDist : 0);
-		var gt = graph._root.group(graph._chartGroup, 'xAxisLabels',
-			$.extend({text_anchor: 'middle'}, graph.xAxis._labelFormat));
-		var gl = [];
-		for (var i = 0; i < numVal; i++) {
-			var cx = dims[graph.X] + xBase + (i * (2 * Math.min(xBase, yBase) + pieGap)) + pieGap;
-			var cy = dims[graph.Y] + yBase;
-			var curTotal = 0;
-			for (var j = 0; j < numSer; j++) {
-				var series = graph._series[j];
-				if (i == 0) {
-					gl[j] = graph._root.group(this._chart, 'series' + j,
-						$.extend({stroke: series._stroke, stroke_width: series._strokeWidth},
-						series._settings || {}));
-				}
-				if (series._values[i] == 0) {
-					continue;
-				}
-				var start = (curTotal / totals[i]) * 2 * Math.PI;
-				curTotal += series._values[i];
-				var end = (curTotal / totals[i]) * 2 * Math.PI;
-				var exploding = false;
-				for (var k = 0; k < explode.length; k++) {
-					if (explode[k] == j) {
-						exploding = true;
-						break;
-					}
-				}
-				var x = cx + (exploding ? explodeDist * Math.cos((start + end) / 2) : 0);
-				var y = cy + (exploding ? explodeDist * Math.sin((start + end) / 2) : 0);
-				var status = series._name + ' ' +
-					roundNumber((end - start) / 2 / Math.PI * 100, 2) + '%';
-				graph._root.path(gl[j], path.reset().moveTo(x, y).
-					lineTo(x + radius * Math.cos(start), y + radius * Math.sin(start)).
-					arcTo(radius, radius, 0, (end - start < Math.PI ? 0 : 1), 1, 
-					x + radius * Math.cos(end), y + radius * Math.sin(end)).close(), 
-					$.extend({fill: series._fill}, graph._showStatus(status)));
-			}
-			if (graph.xAxis) {
-				graph._root.text(gt, cx, dims[graph.Y] + dims[graph.H] + graph.xAxis._titleOffset,
-					graph.xAxis._labels[i])
-			}
-		}
-	}
-});
-
-//------------------------------------------------------------------------------
-
-/* Determine whether an object is an array. */
-function isArray(a) {
-	return (a.constructor && a.constructor.toString().match(/\Array\(\)/));
-}
-
-// Basic chart types
-svgGraphing.addChartType('column', new SVGColumnChart());
-svgGraphing.addChartType('stackedColumn', new SVGStackedColumnChart());
-svgGraphing.addChartType('row', new SVGRowChart());
-svgGraphing.addChartType('stackedRow', new SVGStackedRowChart());
-svgGraphing.addChartType('line', new SVGLineChart());
-svgGraphing.addChartType('pie', new SVGPieChart());
-
-})(jQuery)
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.min.js
deleted file mode 100644
index b8484c6..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG graphing extension for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-var svgGraphing=null;(function($){svgManager.addExtension('graph',SVGGraph);svgGraphing=new SVGGraphing();function SVGGraphing(){this.regional=[];this.regional['']={percentageText:'Percentage'};this.region=this.regional['']}$.extend(SVGGraphing.prototype,{_chartTypes:[],addChartType:function(a,b){this._chartTypes[a]=b},chartTypes:function(){return this._chartTypes}});function SVGGraph(a){this._root=a;this._drawNow=true;for(var b in svgGraphing._chartTypes){this._chartType=svgGraphing._chartTypes[b];break}this._chartOptions={};this._title={value:'',offset:25,settings:{text_anchor:'middle'}};this._area=[0.1,0.1,0.8,0.9];this._chartFormat={fill:'none',stroke:'black'};this._gridlines=[];this._series=[];this._onstatus=null;this._chartGroup=this._root.group(null,'graph');this.xAxis=new SVGGraphAxis();this.xAxis.title('',40);this.yAxis=new SVGGraphAxis();this.yAxis.title('',40);this.x2Axis=null;this.y2Axis=null;this.legend=new SVGGraphLegend()}$.extend(SVGGraph.prototype,{X:0,Y:1,W:2,H:3,L:0,T:1,R:2,B:3,_percentageAxis:new SVGGraphAxis(svgGraphing.region.percentageText,0,100,10,0),chartType:function(a,b){if(arguments.length==0){return this._chartType}var c=svgGraphing._chartTypes[a];if(c){this._chartType=c;this._chartOptions=$.extend({},b||{})}this._drawGraph();return this},chartOptions:function(a){if(arguments.length==0){return this._chartOptions}this._chartOptions=$.extend({},a);this._drawGraph();return this},chartFormat:function(a,b,c){if(arguments.length==0){return this._chartFormat}if(typeof b=='object'){c=b;b=null}this._chartFormat=$.extend($.extend({fill:a},(b?{stroke:b}:{})),c||{});this._drawGraph();return this},chartArea:function(a,b,c,d){if(arguments.length==0){return this._area}this._area=(isArray(a)?a:[a,b,c,d]);this._drawGraph();return this},gridlines:function(a,b){if(arguments.length==0){return this._gridlines}this._gridlines=[(typeof a=='string'?{stroke:a}:a),(typeof b=='string'?{stroke:b}:b)];this._drawGraph();return this},title:function(a,b,c){if(arguments.length==0){return this._title}if(typeof b=='object'){c=b;b=null}this._title={value:a,offset:b||this._title.offset,settings:$.extend({text_anchor:'middle'},c||{})};this._drawGraph();return this},addSeries:function(a,b,c,d,e,f){if(typeof e=='object'){f=e;e=null}this._series[this._series.length]=new SVGGraphSeries(a,b,c,d,e,f||{});this._drawGraph();return this},series:function(){return this._series},noDraw:function(){this._drawNow=false;return this},redraw:function(){this._drawNow=true;this._drawGraph();return this},status:function(a){this._onstatus=a;return this},_drawGraph:function(){if(!this._drawNow){return}while(this._chartGroup.firstChild){this._chartGroup.removeChild(this._chartGroup.firstChild)}if(!this._chartGroup.parent){this._root._svg.appendChild(this._chartGroup)}this._chartType.drawGraph(this)},_drawTitle:function(){this._root.text(this._chartGroup,this._root._width()/2,this._title.offset,this._title.value,this._title.settings)},_getDims:function(a){a=a||this._area;var b=(a[this.L]>1?a[this.L]:this._root._width()*a[this.L]);var c=(a[this.T]>1?a[this.T]:this._root._height()*a[this.T]);var d=(a[this.R]>1?a[this.R]:this._root._width()*a[this.R])-b;var e=(a[this.B]>1?a[this.B]:this._root._height()*a[this.B])-c;return[b,c,d,e]},_drawChartBackground:function(a,b){var c=this._root.group(this._chartGroup,'background');var d=this._getDims();this._root.rect(c,d[this.X],d[this.Y],d[this.W],d[this.H],this._chartFormat);if(this._gridlines[0]&&this.yAxis._ticks.major&&!b){this._drawGridlines(c,this.yAxis,true,d,this._gridlines[0])}if(this._gridlines[1]&&this.xAxis._ticks.major&&!a){this._drawGridlines(c,this.xAxis,false,d,this._gridlines[1])}return c},_drawGridlines:function(a,b,c,d,e){var g=this._root.group(a,e);var f=(c?d[this.H]:d[this.W])/(b._scale.max-b._scale.min);var h=Math.floor(b._scale.min/b._ticks.major)*b._ticks.major;h=(h<b._scale.min?h+b._ticks.major:h);while(h<=b._scale.max){var v=(c?b._scale.max-h:h-b._scale.min)*f+(c?d[this.Y]:d[this.X]);this._root.line(g,(c?d[this.X]:v),(c?v:d[this.Y]),(c?d[this.X]+d[this.W]:v),(c?v:d[this.Y]+d[this.H]));h+=b._ticks.major}},_drawAxes:function(a){var b=this._getDims();if(this.xAxis&&!a){if(this.xAxis._title){this._root.text(this._chartGroup,b[this.X]+b[this.W]/2,b[this.Y]+b[this.H]+this.xAxis._titleOffset,this.xAxis._title)}this._drawAxis(this.xAxis,'xAxis',b[this.X],b[this.Y]+b[this.H],b[this.X]+b[this.W],b[this.Y]+b[this.H])}if(this.yAxis){if(this.yAxis._title){this._root.text(this._chartGroup,0,0,this.yAxis._title,{text_anchor:'middle',transform:'translate('+(b[this.X]-this.yAxis._titleOffset)+','+(b[this.Y]+b[this.H]/2)+') rotate(-90)'})}this._drawAxis(this.yAxis,'yAxis',b[this.X],b[this.Y],b[this.X],b[this.Y]+b[this.H])}if(this.x2Axis&&!a){if(this.x2Axis._title){this._root.text(this._chartGroup,b[this.X]+b[this.W]/2,b[this.X]-this.x2Axis._titleOffset,this.x2Axis._title)}this._drawAxis(this.x2Axis,'x2Axis',b[this.X],b[this.Y],b[this.X]+b[this.W],b[this.Y])}if(this.y2Axis){if(this.y2Axis._title){this._root.text(this._chartGroup,0,0,this.y2Axis._title,{text_anchor:'middle',transform:'translate('+(b[this.X]+b[this.W]+this.y2Axis._titleOffset)+','+(b[this.Y]+b[this.H]/2)+') rotate(-90)'})}this._drawAxis(this.y2Axis,'y2Axis',b[this.X]+b[this.W],b[this.Y],b[this.X]+b[this.W],b[this.Y]+b[this.H])}},_drawAxis:function(a,b,c,d,e,f){var g=(d==f);var h=this._root.group(this._chartGroup,b,a._lineFormat);var i=this._root.group(this._chartGroup,b+'Labels',$.extend({text_anchor:(g?'middle':'end')},a._labelFormat));this._root.line(h,c,d,e,f);if(a._ticks.major){var j=(e>(this._root._width()/2)&&f>(this._root._height()/2));var k=(g?e-c:f-d)/(a._scale.max-a._scale.min);var l=a._ticks.size;var m=Math.floor(a._scale.min/a._ticks.major)*a._ticks.major;m=(m<a._scale.min?m+a._ticks.major:m);var n=(!a._ticks.minor?a._scale.max+1:Math.floor(a._scale.min/a._ticks.minor)*a._ticks.minor);n=(n<a._scale.min?n+a._ticks.minor:n);var o=this._getTickOffsets(a,j);while(m<=a._scale.max||n<=a._scale.max){var p=Math.min(m,n);var q=(p==m?l:l/2);var v=(g?c:d)+(g?p-a._scale.min:a._scale.max-p)*k;this._root.line(h,(g?v:c+q*o[0]),(g?d+q*o[0]:v),(g?v:c+q*o[1]),(g?d+q*o[1]:v));if(p==m){this._root.text(i,(g?v:c-l),(g?d+2*l:v),(a._labels?a._labels[p]:''+p))}m+=(p==m?a._ticks.major:0);n+=(p==n?a._ticks.minor:0)}}},_getTickOffsets:function(a,b){return[(a._ticks.position==(b?'in':'out')||a._ticks.position=='both'?-1:0),(a._ticks.position==(b?'out':'in')||a._ticks.position=='both'?+1:0),]},_getPercentageAxis:function(){this._percentageAxis._title=svgGraphing.region.percentageText;return this._percentageAxis},_getTotals:function(){var a=[];var b=(this._series.length?this._series[0]._values.length:0);for(var i=0;i<b;i++){a[i]=0;for(var j=0;j<this._series.length;j++){a[i]+=this._series[j]._values[i]}}return a},_drawLegend:function(){if(!this.legend._show){return}var g=this._root.group(this._chartGroup,'legend');var a=this._getDims(this.legend._area);this._root.rect(g,a[this.X],a[this.Y],a[this.W],a[this.H],this.legend._bgSettings);var b=a[this.W]>a[this.H];var c=this._series.length;var d=(b?a[this.W]:a[this.H])/c;var e=a[this.X]+5;var f=a[this.Y]+(b?a[this.H]/2:d/2);for(var i=0;i<c;i++){var h=this._series[i];this._root.rect(g,e+(b?i*d:0),f+(b?0:i*d)-this.legend._sampleSize,this.legend._sampleSize,this.legend._sampleSize,{fill:h._fill,stroke:h._stroke,stroke_width:1});this._root.text(g,e+(b?i*d:0)+this.legend._sampleSize+5,f+(b?0:i*d),h._name,this.legend._textSettings)}},_showStatus:function(a){var b=(!this._onstatus?'':this._onstatus.toString().replace(/function (.*)\([\s\S]*/m,'$1'));return(!this._onstatus?{}:{onmouseover:'window.parent.'+b+'(\''+a+'\');',onmouseout:'window.parent.'+b+'(\'\');'})}});function SVGGraphAxis(a,b,c,d,e){this._title=a||'';this._titleFormat={};this._titleOffset=0;this._labels=null;this._labelFormat={};this._lineFormat={stroke:'black'};this._ticks={major:d||10,minor:e||0,size:10,position:'out'};this._scale={min:b||0,max:c||100};this._crossAt=0}$.extend(SVGGraphAxis.prototype,{scale:function(a,b){if(arguments.length==0){return this._scale}this._scale.min=a;this._scale.max=b;return this},ticks:function(a,b,c,d){if(arguments.length==0){return this._ticks}if(typeof c=='string'){d=c;c=null}this._ticks.major=a;this._ticks.minor=b;this._ticks.size=c||10;this._ticks.position=d||'out';return this},title:function(a,b,c){if(arguments.length==0){return{title:this._title,offset:this._titleOffset,format:this._titleFormat}}if(typeof b=='object'){c=b;b=null}this._title=a;if(b!=null){this._titleOffset=b}if(c){this._titleFormat=c}return this},labels:function(a,b){if(arguments.length==0){return{labels:this._labels,format:this._labelFormat}}this._labels=a;if(b){this._labelFormat=b}return this},line:function(a,b,c){if(arguments.length==0){return this._lineFormat}if(typeof b=='object'){c=b;b=null}$.extend(this._lineFormat,{stroke:a,stroke_width:b||1});$.extend(this._lineFormat,c||{});return this}});var B='green';var C='black';function SVGGraphSeries(a,b,c,d,e,f){this._name=a||'';this._values=b||[];this._axis=1;this._fill=c||B;this._stroke=d||C;this._strokeWidth=e||1;this._settings=f||{}}$.extend(SVGGraphSeries.prototype,{name:function(a){if(arguments.length==0){return this._name}this._name=a;return this},values:function(a,b){if(arguments.length==0){return this._values}if(isArray(a)){valus=a;a=null}this._name=a||this._name;this._values=b;return this},format:function(a,b,c,d){if(arguments.length==0){return $.extend({fill:this._fill,stroke:this._stroke,stroke_width:this._strokeWidth},this._settings)}if(typeof c=='object'){d=c;c=null}this._fill=a||B;this._stroke=b||this._stroke;this._strokeWidth=c||this._strokeWidth;$.extend(this._settings,d||{});return this}});function SVGGraphLegend(a,b){this._show=true;this._area=[0.9,0.1,1.0,0.9];this._sampleSize=15;this._bgSettings=a||{stroke:'gray'};this._textSettings=b||{}}$.extend(SVGGraphLegend.prototype,{show:function(a){if(arguments.length==0){return this._show}this._show=a;return this},area:function(a,b,c,d){if(arguments.length==0){return this._area}this._area=(isArray(a)?a:[a,b,c,d]);return this},settings:function(a,b,c){if(arguments.length==0){return{sampleSize:this._sampleSize,bgSettings:this._bgSettings,textSettings:this._textSettings}}if(typeof a=='object'){c=b;b=a;a=null}if(a){this._sampleSize=a}this._bgSettings=b;if(c){this._textSettings=c}return this}});function roundNumber(a,b){return Math.round(a*Math.pow(10,b))/Math.pow(10,b)}var D=['barWidth (number) - the width of each bar','barGap (number) - the gap between sets of bars'];function SVGColumnChart(){}$.extend(SVGColumnChart.prototype,{title:function(){return'Basic column chart'},description:function(){return'Compare sets of values as vertical bars with grouped categories.'},options:function(){return D},drawGraph:function(a){a._drawChartBackground(true);var b=a._chartOptions.barWidth||10;var c=a._chartOptions.barGap||10;var d=a._series.length;var e=(d?(a._series[0])._values.length:0);var f=a._getDims();var g=f[a.W]/((d*b+c)*e+c);var h=f[a.H]/(a.yAxis._scale.max-a.yAxis._scale.min);this._chart=a._root.group(a._chartGroup,'chart');for(var i=0;i<d;i++){this._drawSeries(a,i,d,b,c,f,g,h)}a._drawTitle();a._drawAxes(true);this._drawXAxis(a,d,e,b,c,f,g);a._drawLegend()},_drawSeries:function(a,b,c,d,e,f,h,j){var k=a._series[b];var g=a._root.group(this._chart,'series'+b,$.extend({stroke:k._stroke,stroke_width:k._strokeWidth},k._settings||{}));for(var i=0;i<k._values.length;i++){a._root.rect(g,f[a.X]+h*(e+i*(c*d+e)+(b*d)),f[a.Y]+j*(a.yAxis._scale.max-k._values[i]),h*d,j*k._values[i],$.extend({fill:k._fill},a._showStatus(k._name+' '+k._values[i])))}},_drawXAxis:function(a,b,c,d,e,f,g){var h=a.xAxis;if(h._title){a._root.text(a._chartGroup,f[a.X]+f[a.W]/2,f[a.Y]+f[a.H]+h._titleOffset,h._title,{text_anchor:'middle'})}var j=a._root.group(a._chartGroup,'xAxis',h._lineFormat);var k=a._root.group(a._chartGroup,'xAxisLabels',$.extend({text_anchor:'middle'},h._labelFormat));a._root.line(j,f[a.X],f[a.Y]+f[a.H],f[a.X]+f[a.W],f[a.Y]+f[a.H]);if(h._ticks.major){var l=a._getTickOffsets(h,true);for(var i=1;i<c;i++){var x=f[a.X]+g*(e/2+i*(b*d+e));a._root.line(j,x,f[a.Y]+f[a.H]+l[0]*h._ticks.size,x,f[a.Y]+f[a.H]+l[1]*h._ticks.size)}for(var i=0;i<c;i++){var x=f[a.X]+g*(e/2+(i+0.5)*(b*d+e));a._root.text(k,x,f[a.Y]+f[a.H]+2*h._ticks.size,(h._labels?h._labels[i]:''+i))}}}});function SVGStackedColumnChart(){}$.extend(SVGStackedColumnChart.prototype,{title:function(){return'Stacked column chart'},description:function(){return'Compare sets of values as vertical bars showing '+'relative contributions to the whole for each category.'},options:function(){return D},drawGraph:function(a){var b=a._drawChartBackground(true,true);var c=a._getDims();if(a._gridlines[0]&&a.xAxis._ticks.major){a._drawGridlines(b,a._getPercentageAxis(),true,c,a._gridlines[0])}var d=a._chartOptions.barWidth||10;var e=a._chartOptions.barGap||10;var f=a._series.length;var g=(f?(a._series[0])._values.length:0);var h=c[a.W]/((d+e)*g+e);var i=c[a.H];this._chart=a._root.group(a._chartGroup,'chart');this._drawColumns(a,f,g,d,e,c,h,i);a._drawTitle();a._root.text(a._chartGroup,0,0,svgGraphing.region.percentageText,{text_anchor:'middle',transform:'translate('+(c[a.X]-a.yAxis._titleOffset)+','+(c[a.Y]+c[a.H]/2)+') rotate(-90)'});a._drawAxis(a._getPercentageAxis(),'yAxis',c[a.X],c[a.Y],c[a.X],c[a.Y]+c[a.H]);this._drawXAxis(a,g,d,e,c,h);a._drawLegend()},_drawColumns:function(a,b,c,d,e,f,h,j){var k=a._getTotals();var l=[];for(var i=0;i<c;i++){l[i]=0}for(var s=0;s<b;s++){var m=a._series[s];var g=a._root.group(this._chart,'series'+s,$.extend({stroke:m._stroke,stroke_width:m._strokeWidth},m._settings||{}));for(var i=0;i<m._values.length;i++){l[i]+=m._values[i];a._root.rect(g,f[a.X]+h*(e+i*(d+e)),f[a.Y]+j*(k[i]-l[i])/k[i],h*d,j*m._values[i]/k[i],$.extend({fill:m._fill},a._showStatus(m._name+' '+roundNumber(m._values[i]/k[i]*100,2)+'%')))}}},_drawXAxis:function(a,b,c,d,e,f){var g=a.xAxis;if(g._title){a._root.text(a._chartGroup,e[a.X]+e[a.W]/2,e[a.Y]+e[a.H]+g._titleOffset,g._title,{text_anchor:'middle'})}var h=a._root.group(a._chartGroup,'xAxis',g._lineFormat);var j=a._root.group(a._chartGroup,'xAxisLabels',$.extend({text_anchor:'middle'},g._labelFormat));a._root.line(h,e[a.X],e[a.Y]+e[a.H],e[a.X]+e[a.W],e[a.Y]+e[a.H]);if(g._ticks.major){var k=a._getTickOffsets(g,true);for(var i=1;i<b;i++){var x=e[a.X]+f*(d/2+i*(c+d));a._root.line(h,x,e[a.Y]+e[a.H]+k[0]*g._ticks.size,x,e[a.Y]+e[a.H]+k[1]*g._ticks.size)}for(var i=0;i<b;i++){var x=e[a.X]+f*(d/2+(i+0.5)*(c+d));a._root.text(j,x,e[a.Y]+e[a.H]+2*g._ticks.size,(g._labels?g._labels[i]:''+i))}}}});function SVGRowChart(){}$.extend(SVGRowChart.prototype,{title:function(){return'Basic row chart'},description:function(){return'Compare sets of values as horizontal rows with grouped categories.'},options:function(){return D},drawGraph:function(a){var b=a._drawChartBackground(true,true);var c=a._getDims();a._drawGridlines(b,a.yAxis,false,c,a._gridlines[0]);var d=a._chartOptions.barWidth||10;var e=a._chartOptions.barGap||10;var f=a._series.length;var g=(f?(a._series[0])._values.length:0);var h=c[a.W]/(a.yAxis._scale.max-a.yAxis._scale.min);var j=c[a.H]/((f*d+e)*g+e);this._chart=a._root.group(a._chartGroup,'chart');for(var i=0;i<f;i++){this._drawSeries(a,i,f,d,e,c,h,j)}a._drawTitle();this._drawAxes(a,f,g,d,e,c,j);a._drawLegend()},_drawSeries:function(a,b,c,d,e,f,h,j){var k=a._series[b];var g=a._root.group(this._chart,'series'+b,$.extend({stroke:k._stroke,stroke_width:k._strokeWidth},k._settings||{}));for(var i=0;i<k._values.length;i++){a._root.rect(g,f[a.X]+h*(0-a.yAxis._scale.min),f[a.Y]+j*(e+i*(c*d+e)+(b*d)),h*k._values[i],j*d,$.extend({fill:k._fill},a._showStatus(k._name+' '+k._values[i])))}},_drawAxes:function(a,b,c,d,e,f,g){var h=a.yAxis;if(h){if(h._title){a._root.text(a._chartGroup,f[a.X]+f[a.W]/2,f[a.Y]+f[a.H]+h._titleOffset,h._title,h._titleFormat)}a._drawAxis(h,'xAxis',f[a.X],f[a.Y]+f[a.H],f[a.X]+f[a.W],f[a.Y]+f[a.H])}var h=a.xAxis;if(h._title){a._root.text(a._chartGroup,0,0,h._title,{text_anchor:'middle',transform:'translate('+(f[a.X]-h._titleOffset)+','+(f[a.Y]+f[a.H]/2)+') rotate(-90)'})}var j=a._root.group(a._chartGroup,'yAxis',h._lineFormat);var k=a._root.group(a._chartGroup,'yAxisLabels',$.extend({text_anchor:'end'},h._labelFormat));a._root.line(j,f[a.X],f[a.Y],f[a.X],f[a.Y]+f[a.H]);if(h._ticks.major){var l=a._getTickOffsets(h,false);for(var i=1;i<c;i++){var y=f[a.Y]+g*(e/2+i*(b*d+e));a._root.line(j,f[a.X]+l[0]*h._ticks.size,y,f[a.X]+l[1]*h._ticks.size,y)}for(var i=0;i<c;i++){var y=f[a.Y]+g*(e/2+(i+0.5)*(b*d+e));a._root.text(k,f[a.X]-h._ticks.size,y,(h._labels?h._labels[i]:''+i))}}}});function SVGStackedRowChart(){}$.extend(SVGStackedRowChart.prototype,{title:function(){return'Stacked row chart'},description:function(){return'Compare sets of values as horizontal bars showing '+'relative contributions to the whole for each category.'},options:function(){return D},drawGraph:function(a){var b=a._drawChartBackground(true,true);var c=a._getDims();if(a._gridlines[0]&&a.xAxis._ticks.major){a._drawGridlines(b,a._getPercentageAxis(),false,c,a._gridlines[0])}var d=a._chartOptions.barWidth||10;var e=a._chartOptions.barGap||10;var f=a._series.length;var g=(f?(a._series[0])._values.length:0);var h=c[a.W];var i=c[a.H]/((d+e)*g+e);this._chart=a._root.group(a._chartGroup,'chart');this._drawRows(a,f,g,d,e,c,h,i);a._drawTitle();a._root.text(a._chartGroup,c[a.X]+c[a.W]/2,c[a.Y]+c[a.H]+a.xAxis._titleOffset,svgGraphing.region.percentageText,{text_anchor:'middle'});a._drawAxis(a._getPercentageAxis(),'xAxis',c[a.X],c[a.Y]+c[a.H],c[a.X]+c[a.W],c[a.Y]+c[a.H]);this._drawYAxis(a,g,d,e,c,i);a._drawLegend()},_drawRows:function(a,b,c,d,e,f,h,j){var k=a._getTotals();var l=[];for(var i=0;i<c;i++){l[i]=0}for(var s=0;s<b;s++){var m=a._series[s];var g=a._root.group(this._chart,'series'+s,$.extend({stroke:m._stroke,stroke_width:m._strokeWidth},m._settings||{}));for(var i=0;i<m._values.length;i++){a._root.rect(g,f[a.X]+h*l[i]/k[i],f[a.Y]+j*(e+i*(d+e)),h*m._values[i]/k[i],j*d,$.extend({fill:m._fill},a._showStatus(m._name+' '+roundNumber(m._values[i]/k[i]*100,2)+'%')));l[i]+=m._values[i]}}},_drawYAxis:function(a,b,c,d,e,f){var g=a.xAxis;if(g._title){a._root.text(a._chartGroup,0,0,g._title,{text_anchor:'middle',transform:'translate('+(e[a.X]-g._titleOffset)+','+(e[a.Y]+e[a.H]/2)+') rotate(-90)'})}var h=a._root.group(a._chartGroup,'yAxis',g._lineFormat);var j=a._root.group(a._chartGroup,'yAxisLabels',$.extend({text_anchor:'end'},g._labelFormat));a._root.line(h,e[a.X],e[a.Y],e[a.X],e[a.Y]+e[a.H]);if(g._ticks.major){var k=a._getTickOffsets(g,false);for(var i=1;i<b;i++){var y=e[a.Y]+f*(d/2+i*(c+d));a._root.line(h,e[a.X]+k[0]*g._ticks.size,y,e[a.X]+k[1]*g._ticks.size,y)}for(var i=0;i<b;i++){var y=e[a.Y]+f*(d/2+(i+0.5)*(c+d));a._root.text(j,e[a.X]-g._ticks.size,y,(g._labels?g._labels[i]:''+i))}}}});function SVGLineChart(){}$.extend(SVGLineChart.prototype,{title:function(){return'Basic line chart'},description:function(){return'Compare sets of values as continuous lines.'},options:function(){return[]},drawGraph:function(a){a._drawChartBackground();var b=a._getDims();var c=b[a.W]/(a.xAxis._scale.max-a.xAxis._scale.min);var d=b[a.H]/(a.yAxis._scale.max-a.yAxis._scale.min);this._chart=a._root.group(a._chartGroup,'chart');for(var i=0;i<a._series.length;i++){this._drawSeries(a,i,b,c,d)}a._drawTitle();a._drawAxes();a._drawLegend()},_drawSeries:function(a,b,c,d,e){var f=a._series[b];var g=a._root.createPath();for(var i=0;i<f._values.length;i++){var x=c[a.X]+i*d;var y=c[a.Y]+(a.yAxis._scale.max-f._values[i])*e;if(i==0){g.moveTo(x,y)}else{g.lineTo(x,y)}}a._root.path(this._chart,g,$.extend($.extend({id:'series'+b,fill:'none',stroke:f._stroke,stroke_width:f._strokeWidth},a._showStatus(f._name),f._settings||{})))}});function SVGPieChart(){}$.extend(SVGPieChart.prototype,{_options:['explode (number[]) - indexes of sections to explode out of the pie','explodeDist (number) - the distance to move an exploded section','pieGap (number) - the distance between pies for multiple values'],title:function(){return'Pie chart'},description:function(){return'Compare relative sizes of values as contributions to the whole.'},options:function(){return this._options},drawGraph:function(a){a._drawChartBackground(true,true);this._chart=a._root.group(a._chartGroup,'chart');var b=a._getDims();this._drawSeries(a,b);a._drawTitle();a._drawLegend()},_drawSeries:function(a,b){var c=a._getTotals();var d=a._series.length;var e=(d?(a._series[0])._values.length:0);var f=a._root.createPath();var g=a._chartOptions.explode||[];var h=a._chartOptions.explodeDist||10;var l=(e<=1?0:a._chartOptions.pieGap||10);var m=(b[a.W]-(e*l)-l)/e/2;var n=b[a.H]/2;var o=Math.min(m,n)-(g.length>0?h:0);var p=a._root.group(a._chartGroup,'xAxisLabels',$.extend({text_anchor:'middle'},a.xAxis._labelFormat));var q=[];for(var i=0;i<e;i++){var r=b[a.X]+m+(i*(2*Math.min(m,n)+l))+l;var s=b[a.Y]+n;var t=0;for(var j=0;j<d;j++){var u=a._series[j];if(i==0){q[j]=a._root.group(this._chart,'series'+j,$.extend({stroke:u._stroke,stroke_width:u._strokeWidth},u._settings||{}))}if(u._values[i]==0){continue}var v=(t/c[i])*2*Math.PI;t+=u._values[i];var w=(t/c[i])*2*Math.PI;var z=false;for(var k=0;k<g.length;k++){if(g[k]==j){z=true;break}}var x=r+(z?h*Math.cos((v+w)/2):0);var y=s+(z?h*Math.sin((v+w)/2):0);var A=u._name+' '+roundNumber((w-v)/2/Math.PI*100,2)+'%';a._root.path(q[j],f.reset().moveTo(x,y).lineTo(x+o*Math.cos(v),y+o*Math.sin(v)).arcTo(o,o,0,(w-v<Math.PI?0:1),1,x+o*Math.cos(w),y+o*Math.sin(w)).close(),$.extend({fill:u._fill},a._showStatus(A)))}if(a.xAxis){a._root.text(p,r,b[a.Y]+b[a.H]+a.xAxis._titleOffset,a.xAxis._labels[i])}}}});function isArray(a){return(a.constructor&&a.constructor.toString().match(/\Array\(\)/))}svgGraphing.addChartType('column',new SVGColumnChart());svgGraphing.addChartType('stackedColumn',new SVGStackedColumnChart());svgGraphing.addChartType('row',new SVGRowChart());svgGraphing.addChartType('stackedRow',new SVGStackedRowChart());svgGraphing.addChartType('line',new SVGLineChart());svgGraphing.addChartType('pie',new SVGPieChart())})(jQuery)
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.pack.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.pack.js
deleted file mode 100644
index cc571b1..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/jquery.svggraph.pack.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/* http://keith-wood.name/svg.html
-   SVG graphing extension for jQuery v1.0.1.
-   Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
-   Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and 
-   MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 
-   Please attribute the author if you use it. */
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('6 1e=1a;(7($){43.3M(\'3E\',36);1e=1k 2Z();7 2Z(){4.2P=[];4.2P[\'\']={28:\'3K\'};4.2m=4.2P[\'\']}$.K(2Z.1r,{23:[],1U:7(a,b){4.23[a]=b},49:7(){F 4.23}});7 36(a){4.E=a;4.2r=17;O(6 b 2J 1e.23){4.2s=1e.23[b];3c}4.1g={};4.Q={35:\'\',2h:25,2B:{19:\'1j\'}};4.1G=[0.1,0.1,0.8,0.9];4.2u={1u:\'3s\',1c:\'2T\'};4.1l=[];4.U=[];4.2k=1a;4.M=4.E.Z(1a,\'3E\');4.V=1k 29();4.V.1q(\'\',40);4.11=1k 29();4.11.1q(\'\',40);4.1L=1a;4.1N=1a;4.1t=1k 2Y()}$.K(36.1r,{X:0,Y:1,W:2,H:3,L:0,T:1,R:2,B:3,31:1k 29(1e.2m.28,0,2g,10,0),4l:7(a,b){G(18.J==0){F 4.2s}6 c=1e.23[a];G(c){4.2s=c;4.1g=$.K({},b||{})}4.1A();F 4},4k:7(a){G(18.J==0){F 4.1g}4.1g=$.K({},a);4.1A();F 4},4j:7(a,b,c){G(18.J==0){F 4.2u}G(1v b==\'1S\'){c=b;b=1a}4.2u=$.K($.K({1u:a},(b?{1c:b}:{})),c||{});4.1A();F 4},4g:7(a,b,c,d){G(18.J==0){F 4.1G}4.1G=(2v(a)?a:[a,b,c,d]);4.1A();F 4},4b:7(a,b){G(18.J==0){F 4.1l}4.1l=[(1v a==\'2W\'?{1c:a}:a),(1v b==\'2W\'?{1c:b}:b)];4.1A();F 4},1q:7(a,b,c){G(18.J==0){F 4.Q}G(1v b==\'1S\'){c=b;b=1a}4.Q={35:a,2h:b||4.Q.2h,2B:$.K({19:\'1j\'},c||{})};4.1A();F 4},48:7(a,b,c,d,e,f){G(1v e==\'1S\'){f=e;e=1a}4.U[4.U.J]=1k 2V(a,b,c,d,e,f||{});4.1A();F 4},1P:7(){F 4.U},3Z:7(){4.2r=1O;F 4},3V:7(){4.2r=17;4.1A();F 4},3T:7(a){4.2k=a;F 4},1A:7(){G(!4.2r){F}2S(4.M.3p){4.M.3R(4.M.3p)}G(!4.M.2Q){4.E.3O.3N(4.M)}4.2s.1R(4)},1M:7(){4.E.14(4.M,4.E.2p()/2,4.Q.2h,4.Q.35,4.Q.2B)},1x:7(a){a=a||4.1G;6 b=(a[4.L]>1?a[4.L]:4.E.2p()*a[4.L]);6 c=(a[4.T]>1?a[4.T]:4.E.2M()*a[4.T]);6 d=(a[4.R]>1?a[4.R]:4.E.2p()*a[4.R])-b;6 e=(a[4.B]>1?a[4.B]:4.E.2M()*a[4.B])-c;F[b,c,d,e]},1K:7(a,b){6 c=4.E.Z(4.M,\'3L\');6 d=4.1x();4.E.1J(c,d[4.X],d[4.Y],d[4.W],d[4.H],4.2u);G(4.1l[0]&&4.11.I.16&&!b){4.1X(c,4.11,17,d,4.1l[0])}G(4.1l[1]&&4.V.I.16&&!a){4.1X(c,4.V,1O,d,4.1l[1])}F c},1X:7(a,b,c,d,e){6 g=4.E.Z(a,e);6 f=(c?d[4.H]:d[4.W])/(b.N.1b-b.N.12);6 h=13.39(b.N.12/b.I.16)*b.I.16;h=(h<b.N.12?h+b.I.16:h);2S(h<=b.N.1b){6 v=(c?b.N.1b-h:h-b.N.12)*f+(c?d[4.Y]:d[4.X]);4.E.1h(g,(c?d[4.X]:v),(c?v:d[4.Y]),(c?d[4.X]+d[4.W]:v),(c?v:d[4.Y]+d[4.H]));h+=b.I.16}},2n:7(a){6 b=4.1x();G(4.V&&!a){G(4.V.Q){4.E.14(4.M,b[4.X]+b[4.W]/2,b[4.Y]+b[4.H]+4.V.1d,4.V.Q)}4.1I(4.V,\'V\',b[4.X],b[4.Y]+b[4.H],b[4.X]+b[4.W],b[4.Y]+b[4.H])}G(4.11){G(4.11.Q){4.E.14(4.M,0,0,4.11.Q,{19:\'1j\',2l:\'2d(\'+(b[4.X]-4.11.1d)+\',\'+(b[4.Y]+b[4.H]/2)+\') 2j(-2i)\'})}4.1I(4.11,\'11\',b[4.X],b[4.Y],b[4.X],b[4.Y]+b[4.H])}G(4.1L&&!a){G(4.1L.Q){4.E.14(4.M,b[4.X]+b[4.W]/2,b[4.X]-4.1L.1d,4.1L.Q)}4.1I(4.1L,\'1L\',b[4.X],b[4.Y],b[4.X]+b[4.W],b[4.Y])}G(4.1N){G(4.1N.Q){4.E.14(4.M,0,0,4.1N.Q,{19:\'1j\',2l:\'2d(\'+(b[4.X]+b[4.W]+4.1N.1d)+\',\'+(b[4.Y]+b[4.H]/2)+\') 2j(-2i)\'})}4.1I(4.1N,\'1N\',b[4.X]+b[4.W],b[4.Y],b[4.X]+b[4.W],b[4.Y]+b[4.H])}},1I:7(a,b,c,d,e,f){6 g=(d==f);6 h=4.E.Z(4.M,b,a.1D);6 i=4.E.Z(4.M,b+\'4u\',$.K({19:(g?\'1j\':\'34\')},a.1C));4.E.1h(h,c,d,e,f);G(a.I.16){6 j=(e>(4.E.2p()/2)&&f>(4.E.2M()/2));6 k=(g?e-c:f-d)/(a.N.1b-a.N.12);6 l=a.I.1f;6 m=13.39(a.N.12/a.I.16)*a.I.16;m=(m<a.N.12?m+a.I.16:m);6 n=(!a.I.1Q?a.N.1b+1:13.39(a.N.12/a.I.1Q)*a.I.1Q);n=(n<a.N.12?n+a.I.1Q:n);6 o=4.22(a,j);2S(m<=a.N.1b||n<=a.N.1b){6 p=13.12(m,n);6 q=(p==m?l:l/2);6 v=(g?c:d)+(g?p-a.N.12:a.N.1b-p)*k;4.E.1h(h,(g?v:c+q*o[0]),(g?d+q*o[0]:v),(g?v:c+q*o[1]),(g?d+q*o[1]:v));G(p==m){4.E.14(i,(g?v:c-l),(g?d+2*l:v),(a.1i?a.1i[p]:\'\'+p))}m+=(p==m?a.I.16:0);n+=(p==n?a.I.1Q:0)}}},22:7(a,b){F[(a.I.21==(b?\'2J\':\'2f\')||a.I.21==\'3x\'?-1:0),(a.I.21==(b?\'2f\':\'2J\')||a.I.21==\'3x\'?+1:0),]},2e:7(){4.31.Q=1e.2m.28;F 4.31},2A:7(){6 a=[];6 b=(4.U.J?4.U[0].P.J:0);O(6 i=0;i<b;i++){a[i]=0;O(6 j=0;j<4.U.J;j++){a[i]+=4.U[j].P[i]}}F a},1W:7(){G(!4.1t.2z){F}6 g=4.E.Z(4.M,\'1t\');6 a=4.1x(4.1t.1G);4.E.1J(g,a[4.X],a[4.Y],a[4.W],a[4.H],4.1t.2y);6 b=a[4.W]>a[4.H];6 c=4.U.J;6 d=(b?a[4.W]:a[4.H])/c;6 e=a[4.X]+5;6 f=a[4.Y]+(b?a[4.H]/2:d/2);O(6 i=0;i<c;i++){6 h=4.U[i];4.E.1J(g,e+(b?i*d:0),f+(b?0:i*d)-4.1t.1V,4.1t.1V,4.1t.1V,{1u:h.1B,1c:h.1p,1y:1});4.E.14(g,e+(b?i*d:0)+4.1t.1V+5,f+(b?0:i*d),h.1n,4.1t.2x)}},1T:7(a){6 b=(!4.2k?\'\':4.2k.3v().4i(/7 (.*)\\([\\s\\S]*/m,\'$1\'));F(!4.2k?{}:{4h:\'3u.2Q.\'+b+\'(\\\'\'+a+\'\\\');\',4f:\'3u.2Q.\'+b+\'(\\\'\\\');\'})}});7 29(a,b,c,d,e){4.Q=a||\'\';4.2w={};4.1d=0;4.1i=1a;4.1C={};4.1D={1c:\'2T\'};4.I={16:d||10,1Q:e||0,1f:10,21:\'2f\'};4.N={12:b||0,1b:c||2g};4.4e=0}$.K(29.1r,{4d:7(a,b){G(18.J==0){F 4.N}4.N.12=a;4.N.1b=b;F 4},4c:7(a,b,c,d){G(18.J==0){F 4.I}G(1v c==\'2W\'){d=c;c=1a}4.I.16=a;4.I.1Q=b;4.I.1f=c||10;4.I.21=d||\'2f\';F 4},1q:7(a,b,c){G(18.J==0){F{1q:4.Q,2h:4.1d,2X:4.2w}}G(1v b==\'1S\'){c=b;b=1a}4.Q=a;G(b!=1a){4.1d=b}G(c){4.2w=c}F 4},3t:7(a,b){G(18.J==0){F{3t:4.1i,2X:4.1C}}4.1i=a;G(b){4.1C=b}F 4},1h:7(a,b,c){G(18.J==0){F 4.1D}G(1v b==\'1S\'){c=b;b=1a}$.K(4.1D,{1c:a,1y:b||1});$.K(4.1D,c||{});F 4}});6 B=\'4a\';6 C=\'2T\';7 2V(a,b,c,d,e,f){4.1n=a||\'\';4.P=b||[];4.47=1;4.1B=c||B;4.1p=d||C;4.1w=e||1;4.1z=f||{}}$.K(2V.1r,{46:7(a){G(18.J==0){F 4.1n}4.1n=a;F 4},1F:7(a,b){G(18.J==0){F 4.P}G(2v(a)){45=a;a=1a}4.1n=a||4.1n;4.P=b;F 4},2X:7(a,b,c,d){G(18.J==0){F $.K({1u:4.1B,1c:4.1p,1y:4.1w},4.1z)}G(1v c==\'1S\'){d=c;c=1a}4.1B=a||B;4.1p=b||4.1p;4.1w=c||4.1w;$.K(4.1z,d||{});F 4}});7 2Y(a,b){4.2z=17;4.1G=[0.9,0.1,1.0,0.9];4.1V=15;4.2y=a||{1c:\'44\'};4.2x=b||{}}$.K(2Y.1r,{42:7(a){G(18.J==0){F 4.2z}4.2z=a;F 4},41:7(a,b,c,d){G(18.J==0){F 4.1G}4.1G=(2v(a)?a:[a,b,c,d]);F 4},2B:7(a,b,c){G(18.J==0){F{3Y:4.1V,3X:4.2y,3W:4.2x}}G(1v a==\'1S\'){c=b;b=a;a=1a}G(a){4.1V=a}4.2y=b;G(c){4.2x=c}F 4}});7 2t(a,b){F 13.3U(a*13.3q(10,b))/13.3q(10,b)}6 D=[\'27 (2b) - 1E 3S 1s 2R 3Q\',\'2a (2b) - 1E 3P 3o 20 1s 2q\'];7 2O(){}$.K(2O.1r,{1q:7(){F\'2N 30 1m\'},1Z:7(){F\'1Y 20 1s 1F 26 3n 2q 3m 3l 3B.\'},24:7(){F D},1R:7(a){a.1K(17);6 b=a.1g.27||10;6 c=a.1g.2a||10;6 d=a.U.J;6 e=(d?(a.U[0]).P.J:0);6 f=a.1x();6 g=f[a.W]/((d*b+c)*e+c);6 h=f[a.H]/(a.11.N.1b-a.11.N.12);4.1o=a.E.Z(a.M,\'1m\');O(6 i=0;i<d;i++){4.1H(a,i,d,b,c,f,g,h)}a.1M();a.2n(17);4.2o(a,d,e,b,c,f,g);a.1W()},1H:7(a,b,c,d,e,f,h,j){6 k=a.U[b];6 g=a.E.Z(4.1o,\'1P\'+b,$.K({1c:k.1p,1y:k.1w},k.1z||{}));O(6 i=0;i<k.P.J;i++){a.E.1J(g,f[a.X]+h*(e+i*(c*d+e)+(b*d)),f[a.Y]+j*(a.11.N.1b-k.P[i]),h*d,j*k.P[i],$.K({1u:k.1B},a.1T(k.1n+\' \'+k.P[i])))}},2o:7(a,b,c,d,e,f,g){6 h=a.V;G(h.Q){a.E.14(a.M,f[a.X]+f[a.W]/2,f[a.Y]+f[a.H]+h.1d,h.Q,{19:\'1j\'})}6 j=a.E.Z(a.M,\'V\',h.1D);6 k=a.E.Z(a.M,\'2L\',$.K({19:\'1j\'},h.1C));a.E.1h(j,f[a.X],f[a.Y]+f[a.H],f[a.X]+f[a.W],f[a.Y]+f[a.H]);G(h.I.16){6 l=a.22(h,17);O(6 i=1;i<c;i++){6 x=f[a.X]+g*(e/2+i*(b*d+e));a.E.1h(j,x,f[a.Y]+f[a.H]+l[0]*h.I.1f,x,f[a.Y]+f[a.H]+l[1]*h.I.1f)}O(6 i=0;i<c;i++){6 x=f[a.X]+g*(e/2+(i+0.5)*(b*d+e));a.E.14(k,x,f[a.Y]+f[a.H]+2*h.I.1f,(h.1i?h.1i[i]:\'\'+i))}}}});7 2K(){}$.K(2K.1r,{1q:7(){F\'3k 30 1m\'},1Z:7(){F\'1Y 20 1s 1F 26 3n 2q 3j \'+\'2F 2I 2c 1E 2H O 2R 3i.\'},24:7(){F D},1R:7(a){6 b=a.1K(17,17);6 c=a.1x();G(a.1l[0]&&a.V.I.16){a.1X(b,a.2e(),17,c,a.1l[0])}6 d=a.1g.27||10;6 e=a.1g.2a||10;6 f=a.U.J;6 g=(f?(a.U[0]).P.J:0);6 h=c[a.W]/((d+e)*g+e);6 i=c[a.H];4.1o=a.E.Z(a.M,\'1m\');4.3h(a,f,g,d,e,c,h,i);a.1M();a.E.14(a.M,0,0,1e.2m.28,{19:\'1j\',2l:\'2d(\'+(c[a.X]-a.11.1d)+\',\'+(c[a.Y]+c[a.H]/2)+\') 2j(-2i)\'});a.1I(a.2e(),\'11\',c[a.X],c[a.Y],c[a.X],c[a.Y]+c[a.H]);4.2o(a,g,d,e,c,h);a.1W()},3h:7(a,b,c,d,e,f,h,j){6 k=a.2A();6 l=[];O(6 i=0;i<c;i++){l[i]=0}O(6 s=0;s<b;s++){6 m=a.U[s];6 g=a.E.Z(4.1o,\'1P\'+s,$.K({1c:m.1p,1y:m.1w},m.1z||{}));O(6 i=0;i<m.P.J;i++){l[i]+=m.P[i];a.E.1J(g,f[a.X]+h*(e+i*(d+e)),f[a.Y]+j*(k[i]-l[i])/k[i],h*d,j*m.P[i]/k[i],$.K({1u:m.1B},a.1T(m.1n+\' \'+2t(m.P[i]/k[i]*2g,2)+\'%\')))}}},2o:7(a,b,c,d,e,f){6 g=a.V;G(g.Q){a.E.14(a.M,e[a.X]+e[a.W]/2,e[a.Y]+e[a.H]+g.1d,g.Q,{19:\'1j\'})}6 h=a.E.Z(a.M,\'V\',g.1D);6 j=a.E.Z(a.M,\'2L\',$.K({19:\'1j\'},g.1C));a.E.1h(h,e[a.X],e[a.Y]+e[a.H],e[a.X]+e[a.W],e[a.Y]+e[a.H]);G(g.I.16){6 k=a.22(g,17);O(6 i=1;i<b;i++){6 x=e[a.X]+f*(d/2+i*(c+d));a.E.1h(h,x,e[a.Y]+e[a.H]+k[0]*g.I.1f,x,e[a.Y]+e[a.H]+k[1]*g.I.1f)}O(6 i=0;i<b;i++){6 x=e[a.X]+f*(d/2+(i+0.5)*(c+d));a.E.14(j,x,e[a.Y]+e[a.H]+2*g.I.1f,(g.1i?g.1i[i]:\'\'+i))}}}});7 2U(){}$.K(2U.1r,{1q:7(){F\'2N 2G 1m\'},1Z:7(){F\'1Y 20 1s 1F 26 3g 3J 3m 3l 3B.\'},24:7(){F D},1R:7(a){6 b=a.1K(17,17);6 c=a.1x();a.1X(b,a.11,1O,c,a.1l[0]);6 d=a.1g.27||10;6 e=a.1g.2a||10;6 f=a.U.J;6 g=(f?(a.U[0]).P.J:0);6 h=c[a.W]/(a.11.N.1b-a.11.N.12);6 j=c[a.H]/((f*d+e)*g+e);4.1o=a.E.Z(a.M,\'1m\');O(6 i=0;i<f;i++){4.1H(a,i,f,d,e,c,h,j)}a.1M();4.2n(a,f,g,d,e,c,j);a.1W()},1H:7(a,b,c,d,e,f,h,j){6 k=a.U[b];6 g=a.E.Z(4.1o,\'1P\'+b,$.K({1c:k.1p,1y:k.1w},k.1z||{}));O(6 i=0;i<k.P.J;i++){a.E.1J(g,f[a.X]+h*(0-a.11.N.12),f[a.Y]+j*(e+i*(c*d+e)+(b*d)),h*k.P[i],j*d,$.K({1u:k.1B},a.1T(k.1n+\' \'+k.P[i])))}},2n:7(a,b,c,d,e,f,g){6 h=a.11;G(h){G(h.Q){a.E.14(a.M,f[a.X]+f[a.W]/2,f[a.Y]+f[a.H]+h.1d,h.Q,h.2w)}a.1I(h,\'V\',f[a.X],f[a.Y]+f[a.H],f[a.X]+f[a.W],f[a.Y]+f[a.H])}6 h=a.V;G(h.Q){a.E.14(a.M,0,0,h.Q,{19:\'1j\',2l:\'2d(\'+(f[a.X]-h.1d)+\',\'+(f[a.Y]+f[a.H]/2)+\') 2j(-2i)\'})}6 j=a.E.Z(a.M,\'11\',h.1D);6 k=a.E.Z(a.M,\'3f\',$.K({19:\'34\'},h.1C));a.E.1h(j,f[a.X],f[a.Y],f[a.X],f[a.Y]+f[a.H]);G(h.I.16){6 l=a.22(h,1O);O(6 i=1;i<c;i++){6 y=f[a.Y]+g*(e/2+i*(b*d+e));a.E.1h(j,f[a.X]+l[0]*h.I.1f,y,f[a.X]+l[1]*h.I.1f,y)}O(6 i=0;i<c;i++){6 y=f[a.Y]+g*(e/2+(i+0.5)*(b*d+e));a.E.14(k,f[a.X]-h.I.1f,y,(h.1i?h.1i[i]:\'\'+i))}}}});7 2E(){}$.K(2E.1r,{1q:7(){F\'3k 2G 1m\'},1Z:7(){F\'1Y 20 1s 1F 26 3g 2q 3j \'+\'2F 2I 2c 1E 2H O 2R 3i.\'},24:7(){F D},1R:7(a){6 b=a.1K(17,17);6 c=a.1x();G(a.1l[0]&&a.V.I.16){a.1X(b,a.2e(),1O,c,a.1l[0])}6 d=a.1g.27||10;6 e=a.1g.2a||10;6 f=a.U.J;6 g=(f?(a.U[0]).P.J:0);6 h=c[a.W];6 i=c[a.H]/((d+e)*g+e);4.1o=a.E.Z(a.M,\'1m\');4.3e(a,f,g,d,e,c,h,i);a.1M();a.E.14(a.M,c[a.X]+c[a.W]/2,c[a.Y]+c[a.H]+a.V.1d,1e.2m.28,{19:\'1j\'});a.1I(a.2e(),\'V\',c[a.X],c[a.Y]+c[a.H],c[a.X]+c[a.W],c[a.Y]+c[a.H]);4.3d(a,g,d,e,c,i);a.1W()},3e:7(a,b,c,d,e,f,h,j){6 k=a.2A();6 l=[];O(6 i=0;i<c;i++){l[i]=0}O(6 s=0;s<b;s++){6 m=a.U[s];6 g=a.E.Z(4.1o,\'1P\'+s,$.K({1c:m.1p,1y:m.1w},m.1z||{}));O(6 i=0;i<m.P.J;i++){a.E.1J(g,f[a.X]+h*l[i]/k[i],f[a.Y]+j*(e+i*(d+e)),h*m.P[i]/k[i],j*d,$.K({1u:m.1B},a.1T(m.1n+\' \'+2t(m.P[i]/k[i]*2g,2)+\'%\')));l[i]+=m.P[i]}}},3d:7(a,b,c,d,e,f){6 g=a.V;G(g.Q){a.E.14(a.M,0,0,g.Q,{19:\'1j\',2l:\'2d(\'+(e[a.X]-g.1d)+\',\'+(e[a.Y]+e[a.H]/2)+\') 2j(-2i)\'})}6 h=a.E.Z(a.M,\'11\',g.1D);6 j=a.E.Z(a.M,\'3f\',$.K({19:\'34\'},g.1C));a.E.1h(h,e[a.X],e[a.Y],e[a.X],e[a.Y]+e[a.H]);G(g.I.16){6 k=a.22(g,1O);O(6 i=1;i<b;i++){6 y=e[a.Y]+f*(d/2+i*(c+d));a.E.1h(h,e[a.X]+k[0]*g.I.1f,y,e[a.X]+k[1]*g.I.1f,y)}O(6 i=0;i<b;i++){6 y=e[a.Y]+f*(d/2+(i+0.5)*(c+d));a.E.14(j,e[a.X]-g.I.1f,y,(g.1i?g.1i[i]:\'\'+i))}}}});7 2D(){}$.K(2D.1r,{1q:7(){F\'2N 1h 1m\'},1Z:7(){F\'1Y 20 1s 1F 26 3I 3H.\'},24:7(){F[]},1R:7(a){a.1K();6 b=a.1x();6 c=b[a.W]/(a.V.N.1b-a.V.N.12);6 d=b[a.H]/(a.11.N.1b-a.11.N.12);4.1o=a.E.Z(a.M,\'1m\');O(6 i=0;i<a.U.J;i++){4.1H(a,i,b,c,d)}a.1M();a.2n();a.1W()},1H:7(a,b,c,d,e){6 f=a.U[b];6 g=a.E.3w();O(6 i=0;i<f.P.J;i++){6 x=c[a.X]+i*d;6 y=c[a.Y]+(a.11.N.1b-f.P[i])*e;G(i==0){g.3b(x,y)}3G{g.3a(x,y)}}a.E.3r(4.1o,g,$.K($.K({4F:\'1P\'+b,1u:\'3s\',1c:f.1p,1y:f.1w},a.1T(f.1n),f.1z||{})))}});7 38(){}$.K(38.1r,{3F:[\'37 (2b[]) - 4E 1s 4D 2c 37 2f 1s 1E 3D\',\'3C (2b) - 1E 3z 2c 4C 4B 4A 4z\',\'3y (2b) - 1E 3z 3o 4y O 4x 1F\'],1q:7(){F\'4w 1m\'},1Z:7(){F\'1Y 2F 4v 1s 1F 26 2I 2c 1E 2H.\'},24:7(){F 4.3F},1R:7(a){a.1K(17,17);4.1o=a.E.Z(a.M,\'1m\');6 b=a.1x();4.1H(a,b);a.1M();a.1W()},1H:7(a,b){6 c=a.2A();6 d=a.U.J;6 e=(d?(a.U[0]).P.J:0);6 f=a.E.3w();6 g=a.1g.37||[];6 h=a.1g.3C||10;6 l=(e<=1?0:a.1g.3y||10);6 m=(b[a.W]-(e*l)-l)/e/2;6 n=b[a.H]/2;6 o=13.12(m,n)-(g.J>0?h:0);6 p=a.E.Z(a.M,\'2L\',$.K({19:\'1j\'},a.V.1C));6 q=[];O(6 i=0;i<e;i++){6 r=b[a.X]+m+(i*(2*13.12(m,n)+l))+l;6 s=b[a.Y]+n;6 t=0;O(6 j=0;j<d;j++){6 u=a.U[j];G(i==0){q[j]=a.E.Z(4.1o,\'1P\'+j,$.K({1c:u.1p,1y:u.1w},u.1z||{}))}G(u.P[i]==0){4t}6 v=(t/c[i])*2*13.2C;t+=u.P[i];6 w=(t/c[i])*2*13.2C;6 z=1O;O(6 k=0;k<g.J;k++){G(g[k]==j){z=17;3c}}6 x=r+(z?h*13.33((v+w)/2):0);6 y=s+(z?h*13.32((v+w)/2):0);6 A=u.1n+\' \'+2t((w-v)/2/13.2C*2g,2)+\'%\';a.E.3r(q[j],f.4s().3b(x,y).3a(x+o*13.33(v),y+o*13.32(v)).4r(o,o,0,(w-v<13.2C?0:1),1,x+o*13.33(w),y+o*13.32(w)).4q(),$.K({1u:u.1B},a.1T(A)))}G(a.V){a.E.14(p,r,b[a.Y]+b[a.H]+a.V.1d,a.V.1i[i])}}}});7 2v(a){F(a.3A&&a.3A.3v().4p(/\\4o\\(\\)/))}1e.1U(\'30\',1k 2O());1e.1U(\'4n\',1k 2K());1e.1U(\'2G\',1k 2U());1e.1U(\'4m\',1k 2E());1e.1U(\'1h\',1k 2D());1e.1U(\'3D\',1k 38())})(4G)',62,291,'||||this||var|function|||||||||||||||||||||||||||||||||_root|return|if||_ticks|length|extend||_chartGroup|_scale|for|_values|_title||||_series|xAxis||||group||yAxis|min|Math|text||major|true|arguments|text_anchor|null|max|stroke|_titleOffset|svgGraphing|size|_chartOptions|line|_labels|middle|new|_gridlines|chart|_name|_chart|_stroke|title|prototype|of|legend|fill|typeof|_strokeWidth|_getDims|stroke_width|_settings|_drawGraph|_fill|_labelFormat|_lineFormat|the|values|_area|_drawSeries|_drawAxis|rect|_drawChartBackground|x2Axis|_drawTitle|y2Axis|false|series|minor|drawGraph|object|_showStatus|addChartType|_sampleSize|_drawLegend|_drawGridlines|Compare|description|sets|position|_getTickOffsets|_chartTypes|options||as|barWidth|percentageText|SVGGraphAxis|barGap|number|to|translate|_getPercentageAxis|out|100|offset|90|rotate|_onstatus|transform|region|_drawAxes|_drawXAxis|_width|bars|_drawNow|_chartType|roundNumber|_chartFormat|isArray|_titleFormat|_textSettings|_bgSettings|_show|_getTotals|settings|PI|SVGLineChart|SVGStackedRowChart|relative|row|whole|contributions|in|SVGStackedColumnChart|xAxisLabels|_height|Basic|SVGColumnChart|regional|parent|each|while|black|SVGRowChart|SVGGraphSeries|string|format|SVGGraphLegend|SVGGraphing|column|_percentageAxis|sin|cos|end|value|SVGGraph|explode|SVGPieChart|floor|lineTo|moveTo|break|_drawYAxis|_drawRows|yAxisLabels|horizontal|_drawColumns|category|showing|Stacked|grouped|with|vertical|between|firstChild|pow|path|none|labels|window|toString|createPath|both|pieGap|distance|constructor|categories|explodeDist|pie|graph|_options|else|lines|continuous|rows|Percentage|background|addExtension|appendChild|_svg|gap|bar|removeChild|width|status|round|redraw|textSettings|bgSettings|sampleSize|noDraw||area|show|svgManager|gray|valus|name|_axis|addSeries|chartTypes|green|gridlines|ticks|scale|_crossAt|onmouseout|chartArea|onmouseover|replace|chartFormat|chartOptions|chartType|stackedRow|stackedColumn|Array|match|close|arcTo|reset|continue|Labels|sizes|Pie|multiple|pies|section|exploded|an|move|sections|indexes|id|jQuery'.split('|'),0,{}))
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/lion.svg b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/lion.svg
deleted file mode 100644
index 9414c8d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/lion.svg
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
-         "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg xmlns="http://www.w3.org/2000/svg"
-     xmlns:xlink="http://www.w3.org/1999/xlink"
-     width="15cm" height="15cm">
-  <g transform="translate(100,10)">
-    <polygon fill="#f2cc99"
-             points=" 69,18 82,8 99,3 118,5 135,12 149,21 156,13 165,9 177,13 183,28 180,50 164,91 155,107 154,114 151,121 141,127 139,136 155,206 157,251 126,342 133,357 128,376 83,376 75,368 67,350 61,350 53,369 4,369 2,361 5,354 12,342 16,321 4,257 4,244 7,218 9,179 26,127 43,93 32,77 30,70 24,67 16,49 17,35 18,23 30,12 40,7 53,7 62,12"/>
-    <polygon fill="#e5b27f"
-             points=" 142,79 136,74 138,82 133,78 133,84 127,78 128,85 124,80 125,87 119,82 119,90 125,99 125,96 128,100 128,94 131,98 132,93 135,97 136,93 138,97 139,94 141,98 143,94 144,85"/>
-    <polygon fill="#eb8080"
-             points=" 127,101 132,100 137,99 144,101 143,105 135,110"/>
-    <polygon fill="#f2cc99"
-             points=" 178,229 157,248 139,296 126,349 137,356 158,357 183,342 212,332 235,288 235,261 228,252 212,250 188,251"/>
-    <g fill="#9c826b">
-      <polygon points=" 56,229 48,241 48,250 57,281 63,325 71,338 81,315 76,321 79,311 83,301 75,308 80,298 73,303 76,296 71,298 74,292 69,293 74,284 78,278 71,278 74,274 68,273 70,268 66,267 68,261 60,266 62,259 65,253 57,258 59,251 55,254 55,248 60,237 54,240 58,234 54,236"/>
-      <polygon points=" 74,363 79,368 81,368 85,362 89,363 92,370 96,373 101,372 108,361 110,371 113,373 116,371 120,358 122,363 123,371 126,371 129,367 132,357 135,361 130,376 127,377 94,378 84,376 76,371"/>
-      <polygon points=" 212,250 219,251 228,258 236,270 235,287 225,304 205,332 177,343 171,352 158,357 166,352 168,346 168,339 165,333 155,327 155,323 161,320 165,316 169,316 167,312 171,313 168,308 173,309 170,306 177,306 175,308 177,311 174,311 176,316 171,315 174,319 168,320 168,323 175,327 179,332 183,326 184,332 189,323 190,328 194,320 194,325 199,316 201,320 204,313 206,316 208,310 211,305 219,298 226,288 229,279 228,266 224,259 217,253"/>
-      <polygon points=" 151,205 151,238 149,252 141,268 128,282 121,301 130,300 126,313 118,324 116,337 120,346 133,352 133,340 137,333 145,329 156,327 153,319 153,291 157,271 170,259 178,277 193,250 174,216"/>
-      <polygon points=" 78,127 90,142 95,155 108,164 125,167 139,175 150,206 152,191 141,140 121,148 100,136"/>
-      <polygon points=" 21,58 35,63 38,68 32,69 42,74 40,79 47,80 54,83 45,94 34,81 32,73 24,66"/>
-      <polygon points=" 71,34 67,34 66,27 59,24 54,17 48,17 39,22 30,26 28,31 31,39 38,46 29,45 36,54 41,61 41,70 50,69 54,71 55,58 67,52 76,43 76,39 68,44"/>
-      <polygon points=" 139,74 141,83 143,89 144,104 148,104 155,106 154,86 157,77 155,72 150,77 144,77"/>
-      <polygon points=" 105,44 102,53 108,58 111,62 112,55"/>
-      <polygon points=" 141,48 141,54 144,58 139,62 137,66 136,59 137,52"/>
-      <polygon points=" 98,135 104,130 105,134 108,132 108,135 112,134 113,137 116,136 116,139 119,139 124,141 128,140 133,138 140,133 139,140 126,146 104,144"/>
-      <polygon points=" 97,116 103,119 103,116 111,118 116,117 122,114 127,107 135,111 142,107 141,114 145,118 149,121 145,125 140,124 127,121 113,125 100,124"/>
-      <polygon points=" 147,33 152,35 157,34 153,31 160,31 156,28 161,28 159,24 163,25 163,21 165,22 170,23 167,17 172,21 174,18 175,23 176,22 177,28 177,33 174,37 176,39 174,44 171,49 168,53 164,57 159,68 156,70 154,60 150,51 146,43 144,35"/>
-      <polygon points=" 85,72 89,74 93,75 100,76 105,75 102,79 94,79 88,76"/>
-      <polygon points=" 86,214 79,221 76,232 82,225 78,239 82,234 78,245 81,243 79,255 84,250 84,267 87,254 90,271 90,257 95,271 93,256 95,249 92,252 93,243 89,253 89,241 86,250 87,236 83,245 87,231 82,231 90,219 84,221"/>
-    </g>
-    <g fill="#ffcc7f">
-      <polygon points=" 93,68 96,72 100,73 106,72 108,66 105,63 100,62"/>
-      <polygon points=" 144,64 142,68 142,73 146,74 150,73 154,64 149,62"/>
-    </g>
-    <g fill="#9c826b">
-      <polygon points=" 57,91 42,111 52,105 41,117 53,112 46,120 53,116 50,124 57,119 55,127 61,122 60,130 67,126 66,134 71,129 72,136 77,130 76,137 80,133 82,138 86,135 96,135 94,129 86,124 83,117 77,123 79,117 73,120 75,112 68,116 71,111 65,114 69,107 63,110 68,102 61,107 66,98 61,103 63,97 57,99"/>
-      <polygon points=" 83,79 76,79 67,82 75,83 65,88 76,87 65,92 76,91 68,96 77,95 70,99 80,98 72,104 80,102 76,108 85,103 92,101 87,98 93,96 86,94 91,93 85,91 93,89 99,89 105,93 107,85 102,82 92,80"/>
-      <polygon points=" 109,77 111,83 109,89 113,94 117,90 117,81 114,78"/>
-      <polygon points=" 122,128 127,126 134,127 136,129 134,130 130,128 124,129"/>
-      <polygon points=" 78,27 82,32 80,33 82,36 78,37 82,40 78,42 81,46 76,47 78,49 74,50 82,52 87,50 83,48 91,46 86,45 91,42 88,40 92,37 86,34 90,31 86,29 89,26"/>
-      <polygon points=" 82,17 92,20 79,21 90,25 81,25 94,28 93,26 101,30 101,26 107,33 108,28 111,40 113,34 115,45 117,39 119,54 121,46 124,58 126,47 129,59 130,49 134,58 133,44 137,48 133,37 137,40 133,32 126,20 135,26 132,19 138,23 135,17 142,18 132,11 116,6 94,6 78,11 92,12 80,14 90,16"/>
-      <polygon points=" 142,234 132,227 124,223 115,220 110,225 118,224 127,229 135,236 122,234 115,237 113,242 121,238 139,243 121,245 111,254 95,254 102,244 104,235 110,229 100,231 104,224 113,216 122,215 132,217 141,224 145,230 149,240"/>
-      <polygon points=" 115,252 125,248 137,249 143,258 134,255 125,254"/>
-      <polygon points=" 114,212 130,213 140,219 147,225 144,214 137,209 128,207"/>
-      <polygon points=" 102,263 108,258 117,257 131,258 116,260 109,265"/>
-      <polygon points=" 51,241 35,224 40,238 23,224 31,242 19,239 28,247 17,246 25,250 37,254 39,263 44,271 47,294 48,317 51,328 60,351 60,323 53,262 47,246"/>
-      <polygon points=" 2,364 9,367 14,366 18,355 20,364 26,366 31,357 35,364 39,364 42,357 47,363 53,360 59,357 54,369 7,373"/>
-      <polygon points=" 7,349 19,345 25,339 18,341 23,333 28,326 23,326 27,320 23,316 25,311 20,298 15,277 12,264 9,249 10,223 3,248 5,261 15,307 17,326 11,343"/>
-      <polygon points=" 11,226 15,231 25,236 18,227"/>
-      <polygon points=" 13,214 19,217 32,227 23,214 16,208 15,190 24,148 31,121 24,137 14,170 8,189"/>
-      <polygon points=" 202,254 195,258 199,260 193,263 197,263 190,268 196,268 191,273 188,282 200,272 194,272 201,266 197,265 204,262 200,258 204,256"/>
-    </g>
-    <g fill="#845433">
-      <polygon points=" 151,213 165,212 179,225 189,246 187,262 179,275 176,263 177,247 171,233 163,230 165,251 157,264 146,298 145,321 133,326 143,285 154,260 153,240"/>
-      <polygon points=" 91,132 95,145 97,154 104,148 107,155 109,150 111,158 115,152 118,159 120,153 125,161 126,155 133,164 132,154 137,163 137,152 142,163 147,186 152,192 148,167 141,143 124,145 105,143"/>
-    </g>
-    <g fill="#9c826b">
-      <polygon points=" 31,57 23,52 26,51 20,44 23,42 21,36 22,29 25,23 24,32 30,43 26,41 30,50 26,48"/>
-      <polygon points=" 147,21 149,28 155,21 161,16 167,14 175,15 173,11 161,9"/>
-      <polygon points=" 181,39 175,51 169,57 171,65 165,68 165,75 160,76 162,91 171,71 180,51"/>
-      <polygon points=" 132,346 139,348 141,346 142,341 147,342 143,355 133,350"/>
-      <polygon points=" 146,355 151,352 155,348 157,343 160,349 151,356 147,357"/>
-      <polygon points=" 99,266 100,281 94,305 86,322 78,332 72,346 73,331 91,291"/>
-      <polygon points=" 20,347 32,342 45,340 54,345 45,350 42,353 38,350 31,353 29,356 23,350 19,353 15,349"/>
-      <polygon points=" 78,344 86,344 92,349 88,358 84,352"/>
-      <polygon points=" 93,347 104,344 117,345 124,354 121,357 116,351 112,351 108,355 102,351"/>
-    </g>
-    <g fill="#000000">
-      <polygon points=" 105,12 111,18 113,24 113,29 119,34 116,23 112,16"/>
-      <polygon points=" 122,27 125,34 127,43 128,34 125,29"/>
-      <polygon points=" 115,13 122,19 122,15 113,10"/>
-    </g>
-    <g fill="#ffe5b2">
-      <polygon points=" 116,172 107,182 98,193 98,183 90,199 89,189 84,207 88,206 87,215 95,206 93,219 91,230 98,216 97,226 104,214 112,209 104,208 113,202 126,200 139,207 132,198 142,203 134,192 142,195 134,187 140,185 130,181 136,177 126,177 125,171 116,180"/>
-      <polygon points=" 74,220 67,230 67,221 59,235 63,233 60,248 70,232 65,249 71,243 67,256 73,250 69,262 73,259 71,267 76,262 72,271 78,270 76,275 82,274 78,290 86,279 86,289 92,274 88,275 87,264 82,270 82,258 77,257 78,247 73,246 77,233 72,236"/>
-      <polygon points=" 133,230 147,242 148,250 145,254 138,247 129,246 142,245 138,241 128,237 137,238"/>
-      <polygon points=" 133,261 125,261 116,263 111,267 125,265"/>
-      <polygon points=" 121,271 109,273 103,279 99,305 92,316 85,327 83,335 89,340 97,341 94,336 101,336 96,331 103,330 97,327 108,325 99,322 109,321 100,318 110,317 105,314 110,312 107,310 113,308 105,306 114,303 105,301 115,298 107,295 115,294 108,293 117,291 109,289 117,286 109,286 118,283 112,281 118,279 114,278 119,276 115,274"/>
-      <polygon points=" 79,364 74,359 74,353 76,347 80,351 83,356 82,360"/>
-      <polygon points=" 91,363 93,356 97,353 103,355 105,360 103,366 99,371 94,368"/>
-      <polygon points=" 110,355 114,353 118,357 117,363 113,369 111,362"/>
-      <polygon points=" 126,354 123,358 124,367 126,369 129,361 129,357"/>
-      <polygon points=" 30,154 24,166 20,182 23,194 29,208 37,218 41,210 41,223 46,214 46,227 52,216 52,227 61,216 59,225 68,213 73,219 70,207 77,212 69,200 77,202 70,194 78,197 68,187 76,182 64,182 58,175 58,185 53,177 50,186 46,171 44,182 39,167 36,172 36,162 30,166"/>
-      <polygon points=" 44,130 41,137 45,136 43,150 48,142 48,157 53,150 52,164 60,156 61,169 64,165 66,175 70,167 74,176 77,168 80,183 85,172 90,182 93,174 98,181 99,173 104,175 105,169 114,168 102,163 95,157 94,166 90,154 87,162 82,149 75,159 72,148 68,155 67,143 62,148 62,138 58,145 56,133 52,142 52,128 49,134 47,125"/>
-      <polygon points=" 13,216 19,219 36,231 22,223 16,222 22,227 12,224 13,220 16,220"/>
-      <polygon points=" 10,231 14,236 25,239 27,237 19,234"/>
-      <polygon points=" 9,245 14,242 25,245 13,245"/>
-      <polygon points=" 33,255 26,253 18,254 25,256 18,258 27,260 18,263 27,265 19,267 29,270 21,272 29,276 21,278 30,281 22,283 31,287 24,288 32,292 23,293 34,298 26,299 37,303 32,305 39,309 33,309 39,314 34,314 40,318 34,317 40,321 34,321 41,326 33,326 40,330 33,332 39,333 33,337 42,337 54,341 49,337 52,335 47,330 50,330 45,325 49,325 45,321 48,321 45,316 46,306 45,286 43,274 36,261"/>
-      <polygon points=" 7,358 9,351 14,351 17,359 11,364"/>
-      <polygon points=" 44,354 49,351 52,355 49,361"/>
-      <polygon points=" 32,357 37,353 40,358 36,361"/>
-      <polygon points=" 139,334 145,330 154,330 158,334 154,341 152,348 145,350 149,340 147,336 141,339 139,345 136,342 136,339"/>
-      <polygon points=" 208,259 215,259 212,255 220,259 224,263 225,274 224,283 220,292 208,300 206,308 203,304 199,315 197,309 195,318 193,313 190,322 190,316 185,325 182,318 180,325 172,321 178,320 176,313 186,312 180,307 188,307 184,303 191,302 186,299 195,294 187,290 197,288 192,286 201,283 194,280 203,277 198,275 207,271 200,269 209,265 204,265 212,262"/>
-      <polygon points=" 106,126 106,131 109,132 111,134 115,132 115,135 119,133 118,137 123,137 128,137 133,134 136,130 136,127 132,124 118,128 112,128 106,126 106,126 106,126"/>
-      <polygon points=" 107,114 101,110 98,102 105,97 111,98 119,102 121,108 118,112 113,115"/>
-      <polygon points=" 148,106 145,110 146,116 150,118 152,111 151,107"/>
-      <polygon points=" 80,55 70,52 75,58 63,57 72,61 57,61 67,66 57,67 62,69 54,71 61,73 54,77 63,78 53,85 60,84 56,90 69,84 63,82 75,76 70,75 77,72 72,71 78,69 72,66 81,67 78,64 82,63 80,60 86,62"/>
-      <polygon points=" 87,56 91,52 96,50 102,56 98,56 92,60"/>
-      <polygon points=" 85,68 89,73 98,76 106,74 96,73 91,70"/>
-      <polygon points=" 115,57 114,64 111,64 115,75 122,81 122,74 126,79 126,74 131,78 130,72 133,77 131,68 126,61 119,57"/>
-      <polygon points=" 145,48 143,53 147,59 151,59 150,55"/>
-      <polygon points=" 26,22 34,15 43,10 52,10 59,16 47,15 32,22"/>
-      <polygon points=" 160,19 152,26 149,34 154,33 152,30 157,30 155,26 158,27 157,23 161,23"/>
-    </g>
-    <g fill="#000000">
-      <polygon points=" 98,117 105,122 109,122 105,117 113,120 121,120 130,112 128,108 123,103 123,99 128,101 132,106 135,109 142,105 142,101 145,101 145,91 148,101 145,105 136,112 135,116 143,124 148,120 150,122 142,128 133,122 121,125 112,126 103,125 100,129 96,124"/>
-      <polygon points=" 146,118 152,118 152,115 149,115"/>
-      <polygon points=" 148,112 154,111 154,109 149,109"/>
-      <polygon points=" 106,112 108,115 114,116 118,114"/>
-      <polygon points=" 108,108 111,110 116,110 119,108"/>
-      <polygon points=" 106,104 109,105 117,106 115,104"/>
-      <polygon points=" 50,25 41,26 34,33 39,43 49,58 36,51 47,68 55,69 54,59 61,57 74,46 60,52 67,42 57,48 61,40 54,45 60,36 59,29 48,38 52,30 47,32"/>
-      <polygon points=" 147,34 152,41 155,49 161,53 157,47 164,47 158,43 168,44 159,40 164,37 169,37 164,33 169,34 165,28 170,30 170,25 173,29 175,27 176,32 173,36 175,39 172,42 172,46 168,49 170,55 162,57 158,63 155,58 153,50 149,46"/>
-      <polygon points=" 155,71 159,80 157,93 157,102 155,108 150,101 149,93 154,101 152,91 151,83 155,79"/>
-      <polygon points=" 112,78 115,81 114,91 112,87 113,82"/>
-      <polygon points=" 78,28 64,17 58,11 47,9 36,10 28,16 21,26 18,41 20,51 23,61 33,65 28,68 37,74 36,81 43,87 48,90 43,100 40,98 39,90 31,80 30,72 22,71 17,61 14,46 16,28 23,17 33,9 45,6 54,6 65,12"/>
-      <polygon points=" 67,18 76,9 87,5 101,2 118,3 135,8 149,20 149,26 144,19 132,12 121,9 105,7 89,8 76,14 70,20"/>
-      <polygon points=" 56,98 48,106 56,103 47,112 56,110 52,115 57,113 52,121 62,115 58,123 65,119 63,125 69,121 68,127 74,125 74,129 79,128 83,132 94,135 93,129 85,127 81,122 76,126 75,121 71,124 71,117 66,121 66,117 62,117 64,112 60,113 60,110 57,111 61,105 57,107 60,101 55,102"/>
-      <polygon points=" 101,132 103,138 106,134 106,139 112,136 111,142 115,139 114,143 119,142 125,145 131,142 135,138 140,134 140,129 143,135 145,149 150,171 149,184 145,165 141,150 136,147 132,151 131,149 126,152 125,150 121,152 117,148 111,152 110,148 105,149 104,145 98,150 96,138 94,132 94,130 98,132"/>
-      <polygon points=" 41,94 32,110 23,132 12,163 6,190 7,217 5,236 3,247 9,230 12,211 12,185 18,160 26,134 35,110 43,99"/>
-      <polygon points=" 32,246 41,250 50,257 52,267 53,295 53,323 59,350 54,363 51,365 44,366 42,360 40,372 54,372 59,366 62,353 71,352 75,335 73,330 66,318 68,302 64,294 67,288 63,286 63,279 59,275 58,267 56,262 50,247 42,235 44,246 32,236 35,244"/>
-      <polygon points=" 134,324 146,320 159,322 173,327 179,337 179,349 172,355 158,357 170,350 174,343 170,333 163,328 152,326 134,329"/>
-      <polygon points=" 173,339 183,334 184,338 191,329 194,332 199,323 202,325 206,318 209,320 213,309 221,303 228,296 232,289 234,279 233,269 230,262 225,256 219,253 208,252 198,252 210,249 223,250 232,257 237,265 238,277 238,291 232,305 221,323 218,335 212,342 200,349 178,348"/>
-      <polygon points=" 165,296 158,301 156,310 156,323 162,324 159,318 162,308 162,304"/>
-      <polygon points=" 99,252 105,244 107,234 115,228 121,228 131,235 122,233 113,235 109,246 121,239 133,243 121,243 110,251"/>
-      <polygon points=" 117,252 124,247 134,249 136,253 126,252"/>
-      <polygon points=" 117,218 132,224 144,233 140,225 132,219 117,218 117,218 117,218"/>
-      <polygon points=" 122,212 134,214 143,221 141,213 132,210"/>
-      <polygon points=" 69,352 70,363 76,373 86,378 97,379 108,379 120,377 128,378 132,373 135,361 133,358 132,366 127,375 121,374 121,362 119,367 117,374 110,376 110,362 107,357 106,371 104,375 97,376 90,375 90,368 86,362 83,364 86,369 85,373 78,370 73,362 71,351"/>
-      <polygon points=" 100,360 96,363 99,369 102,364"/>
-      <polygon points=" 115,360 112,363 114,369 117,364"/>
-      <polygon points=" 127,362 125,364 126,369 128,365"/>
-      <polygon points=" 5,255 7,276 11,304 15,320 13,334 6,348 2,353 0,363 5,372 12,374 25,372 38,372 44,369 42,367 36,368 31,369 30,360 27,368 20,370 16,361 15,368 10,369 3,366 3,359 6,352 11,348 17,331 19,316 12,291 9,274"/>
-      <polygon points=" 10,358 7,362 10,366 11,362"/>
-      <polygon points=" 25,357 22,360 24,366 27,360"/>
-      <polygon points=" 37,357 34,361 36,365 38,361"/>
-      <polygon points=" 49,356 46,359 47,364 50,360"/>
-      <polygon points=" 130,101 132,102 135,101 139,102 143,103 142,101 137,100 133,100"/>
-      <polygon points=" 106,48 105,52 108,56 109,52"/>
-      <polygon points=" 139,52 139,56 140,60 142,58 141,56"/>
-      <polygon points=" 25,349 29,351 30,355 33,350 37,348 42,351 45,347 49,345 44,343 36,345"/>
-      <polygon points=" 98,347 105,351 107,354 109,349 115,349 120,353 118,349 113,346 104,346"/>
-      <polygon points=" 83,348 87,352 87,357 89,351 87,348"/>
-      <polygon points=" 155,107 163,107 170,107 186,108 175,109 155,109"/>
-      <polygon points=" 153,114 162,113 175,112 192,114 173,114 154,115"/>
-      <polygon points=" 152,118 164,120 180,123 197,129 169,123 151,120"/>
-      <polygon points=" 68,109 87,106 107,106 106,108 88,108"/>
-      <polygon points=" 105,111 95,112 79,114 71,116 85,115 102,113"/>
-      <polygon points=" 108,101 98,99 87,99 78,99 93,100 105,102"/>
-      <polygon points=" 85,63 91,63 97,60 104,60 108,62 111,69 112,75 110,74 108,71 103,73 106,69 105,65 103,64 103,67 102,70 99,70 97,66 94,67 97,72 88,67 84,66"/>
-      <polygon points=" 140,74 141,66 144,61 150,61 156,62 153,70 150,73 152,65 150,65 151,68 149,71 146,71 144,66 143,70 143,74"/>
-      <polygon points=" 146,20 156,11 163,9 172,9 178,14 182,18 184,32 182,42 182,52 177,58 176,67 171,76 165,90 157,105 160,92 164,85 168,78 167,73 173,66 172,62 175,59 174,55 177,53 180,46 181,29 179,21 173,13 166,11 159,13 153,18 148,23"/>
-      <polygon points=" 150,187 148,211 150,233 153,247 148,267 135,283 125,299 136,292 131,313 122,328 122,345 129,352 133,359 133,367 137,359 148,356 140,350 131,347 129,340 132,332 140,328 137,322 140,304 154,265 157,244 155,223 161,220 175,229 186,247 185,260 176,275 178,287 185,277 188,261 196,253 189,236 174,213"/>
-      <polygon points=" 147,338 142,341 143,345 141,354 147,343"/>
-      <polygon points=" 157,342 156,349 150,356 157,353 163,346 162,342"/>
-      <polygon points=" 99,265 96,284 92,299 73,339 73,333 87,300"/>
-    </g>
-  </g>
-</svg>
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/test.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/test.js
deleted file mode 100644
index 27f0dda..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery-svg/test.js
+++ /dev/null
@@ -1,714 +0,0 @@
-// Demonstrate an onLoad callback to initialise a canvas
-function drawIntro() {
-	var svg = svgManager.getSVGFor('#cool_graph');
-	svg.circle(null, 75, 75, 50, {fill: 'none', stroke: 'red', stroke_width: 3});
-	var g = svg.group(null, {stroke: 'black', stroke_width: 2});
-	svg.line(g, 15, 75, 135, 75);
-	svg.line(g, 75, 15, 75, 135);
-}
-
-// -----------------------------------------------------------------------------
-
-var svgSpec = 'http://www.w3c.org/TR/SVG11/';
-// SVG examples
-var examples = [
-	['Basic shapes', basicShapesDemo,
-	'SVG provides for the creation of several basic shapes, including ' +
-	'rectangles, rectangles with rounded corners, circles, ellipses, ' +
-	'lines segments, polygonal lines, and closed polygons. ' +
-	'Each shape may be drawn with its own fill and border colourings. ' +
-	'Shapes may be moved and rotated via the transformation abilities of SVG. ' +
-	'Grouping elements allows common attributes to be easily applied.<br/>' +
-	'See the original documents: <a href="http://www.w3.org/TR/SVG11/images/shapes/rect01.svg" target="_blank">rectangle</a>, ' +
-	'<a href="http://www.w3.org/TR/SVG11/images/shapes/rect02.svg" target="_blank">rounded rectangle</a>, ' +
-	'<a href="http://www.w3.org/TR/SVG11/images/shapes/circle01.svg" target="_blank">circle</a>, ' +
-	'<a href="http://www.w3.org/TR/SVG11/images/shapes/ellipse01.svg" target="_blank">ellipse</a>, ' +
-	'<a href="http://www.w3.org/TR/SVG11/images/shapes/line01.svg" target="_blank">line</a>, ' +
-	'<a href="http://www.w3.org/TR/SVG11/images/shapes/polyline01.svg" target="_blank">polyline</a>, ' +
-	'and <a href="http://www.w3.org/TR/SVG11/images/shapes/polygon01.svg" target="_blank">polygon</a>.',
-	'<rect x="20" y="50" width="100" height="50"\r\n' +
-	'    fill="yellow" stroke="navy" stroke-width="5"  />\r\n' +
-	'<rect x="150" y="50" width="100" height="50" rx="10"\r\n' +
-	'    fill="green" />\r\n' +
-	'<g transform="translate(270 80) rotate(-30)">\r\n' +
-	'  <rect x="0" y="0" width="100" height="500" rx="10"\r\n' +
-	'      fill="none" stroke="purple" stroke-width="3" />\r\n' +
-	'</g>\r\n' +
-	'<circle cx="70" cy="220" r="50"\r\n' +
-	'    fill="red" stroke="blue" stroke-width="5"  />\r\n' +
-	'<g transform="translate(175 220)">\r\n' +
-	'  <ellipse rx="75" ry="50" fill="red"  />\r\n' +
-	'</g>\r\n' +
-	'<ellipse transform="translate(300 220) rotate(-30)"\r\n' +
-	'    rx="75" ry="50" fill="none" stroke="blue" stroke-width="10"  />\r\n' +
-	'<g stroke="green" >\r\n' +
-	'  <line x1="450" y1="120" x2="550" y2="20" stroke-width="5"  />\r\n' +
-	'  <line x1="550" y1="120" x2="650" y2="20" stroke-width="10"  />\r\n' +
-	'  <line x1="650" y1="120" x2="750" y2="20" stroke-width="15"  />\r\n' +
-	'  <line x1="750" y1="120" x2="850" y2="20" stroke-width="20"  />\r\n' +
-	'  <line x1="850" y1="120" x2="950" y2="20" stroke-width="25"  />\r\n' +
-	'</g>\r\n' +
-	'<polyline fill="none" stroke="blue" stroke-width="5" \r\n' +
-	'    points="450,250\r\n' +
-	'            475,250 475,220 500,220 500,250\r\n' +
-	'            525,250 525,200 550,200 550,250\r\n' +
-	'            575,250 575,180 600,180 600,250\r\n' +
-	'            625,250 625,160 650,160 650,250\r\n' +
-	'            675,250" />\r\n' +
-	'<polygon fill="lime" stroke="blue" stroke-width="10" \r\n' +
-	'    points="800,150 900,180 900,240 800,270 700,240 700,180" />'],
-	
-	['Filters', filterDemo,
-	'This example relies on the <i>filter</i> extension for the SVG plugin.<br/>' +
-	'1.  Filter primitive \'feGaussianBlur\' takes input SourceAlpha, ' +
-	'which is the alpha channel of the source graphic. The result is ' +
-	'stored in a temporary buffer named "blur". Note that "blur" is ' +
-	'used as input to both filter primitives 2 and 3.<br/>' +
-	'2. Filter primitive \'feOffset\' takes buffer "blur", shifts the ' +
-	'result in a positive direction in both x and y, and creates a new ' +
-	'buffer named "offsetBlur". The effect is that of a drop shadow.<br/>' +
-	'3. Filter primitive \'feSpecularLighting\', uses buffer "blur" as a ' +
-	'model of a surface elevation and generates a lighting effect from a ' +
-	'single point source. The result is stored in buffer "specOut".<br/>' +
-	'4. Filter primitive \'feComposite\' masks out the result of filter ' +
-	'primitive 3 by the original source graphics alpha channel so that ' +
-	'the intermediate result is no bigger than the original source graphic.<br/>' +
-	'5. Filter primitive \'feComposite\' composites the result of the ' +
-	'specular lighting with the original source graphic.<br/>' +
-	'6. Filter primitive \'feMerge\' composites two layers together. ' +
-	'The lower layer consists of the drop shadow result from filter primitive 2. ' +
-	'The upper layer consists of the specular lighting result from filter primitive 5.<br/>' +
-	'See the <a href="http://www.w3.org/TR/SVG11/images/filters/filters01.svg" target="_blank">original document</a>.',
-	'<desc>An example which combines multiple filter primitives\r\n' +
-	'    to produce a 3D lighting effect on a graphic consisting\r\n' +
-	'    of the string "SVG" sitting on top of oval filled in red\r\n' +
-	'    and surrounded by an oval outlined in red.</desc>\r\n' +
-	'<defs>\r\n' +
-	'  <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">\r\n' +
-	'    <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>\r\n' +
-	'    <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>\r\n' +
-	'    <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" \r\n' +
-	'        specularExponent="20" lighting-color="#bbbbbb"  \r\n' +
-	'        result="specOut">\r\n' +
-	'      <fePointLight x="-5000" y="-10000" z="20000"/>\r\n' +
-	'    </feSpecularLighting>\r\n' +
-	'    <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>\r\n' +
-	'    <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" \r\n' +
-	'        k1="0" k2="1" k3="1" k4="0" result="litPaint"/>\r\n' +
-	'    <feMerge>\r\n' +
-	'      <feMergeNode in="offsetBlur"/>\r\n' +
-	'      <feMergeNode in="litPaint"/>\r\n' +
-	'    </feMerge>\r\n' +
-	'  </filter>\r\n' +
-	'</defs>\r\n' +
-	'<rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />\r\n' +
-	'<g filter="url(#MyFilter)" >\r\n' +
-	'  <g>\r\n' +
-	'    <path fill="none" stroke="#D90000" stroke-width="10" \r\n' +
-	'        d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />\r\n' +
-	'    <path fill="#D90000" \r\n' +
-	'        d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />\r\n' +
-	'    <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >\r\n' +
-	'      <text x="52" y="76">SVG</text>\r\n' +
-	'    </g>\r\n' +
-	'  </g>\r\n' +
-	'</g>'],
-	
-	['Gradients and Patterns', gradientPatternDemo,
-	'Shows how to fill a rectangle by referencing a radial gradient paint server.<br/>' +
-	'Shows how to fill a rectangle by referencing a pattern paint server. ' +
-	'Note how the blue stroke of each triangle has been clipped at the top and the left. ' +
-	'This is due to SVG\'s user agent style sheet setting the \'overflow\' property ' +
-	'for \'pattern\' elements to hidden, which causes the pattern to be clipped to ' +
-	'the bounds of the pattern tile.<br/>' +
-	'See the original documents: <a href="http://www.w3.org/TR/SVG11/images/pservers/radgrad01.svg" target="_blank">gradient</a> ' +
-	'and <a href="http://www.w3.org/TR/SVG11/images/pservers/pattern01.svg" target="_blank">pattern</a>.',
-	'<desc>Example radgrad01 - fill a rectangle by referencing a\r\n' +
-	'    radial gradient paint server</desc>\r\n' +
-	'<g>\r\n' +
-	'  <defs>\r\n' +
-	'    <radialGradient id="MyGradient" gradientUnits="userSpaceOnUse"\r\n' +
-	'        cx="200" cy="100" r="150" fx="200" fy="100">\r\n' +
-	'      <stop offset="0%" stop-color="red" />\r\n' +
-	'      <stop offset="50%" stop-color="blue" />\r\n' +
-	'      <stop offset="100%" stop-color="red" />\r\n' +
-	'    </radialGradient>\r\n' +
-	'  </defs>\r\n' +
-	'  <!-- The rectangle is filled using a radial gradient paint server -->\r\n' +
-	'  <rect fill="url(#MyGradient)" stroke="black" stroke-width="5"\r\n' +
-	'      x="50" y="50" width="300" height="100"/>\r\n' +
-	'</g>\r\n' + 
-	'<g>\r\n' +
-	'  <defs>\r\n' +
-	'    <pattern id="TrianglePattern" patternUnits="userSpaceOnUse"\r\n' +
-	'        x="0" y="0" width="100" height="100" viewBox="0 0 10 10" >\r\n' +
-	'      <path d="M 0 0 L 7 0 L 3.5 7 z" fill="red" stroke="blue" />\r\n' +
-	'    </pattern> \r\n' +
-	'  </defs>\r\n' +
-	'  <!-- The ellipse is filled using a triangle pattern paint server\r\n' +
-	'       and stroked with black -->\r\n' +
-	'  <ellipse fill="url(#TrianglePattern)" stroke="black" stroke-width="5"  \r\n' +
-	'      cx="550" cy="100" rx="175" ry="75" />\r\n' +
-	'</g>'],
-	
-	['Interactivity', interactiveDemo,
-	'This example defines a function <code>circle_click</code> which is called ' +
-	'by the onclick event attribute on the \'circle\' element. Each click toggles ' +
-	'the circle\'s size between small and large.<br/>' +
-	'See the <a href="http://www.w3.org/TR/SVG11/images/script/script01.svg" target="_blank">original document</a>.',
-	'<desc>Example script01 - invoke an ECMAScript function from an onclick event\r\n' +
-	'</desc>\r\n' +
-	'<!-- ECMAScript to change the radius with each click -->\r\n' +
-	'<script type="text/ecmascript"> <![CDATA[\r\n' +
-	'  function circle_click(evt) {\r\n' +
-	'    var circle = evt.target;\r\n' +
-	'    var currentRadius = circle.getAttribute("r");\r\n' +
-	'    if (currentRadius == 100)\r\n' +
-	'      circle.setAttribute("r", currentRadius*2);\r\n' +
-	'    else\r\n' +
-	'      circle.setAttribute("r", currentRadius*0.5);\r\n' +
-	'  }\r\n' +
-	']]> </script>\r\n' +
-	'<!-- Act on each click event -->\r\n' +
-	'<circle onclick="circle_click(evt)" cx="300" cy="150" r="100"\r\n' +
-	'    fill="red"/>\r\n' +
-	'<text x="300" y="280" \r\n' +
-	'    font-family="Verdana" font-size="35" text-anchor="middle">\r\n' +
-	'  Click on circle to change its size\r\n' +
-	'</text>'],
-	
-	['Masking', maskingDemo,
-	'In SVG, you can specify that any other graphics object or \'g\' element ' +
-	'can be used as an alpha mask for compositing the current object into the background.<br/>' +
-	'See the <a href="http://www.w3.org/TR/SVG11/images/masking/mask01.svg" target="_blank">original document</a>.',
-	'<desc>Example mask01 - blue text masked with gradient against red background\r\n' +
-	'</desc>\r\n' +
-	'<defs>\r\n' +
-	'  <linearGradient id="Gradient" gradientUnits="userSpaceOnUse"\r\n' +
-	'      x1="0" y1="0" x2="800" y2="0">\r\n' +
-	'    <stop offset="0" stop-color="white" stop-opacity="0" />\r\n' +
-	'    <stop offset="1" stop-color="white" stop-opacity="1" />\r\n' +
-	'  </linearGradient>\r\n' +
-	'  <mask id="Mask" maskUnits="userSpaceOnUse"\r\n' +
-	'       x="0" y="0" width="800" height="300">\r\n' +
-	'    <rect x="0" y="0" width="800" height="300" fill="url(#Gradient)"  />\r\n' +
-	'  </mask>\r\n' +
-	'  <text id="Text" x="400" y="200" \r\n' +
-	'      font-family="Verdana" font-size="100" text-anchor="middle" >\r\n' +
-	'    Masked text\r\n' +
-	'  </text>\r\n' +
-	'</defs>\r\n' +
-	'<!-- Draw a pale red rectangle in the background -->\r\n' +
-	'<rect x="0" y="0" width="800" height="300" fill="#FF8080" />\r\n' +
-	'<!-- Draw the text string twice. First, filled blue, with the mask applied.\r\n' +
-	'     	Second, outlined in black without the mask. -->\r\n' +
-	'<use xlink:href="#Text" fill="blue" mask="url(#Mask)" />\r\n' +
-	'<use xlink:href="#Text" fill="none" stroke="black" stroke-width="2" />'],
-	
-	['Styles and References', useStyleDemo,
-	'Illustrates a \'use\' element with various methods of applying CSS styling.<br/>' +
-	'See the <a href="http://www.w3.org/TR/SVG11/images/struct/Use04.svg" target="_blank">original document</a>.', 
-	'<desc>Example Use04 - \'use\' with CSS styling</desc>\r\n' +
-	'<defs style=" /* rule 9 */ stroke-miterlimit: 10" >\r\n' +
-	'  <path id="MyPath" d="M100 50 L700 50 L700 250 L100 250"\r\n' +
-	'    class="MyPathClass" style=" /* rule 10 */ stroke-dasharray:300,100" />\r\n' +
-	'</defs>\r\n' +
-	'<style type="text/css">\r\n' +
-	'  <![CDATA[\r\n' +
-	'    /* rule 1 */ #MyUse { fill: blue }\r\n' +
-	'    /* rule 2 */ #MyPath { stroke: red }\r\n' +
-	'    /* rule 3 */ use { fill-opacity: .5 }\r\n' +
-	'    /* rule 4 */ path { stroke-opacity: .5 }\r\n' +
-	'    /* rule 5 */ .MyUseClass { stroke-linecap: round }\r\n' +
-	'    /* rule 6 */ .MyPathClass { stroke-linejoin: bevel }\r\n' +
-	'    /* rule 7 */ use > path { shape-rendering: optimizeQuality }\r\n' +
-	'    /* rule 8 */ g > path { visibility: hidden }\r\n' +
-	'  ]]>\r\n' +
-	'</style>\r\n' +
-	'<g style=" /* rule 11 */ stroke-width:40">\r\n' +
-	'  <use id="MyUse" xlink:href="#MyPath" \r\n' +
-	'    class="MyUseClass" style="/* rule 12 */ stroke-dashoffset:50" />\r\n' +
-	'</g>'],
-	
-	['Text', textDemo,
-	'Shows how \'tspan\' elements can be included within \'textPath\' ' +
-	'elements to adjust styling attributes and adjust the current text ' +
-	'position before rendering a particular glyph. The first occurrence ' +
-	'of the word "up" is filled with the color red. Attribute dy is used ' +
-	'to lift the word "up" from the baseline.<br/>' +
-	'See the <a href="http://www.w3.org/TR/SVG11/images/text/toap02.svg" target="_blank">original document</a>.',
-	'<defs>\r\n' +
-	'  <path id="MyPath"\r\n' +
-	'      d="M 100 200 \r\n' +
-	'         C 200 100 300   0 400 100\r\n' +
-	'         C 500 200 600 300 700 200\r\n' +
-	'         C 800 100 900 100 900 100" />\r\n' +
-	'</defs>\r\n' +
-	'<desc>Example toap02 - tspan within textPath</desc>\r\n' +
-	'<use xlink:href="#MyPath" fill="none" stroke="red"  />\r\n' +
-	'<text font-family="Verdana" font-size="42.5" fill="blue" >\r\n' +
-	'  <textPath xlink:href="#MyPath">\r\n' +
-	'    We go \r\n' +
-	'    <tspan dy="-30" fill="red" >\r\n' +
-	'      up\r\n' +
-	'    </tspan>\r\n' +
-	'    <tspan dy="30">\r\n' +
-	'      ,\r\n' +
-	'    </tspan>\r\n' +
-	'    then we go down, then up again\r\n' +
-	'  </textPath>\r\n' +
-	'</text>'],
-	
-	['Transformations', transformDemo,
-	'Defines two coordinate systems which are skewed ' +
-	'relative to the origin coordinate system.<br/>' +
-	'Transformations can be nested to any level. The effect of nested ' +
-	'transformations is to post-multiply (i.e., concatenate) the subsequent ' +
-	'transformation matrices onto previously defined transformations.<br/>' +
-	'See the original documents: <a href="http://www.w3.org/TR/SVG11/images/coords/Skew.svg" target="_blank">skew</a> ' +
-	'and <a href="http://www.w3.org/TR/SVG11/images/coords/Nested.svg" target="_blank">nesting</a>.',
-	'<desc>Example Skew - Show effects of skewX and skewY</desc>\r\n' +
-	'<!-- Establish a new coordinate system whose origin is at (30,100)\r\n' +
-	'     in the initial coord. system and which is skewed in X by 30 degrees. -->\r\n' +
-	'<g transform="translate(30,100)">\r\n' +
-	'  <g transform="skewX(30)">\r\n' +
-	'    <g fill="none" stroke="red" stroke-width="3" >\r\n' +
-	'      <line x1="0" y1="0" x2="50" y2="0" />\r\n' +
-	'      <line x1="0" y1="0" x2="0" y2="50" />\r\n' +
-	'    </g>\r\n' +
-	'    <text x="0" y="0" font-size="20" font-family="Verdana" fill="blue" >\r\n' +
-	'      ABC (skewX)\r\n' +
-	'    </text>\r\n' +
-	'  </g>\r\n' +
-	'</g>\r\n' +
-	'<!-- Establish a new coordinate system whose origin is at (200,100)\r\n' +
-	'     in the initial coord. system and which is skewed in Y by 30 degrees. -->\r\n' +
-	'<g transform="translate(200,100)">\r\n' +
-	'  <g transform="skewY(30)">\r\n' +
-	'    <g fill="none" stroke="red" stroke-width="3" >\r\n' +
-	'      <line x1="0" y1="0" x2="50" y2="0" />\r\n' +
-	'      <line x1="0" y1="0" x2="0" y2="50" />\r\n' +
-	'    </g>\r\n' +
-	'    <text x="0" y="0" font-size="20" font-family="Verdana" fill="blue" >\r\n' +
-	'      ABC (skewY)\r\n' +
-	'    </text>\r\n' +
-	'  </g>\r\n' +
-	'</g>\r\n' +
-	'<!-- First, a translate -->\r\n' +
-	'<g transform="translate(450,150)">\r\n' +
-	'  <g fill="none" stroke="red" stroke-width="3" >\r\n' +
-	'    <line x1="0" y1="0" x2="50" y2="0" />\r\n' +
-	'    <line x1="0" y1="0" x2="0" y2="50" />\r\n' +
-	'  </g>\r\n' +
-	'  <text x="0" y="0" font-size="16" font-family="Verdana" >\r\n' +
-	'    ....Translate(1)\r\n' +
-	'  </text>\r\n' +
-	'  <!-- Second, a rotate -->\r\n' +
-	'  <g transform="rotate(-45)">\r\n' +
-	'    <g fill="none" stroke="green" stroke-width="3" >\r\n' +
-	'      <line x1="0" y1="0" x2="50" y2="0" />\r\n' +
-	'      <line x1="0" y1="0" x2="0" y2="50" />\r\n' +
-	'    </g>\r\n' +
-	'    <text x="0" y="0" font-size="16" font-family="Verdana" >\r\n' +
-	'      ....Rotate(2)\r\n' +
-	'    </text>\r\n' +
-	'    <!-- Third, another translate -->\r\n' +
-	'    <g transform="translate(130,160)">\r\n' +
-	'      <g fill="none" stroke="blue" stroke-width="3" >\r\n' +
-	'        <line x1="0" y1="0" x2="50" y2="0" />\r\n' +
-	'        <line x1="0" y1="0" x2="0" y2="50" />\r\n' +
-	'      </g>\r\n' +
-	'      <text x="0" y="0" font-size="16" font-family="Verdana" >\r\n' +
-	'        ....Translate(3)\r\n' +
-	'      </text>\r\n' +
-	'    </g>\r\n' +
-	'  </g>\r\n' +
-	'</g>']];
-
-// Populate the examples drop-down
-function initExamples() {
-	var html = '<option value=""></option>';
-	for (var i = 0; i < examples.length; i++) {
-		html += '<option value="' + i + '">' + examples[i][0] + '</option>';
-	}
-	$('#example').html(html).change(pickExample)[0].selectedIndex = 0;
-}
-
-// Display the selected example
-function pickExample() {
-	var ex = $('#example').val();
-	if (!ex) {
-		return;
-	}
-	$('#exampledesc').html(examples[ex][2]);
-	$('#svgsource pre').text(examples[ex][3]);
-	$('#svgcode pre').text(codeFormat(examples[ex][1].toString()));
-	var svg = svgManager.getSVGFor('#svgexample');
-	svg.clear();
-	examples[ex][1](svg);
-}
-
-// Format the JavaScript SVG code for display
-function codeFormat(code) {
-	var lines = code.split('\n');
-	var formatted = '';
-	for (var i = 0; i < lines.length; i++) {
-		var line = $.trim(lines[i]);
-		if (!line || line.length == 1 || line.substring(0, 9) == 'function ') {
-			continue;
-		}
-		while (line.length > 50) {
-			var pos = line.substr(0, 50).lastIndexOf(' ');
-			if (pos == -1) {
-				break;
-			}
-			formatted += line.substr(0, pos) + '\r\n  ' + ($.browser.msie ? '  ' : '');
-			line = line.substr(pos + 1);
-		}
-		formatted += line + '\r\n';
-	}
-	return formatted;
-}
-
-// Demonstrate basic SVG shapes and constructs
-function basicShapesDemo(svg) {
-	svg.rect(null, 20, 50, 100, 50, 
-		{fill: 'yellow', stroke: 'navy', stroke_width: 5});
-	svg.roundrect(null, 150, 50, 100, 50, 10, 10, {fill: 'green'});
-	var g = svg.group(null, {transform: 'translate(270 80) rotate(-30)'});
-	svg.roundrect(g, 0, 0, 100, 50, 10, 10, {fill: 'none', stroke: 'purple', stroke_width: 3});
-	svg.circle(null, 70, 220, 50, {fill: 'red', stroke: 'blue', stroke_width: 5});
-	var g = svg.group(null, {transform: 'translate(175 220)'});
-	svg.ellipse(g, '', '', 75, 50, {fill: 'yellow'});
-	svg.ellipse(null, '', '', 75, 50, {transform: 'translate(300 220) rotate(-30)', 
-		fill: 'none', stroke: 'blue', stroke_width: 10});
-	var g = svg.group(null, {stroke: 'green'});
-	svg.line(g, 450, 120, 550, 20, {stroke_width: 5});
-	svg.line(g, 550, 120, 650, 20, {stroke_width: 10});
-	svg.line(g, 650, 120, 750, 20, {stroke_width: 15});
-	svg.line(g, 750, 120, 850, 20, {stroke_width: 20});
-	svg.line(g, 850, 120, 950, 20, {stroke_width: 25});
-	svg.polyline(null, [[450,250],
-		[475,250],[475,220],[500,220],[500,250],
-		[525,250],[525,200],[550,200],[550,250],
-		[575,250],[575,180],[600,180],[600,250],
-		[625,250],[625,160],[650,160],[650,250],[675,250]],
-		{fill: 'none', stroke: 'blue', stroke_width: 5});
-	svg.polygon(null, [[800,150],[900,180],[900,240],[800,270],[700,240],[700,180]], 
-		{fill: 'lime', stroke: 'blue', stroke_width: 10});
-}
-
-// Demonstrate SVG filter effects
-function filterDemo(svg) {
-	svg.describe(null, 'An example which combines multiple filter primitives ' +
-		'to produce a 3D lighting effect on a graphic consisting ' +
-		'of the string "SVG" sitting on top of oval filled in red ' +
-		'and surrounded by an oval outlined in red.');
-	var defs = svg.defs();
-	var filter = svg.filter(defs, 'MyFilter', 0, 0, 200, 120, 
-		{filterUnits: 'userSpaceOnUse'});
-	svg.filters.gaussianBlur(filter, 'blur', 'SourceAlpha', 4);
-	svg.filters.offset(filter, 'offsetBlur', 'blur', 4, 4);
-	var spec = svg.filters.specularLighting(filter, 'specOut', 'blur', 
-		5, 0.75, 20, {lighting_color: '#bbbbbb'});
-	svg.filters.pointLight(spec, '', -5000, -10000, 20000);
-	svg.filters.composite(filter, 'specOut', 'in', 'specOut', 'SourceAlpha');
-	svg.filters.composite(filter, 'litPaint', 'arithmetic', 'SourceGraphic', 
-		'specOut', 0, 1, 1, 0);
-	var merge = svg.filters.merge(filter, '', ['offsetBlur', 'litPaint']);
-	var g1 = svg.group(null, {filter: 'url(#MyFilter)'});
-	var g2 = svg.group(g1);
-	var path = svg.createPath();
-	svg.path(g2, path.moveTo(50, 90).curveCTo(0, 90, 0, 30, 50, 30).
-		lineTo(150, 30).curveCTo(200, 30, 200, 90, 150, 90).close(), 
-		{fill: 'none', stroke: '#D90000', stroke_width: 10});
-	svg.path(g2, path.reset().moveTo(60, 80).curveCTo(30, 80, 30, 40, 60, 40).
-		lineTo(140, 40).curveCTo(170, 40, 170, 80, 140, 80).close(), 
-		{fill: '#D90000'});
-	var g3 = svg.group(g2, {fill: '#FFFFFF', stroke: 'black', 
-		font_size: 45, font_family: 'Verdana'});
-	svg.text(g3, 52, 76, 'SVG');
-}
-
-// Demonstrate SVG gradient and pattern fills
-function gradientPatternDemo(svg) {
-	svg.describe(null, 'Example radgrad01 - fill a rectangle by ' +
-		'referencing a radial gradient paint server');
-	var g = svg.group();
-	var defs = svg.defs(g);
-	svg.radialGradient(defs, 'MyGradient', 
-		[['0%', 'red'], ['50%', 'blue'], ['100%', 'red']],
-		200, 100, 150, 200, 100, {gradientUnits: 'userSpaceOnUse'});
-	svg.rect(g, 50, 50, 300, 100, 
-		{fill: 'url(#MyGradient)', stroke: 'black', stroke_width: 5});
-	g = svg.group();
-	defs = svg.defs(g);
-	var ptn = svg.pattern(defs, 'TrianglePattern', 0, 0, 100, 100, 
-		0, 0, 10, 10, {patternUnits: 'userSpaceOnUse'});
-	var path = svg.createPath();
-	svg.path(ptn, path.moveTo(0, 0).lineTo([[7, 0], [3.5, 7]]).close(), 
-		{fill: 'red', stroke: 'blue'});
-	svg.ellipse(g, 550, 100, 175, 75, 
-		{fill: 'url(#TrianglePattern)', stroke: 'black', stroke_width: 5});
-}
-
-// Demonstrate SVG interactivity
-function interactiveDemo(svg) {
-	svg.describe(null, 'Example script01 - invoke an ECMAScript function from an onclick event');
-	svg.script(null, 'function circle_click(evt) {\n' +
-		'  var circle = evt.target;\n' +
-		'  var currentRadius = circle.getAttribute("r");\n' +
-		'  if (currentRadius == 100)\n' +
-		'    circle.setAttribute("r", currentRadius*2);\n' +
-		'  else\n' +
-		'    circle.setAttribute("r", currentRadius*0.5);\n' +
-		'}', 'text/ecmascript');
-	svg.circle(null, 300, 150, 100, {onclick: 'circle_click(evt)', fill: 'red'});
-	svg.text(null, 300, 280, 'Click on circle to change its size', 
-		{font_family: 'Verdana', font_size: 35,  text_anchor: 'middle'});
-}
-
-// Demonstrate SVG masking operations
-function maskingDemo(svg) {
-	svg.describe(null, 'Example mask01 - blue text masked with gradient against red background');
-	var defs = svg.defs();
-	svg.linearGradient(defs, 'Gradient', [[0, 'white', 0], [1, 'white', 1]], 
-		0, 0, 800, 0, {gradientUnits: 'userSpaceOnUse'});
-	var mask = svg.mask(defs, 'Mask', 0, 0, 800, 300, {maskUnits: 'userSpaceOnUse'});
-	svg.rect(mask, 0, 0, 800, 300, {fill: 'url(#Gradient)'});
-	svg.text(defs, 400, 200, 'Masked text', {id: 'Text', 
-		font_family: 'Verdana', font_size: 100, text_anchor: 'middle'});
-	svg.rect(null, 0, 0, 800, 300, {fill: '#FF8080'});
-	svg.use(null, '#Text', {fill: 'blue', mask: 'url(#Mask)'});
-	svg.use(null, '#Text', {fill: 'none', stroke: 'black', stroke_width: 2});
-}
-
-// Demonstrate SVG text rendering
-function textDemo(svg) {
-	var defs = svg.defs();
-	var path = svg.createPath();
-	svg.path(defs, path.moveTo(100, 200).curveCTo([[200, 100, 300, 0, 400, 100], 
-		[500, 200, 600, 300, 700, 200], [800, 100, 900, 100, 900, 100]]), 
-		{id: 'MyPath'});
-	svg.describe(null, 'Example toap02 - tspan within textPath');
-	svg.use(null, '#MyPath', {fill: 'none', stroke: 'red'});
-	var text = svg.text(null, '', 
-		{font_family: 'Verdana', font_size: '42.5', fill: 'blue'});
-	var texts = svg.createText();
-	svg.textpath(text, '#MyPath', texts.string('We go ').span('up', {dy: -30, fill: 'red'}).
-		span(',', {dy: 30}).string(' then we go down, then up again'));
-}
-
-// Demonstrate SVG transformation support
-function transformDemo(svg) {
-	svg.describe(null, 'Example Skew - Show effects of skewX and skewY');
-	var g1 = svg.group(null, {transform: 'translate(30,100)'});
-	var g2 = svg.group(g1, {transform: 'skewX(30)'});
-	var g3 = svg.group(g2, {fill: 'none', stroke: 'red', stroke_width: 3});
-	svg.line(g3, 0, 0, 50, 0);
-	svg.line(g3, 0, 0, 0, 50);
-	svg.text(g2, 0, 0, 'ABC (skewX)', 
-		{font_size: 20, font_family: 'Verdana', fill: 'blue'});
-	g1 = svg.group(null, {transform: 'translate(200,100)'});
-	g2 = svg.group(g1, {transform: 'skewY(30)'});
-	g3 = svg.group(g2, {fill: 'none', stroke: 'red', stroke_width: 3});
-	svg.line(g3, 0, 0, 50, 0);
-	svg.line(g3, 0, 0, 0, 50);
-	svg.text(g2, 0, 0, 'ABC (skewY)', 
-		{font_size: 20, font_family: 'Verdana', fill: 'blue'});
-		
-	g1 = svg.group(null, {transform: 'translate(450,150)'});
-	g2 = svg.group(g1, {fill: 'none', stroke: 'red', stroke_width: 3});
-	svg.line(g2, 0, 0, 50, 0);
-	svg.line(g2, 0, 0, 0, 50);
-	svg.text(g1, 0, 0, '....Translate(1)',
-		{font_size: 16, font_family: 'Verdana'});
-	g2 = svg.group(g1, {transform: 'rotate(-45)'});
-	g3 = svg.group(g2, {fill: 'none', stroke: 'green', stroke_width: 3});
-	svg.line(g3, 0, 0, 50, 0);
-	svg.line(g3, 0, 0, 0, 50);
-	svg.text(g2, 0, 0, '....Rotate(2)', 
-		{font_size: 16, font_family: 'Verdana'});
-	g3 = svg.group(g2, {transform: 'translate(130,160)'});
-	var g4 = svg.group(g3, {fill: 'none', stroke: 'blue', stroke_width: 3});
-	svg.line(g4, 0, 0, 50, 0);
-	svg.line(g4, 0, 0, 0, 50);
-	svg.text(g3, 0, 0, '....Translate(3)', 
-		{font_size: 16, font_family: 'Verdana'});
-}
-
-// Demonstrate SVG referencing and CSS styling
-function useStyleDemo(svg) {
-	svg.describe(null, 'Example Use04 - \'use\' with CSS styling');
-	var defs = svg.defs(null, '', {style: ' /* rule 9 */ stroke-miterlimit: 10'});
-	var path = svg.createPath();
-	svg.path(defs, path.moveTo(100, 50).lineTo([[700, 50], [700, 250], [100, 250]]),
-		{id: 'MyPath', _class: 'MyPathClass', style: ' /* rule 10 */ stroke-dasharray: 300,100'});
-	svg.style(null, '/* rule 1 */ #MyUse { fill: blue } ' +
-		'/* rule 2 */ #MyPath { stroke: red } ' +
-		'/* rule 3 */ use { fill-opacity: .5 } ' +
-		'/* rule 4 */ path { stroke-opacity: .5 } ' +
-		'/* rule 5 */ .MyUseClass { stroke-linecap: round } ' +
-		'/* rule 6 */ .MyPathClass { stroke-linejoin: bevel } ' +
-		'/* rule 7 */ use > path { shape-rendering: optimizeQuality } ' +
-		'/* rule 8 */ g > path { visibility: hidden }');
-	var g = svg.group(null, {style: ' /* rule 11 */ stroke-width: 40'});
-	svg.use(g, '#MyPath', {id: 'MyUse', _class: 'MyUseClass', 
-		style: '/* rule 12 */ stroke-dashoffset: 50'});
-}
-
-// -----------------------------------------------------------------------------
-
-// Add a node defined inline
-function addInline() {
-	var svg = svgManager.getSVGFor('#svgload');
-	svg.add(null, '#svg1');
-}
-
-// Load an external document
-function loadExternal() {
-	var svg = svgManager.getSVGFor('#svgload');
-	svg.load($('#loadURL').val());
-}
-
-// -----------------------------------------------------------------------------
-
-// Synchronise the drawing section with user selection
-function setDrawOptions() {
-	showHide = function(id, show) {
-		if (show) {
-			$(id).show();
-		}
-		else {
-			$(id).hide();
-		}
-	}
-	var shape = $('#shape').val();
-	showHide('#getRect', (shape == 'rect' || shape == 'roundrect'));
-	showHide('#getRounded', shape == 'roundrect');
-	showHide('#getCentre', (shape == 'circle' || shape == 'ellipse'));
-	showHide('#getRadius', (shape == 'circle'));
-	showHide('#getRadii', (shape == 'ellipse'));
-	showHide('#getLine', (shape == 'line'));
-	showHide('#getFill', (shape != 'line'));
-}
-
-var drawNodes = [];
-var sketchpad = null;
-
-$(document).ready(function() {
-	sketchpad = $('#svgsketch')[0];
-});
-
-// Draw the selected element on the canvas
-function draw() {
-	var svg = svgManager.getSVGFor(sketchpad);
-	var rotate = $('#rotate').val();
-	var settings = $.extend({fill: $('#fill').val(), 
-		stroke: $('#stroke').val(), stroke_width: $('#swidth').val()}, 
-		(rotate ? {transform: 'rotate(' + rotate + ')'} : {}));
-	var shape = $('#shape').val();
-	var node = null;
-	if (shape == 'rect') {
-		node = svg.rect(null, $('#left').val(), $('#top').val(), 
-			$('#width').val(), $('#height').val(), settings);
-	}
-	else if (shape == 'roundrect') {
-		node = svg.roundrect(null, $('#left').val(), $('#top').val(), 
-			$('#width').val(), $('#height').val(), 
-			$('#roundX').val(), $('#roundY').val(), settings);
-	}
-	else if (shape == 'circle') {
-		node = svg.circle(null, $('#centreX').val(), $('#centreY').val(), 
-			$('#radius').val(), settings);
-	}
-	else if (shape == 'ellipse') {
-		node = svg.ellipse(null, $('#centreX').val(), $('#centreY').val(), 
-			$('#radiusX').val(), $('#radiusY').val(), settings);
-	}
-	else if (shape == 'line') {
-		node = svg.line(null, $('#startX').val(), $('#startY').val(), 
-			$('#endX').val(), $('#endY').val(), settings);
-	}
-	drawNodes[drawNodes.length] = node;
-}
-
-// Remove the last drawn element
-function undo() {
-	if (!drawNodes.length) {
-		return;
-	}
-	var svg = svgManager.getSVGFor(sketchpad);
-	svg.remove(drawNodes[drawNodes.length - 1]);
-	drawNodes.splice(drawNodes.length - 1, 1);
-}
-
-// Clear the canvas
-function erase(name) {
-	svgManager.getSVGFor($(name)).clear();
-	drawNodes = [];
-}
-
-// -----------------------------------------------------------------------------
-
-// Initialise the graphing options
-function setGraphOptions() {
-	var html = '';
-	var chartTypes = svgGraphing.chartTypes();
-	for (var id in chartTypes) {
-		html += '<option value="' + id + '">' + chartTypes[id].title() + '</option>';
-	}
-	$('#chartType').html(html)[0].selectedIndex = 0;
-}
-
-var firstGraph = true;
-var chartArea = [[0.1, 0.1, 0.95, 0.9], [0.2, 0.1, 0.95, 0.9],
-	[0.1, 0.1, 0.8, 0.9], [0.1, 0.25, 0.9, 0.9], [0.1, 0.1, 0.9, 0.8]];
-var legendArea = [[0.0, 0.0, 0.0, 0.0], [0.005, 0.1, 0.125, 0.5],
-	[0.875, 0.1, 0.995, 0.5], [0.2, 0.1, 0.8, 0.2], [0.2, 0.9, 0.8, 0.995]];
-var fills = [['lightblue', 'url(#fadeBlue)'], ['pink', 'url(#fadeRed)'],
-	['lightgreen', 'url(#fadeGreen)']];
-
-// Draw a new graph with the selected options
-function graphIt() {
-	var svg = svgManager.getSVGFor('#svggraph');
-	if (firstGraph) {
-		var defs = svg.defs();
-		svg.linearGradient(defs, 'fadeBlue', [[0, 'lightblue'], [1, 'blue']]);
-		svg.linearGradient(defs, 'fadeRed', [[0, 'pink'], [1, 'red']]);
-		svg.linearGradient(defs, 'fadeGreen', [[0, 'lightgreen'], [1, 'green']]);
-		svg.graph.noDraw().title('Browser Usage').
-			addSeries('IE', [95.97, 91.80, 88.16, 86.64], 'lightblue', 'blue', 3).
-			addSeries('Netscape', [3.39, 2.83, 1.61, 0.00], 'pink', 'red', 3).
-			addSeries('Firefox', [0.00, 4.06, 8.13, 9.95], 'lightgreen', 'green', 3).
-			chartFormat('lightyellow', 'gray').
-			gridlines({stroke: 'gray', stroke_dasharray: '2,2'}, 'gray').
-			status(setStatus);
-		svg.graph.xAxis.title('Year').scale(0, 3).
-			ticks(1, 0).labels(['2002', '2004', '2005', '2006']);
-		svg.graph.yAxis.title('Percentage').scale(-5, 105).ticks(10, 5);
-		svg.graph.legend.settings({fill: 'lightgoldenrodyellow', stroke: 'gray'});
-		firstGraph = false;
-	}
-	var chartType = $('#chartType').val();
-	var legendPos = $('#legendPos').val() - 0;
-	var seriesFill = ($('#seriesFill').val() == 'plain' ? 0 : 1);
-	svg.graph.legend.show(legendPos).area(legendArea[legendPos]);
-	for (var i = 0; i < 3; i++) {
-		svg.graph.series()[i].format((fills[i])[seriesFill]);
-	}
-	svg.graph.noDraw().chartArea(chartArea[legendPos]).
-		chartType(chartType, {explode: [2], explodeDist: 10}).redraw();
-	chartType = svgGraphing.chartTypes()[chartType];
-	$('#graphDesc').text(chartType.description());
-	var options = '';
-	for (var i = 0; i < chartType.options().length; i++) {
-		options += '<li>' + chartType.options()[i] + '</li>';
-	}
-	$('#graphOptions').html(options || '<li>None</li>');
-}
-
-// Show the status values in a callback from the graph
-function setStatus(value) {
-	window.status = value;
-}
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ajaxfileupload.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ajaxfileupload.js
deleted file mode 100644
index ff4d3e9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ajaxfileupload.js
+++ /dev/null
@@ -1,205 +0,0 @@
-jQuery.extend({
-
-    createUploadIframe: function(id, uri)
-    {
-            //create frame
-            var frameId = 'jUploadFrame' + id;
-            
-            if(window.ActiveXObject) {
-                var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />');
-                if(typeof uri== 'boolean'){
-                    io.src = 'javascript:false';
-                }
-                else if(typeof uri== 'string'){
-                    io.src = uri;
-                }
-            }
-            else {
-                var io = document.createElement('iframe');
-                io.id = frameId;
-                io.name = frameId;
-            }
-            io.style.position = 'absolute';
-            io.style.top = '-1000px';
-            io.style.left = '-1000px';
-
-            document.body.appendChild(io);
-
-            return io            
-    },
-    createUploadForm: function(id, fileElementId)
-    {
-        //create form    
-        var formId = 'jUploadForm' + id;
-        var fileId = 'jUploadFile' + id;
-        var form = $('<form  action="" method="POST" name="' + formId + '" id="' + formId + '" enctype="multipart/form-data"></form>');    
-        var oldElement = $('#' + fileElementId);
-        var newElement = $(oldElement).clone();
-        $(oldElement).attr('id', fileId);
-        $(oldElement).before(newElement);
-        $(oldElement).appendTo(form);
-        //set attributes
-        $(form).css('position', 'absolute');
-        $(form).css('top', '-1200px');
-        $(form).css('left', '-1200px');
-        $(form).appendTo('body');        
-        return form;
-    },
-
-    ajaxFileUpload: function(s) {
-        // TODO introduce global settings, allowing the client to modify them for all requests, not only timeout        
-        s = jQuery.extend({}, jQuery.ajaxSettings, s);
-        var id = new Date().getTime()        
-        var form = jQuery.createUploadForm(id, s.fileElementId);
-        var io = jQuery.createUploadIframe(id, s.secureuri);
-        var frameId = 'jUploadFrame' + id;
-        var formId = 'jUploadForm' + id;        
-        // Watch for a new set of requests
-        if ( s.global && ! jQuery.active++ )
-        {
-            jQuery.event.trigger( "ajaxStart" );
-        }            
-        var requestDone = false;
-        // Create the request object
-        var xml = {}   
-        if ( s.global )
-            jQuery.event.trigger("ajaxSend", [xml, s]);
-        // Wait for a response to come back
-        var uploadCallback = function(isTimeout)
-        {            
-            var io = document.getElementById(frameId);
-            try 
-            {                
-                if(io.contentWindow)
-                {
-                     xml.responseText = io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
-                     xml.responseXML = io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
-                     
-                }else if(io.contentDocument)
-                {
-                     xml.responseText = io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
-                    xml.responseXML = io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
-                }                        
-            }catch(e)
-            {
-                jQuery.handleError(s, xml, null, e);
-            }
-            if ( xml || isTimeout == "timeout") 
-            {                
-                requestDone = true;
-                var status;
-                try {
-                    status = isTimeout != "timeout" ? "success" : "error";
-                    // Make sure that the request was successful or notmodified
-                    if ( status != "error" )
-                    {
-                        // process the data (runs the xml through httpData regardless of callback)
-                        var data = jQuery.uploadHttpData( xml, s.dataType );    
-                        // If a local callback was specified, fire it and pass it the data
-                        if ( s.success )
-                            s.success( data, status );
-    
-                        // Fire the global callback
-                        if( s.global )
-                            jQuery.event.trigger( "ajaxSuccess", [xml, s] );
-                    } else
-                        jQuery.handleError(s, xml, status);
-                } catch(e) 
-                {
-                    status = "error";
-                    jQuery.handleError(s, xml, status, e);
-                }
-
-                // The request was completed
-                if( s.global )
-                    jQuery.event.trigger( "ajaxComplete", [xml, s] );
-
-                // Handle the global AJAX counter
-                if ( s.global && ! --jQuery.active )
-                    jQuery.event.trigger( "ajaxStop" );
-
-                // Process result
-                if ( s.complete )
-                    s.complete(xml, status);
-
-                jQuery(io).unbind()
-
-                setTimeout(function()
-                                    {    try 
-                                        {
-                                            $(io).remove();
-                                            $(form).remove();    
-                                            
-                                        } catch(e) 
-                                        {
-                                            jQuery.handleError(s, xml, null, e);
-                                        }                                    
-
-                                    }, 100)
-
-                xml = null
-
-            }
-        }
-        // Timeout checker
-        if ( s.timeout > 0 ) 
-        {
-            setTimeout(function(){
-                // Check to see if the request is still happening
-                if( !requestDone ) uploadCallback( "timeout" );
-            }, s.timeout);
-        }
-        try 
-        {
-           // var io = $('#' + frameId);
-            var form = $('#' + formId);
-            $(form).attr('action', s.url);
-            $(form).attr('method', 'POST');
-            $(form).attr('target', frameId);
-            if(typeof(AUTH_TOKEN) != "undefined") 
-            {
-              $(form).append('<input type="hidden" value="'+AUTH_TOKEN+'" name="authenticity_token"/>');
-            }
-            if(form.encoding)
-            {
-                form.encoding = 'multipart/form-data';                
-            }
-            else
-            {                
-                form.enctype = 'multipart/form-data';
-            }            
-            $(form).submit();
-
-        } catch(e) 
-        {            
-            jQuery.handleError(s, xml, null, e);
-        }
-        if(window.attachEvent){
-            document.getElementById(frameId).attachEvent('onload', uploadCallback);
-        }
-        else{
-            document.getElementById(frameId).addEventListener('load', uploadCallback, false);
-        }         
-        return {abort: function () {}};    
-
-    },
-
-    uploadHttpData: function( r, type ) {
-        var data = !type;
-        data = type == "xml" || data ? r.responseXML : r.responseText;
-        // If the type is "script", eval it in global context
-        if ( type == "script" )
-            jQuery.globalEval( data );
-        // Get the JavaScript object, if JSON is used.
-        if ( type == "json" )
-            eval( "data = " + data );
-        // evaluate scripts within html
-        if ( type == "html" )
-            jQuery("<div>").html(data);
-            //jQuery("<div>").html(data).evalScripts();
-            //alert($('param', data).each(function(){alert($(this).attr('value'));}));
-        return data;
-    }
-})
-
-
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-bbq.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-bbq.js
deleted file mode 100644
index f251123..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-bbq.js
+++ /dev/null
@@ -1,1137 +0,0 @@
-/*!
- * jQuery BBQ: Back Button & Query Library - v1.2.1 - 2/17/2010
- * http://benalman.com/projects/jquery-bbq-plugin/
- * 
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-
-// Script: jQuery BBQ: Back Button & Query Library
-//
-// *Version: 1.2.1, Last updated: 2/17/2010*
-// 
-// Project Home - http://benalman.com/projects/jquery-bbq-plugin/
-// GitHub       - http://github.com/cowboy/jquery-bbq/
-// Source       - http://github.com/cowboy/jquery-bbq/raw/master/jquery.ba-bbq.js
-// (Minified)   - http://github.com/cowboy/jquery-bbq/raw/master/jquery.ba-bbq.min.js (4.0kb)
-// 
-// About: License
-// 
-// Copyright (c) 2010 "Cowboy" Ben Alman,
-// Dual licensed under the MIT and GPL licenses.
-// http://benalman.com/about/license/
-// 
-// About: Examples
-// 
-// These working examples, complete with fully commented code, illustrate a few
-// ways in which this plugin can be used.
-// 
-// Basic AJAX     - http://benalman.com/code/projects/jquery-bbq/examples/fragment-basic/
-// Advanced AJAX  - http://benalman.com/code/projects/jquery-bbq/examples/fragment-advanced/
-// jQuery UI Tabs - http://benalman.com/code/projects/jquery-bbq/examples/fragment-jquery-ui-tabs/
-// Deparam        - http://benalman.com/code/projects/jquery-bbq/examples/deparam/
-// 
-// About: Support and Testing
-// 
-// Information about what version or versions of jQuery this plugin has been
-// tested with, what browsers it has been tested in, and where the unit tests
-// reside (so you can test it yourself).
-// 
-// jQuery Versions - 1.3.2, 1.4.1, 1.4.2
-// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.7, Safari 3-4,
-//                   Chrome 4-5, Opera 9.6-10.1.
-// Unit Tests      - http://benalman.com/code/projects/jquery-bbq/unit/
-// 
-// About: Release History
-// 
-// 1.2.1 - (2/17/2010) Actually fixed the stale window.location Safari bug from
-//         <jQuery hashchange event> in BBQ, which was the main reason for the
-//         previous release!
-// 1.2   - (2/16/2010) Integrated <jQuery hashchange event> v1.2, which fixes a
-//         Safari bug, the event can now be bound before DOM ready, and IE6/7
-//         page should no longer scroll when the event is first bound. Also
-//         added the <jQuery.param.fragment.noEscape> method, and reworked the
-//         <hashchange event (BBQ)> internal "add" method to be compatible with
-//         changes made to the jQuery 1.4.2 special events API.
-// 1.1.1 - (1/22/2010) Integrated <jQuery hashchange event> v1.1, which fixes an
-//         obscure IE8 EmulateIE7 meta tag compatibility mode bug.
-// 1.1   - (1/9/2010) Broke out the jQuery BBQ event.special <hashchange event>
-//         functionality into a separate plugin for users who want just the
-//         basic event & back button support, without all the extra awesomeness
-//         that BBQ provides. This plugin will be included as part of jQuery BBQ,
-//         but also be available separately. See <jQuery hashchange event>
-//         plugin for more information. Also added the <jQuery.bbq.removeState>
-//         method and added additional <jQuery.deparam> examples.
-// 1.0.3 - (12/2/2009) Fixed an issue in IE 6 where location.search and
-//         location.hash would report incorrectly if the hash contained the ?
-//         character. Also <jQuery.param.querystring> and <jQuery.param.fragment>
-//         will no longer parse params out of a URL that doesn't contain ? or #,
-//         respectively.
-// 1.0.2 - (10/10/2009) Fixed an issue in IE 6/7 where the hidden IFRAME caused
-//         a "This page contains both secure and nonsecure items." warning when
-//         used on an https:// page.
-// 1.0.1 - (10/7/2009) Fixed an issue in IE 8. Since both "IE7" and "IE8
-//         Compatibility View" modes erroneously report that the browser
-//         supports the native window.onhashchange event, a slightly more
-//         robust test needed to be added.
-// 1.0   - (10/2/2009) Initial release
-
-(function($,window){
-  '$:nomunge'; // Used by YUI compressor.
-  
-  // Some convenient shortcuts.
-  var undefined,
-    aps = Array.prototype.slice,
-    decode = decodeURIComponent,
-    
-    // Method / object references.
-    jq_param = $.param,
-    jq_param_fragment,
-    jq_deparam,
-    jq_deparam_fragment,
-    jq_bbq = $.bbq = $.bbq || {},
-    jq_bbq_pushState,
-    jq_bbq_getState,
-    jq_elemUrlAttr,
-    jq_event_special = $.event.special,
-    
-    // Reused strings.
-    str_hashchange = 'hashchange',
-    str_querystring = 'querystring',
-    str_fragment = 'fragment',
-    str_elemUrlAttr = 'elemUrlAttr',
-    str_location = 'location',
-    str_href = 'href',
-    str_src = 'src',
-    
-    // Reused RegExp.
-    re_trim_querystring = /^.*\?|#.*$/g,
-    re_trim_fragment = /^.*\#/,
-    re_no_escape,
-    
-    // Used by jQuery.elemUrlAttr.
-    elemUrlAttr_cache = {};
-  
-  // A few commonly used bits, broken out to help reduce minified file size.
-  
-  function is_string( arg ) {
-    return typeof arg === 'string';
-  };
-  
-  // Why write the same function twice? Let's curry! Mmmm, curry..
-  
-  function curry( func ) {
-    var args = aps.call( arguments, 1 );
-    
-    return function() {
-      return func.apply( this, args.concat( aps.call( arguments ) ) );
-    };
-  };
-  
-  // Get location.hash (or what you'd expect location.hash to be) sans any
-  // leading #. Thanks for making this necessary, Firefox!
-  function get_fragment( url ) {
-    return url.replace( /^[^#]*#?(.*)$/, '$1' );
-  };
-  
-  // Get location.search (or what you'd expect location.search to be) sans any
-  // leading #. Thanks for making this necessary, IE6!
-  function get_querystring( url ) {
-    return url.replace( /(?:^[^?#]*\?([^#]*).*$)?.*/, '$1' );
-  };
-  
-  // Section: Param (to string)
-  // 
-  // Method: jQuery.param.querystring
-  // 
-  // Retrieve the query string from a URL or if no arguments are passed, the
-  // current window.location.
-  // 
-  // Usage:
-  // 
-  // > jQuery.param.querystring( [ url ] );
-  // 
-  // Arguments:
-  // 
-  //  url - (String) A URL containing query string params to be parsed. If url
-  //    is not passed, the current window.location is used.
-  // 
-  // Returns:
-  // 
-  //  (String) The parsed query string, with any leading "?" removed.
-  //
-  
-  // Method: jQuery.param.querystring (build url)
-  // 
-  // Merge a URL, with or without pre-existing query string params, plus any
-  // object, params string or URL containing query string params into a new URL.
-  // 
-  // Usage:
-  // 
-  // > jQuery.param.querystring( url, params [, merge_mode ] );
-  // 
-  // Arguments:
-  // 
-  //  url - (String) A valid URL for params to be merged into. This URL may
-  //    contain a query string and/or fragment (hash).
-  //  params - (String) A params string or URL containing query string params to
-  //    be merged into url.
-  //  params - (Object) A params object to be merged into url.
-  //  merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
-  //    specified, and is as-follows:
-  // 
-  //    * 0: params in the params argument will override any query string
-  //         params in url.
-  //    * 1: any query string params in url will override params in the params
-  //         argument.
-  //    * 2: params argument will completely replace any query string in url.
-  // 
-  // Returns:
-  // 
-  //  (String) Either a params string with urlencoded data or a URL with a
-  //    urlencoded query string in the format 'a=b&c=d&e=f'.
-  
-  // Method: jQuery.param.fragment
-  // 
-  // Retrieve the fragment (hash) from a URL or if no arguments are passed, the
-  // current window.location.
-  // 
-  // Usage:
-  // 
-  // > jQuery.param.fragment( [ url ] );
-  // 
-  // Arguments:
-  // 
-  //  url - (String) A URL containing fragment (hash) params to be parsed. If
-  //    url is not passed, the current window.location is used.
-  // 
-  // Returns:
-  // 
-  //  (String) The parsed fragment (hash) string, with any leading "#" removed.
-  
-  // Method: jQuery.param.fragment (build url)
-  // 
-  // Merge a URL, with or without pre-existing fragment (hash) params, plus any
-  // object, params string or URL containing fragment (hash) params into a new
-  // URL.
-  // 
-  // Usage:
-  // 
-  // > jQuery.param.fragment( url, params [, merge_mode ] );
-  // 
-  // Arguments:
-  // 
-  //  url - (String) A valid URL for params to be merged into. This URL may
-  //    contain a query string and/or fragment (hash).
-  //  params - (String) A params string or URL containing fragment (hash) params
-  //    to be merged into url.
-  //  params - (Object) A params object to be merged into url.
-  //  merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
-  //    specified, and is as-follows:
-  // 
-  //    * 0: params in the params argument will override any fragment (hash)
-  //         params in url.
-  //    * 1: any fragment (hash) params in url will override params in the
-  //         params argument.
-  //    * 2: params argument will completely replace any query string in url.
-  // 
-  // Returns:
-  // 
-  //  (String) Either a params string with urlencoded data or a URL with a
-  //    urlencoded fragment (hash) in the format 'a=b&c=d&e=f'.
-  
-  function jq_param_sub( is_fragment, get_func, url, params, merge_mode ) {
-    var result,
-      qs,
-      matches,
-      url_params,
-      hash;
-    
-    if ( params !== undefined ) {
-      // Build URL by merging params into url string.
-      
-      // matches[1] = url part that precedes params, not including trailing ?/#
-      // matches[2] = params, not including leading ?/#
-      // matches[3] = if in 'querystring' mode, hash including leading #, otherwise ''
-      matches = url.match( is_fragment ? /^([^#]*)\#?(.*)$/ : /^([^#?]*)\??([^#]*)(#?.*)/ );
-      
-      // Get the hash if in 'querystring' mode, and it exists.
-      hash = matches[3] || '';
-      
-      if ( merge_mode === 2 && is_string( params ) ) {
-        // If merge_mode is 2 and params is a string, merge the fragment / query
-        // string into the URL wholesale, without converting it into an object.
-        qs = params.replace( is_fragment ? re_trim_fragment : re_trim_querystring, '' );
-        
-      } else {
-        // Convert relevant params in url to object.
-        url_params = jq_deparam( matches[2] );
-        
-        params = is_string( params )
-          
-          // Convert passed params string into object.
-          ? jq_deparam[ is_fragment ? str_fragment : str_querystring ]( params )
-          
-          // Passed params object.
-          : params;
-        
-        qs = merge_mode === 2 ? params                              // passed params replace url params
-          : merge_mode === 1  ? $.extend( {}, params, url_params )  // url params override passed params
-          : $.extend( {}, url_params, params );                     // passed params override url params
-        
-        // Convert params object to a string.
-        qs = jq_param( qs );
-        
-        // Unescape characters specified via $.param.noEscape. Since only hash-
-        // history users have requested this feature, it's only enabled for
-        // fragment-related params strings.
-        if ( is_fragment ) {
-          qs = qs.replace( re_no_escape, decode );
-        }
-      }
-      
-      // Build URL from the base url, querystring and hash. In 'querystring'
-      // mode, ? is only added if a query string exists. In 'fragment' mode, #
-      // is always added.
-      result = matches[1] + ( is_fragment ? '#' : qs || !matches[1] ? '?' : '' ) + qs + hash;
-      
-    } else {
-      // If URL was passed in, parse params from URL string, otherwise parse
-      // params from window.location.
-      result = get_func( url !== undefined ? url : window[ str_location ][ str_href ] );
-    }
-    
-    return result;
-  };
-  
-  jq_param[ str_querystring ]                  = curry( jq_param_sub, 0, get_querystring );
-  jq_param[ str_fragment ] = jq_param_fragment = curry( jq_param_sub, 1, get_fragment );
-  
-  // Method: jQuery.param.fragment.noEscape
-  // 
-  // Specify characters that will be left unescaped when fragments are created
-  // or merged using <jQuery.param.fragment>, or when the fragment is modified
-  // using <jQuery.bbq.pushState>. This option only applies to serialized data
-  // object fragments, and not set-as-string fragments. Does not affect the
-  // query string. Defaults to ",/" (comma, forward slash).
-  // 
-  // Note that this is considered a purely aesthetic option, and will help to
-  // create URLs that "look pretty" in the address bar or bookmarks, without
-  // affecting functionality in any way. That being said, be careful to not
-  // unescape characters that are used as delimiters or serve a special
-  // purpose, such as the "#?&=+" (octothorpe, question mark, ampersand,
-  // equals, plus) characters.
-  // 
-  // Usage:
-  // 
-  // > jQuery.param.fragment.noEscape( [ chars ] );
-  // 
-  // Arguments:
-  // 
-  //  chars - (String) The characters to not escape in the fragment. If
-  //    unspecified, defaults to empty string (escape all characters).
-  // 
-  // Returns:
-  // 
-  //  Nothing.
-  
-  jq_param_fragment.noEscape = function( chars ) {
-    chars = chars || '';
-    var arr = $.map( chars.split(''), encodeURIComponent );
-    re_no_escape = new RegExp( arr.join('|'), 'g' );
-  };
-  
-  // A sensible default. These are the characters people seem to complain about
-  // "uglifying up the URL" the most.
-  jq_param_fragment.noEscape( ',/' );
-  
-  // Section: Deparam (from string)
-  // 
-  // Method: jQuery.deparam
-  // 
-  // Deserialize a params string into an object, optionally coercing numbers,
-  // booleans, null and undefined values; this method is the counterpart to the
-  // internal jQuery.param method.
-  // 
-  // Usage:
-  // 
-  // > jQuery.deparam( params [, coerce ] );
-  // 
-  // Arguments:
-  // 
-  //  params - (String) A params string to be parsed.
-  //  coerce - (Boolean) If true, coerces any numbers or true, false, null, and
-  //    undefined to their actual value. Defaults to false if omitted.
-  // 
-  // Returns:
-  // 
-  //  (Object) An object representing the deserialized params string.
-  
-  $.deparam = jq_deparam = function( params, coerce ) {
-    var obj = {},
-      coerce_types = { 'true': !0, 'false': !1, 'null': null };
-    
-    // Iterate over all name=value pairs.
-    $.each( params.replace( /\+/g, ' ' ).split( '&' ), function(j,v){
-      var param = v.split( '=' ),
-        key = decode( param[0] ),
-        val,
-        cur = obj,
-        i = 0,
-        
-        // If key is more complex than 'foo', like 'a[]' or 'a[b][c]', split it
-        // into its component parts.
-        keys = key.split( '][' ),
-        keys_last = keys.length - 1;
-      
-      // If the first keys part contains [ and the last ends with ], then []
-      // are correctly balanced.
-      if ( /\[/.test( keys[0] ) && /\]$/.test( keys[ keys_last ] ) ) {
-        // Remove the trailing ] from the last keys part.
-        keys[ keys_last ] = keys[ keys_last ].replace( /\]$/, '' );
-        
-        // Split first keys part into two parts on the [ and add them back onto
-        // the beginning of the keys array.
-        keys = keys.shift().split('[').concat( keys );
-        
-        keys_last = keys.length - 1;
-      } else {
-        // Basic 'foo' style key.
-        keys_last = 0;
-      }
-      
-      // Are we dealing with a name=value pair, or just a name?
-      if ( param.length === 2 ) {
-        val = decode( param[1] );
-        
-        // Coerce values.
-        if ( coerce ) {
-          val = val && !isNaN(val)            ? +val              // number
-            : val === 'undefined'             ? undefined         // undefined
-            : coerce_types[val] !== undefined ? coerce_types[val] // true, false, null
-            : val;                                                // string
-        }
-        
-        if ( keys_last ) {
-          // Complex key, build deep object structure based on a few rules:
-          // * The 'cur' pointer starts at the object top-level.
-          // * [] = array push (n is set to array length), [n] = array if n is 
-          //   numeric, otherwise object.
-          // * If at the last keys part, set the value.
-          // * For each keys part, if the current level is undefined create an
-          //   object or array based on the type of the next keys part.
-          // * Move the 'cur' pointer to the next level.
-          // * Rinse & repeat.
-          for ( ; i <= keys_last; i++ ) {
-            key = keys[i] === '' ? cur.length : keys[i];
-            cur = cur[key] = i < keys_last
-              ? cur[key] || ( keys[i+1] && isNaN( keys[i+1] ) ? {} : [] )
-              : val;
-          }
-          
-        } else {
-          // Simple key, even simpler rules, since only scalars and shallow
-          // arrays are allowed.
-          
-          if ( $.isArray( obj[key] ) ) {
-            // val is already an array, so push on the next value.
-            obj[key].push( val );
-            
-          } else if ( obj[key] !== undefined ) {
-            // val isn't an array, but since a second value has been specified,
-            // convert val into an array.
-            obj[key] = [ obj[key], val ];
-            
-          } else {
-            // val is a scalar.
-            obj[key] = val;
-          }
-        }
-        
-      } else if ( key ) {
-        // No value was defined, so set something meaningful.
-        obj[key] = coerce
-          ? undefined
-          : '';
-      }
-    });
-    
-    return obj;
-  };
-  
-  // Method: jQuery.deparam.querystring
-  // 
-  // Parse the query string from a URL or the current window.location,
-  // deserializing it into an object, optionally coercing numbers, booleans,
-  // null and undefined values.
-  // 
-  // Usage:
-  // 
-  // > jQuery.deparam.querystring( [ url ] [, coerce ] );
-  // 
-  // Arguments:
-  // 
-  //  url - (String) An optional params string or URL containing query string
-  //    params to be parsed. If url is omitted, the current window.location
-  //    is used.
-  //  coerce - (Boolean) If true, coerces any numbers or true, false, null, and
-  //    undefined to their actual value. Defaults to false if omitted.
-  // 
-  // Returns:
-  // 
-  //  (Object) An object representing the deserialized params string.
-  
-  // Method: jQuery.deparam.fragment
-  // 
-  // Parse the fragment (hash) from a URL or the current window.location,
-  // deserializing it into an object, optionally coercing numbers, booleans,
-  // null and undefined values.
-  // 
-  // Usage:
-  // 
-  // > jQuery.deparam.fragment( [ url ] [, coerce ] );
-  // 
-  // Arguments:
-  // 
-  //  url - (String) An optional params string or URL containing fragment (hash)
-  //    params to be parsed. If url is omitted, the current window.location
-  //    is used.
-  //  coerce - (Boolean) If true, coerces any numbers or true, false, null, and
-  //    undefined to their actual value. Defaults to false if omitted.
-  // 
-  // Returns:
-  // 
-  //  (Object) An object representing the deserialized params string.
-  
-  function jq_deparam_sub( is_fragment, url_or_params, coerce ) {
-    if ( url_or_params === undefined || typeof url_or_params === 'boolean' ) {
-      // url_or_params not specified.
-      coerce = url_or_params;
-      url_or_params = jq_param[ is_fragment ? str_fragment : str_querystring ]();
-    } else {
-      url_or_params = is_string( url_or_params )
-        ? url_or_params.replace( is_fragment ? re_trim_fragment : re_trim_querystring, '' )
-        : url_or_params;
-    }
-    
-    return jq_deparam( url_or_params, coerce );
-  };
-  
-  jq_deparam[ str_querystring ]                    = curry( jq_deparam_sub, 0 );
-  jq_deparam[ str_fragment ] = jq_deparam_fragment = curry( jq_deparam_sub, 1 );
-  
-  // Section: Element manipulation
-  // 
-  // Method: jQuery.elemUrlAttr
-  // 
-  // Get the internal "Default URL attribute per tag" list, or augment the list
-  // with additional tag-attribute pairs, in case the defaults are insufficient.
-  // 
-  // In the <jQuery.fn.querystring> and <jQuery.fn.fragment> methods, this list
-  // is used to determine which attribute contains the URL to be modified, if
-  // an "attr" param is not specified.
-  // 
-  // Default Tag-Attribute List:
-  // 
-  //  a      - href
-  //  base   - href
-  //  iframe - src
-  //  img    - src
-  //  input  - src
-  //  form   - action
-  //  link   - href
-  //  script - src
-  // 
-  // Usage:
-  // 
-  // > jQuery.elemUrlAttr( [ tag_attr ] );
-  // 
-  // Arguments:
-  // 
-  //  tag_attr - (Object) An object containing a list of tag names and their
-  //    associated default attribute names in the format { tag: 'attr', ... } to
-  //    be merged into the internal tag-attribute list.
-  // 
-  // Returns:
-  // 
-  //  (Object) An object containing all stored tag-attribute values.
-  
-  // Only define function and set defaults if function doesn't already exist, as
-  // the urlInternal plugin will provide this method as well.
-  $[ str_elemUrlAttr ] || ($[ str_elemUrlAttr ] = function( obj ) {
-    return $.extend( elemUrlAttr_cache, obj );
-  })({
-    a: str_href,
-    base: str_href,
-    iframe: str_src,
-    img: str_src,
-    input: str_src,
-    form: 'action',
-    link: str_href,
-    script: str_src
-  });
-  
-  jq_elemUrlAttr = $[ str_elemUrlAttr ];
-  
-  // Method: jQuery.fn.querystring
-  // 
-  // Update URL attribute in one or more elements, merging the current URL (with
-  // or without pre-existing query string params) plus any params object or
-  // string into a new URL, which is then set into that attribute. Like
-  // <jQuery.param.querystring (build url)>, but for all elements in a jQuery
-  // collection.
-  // 
-  // Usage:
-  // 
-  // > jQuery('selector').querystring( [ attr, ] params [, merge_mode ] );
-  // 
-  // Arguments:
-  // 
-  //  attr - (String) Optional name of an attribute that will contain a URL to
-  //    merge params or url into. See <jQuery.elemUrlAttr> for a list of default
-  //    attributes.
-  //  params - (Object) A params object to be merged into the URL attribute.
-  //  params - (String) A URL containing query string params, or params string
-  //    to be merged into the URL attribute.
-  //  merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
-  //    specified, and is as-follows:
-  //    
-  //    * 0: params in the params argument will override any params in attr URL.
-  //    * 1: any params in attr URL will override params in the params argument.
-  //    * 2: params argument will completely replace any query string in attr
-  //         URL.
-  // 
-  // Returns:
-  // 
-  //  (jQuery) The initial jQuery collection of elements, but with modified URL
-  //  attribute values.
-  
-  // Method: jQuery.fn.fragment
-  // 
-  // Update URL attribute in one or more elements, merging the current URL (with
-  // or without pre-existing fragment/hash params) plus any params object or
-  // string into a new URL, which is then set into that attribute. Like
-  // <jQuery.param.fragment (build url)>, but for all elements in a jQuery
-  // collection.
-  // 
-  // Usage:
-  // 
-  // > jQuery('selector').fragment( [ attr, ] params [, merge_mode ] );
-  // 
-  // Arguments:
-  // 
-  //  attr - (String) Optional name of an attribute that will contain a URL to
-  //    merge params into. See <jQuery.elemUrlAttr> for a list of default
-  //    attributes.
-  //  params - (Object) A params object to be merged into the URL attribute.
-  //  params - (String) A URL containing fragment (hash) params, or params
-  //    string to be merged into the URL attribute.
-  //  merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
-  //    specified, and is as-follows:
-  //    
-  //    * 0: params in the params argument will override any params in attr URL.
-  //    * 1: any params in attr URL will override params in the params argument.
-  //    * 2: params argument will completely replace any fragment (hash) in attr
-  //         URL.
-  // 
-  // Returns:
-  // 
-  //  (jQuery) The initial jQuery collection of elements, but with modified URL
-  //  attribute values.
-  
-  function jq_fn_sub( mode, force_attr, params, merge_mode ) {
-    if ( !is_string( params ) && typeof params !== 'object' ) {
-      // force_attr not specified.
-      merge_mode = params;
-      params = force_attr;
-      force_attr = undefined;
-    }
-    
-    return this.each(function(){
-      var that = $(this),
-        
-        // Get attribute specified, or default specified via $.elemUrlAttr.
-        attr = force_attr || jq_elemUrlAttr()[ ( this.nodeName || '' ).toLowerCase() ] || '',
-        
-        // Get URL value.
-        url = attr && that.attr( attr ) || '';
-      
-      // Update attribute with new URL.
-      that.attr( attr, jq_param[ mode ]( url, params, merge_mode ) );
-    });
-    
-  };
-  
-  $.fn[ str_querystring ] = curry( jq_fn_sub, str_querystring );
-  $.fn[ str_fragment ]    = curry( jq_fn_sub, str_fragment );
-  
-  // Section: History, hashchange event
-  // 
-  // Method: jQuery.bbq.pushState
-  // 
-  // Adds a 'state' into the browser history at the current position, setting
-  // location.hash and triggering any bound <hashchange event> callbacks
-  // (provided the new state is different than the previous state).
-  // 
-  // If no arguments are passed, an empty state is created, which is just a
-  // shortcut for jQuery.bbq.pushState( {}, 2 ).
-  // 
-  // Usage:
-  // 
-  // > jQuery.bbq.pushState( [ params [, merge_mode ] ] );
-  // 
-  // Arguments:
-  // 
-  //  params - (String) A serialized params string or a hash string beginning
-  //    with # to merge into location.hash.
-  //  params - (Object) A params object to merge into location.hash.
-  //  merge_mode - (Number) Merge behavior defaults to 0 if merge_mode is not
-  //    specified (unless a hash string beginning with # is specified, in which
-  //    case merge behavior defaults to 2), and is as-follows:
-  // 
-  //    * 0: params in the params argument will override any params in the
-  //         current state.
-  //    * 1: any params in the current state will override params in the params
-  //         argument.
-  //    * 2: params argument will completely replace current state.
-  // 
-  // Returns:
-  // 
-  //  Nothing.
-  // 
-  // Additional Notes:
-  // 
-  //  * Setting an empty state may cause the browser to scroll.
-  //  * Unlike the fragment and querystring methods, if a hash string beginning
-  //    with # is specified as the params agrument, merge_mode defaults to 2.
-  
-  jq_bbq.pushState = jq_bbq_pushState = function( params, merge_mode ) {
-    if ( is_string( params ) && /^#/.test( params ) && merge_mode === undefined ) {
-      // Params string begins with # and merge_mode not specified, so completely
-      // overwrite window.location.hash.
-      merge_mode = 2;
-    }
-    
-    var has_args = params !== undefined,
-      // Merge params into window.location using $.param.fragment.
-      url = jq_param_fragment( window[ str_location ][ str_href ],
-        has_args ? params : {}, has_args ? merge_mode : 2 );
-    
-    // Set new window.location.href. If hash is empty, use just # to prevent
-    // browser from reloading the page. Note that Safari 3 & Chrome barf on
-    // location.hash = '#'.
-    window[ str_location ][ str_href ] = url + ( /#/.test( url ) ? '' : '#' );
-  };
-  
-  // Method: jQuery.bbq.getState
-  // 
-  // Retrieves the current 'state' from the browser history, parsing
-  // location.hash for a specific key or returning an object containing the
-  // entire state, optionally coercing numbers, booleans, null and undefined
-  // values.
-  // 
-  // Usage:
-  // 
-  // > jQuery.bbq.getState( [ key ] [, coerce ] );
-  // 
-  // Arguments:
-  // 
-  //  key - (String) An optional state key for which to return a value.
-  //  coerce - (Boolean) If true, coerces any numbers or true, false, null, and
-  //    undefined to their actual value. Defaults to false.
-  // 
-  // Returns:
-  // 
-  //  (Anything) If key is passed, returns the value corresponding with that key
-  //    in the location.hash 'state', or undefined. If not, an object
-  //    representing the entire 'state' is returned.
-  
-  jq_bbq.getState = jq_bbq_getState = function( key, coerce ) {
-    return key === undefined || typeof key === 'boolean'
-      ? jq_deparam_fragment( key ) // 'key' really means 'coerce' here
-      : jq_deparam_fragment( coerce )[ key ];
-  };
-  
-  // Method: jQuery.bbq.removeState
-  // 
-  // Remove one or more keys from the current browser history 'state', creating
-  // a new state, setting location.hash and triggering any bound
-  // <hashchange event> callbacks (provided the new state is different than
-  // the previous state).
-  // 
-  // If no arguments are passed, an empty state is created, which is just a
-  // shortcut for jQuery.bbq.pushState( {}, 2 ).
-  // 
-  // Usage:
-  // 
-  // > jQuery.bbq.removeState( [ key [, key ... ] ] );
-  // 
-  // Arguments:
-  // 
-  //  key - (String) One or more key values to remove from the current state,
-  //    passed as individual arguments.
-  //  key - (Array) A single array argument that contains a list of key values
-  //    to remove from the current state.
-  // 
-  // Returns:
-  // 
-  //  Nothing.
-  // 
-  // Additional Notes:
-  // 
-  //  * Setting an empty state may cause the browser to scroll.
-  
-  jq_bbq.removeState = function( arr ) {
-    var state = {};
-    
-    // If one or more arguments is passed..
-    if ( arr !== undefined ) {
-      
-      // Get the current state.
-      state = jq_bbq_getState();
-      
-      // For each passed key, delete the corresponding property from the current
-      // state.
-      $.each( $.isArray( arr ) ? arr : arguments, function(i,v){
-        delete state[ v ];
-      });
-    }
-    
-    // Set the state, completely overriding any existing state.
-    jq_bbq_pushState( state, 2 );
-  };
-  
-  // Event: hashchange event (BBQ)
-  // 
-  // Usage in jQuery 1.4 and newer:
-  // 
-  // In jQuery 1.4 and newer, the event object passed into any hashchange event
-  // callback is augmented with a copy of the location.hash fragment at the time
-  // the event was triggered as its event.fragment property. In addition, the
-  // event.getState method operates on this property (instead of location.hash)
-  // which allows this fragment-as-a-state to be referenced later, even after
-  // window.location may have changed.
-  // 
-  // Note that event.fragment and event.getState are not defined according to
-  // W3C (or any other) specification, but will still be available whether or
-  // not the hashchange event exists natively in the browser, because of the
-  // utility they provide.
-  // 
-  // The event.fragment property contains the output of <jQuery.param.fragment>
-  // and the event.getState method is equivalent to the <jQuery.bbq.getState>
-  // method.
-  // 
-  // > $(window).bind( 'hashchange', function( event ) {
-  // >   var hash_str = event.fragment,
-  // >     param_obj = event.getState(),
-  // >     param_val = event.getState( 'param_name' ),
-  // >     param_val_coerced = event.getState( 'param_name', true );
-  // >   ...
-  // > });
-  // 
-  // Usage in jQuery 1.3.2:
-  // 
-  // In jQuery 1.3.2, the event object cannot to be augmented as in jQuery 1.4+,
-  // so the fragment state isn't bound to the event object and must instead be
-  // parsed using the <jQuery.param.fragment> and <jQuery.bbq.getState> methods.
-  // 
-  // > $(window).bind( 'hashchange', function( event ) {
-  // >   var hash_str = $.param.fragment(),
-  // >     param_obj = $.bbq.getState(),
-  // >     param_val = $.bbq.getState( 'param_name' ),
-  // >     param_val_coerced = $.bbq.getState( 'param_name', true );
-  // >   ...
-  // > });
-  // 
-  // Additional Notes:
-  // 
-  // * Due to changes in the special events API, jQuery BBQ v1.2 or newer is
-  //   required to enable the augmented event object in jQuery 1.4.2 and newer.
-  // * See <jQuery hashchange event> for more detailed information.
-  
-  jq_event_special[ str_hashchange ] = $.extend( jq_event_special[ str_hashchange ], {
-    
-    // Augmenting the event object with the .fragment property and .getState
-    // method requires jQuery 1.4 or newer. Note: with 1.3.2, everything will
-    // work, but the event won't be augmented)
-    add: function( handleObj ) {
-      var old_handler;
-      
-      function new_handler(e) {
-        // e.fragment is set to the value of location.hash (with any leading #
-        // removed) at the time the event is triggered.
-        var hash = e[ str_fragment ] = jq_param_fragment();
-        
-        // e.getState() works just like $.bbq.getState(), but uses the
-        // e.fragment property stored on the event object.
-        e.getState = function( key, coerce ) {
-          return key === undefined || typeof key === 'boolean'
-            ? jq_deparam( hash, key ) // 'key' really means 'coerce' here
-            : jq_deparam( hash, coerce )[ key ];
-        };
-        
-        old_handler.apply( this, arguments );
-      };
-      
-      // This may seem a little complicated, but it normalizes the special event
-      // .add method between jQuery 1.4/1.4.1 and 1.4.2+
-      if ( $.isFunction( handleObj ) ) {
-        // 1.4, 1.4.1
-        old_handler = handleObj;
-        return new_handler;
-      } else {
-        // 1.4.2+
-        old_handler = handleObj.handler;
-        handleObj.handler = new_handler;
-      }
-    }
-    
-  });
-  
-})(jQuery,this);
-
-/*!
- * jQuery hashchange event - v1.2 - 2/11/2010
- * http://benalman.com/projects/jquery-hashchange-plugin/
- * 
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-
-// Script: jQuery hashchange event
-//
-// *Version: 1.2, Last updated: 2/11/2010*
-// 
-// Project Home - http://benalman.com/projects/jquery-hashchange-plugin/
-// GitHub       - http://github.com/cowboy/jquery-hashchange/
-// Source       - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.js
-// (Minified)   - http://github.com/cowboy/jquery-hashchange/raw/master/jquery.ba-hashchange.min.js (1.1kb)
-// 
-// About: License
-// 
-// Copyright (c) 2010 "Cowboy" Ben Alman,
-// Dual licensed under the MIT and GPL licenses.
-// http://benalman.com/about/license/
-// 
-// About: Examples
-// 
-// This working example, complete with fully commented code, illustrate one way
-// in which this plugin can be used.
-// 
-// hashchange event - http://benalman.com/code/projects/jquery-hashchange/examples/hashchange/
-// 
-// About: Support and Testing
-// 
-// Information about what version or versions of jQuery this plugin has been
-// tested with, what browsers it has been tested in, and where the unit tests
-// reside (so you can test it yourself).
-// 
-// jQuery Versions - 1.3.2, 1.4.1, 1.4.2
-// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.7, Safari 3-4, Chrome, Opera 9.6-10.1.
-// Unit Tests      - http://benalman.com/code/projects/jquery-hashchange/unit/
-// 
-// About: Known issues
-// 
-// While this jQuery hashchange event implementation is quite stable and robust,
-// there are a few unfortunate browser bugs surrounding expected hashchange
-// event-based behaviors, independent of any JavaScript window.onhashchange
-// abstraction. See the following examples for more information:
-// 
-// Chrome: Back Button - http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/
-// Firefox: Remote XMLHttpRequest - http://benalman.com/code/projects/jquery-hashchange/examples/bug-firefox-remote-xhr/
-// WebKit: Back Button in an Iframe - http://benalman.com/code/projects/jquery-hashchange/examples/bug-webkit-hash-iframe/
-// Safari: Back Button from a different domain - http://benalman.com/code/projects/jquery-hashchange/examples/bug-safari-back-from-diff-domain/
-// 
-// About: Release History
-// 
-// 1.2   - (2/11/2010) Fixed a bug where coming back to a page using this plugin
-//         from a page on another domain would cause an error in Safari 4. Also,
-//         IE6/7 Iframe is now inserted after the body (this actually works),
-//         which prevents the page from scrolling when the event is first bound.
-//         Event can also now be bound before DOM ready, but it won't be usable
-//         before then in IE6/7.
-// 1.1   - (1/21/2010) Incorporated document.documentMode test to fix IE8 bug
-//         where browser version is incorrectly reported as 8.0, despite
-//         inclusion of the X-UA-Compatible IE=EmulateIE7 meta tag.
-// 1.0   - (1/9/2010) Initial Release. Broke out the jQuery BBQ event.special
-//         window.onhashchange functionality into a separate plugin for users
-//         who want just the basic event & back button support, without all the
-//         extra awesomeness that BBQ provides. This plugin will be included as
-//         part of jQuery BBQ, but also be available separately.
-
-(function($,window,undefined){
-  '$:nomunge'; // Used by YUI compressor.
-  
-  // Method / object references.
-  var fake_onhashchange,
-    jq_event_special = $.event.special,
-    
-    // Reused strings.
-    str_location = 'location',
-    str_hashchange = 'hashchange',
-    str_href = 'href',
-    
-    // IE6/7 specifically need some special love when it comes to back-button
-    // support, so let's do a little browser sniffing..
-    browser = $.browser,
-    mode = document.documentMode,
-    is_old_ie = browser.msie && ( mode === undefined || mode < 8 ),
-    
-    // Does the browser support window.onhashchange? Test for IE version, since
-    // IE8 incorrectly reports this when in "IE7" or "IE8 Compatibility View"!
-    supports_onhashchange = 'on' + str_hashchange in window && !is_old_ie;
-  
-  // Get location.hash (or what you'd expect location.hash to be) sans any
-  // leading #. Thanks for making this necessary, Firefox!
-  function get_fragment( url ) {
-    url = url || window[ str_location ][ str_href ];
-    return url.replace( /^[^#]*#?(.*)$/, '$1' );
-  };
-  
-  // Property: jQuery.hashchangeDelay
-  // 
-  // The numeric interval (in milliseconds) at which the <hashchange event>
-  // polling loop executes. Defaults to 100.
-  
-  $[ str_hashchange + 'Delay' ] = 100;
-  
-  // Event: hashchange event
-  // 
-  // Fired when location.hash changes. In browsers that support it, the native
-  // window.onhashchange event is used (IE8, FF3.6), otherwise a polling loop is
-  // initialized, running every <jQuery.hashchangeDelay> milliseconds to see if
-  // the hash has changed. In IE 6 and 7, a hidden Iframe is created to allow
-  // the back button and hash-based history to work.
-  // 
-  // Usage:
-  // 
-  // > $(window).bind( 'hashchange', function(e) {
-  // >   var hash = location.hash;
-  // >   ...
-  // > });
-  // 
-  // Additional Notes:
-  // 
-  // * The polling loop and Iframe are not created until at least one callback
-  //   is actually bound to 'hashchange'.
-  // * If you need the bound callback(s) to execute immediately, in cases where
-  //   the page 'state' exists on page load (via bookmark or page refresh, for
-  //   example) use $(window).trigger( 'hashchange' );
-  // * The event can be bound before DOM ready, but since it won't be usable
-  //   before then in IE6/7 (due to the necessary Iframe), recommended usage is
-  //   to bind it inside a $(document).ready() callback.
-  
-  jq_event_special[ str_hashchange ] = $.extend( jq_event_special[ str_hashchange ], {
-    
-    // Called only when the first 'hashchange' event is bound to window.
-    setup: function() {
-      // If window.onhashchange is supported natively, there's nothing to do..
-      if ( supports_onhashchange ) { return false; }
-      
-      // Otherwise, we need to create our own. And we don't want to call this
-      // until the user binds to the event, just in case they never do, since it
-      // will create a polling loop and possibly even a hidden Iframe.
-      $( fake_onhashchange.start );
-    },
-    
-    // Called only when the last 'hashchange' event is unbound from window.
-    teardown: function() {
-      // If window.onhashchange is supported natively, there's nothing to do..
-      if ( supports_onhashchange ) { return false; }
-      
-      // Otherwise, we need to stop ours (if possible).
-      $( fake_onhashchange.stop );
-    }
-    
-  });
-  
-  // fake_onhashchange does all the work of triggering the window.onhashchange
-  // event for browsers that don't natively support it, including creating a
-  // polling loop to watch for hash changes and in IE 6/7 creating a hidden
-  // Iframe to enable back and forward.
-  fake_onhashchange = (function(){
-    var self = {},
-      timeout_id,
-      iframe,
-      set_history,
-      get_history;
-    
-    // Initialize. In IE 6/7, creates a hidden Iframe for history handling.
-    function init(){
-      // Most browsers don't need special methods here..
-      set_history = get_history = function(val){ return val; };
-      
-      // But IE6/7 do!
-      if ( is_old_ie ) {
-        
-        // Create hidden Iframe after the end of the body to prevent initial
-        // page load from scrolling unnecessarily.
-        iframe = $('<iframe src="javascript:0"/>').hide().insertAfter( 'body' )[0].contentWindow;
-        
-        // Get history by looking at the hidden Iframe's location.hash.
-        get_history = function() {
-          return get_fragment( iframe.document[ str_location ][ str_href ] );
-        };
-        
-        // Set a new history item by opening and then closing the Iframe
-        // document, *then* setting its location.hash.
-        set_history = function( hash, history_hash ) {
-          if ( hash !== history_hash ) {
-            var doc = iframe.document;
-            doc.open().close();
-            doc[ str_location ].hash = '#' + hash;
-          }
-        };
-        
-        // Set initial history.
-        set_history( get_fragment() );
-      }
-    };
-    
-    // Start the polling loop.
-    self.start = function() {
-      // Polling loop is already running!
-      if ( timeout_id ) { return; }
-      
-      // Remember the initial hash so it doesn't get triggered immediately.
-      var last_hash = get_fragment();
-      
-      // Initialize if not yet initialized.
-      set_history || init();
-      
-      // This polling loop checks every $.hashchangeDelay milliseconds to see if
-      // location.hash has changed, and triggers the 'hashchange' event on
-      // window when necessary.
-      (function loopy(){
-        var hash = get_fragment(),
-          history_hash = get_history( last_hash );
-        
-        if ( hash !== last_hash ) {
-          set_history( last_hash = hash, history_hash );
-          
-          $(window).trigger( str_hashchange );
-          
-        } else if ( history_hash !== last_hash ) {
-          window[ str_location ][ str_href ] = window[ str_location ][ str_href ].replace( /#.*/, '' ) + '#' + history_hash;
-        }
-        
-        timeout_id = setTimeout( loopy, $[ str_hashchange + 'Delay' ] );
-      })();
-    };
-    
-    // Stop the polling loop, but only if an IE6/7 Iframe wasn't created. In
-    // that case, even if there are no longer any bound event handlers, the
-    // polling loop is still necessary for back/next to work at all!
-    self.stop = function() {
-      if ( !iframe ) {
-        timeout_id && clearTimeout( timeout_id );
-        timeout_id = 0;
-      }
-    };
-    
-    return self;
-  })();
-  
-})(jQuery,this);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-resize.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-resize.js
deleted file mode 100644
index 6ddbeaf..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ba-resize.js
+++ /dev/null
@@ -1,246 +0,0 @@
-/*!
- * jQuery resize event - v1.1 - 3/14/2010
- * http://benalman.com/projects/jquery-resize-plugin/
- *
- * Copyright (c) 2010 "Cowboy" Ben Alman
- * Dual licensed under the MIT and GPL licenses.
- * http://benalman.com/about/license/
- */
-
-// Script: jQuery resize event
-//
-// *Version: 1.1, Last updated: 3/14/2010*
-//
-// Project Home - http://benalman.com/projects/jquery-resize-plugin/
-// GitHub       - http://github.com/cowboy/jquery-resize/
-// Source       - http://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.js
-// (Minified)   - http://github.com/cowboy/jquery-resize/raw/master/jquery.ba-resize.min.js (1.0kb)
-//
-// About: License
-//
-// Copyright (c) 2010 "Cowboy" Ben Alman,
-// Dual licensed under the MIT and GPL licenses.
-// http://benalman.com/about/license/
-//
-// About: Examples
-//
-// This working example, complete with fully commented code, illustrates a few
-// ways in which this plugin can be used.
-//
-// resize event - http://benalman.com/code/projects/jquery-resize/examples/resize/
-//
-// About: Support and Testing
-//
-// Information about what version or versions of jQuery this plugin has been
-// tested with, what browsers it has been tested in, and where the unit tests
-// reside (so you can test it yourself).
-//
-// jQuery Versions - 1.3.2, 1.4.1, 1.4.2
-// Browsers Tested - Internet Explorer 6-8, Firefox 2-3.6, Safari 3-4, Chrome, Opera 9.6-10.1.
-// Unit Tests      - http://benalman.com/code/projects/jquery-resize/unit/
-//
-// About: Release History
-//
-// 1.1 - (3/14/2010) Fixed a minor bug that was causing the event to trigger
-//       immediately after bind in some circumstances. Also changed $.fn.data
-//       to $.data to improve performance.
-// 1.0 - (2/10/2010) Initial release
-
-(function($,window,undefined){
-  '$:nomunge'; // Used by YUI compressor.
-
-  // A jQuery object containing all non-window elements to which the resize
-  // event is bound.
-  var elems = $([]),
-
-    // Extend $.resize if it already exists, otherwise create it.
-    jq_resize = $.resize = $.extend( $.resize, {} ),
-
-    timeout_id,
-
-    // Reused strings.
-    str_setTimeout = 'setTimeout',
-    str_resize = 'resize',
-    str_data = str_resize + '-special-event',
-    str_delay = 'delay',
-    str_throttle = 'throttleWindow';
-
-  // Property: jQuery.resize.delay
-  //
-  // The numeric interval (in milliseconds) at which the resize event polling
-  // loop executes. Defaults to 250.
-
-  jq_resize[ str_delay ] = 250;
-
-  // Property: jQuery.resize.throttleWindow
-  //
-  // Throttle the native window object resize event to fire no more than once
-  // every <jQuery.resize.delay> milliseconds. Defaults to true.
-  //
-  // Because the window object has its own resize event, it doesn't need to be
-  // provided by this plugin, and its execution can be left entirely up to the
-  // browser. However, since certain browsers fire the resize event continuously
-  // while others do not, enabling this will throttle the window resize event,
-  // making event behavior consistent across all elements in all browsers.
-  //
-  // While setting this property to false will disable window object resize
-  // event throttling, please note that this property must be changed before any
-  // window object resize event callbacks are bound.
-
-  jq_resize[ str_throttle ] = true;
-
-  // Event: resize event
-  //
-  // Fired when an element's width or height changes. Because browsers only
-  // provide this event for the window element, for other elements a polling
-  // loop is initialized, running every <jQuery.resize.delay> milliseconds
-  // to see if elements' dimensions have changed. You may bind with either
-  // .resize( fn ) or .bind( "resize", fn ), and unbind with .unbind( "resize" ).
-  //
-  // Usage:
-  //
-  // > jQuery('selector').bind( 'resize', function(e) {
-  // >   // element's width or height has changed!
-  // >   ...
-  // > });
-  //
-  // Additional Notes:
-  //
-  // * The polling loop is not created until at least one callback is actually
-  //   bound to the 'resize' event, and this single polling loop is shared
-  //   across all elements.
-  //
-  // Double firing issue in jQuery 1.3.2:
-  //
-  // While this plugin works in jQuery 1.3.2, if an element's event callbacks
-  // are manually triggered via .trigger( 'resize' ) or .resize() those
-  // callbacks may double-fire, due to limitations in the jQuery 1.3.2 special
-  // events system. This is not an issue when using jQuery 1.4+.
-  //
-  // > // While this works in jQuery 1.4+
-  // > $(elem).css({ width: new_w, height: new_h }).resize();
-  // >
-  // > // In jQuery 1.3.2, you need to do this:
-  // > var elem = $(elem);
-  // > elem.css({ width: new_w, height: new_h });
-  // > elem.data( 'resize-special-event', { width: elem.width(), height: elem.height() } );
-  // > elem.resize();
-
-  $.event.special[ str_resize ] = {
-
-    // Called only when the first 'resize' event callback is bound per element.
-    setup: function() {
-      // Since window has its own native 'resize' event, return false so that
-      // jQuery will bind the event using DOM methods. Since only 'window'
-      // objects have a .setTimeout method, this should be a sufficient test.
-      // Unless, of course, we're throttling the 'resize' event for window.
-      if ( !jq_resize[ str_throttle ] && this[ str_setTimeout ] ) { return false; }
-
-      var elem = $(this);
-
-      // Add this element to the list of internal elements to monitor.
-      elems = elems.add( elem );
-
-      // Initialize data store on the element.
-      $.data( this, str_data, { w: elem.width(), h: elem.height() } );
-
-      // If this is the first element added, start the polling loop.
-      if ( elems.length === 1 ) {
-        loopy();
-      }
-    },
-
-    // Called only when the last 'resize' event callback is unbound per element.
-    teardown: function() {
-      // Since window has its own native 'resize' event, return false so that
-      // jQuery will unbind the event using DOM methods. Since only 'window'
-      // objects have a .setTimeout method, this should be a sufficient test.
-      // Unless, of course, we're throttling the 'resize' event for window.
-      if ( !jq_resize[ str_throttle ] && this[ str_setTimeout ] ) { return false; }
-
-      var elem = $(this);
-
-      // Remove this element from the list of internal elements to monitor.
-      elems = elems.not( elem );
-
-      // Remove any data stored on the element.
-      elem.removeData( str_data );
-
-      // If this is the last element removed, stop the polling loop.
-      if ( !elems.length ) {
-        clearTimeout( timeout_id );
-      }
-    },
-
-    // Called every time a 'resize' event callback is bound per element (new in
-    // jQuery 1.4).
-    add: function( handleObj ) {
-      // Since window has its own native 'resize' event, return false so that
-      // jQuery doesn't modify the event object. Unless, of course, we're
-      // throttling the 'resize' event for window.
-      if ( !jq_resize[ str_throttle ] && this[ str_setTimeout ] ) { return false; }
-
-      var old_handler;
-
-      // The new_handler function is executed every time the event is triggered.
-      // This is used to update the internal element data store with the width
-      // and height when the event is triggered manually, to avoid double-firing
-      // of the event callback. See the "Double firing issue in jQuery 1.3.2"
-      // comments above for more information.
-
-      function new_handler( e, w, h ) {
-        var elem = $(this),
-          data = $.data( this, str_data );
-
-        // If called from the polling loop, w and h will be passed in as
-        // arguments. If called manually, via .trigger( 'resize' ) or .resize(),
-        // those values will need to be computed.
-        data.w = w !== undefined ? w : elem.width();
-        data.h = h !== undefined ? h : elem.height();
-
-        old_handler.apply( this, arguments );
-      };
-
-      // This may seem a little complicated, but it normalizes the special event
-      // .add method between jQuery 1.4/1.4.1 and 1.4.2+
-      if ( $.isFunction( handleObj ) ) {
-        // 1.4, 1.4.1
-        old_handler = handleObj;
-        return new_handler;
-      } else {
-        // 1.4.2+
-        old_handler = handleObj.handler;
-        handleObj.handler = new_handler;
-      }
-    }
-
-  };
-
-  function loopy() {
-
-    // Start the polling loop, asynchronously.
-    timeout_id = window[ str_setTimeout ](function(){
-
-      // Iterate over all elements to which the 'resize' event is bound.
-      elems.each(function(){
-        var elem = $(this),
-          width = elem.width(),
-          height = elem.height(),
-          data = $.data( this, str_data );
-
-        // If element size has changed since the last time, update the element
-        // data store and trigger the 'resize' event.
-        if ( width !== data.w || height !== data.h ) {
-          elem.trigger( str_resize, [ data.w = width, data.h = height ] );
-        }
-
-      });
-
-      // Loop.
-      loopy();
-
-    }, jq_resize[ str_delay ] );
-
-  };
-
-})(jQuery,this);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.cookie.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.cookie.js
deleted file mode 100644
index 8e8e1d9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.cookie.js
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Cookie plugin
- *
- * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- */
-
-/**
- * Create a cookie with the given name and value and other optional parameters.
- *
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Set the value of a cookie.
- * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
- * @desc Create a cookie with all available options.
- * @example $.cookie('the_cookie', 'the_value');
- * @desc Create a session cookie.
- * @example $.cookie('the_cookie', null);
- * @desc Delete a cookie by passing null as value.
- *
- * @param String name The name of the cookie.
- * @param String value The value of the cookie.
- * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
- * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
- *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
- *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
- *                             when the the browser exits.
- * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
- * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
- * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
- *                        require a secure protocol (like HTTPS).
- * @type undefined
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-
-/**
- * Get the value of a cookie with the given name.
- *
- * @example $.cookie('the_cookie');
- * @desc Get the value of a cookie.
- *
- * @param String name The name of the cookie.
- * @return The value of the cookie.
- * @type String
- *
- * @name $.cookie
- * @cat Plugins/Cookie
- * @author Klaus Hartl/klaus.hartl@stilbuero.de
- */
-jQuery.cookie = function(name, value, options) {
-    if (typeof value != 'undefined') { // name and value given, set cookie
-        options = options || {};
-        if (value === null) {
-            value = '';
-            options.expires = -1;
-        }
-        var expires = '';
-        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
-            var date;
-            if (typeof options.expires == 'number') {
-                date = new Date();
-                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
-            } else {
-                date = options.expires;
-            }
-            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
-        }
-        var path = options.path ? '; path=' + options.path : '';
-        var domain = options.domain ? '; domain=' + options.domain : '';
-        var secure = options.secure ? '; secure' : '';
-        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
-    } else { // only name given, get cookie
-        var cookieValue = null;
-        if (document.cookie && document.cookie != '') {
-            var cookies = document.cookie.split(';');
-            for (var i = 0; i < cookies.length; i++) {
-                var cookie = jQuery.trim(cookies[i]);
-                // Does this cookie string begin with the name we want?
-                if (cookie.substring(0, name.length + 1) == (name + '=')) {
-                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
-                    break;
-                }
-            }
-        }
-        return cookieValue;
-    }
-};
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.easing.1.3.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.easing.1.3.js
deleted file mode 100644
index ef74321..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.easing.1.3.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
- *
- * Uses the built in easing capabilities added In jQuery 1.1
- * to offer multiple easing options
- *
- * TERMS OF USE - jQuery Easing
- * 
- * Open source under the BSD License. 
- * 
- * Copyright © 2008 George McGinley Smith
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this list of 
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list 
- * of conditions and the following disclaimer in the documentation and/or other materials 
- * provided with the distribution.
- * 
- * Neither the name of the author nor the names of contributors may be used to endorse 
- * or promote products derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
- * OF THE POSSIBILITY OF SUCH DAMAGE. 
- *
-*/
-
-// t: current time, b: begInnIng value, c: change In value, d: duration
-jQuery.easing['jswing'] = jQuery.easing['swing'];
-
-jQuery.extend( jQuery.easing,
-{
-	def: 'easeOutQuad',
-	swing: function (x, t, b, c, d) {
-		//alert(jQuery.easing.default);
-		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
-	},
-	easeInQuad: function (x, t, b, c, d) {
-		return c*(t/=d)*t + b;
-	},
-	easeOutQuad: function (x, t, b, c, d) {
-		return -c *(t/=d)*(t-2) + b;
-	},
-	easeInOutQuad: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t + b;
-		return -c/2 * ((--t)*(t-2) - 1) + b;
-	},
-	easeInCubic: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t + b;
-	},
-	easeOutCubic: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t + 1) + b;
-	},
-	easeInOutCubic: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t + b;
-		return c/2*((t-=2)*t*t + 2) + b;
-	},
-	easeInQuart: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t + b;
-	},
-	easeOutQuart: function (x, t, b, c, d) {
-		return -c * ((t=t/d-1)*t*t*t - 1) + b;
-	},
-	easeInOutQuart: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
-		return -c/2 * ((t-=2)*t*t*t - 2) + b;
-	},
-	easeInQuint: function (x, t, b, c, d) {
-		return c*(t/=d)*t*t*t*t + b;
-	},
-	easeOutQuint: function (x, t, b, c, d) {
-		return c*((t=t/d-1)*t*t*t*t + 1) + b;
-	},
-	easeInOutQuint: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
-		return c/2*((t-=2)*t*t*t*t + 2) + b;
-	},
-	easeInSine: function (x, t, b, c, d) {
-		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
-	},
-	easeOutSine: function (x, t, b, c, d) {
-		return c * Math.sin(t/d * (Math.PI/2)) + b;
-	},
-	easeInOutSine: function (x, t, b, c, d) {
-		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
-	},
-	easeInExpo: function (x, t, b, c, d) {
-		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
-	},
-	easeOutExpo: function (x, t, b, c, d) {
-		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
-	},
-	easeInOutExpo: function (x, t, b, c, d) {
-		if (t==0) return b;
-		if (t==d) return b+c;
-		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
-		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
-	},
-	easeInCirc: function (x, t, b, c, d) {
-		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
-	},
-	easeOutCirc: function (x, t, b, c, d) {
-		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
-	},
-	easeInOutCirc: function (x, t, b, c, d) {
-		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
-		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
-	},
-	easeInElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-	},
-	easeOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
-	},
-	easeInOutElastic: function (x, t, b, c, d) {
-		var s=1.70158;var p=0;var a=c;
-		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
-		if (a < Math.abs(c)) { a=c; var s=p/4; }
-		else var s = p/(2*Math.PI) * Math.asin (c/a);
-		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
-		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
-	},
-	easeInBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*(t/=d)*t*((s+1)*t - s) + b;
-	},
-	easeOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158;
-		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
-	},
-	easeInOutBack: function (x, t, b, c, d, s) {
-		if (s == undefined) s = 1.70158; 
-		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
-		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
-	},
-	easeInBounce: function (x, t, b, c, d) {
-		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
-	},
-	easeOutBounce: function (x, t, b, c, d) {
-		if ((t/=d) < (1/2.75)) {
-			return c*(7.5625*t*t) + b;
-		} else if (t < (2/2.75)) {
-			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
-		} else if (t < (2.5/2.75)) {
-			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
-		} else {
-			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
-		}
-	},
-	easeInOutBounce: function (x, t, b, c, d) {
-		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
-		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
-	}
-});
-
-/*
- *
- * TERMS OF USE - EASING EQUATIONS
- * 
- * Open source under the BSD License. 
- * 
- * Copyright © 2001 Robert Penner
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modification, 
- * are permitted provided that the following conditions are met:
- * 
- * Redistributions of source code must retain the above copyright notice, this list of 
- * conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list 
- * of conditions and the following disclaimer in the documentation and/or other materials 
- * provided with the distribution.
- * 
- * Neither the name of the author nor the names of contributors may be used to endorse 
- * or promote products derived from this software without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
- *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
- * OF THE POSSIBILITY OF SUCH DAMAGE. 
- *
- */
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.fancyqueries.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.fancyqueries.js
deleted file mode 100644
index 80e0e71..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.fancyqueries.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- Copyright 2011 Red Hat, Inc.
-
- This software is licensed to you under the GNU General Public
- License as published by the Free Software Foundation; either version
- 2 of the License (GPLv2) or (at your option) any later version.
- There is NO WARRANTY for this software, express or implied,
- including the implied warranties of MERCHANTABILITY,
- NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
- have received a copy of GPLv2 along with this software; if not, see
- http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
-*/
-
-(function($){
-  $.fn.fancyQueries = function () {
-      /* Handle closing of dropdown if clicked outside */
-      $(document).click(function (e) {
-        //console.log(e.target);
-        if(!( $(e.target).closest(".search").length ||
-              $(e.target).hasClass("queryeditor") ||
-              $(e.target).hasClass("showmore"))) {
-          $(".qdropdown").hide();
-          $(".queries").removeClass('open queryeditor');
-        }
-      });
-      $('#search').click(function(e){$(document).click();});
-    this.each(function () {
-      var $qdropdown = $('.qdropdown', this);
-      var searchbox = this;
-      var menuurl = $(searchbox).attr("data-url");
-      var $button;
-      var offset = $(this).offset();
-      var height = $(this).outerHeight();
-      var width = $(this).outerWidth();
-      /* Create Dropdown if it doesn't exist */
-      if (!$qdropdown.length) {
-        $qdropdown = $("<div class='qdropdown'></div>");
-        $qdropdown.appendTo(this).hide();
-      }
-      /* Create button and resize the search input to show it */
-      $button = $('<div class="queries"><span class="arrow"></span></div>"');
-      $button.attr("data-url", menuurl);
-      $button.appendTo($(this));
-      $("input",this).css('margin-left', '24px');
-      $("input",this).css('width', function () {
-        width = $(this).width() - 24;
-        return width;
-      });
-      /* Hook showing and hiding of the dropdown */
-      $button.click(function () {
-        if ($qdropdown.filter(":visible").length>0) {
-          $qdropdown.hide(); //hides all menus, not just in this context
-          $(".queries").removeClass('open queryeditor');
-        } else {
-          $('.qdropdown').hide(); //hide all first
-          $(".queries").removeClass('open queryeditor');
-  
-          $.get(menuurl, function (data) {
-            var $list, hidden, $hideme;
-            $qdropdown.html(data).css('top', height - 1);
-            if ($qdropdown.width()+offset.left > $('#maincontent').width()) {
-              $qdropdown.removeClass('left-menu').addClass('right-menu');
-            } else {
-              $qdropdown.removeClass('right-menu').addClass('left-menu');
-            }
-
-            $qdropdown.show(200);
-
-            // process the elements of the list and truncate any that are too long with ellipsis (...) (e.g. jquery.text-overflow.js)
-            $(".one-line-ellipsis").ellipsis();
-
-            $button.addClass('open');
-            $list = $("ul:first", $qdropdown);
-            $("li.item:gt(9)", $list).hide();
-            hidden = $("li.item:hidden",$list).length;
-            if (hidden) {
-              $hideme = $('<a class="showmore">Show '+ hidden + ' more</a>');
-              $('#search_list').append($hideme);
-              $hideme.click(function (e) {
-                e.preventDefault();
-                $("li.item", $list).show();
-                $(this).remove(); //for some reason remove triggers a click or something.
-              });
-            }
-          });
-        }
-      });
-
-      /* Query Editor */
-      $(".queryeditor", $qdropdown[0]).live('click', function (e) {
-        var content = '<h1>Query Editor</h1>';
-        content += "<div><h2>FIXME</h2>";
-        content += "<p style='width: 400px; min-height: 100px;'>Initially I think this would provide help on how to compose a query. Once we have a better idea on what the queries look like, a gui editor.</p>" +
-                "<a href='#' onclick='$(document).click()'>Close</a></div>";
-        $button.removeClass('open').addClass('queryeditor');
-        $qdropdown.empty().hide().addClass('queryeditor').html(content);
-        if ($qdropdown.width()+offset.left > $('#maincontent').width()) {
-              $qdropdown.removeClass('left-menu').addClass('right-menu');
-            } else {
-              $qdropdown.removeClass('right-menu').addClass('left-menu');
-        }
-        $qdropdown.show(200);
-      });
-    });
-  };
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.flash.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.flash.js
deleted file mode 100644
index 2608834..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.flash.js
+++ /dev/null
@@ -1,288 +0,0 @@
-/**
- * Flash (http://jquery.lukelutman.com/plugins/flash)
- * A jQuery plugin for embedding Flash movies.
- *
- * Version 1.0
- * November 9th, 2006
- *
- * Copyright (c) 2006 Luke Lutman (http://www.lukelutman.com)
- * Dual licensed under the MIT and GPL licenses.
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.opensource.org/licenses/gpl-license.php
- *
- * Inspired by:
- * SWFObject (http://blog.deconcept.com/swfobject/)
- * UFO (http://www.bobbyvandersluis.com/ufo/)
- * sIFR (http://www.mikeindustries.com/sifr/)
- *
- * IMPORTANT:
- * The packed version of jQuery breaks ActiveX control
- * activation in Internet Explorer. Use JSMin to minifiy
- * jQuery (see: http://jquery.lukelutman.com/plugins/flash#activex).
- *
- **/
-;(function(){
-
-var $$;
-
-/**
- *
- * @desc Replace matching elements with a flash movie.
- * @author Luke Lutman
- * @version 1.0.1
- *
- * @name flash
- * @param Hash htmlOptions Options for the embed/object tag.
- * @param Hash pluginOptions Options for detecting/updating the Flash plugin (optional).
- * @param Function replace Custom block called for each matched element if flash is installed (optional).
- * @param Function update Custom block called for each matched if flash isn't installed (optional).
- * @type jQuery
- *
- * @cat plugins/flash
- *
- * @example $('#hello').flash({ src: 'hello.swf' });
- * @desc Embed a Flash movie.
- *
- * @example $('#hello').flash({ src: 'hello.swf' }, { version: 8 });
- * @desc Embed a Flash 8 movie.
- *
- * @example $('#hello').flash({ src: 'hello.swf' }, { expressInstall: true });
- * @desc Embed a Flash movie using Express Install if flash isn't installed.
- *
- * @example $('#hello').flash({ src: 'hello.swf' }, { update: false });
- * @desc Embed a Flash movie, don't show an update message if Flash isn't installed.
- *
-**/
-$$ = jQuery.fn.flash = function(htmlOptions, pluginOptions, replace, update) {
-
-	// Set the default block.
-	var block = replace || $$.replace;
-
-	// Merge the default and passed plugin options.
-	pluginOptions = $$.copy($$.pluginOptions, pluginOptions);
-
-	// Detect Flash.
-	if(!$$.hasFlash(pluginOptions.version)) {
-		// Use Express Install (if specified and Flash plugin 6,0,65 or higher is installed).
-		if(pluginOptions.expressInstall && $$.hasFlash(6,0,65)) {
-			// Add the necessary flashvars (merged later).
-			var expressInstallOptions = {
-				flashvars: {
-					MMredirectURL: location,
-					MMplayerType: 'PlugIn',
-					MMdoctitle: jQuery('title').text()
-				}
-			};
-		// Ask the user to update (if specified).
-		} else if (pluginOptions.update) {
-			// Change the block to insert the update message instead of the flash movie.
-			block = update || $$.update;
-		// Fail
-		} else {
-			// The required version of flash isn't installed.
-			// Express Install is turned off, or flash 6,0,65 isn't installed.
-			// Update is turned off.
-			// Return without doing anything.
-			return this;
-		}
-	}
-
-	// Merge the default, express install and passed html options.
-	htmlOptions = $$.copy($$.htmlOptions, expressInstallOptions, htmlOptions);
-
-	// Invoke $block (with a copy of the merged html options) for each element.
-	return this.each(function(){
-		block.call(this, $$.copy(htmlOptions));
-	});
-
-};
-/**
- *
- * @name flash.copy
- * @desc Copy an arbitrary number of objects into a new object.
- * @type Object
- *
- * @example $$.copy({ foo: 1 }, { bar: 2 });
- * @result { foo: 1, bar: 2 };
- *
-**/
-$$.copy = function() {
-	var options = {}, flashvars = {};
-	for(var i = 0; i < arguments.length; i++) {
-		var arg = arguments[i];
-		if(arg == undefined) continue;
-		jQuery.extend(options, arg);
-		// don't clobber one flash vars object with another
-		// merge them instead
-		if(arg.flashvars == undefined) continue;
-		jQuery.extend(flashvars, arg.flashvars);
-	}
-	options.flashvars = flashvars;
-	return options;
-};
-/*
- * @name flash.hasFlash
- * @desc Check if a specific version of the Flash plugin is installed
- * @type Boolean
- *
-**/
-$$.hasFlash = function() {
-	// look for a flag in the query string to bypass flash detection
-	if(/hasFlash\=true/.test(location)) return true;
-	if(/hasFlash\=false/.test(location)) return false;
-	var pv = $$.hasFlash.playerVersion().match(/\d+/g);
-	var rv = String([arguments[0], arguments[1], arguments[2]]).match(/\d+/g) || String($$.pluginOptions.version).match(/\d+/g);
-	for(var i = 0; i < 3; i++) {
-		pv[i] = parseInt(pv[i] || 0);
-		rv[i] = parseInt(rv[i] || 0);
-		// player is less than required
-		if(pv[i] < rv[i]) return false;
-		// player is greater than required
-		if(pv[i] > rv[i]) return true;
-	}
-	// major version, minor version and revision match exactly
-	return true;
-};
-/**
- *
- * @name flash.hasFlash.playerVersion
- * @desc Get the version of the installed Flash plugin.
- * @type String
- *
-**/
-$$.hasFlash.playerVersion = function() {
-	// ie
-	try {
-		try {
-			// avoid fp6 minor version lookup issues
-			// see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
-			var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
-			try { axo.AllowScriptAccess = 'always';	}
-			catch(e) { return '6,0,0'; }
-		} catch(e) {}
-		return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
-	// other browsers
-	} catch(e) {
-		try {
-			if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
-				return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
-			}
-		} catch(e) {}
-	}
-	return '0,0,0';
-};
-/**
- *
- * @name flash.htmlOptions
- * @desc The default set of options for the object or embed tag.
- *
-**/
-$$.htmlOptions = {
-	height: 240,
-	flashvars: {},
-	pluginspage: 'http://www.adobe.com/go/getflashplayer',
-	src: '#',
-	type: 'application/x-shockwave-flash',
-	width: 320
-};
-/**
- *
- * @name flash.pluginOptions
- * @desc The default set of options for checking/updating the flash Plugin.
- *
-**/
-$$.pluginOptions = {
-	expressInstall: false,
-	update: true,
-	version: '6.0.65'
-};
-/**
- *
- * @name flash.replace
- * @desc The default method for replacing an element with a Flash movie.
- *
-**/
-$$.replace = function(htmlOptions) {
-	this.innerHTML = '<div class="alt">'+this.innerHTML+'</div>';
-	jQuery(this)
-		.addClass('flash-replaced')
-		.prepend($$.transform(htmlOptions));
-};
-/**
- *
- * @name flash.update
- * @desc The default method for replacing an element with an update message.
- *
-**/
-$$.update = function(htmlOptions) {
-	var url = String(location).split('?');
-	url.splice(1,0,'?hasFlash=true&');
-	url = url.join('');
-	var msg = '<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';
-	this.innerHTML = '<span class="alt">'+this.innerHTML+'</span>';
-	jQuery(this)
-		.addClass('flash-update')
-		.prepend(msg);
-};
-/**
- *
- * @desc Convert a hash of html options to a string of attributes, using Function.apply().
- * @example toAttributeString.apply(htmlOptions)
- * @result foo="bar" foo="bar"
- *
-**/
-function toAttributeString() {
-	var s = '';
-	for(var key in this)
-		if(typeof this[key] != 'function')
-			s += key+'="'+this[key]+'" ';
-	return s;
-};
-/**
- *
- * @desc Convert a hash of flashvars to a url-encoded string, using Function.apply().
- * @example toFlashvarsString.apply(flashvarsObject)
- * @result foo=bar&foo=bar
- *
-**/
-function toFlashvarsString() {
-	var s = '';
-	for(var key in this)
-		if(typeof this[key] != 'function')
-			s += key+'='+encodeURIComponent(this[key])+'&';
-	return s.replace(/&$/, '');
-};
-/**
- *
- * @name flash.transform
- * @desc Transform a set of html options into an embed tag.
- * @type String
- *
- * @example $$.transform(htmlOptions)
- * @result <embed src="foo.swf" ... />
- *
- * Note: The embed tag is NOT standards-compliant, but it
- * works in all current browsers. flash.transform can be
- * overwritten with a custom function to generate more
- * standards-compliant markup.
- *
-**/
-$$.transform = function(htmlOptions) {
-	htmlOptions.toString = toAttributeString;
-	if(htmlOptions.flashvars) htmlOptions.flashvars.toString = toFlashvarsString;
-	return '<embed ' + String(htmlOptions) + '/>';
-};
-
-/**
- *
- * Flash Player 9 Fix (http://blog.deconcept.com/2006/07/28/swfobject-143-released/)
- *
-**/
-if (window.attachEvent) {
-	window.attachEvent("onbeforeunload", function(){
-		__flash_unloadHandler = function() {};
-		__flash_savedUnloadHandler = function() {};
-	});
-}
-
-})();
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.form.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.form.js
deleted file mode 100644
index 6425e41..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.form.js
+++ /dev/null
@@ -1,964 +0,0 @@
-/*!
- * jQuery Form Plugin
- * version: 2.92 (22-NOV-2011)
- * @requires jQuery v1.3.2 or later
- *
- * Examples and documentation at: http://malsup.com/jquery/form/
- * Dual licensed under the MIT and GPL licenses:
- *	http://www.opensource.org/licenses/mit-license.php
- *	http://www.gnu.org/licenses/gpl.html
- */
-;(function($) {
-
-/*
-	Usage Note:
-	-----------
-	Do not use both ajaxSubmit and ajaxForm on the same form.  These
-	functions are intended to be exclusive.  Use ajaxSubmit if you want
-	to bind your own submit handler to the form.  For example,
-
-	$(document).ready(function() {
-		$('#myForm').bind('submit', function(e) {
-			e.preventDefault(); // <-- important
-			$(this).ajaxSubmit({
-				target: '#output'
-			});
-		});
-	});
-
-	Use ajaxForm when you want the plugin to manage all the event binding
-	for you.  For example,
-
-	$(document).ready(function() {
-		$('#myForm').ajaxForm({
-			target: '#output'
-		});
-	});
-
-	When using ajaxForm, the ajaxSubmit function will be invoked for you
-	at the appropriate time.
-*/
-
-/**
- * ajaxSubmit() provides a mechanism for immediately submitting
- * an HTML form using AJAX.
- */
-$.fn.ajaxSubmit = function(options) {
-	// fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
-	if (!this.length) {
-		log('ajaxSubmit: skipping submit process - no element selected');
-		return this;
-	}
-	
-	var method, action, url, $form = this;
-
-	if (typeof options == 'function') {
-		options = { success: options };
-	}
-
-	method = this.attr('method');
-	action = this.attr('action');
-	url = (typeof action === 'string') ? $.trim(action) : '';
-	url = url || window.location.href || '';
-	if (url) {
-		// clean url (don't include hash vaue)
-		url = (url.match(/^([^#]+)/)||[])[1];
-	}
-
-	options = $.extend(true, {
-		url:  url,
-		success: $.ajaxSettings.success,
-		type: method || 'GET',
-		iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
-	}, options);
-
-	// hook for manipulating the form data before it is extracted;
-	// convenient for use with rich editors like tinyMCE or FCKEditor
-	var veto = {};
-	this.trigger('form-pre-serialize', [this, options, veto]);
-	if (veto.veto) {
-		log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
-		return this;
-	}
-
-	// provide opportunity to alter form data before it is serialized
-	if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
-		log('ajaxSubmit: submit aborted via beforeSerialize callback');
-		return this;
-	}
-
-	var traditional = options.traditional;
-	if ( traditional === undefined ) {
-		traditional = $.ajaxSettings.traditional;
-	}
-	
-	var qx,n,v,a = this.formToArray(options.semantic);
-	if (options.data) {
-		options.extraData = options.data;
-		qx = $.param(options.data, traditional);
-	}
-
-	// give pre-submit callback an opportunity to abort the submit
-	if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
-		log('ajaxSubmit: submit aborted via beforeSubmit callback');
-		return this;
-	}
-
-	// fire vetoable 'validate' event
-	this.trigger('form-submit-validate', [a, this, options, veto]);
-	if (veto.veto) {
-		log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
-		return this;
-	}
-
-	var q = $.param(a, traditional);
-	if (qx) {
-		q = ( q ? (q + '&' + qx) : qx );
-	}	
-	if (options.type.toUpperCase() == 'GET') {
-		options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
-		options.data = null;  // data is null for 'get'
-	}
-	else {
-		options.data = q; // data is the query string for 'post'
-	}
-
-	var callbacks = [];
-	if (options.resetForm) {
-		callbacks.push(function() { $form.resetForm(); });
-	}
-	if (options.clearForm) {
-		callbacks.push(function() { $form.clearForm(options.includeHidden); });
-	}
-
-	// perform a load on the target only if dataType is not provided
-	if (!options.dataType && options.target) {
-		var oldSuccess = options.success || function(){};
-		callbacks.push(function(data) {
-			var fn = options.replaceTarget ? 'replaceWith' : 'html';
-			$(options.target)[fn](data).each(oldSuccess, arguments);
-		});
-	}
-	else if (options.success) {
-		callbacks.push(options.success);
-	}
-
-	options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-		var context = options.context || options;	// jQuery 1.4+ supports scope context 
-		for (var i=0, max=callbacks.length; i < max; i++) {
-			callbacks[i].apply(context, [data, status, xhr || $form, $form]);
-		}
-	};
-
-	// are there files to upload?
-	var fileInputs = $('input:file:enabled[value]', this); // [value] (issue #113)
-	var hasFileInputs = fileInputs.length > 0;
-	var mp = 'multipart/form-data';
-	var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
-
-	var fileAPI = !!(hasFileInputs && fileInputs.get(0).files && window.FormData);
-	log("fileAPI :" + fileAPI);
-	var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI;
-
-	// options.iframe allows user to force iframe mode
-	// 06-NOV-09: now defaulting to iframe mode if file input is detected
-	if (options.iframe !== false && (options.iframe || shouldUseFrame)) {
-		// hack to fix Safari hang (thanks to Tim Molendijk for this)
-		// see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
-		if (options.closeKeepAlive) {
-			$.get(options.closeKeepAlive, function() {
-				fileUploadIframe(a);
-			});
-		}
-  		else {
-			fileUploadIframe(a);
-  		}
-	}
-	else if ((hasFileInputs || multipart) && fileAPI) {
-		options.progress = options.progress || $.noop;
-		fileUploadXhr(a);
-	}
-	else {
-		$.ajax(options);
-	}
-
-	 // fire 'notify' event
-	 this.trigger('form-submit-notify', [this, options]);
-	 return this;
-
-	 // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz)
-	function fileUploadXhr(a) {
-		var formdata = new FormData();
-
-		for (var i=0; i < a.length; i++) {
-			if (a[i].type == 'file')
-				continue;
-			formdata.append(a[i].name, a[i].value);
-		}
-
-		$form.find('input:file:enabled').each(function(){
-			var name = $(this).attr('name'), files = this.files;
-			if (name) {
-				for (var i=0; i < files.length; i++)
-					formdata.append(name, files[i]);
-			}
-		});
-
-		options.data = null;
-		var _beforeSend = options.beforeSend;
-		options.beforeSend = function(xhr, options) {
-			options.data = formdata;
-			if (xhr.upload) { // unfortunately, jQuery doesn't expose this prop (http://bugs.jquery.com/ticket/10190)
-				xhr.upload.onprogress = function(event) {
-					options.progress(event.position, event.total);
-				}
-			}
-			if (_beforeSend)
-				_beforeSend.call(options, xhr, options);
-		}
-		$.ajax(options);
-	}
-
-	// private function for handling file uploads (hat tip to YAHOO!)
-	function fileUploadIframe(a) {
-		var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle;
-		var useProp = !!$.fn.prop;
-
-		if (a) {
-			if ( useProp ) {
-				// ensure that every serialized input is still enabled
-				for (i=0; i < a.length; i++) {
-					el = $(form[a[i].name]);
-					el.prop('disabled', false);
-				}
-			} else {
-				for (i=0; i < a.length; i++) {
-					el = $(form[a[i].name]);
-					el.removeAttr('disabled');
-				}
-			};
-		}
-
-		if ($(':input[name=submit],:input[id=submit]', form).length) {
-			// if there is an input with a name or id of 'submit' then we won't be
-			// able to invoke the submit fn on the form (at least not x-browser)
-			alert('Error: Form elements must not have name or id of "submit".');
-			return;
-		}
-		
-		s = $.extend(true, {}, $.ajaxSettings, options);
-		s.context = s.context || s;
-		id = 'jqFormIO' + (new Date().getTime());
-		if (s.iframeTarget) {
-			$io = $(s.iframeTarget);
-			n = $io.attr('name');
-			if (n == null)
-			 	$io.attr('name', id);
-			else
-				id = n;
-		}
-		else {
-			$io = $('<iframe name="' + id + '" src="'+ s.iframeSrc +'" />');
-			$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
-		}
-		io = $io[0];
-
-
-		xhr = { // mock object
-			aborted: 0,
-			responseText: null,
-			responseXML: null,
-			status: 0,
-			statusText: 'n/a',
-			getAllResponseHeaders: function() {},
-			getResponseHeader: function() {},
-			setRequestHeader: function() {},
-			abort: function(status) {
-				var e = (status === 'timeout' ? 'timeout' : 'aborted');
-				log('aborting upload... ' + e);
-				this.aborted = 1;
-				$io.attr('src', s.iframeSrc); // abort op in progress
-				xhr.error = e;
-				s.error && s.error.call(s.context, xhr, e, status);
-				g && $.event.trigger("ajaxError", [xhr, s, e]);
-				s.complete && s.complete.call(s.context, xhr, e);
-			}
-		};
-
-		g = s.global;
-		// trigger ajax global events so that activity/block indicators work like normal
-		if (g && ! $.active++) {
-			$.event.trigger("ajaxStart");
-		}
-		if (g) {
-			$.event.trigger("ajaxSend", [xhr, s]);
-		}
-
-		if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
-			if (s.global) {
-				$.active--;
-			}
-			return;
-		}
-		if (xhr.aborted) {
-			return;
-		}
-
-		// add submitting element to data if we know it
-		sub = form.clk;
-		if (sub) {
-			n = sub.name;
-			if (n && !sub.disabled) {
-				s.extraData = s.extraData || {};
-				s.extraData[n] = sub.value;
-				if (sub.type == "image") {
-					s.extraData[n+'.x'] = form.clk_x;
-					s.extraData[n+'.y'] = form.clk_y;
-				}
-			}
-		}
-		
-		var CLIENT_TIMEOUT_ABORT = 1;
-		var SERVER_ABORT = 2;
-
-		function getDoc(frame) {
-			var doc = frame.contentWindow ? frame.contentWindow.document : frame.contentDocument ? frame.contentDocument : frame.document;
-			return doc;
-		}
-		
-		// Rails CSRF hack (thanks to Yvan BARTH�LEMY)
-		var csrf_token = $('meta[name=csrf-token]').attr('content');
-		var csrf_param = $('meta[name=csrf-param]').attr('content');
-		if (csrf_param && csrf_token) {
-			s.extraData = s.extraData || {};
-			s.extraData[csrf_param] = csrf_token;
-		}
-
-		// take a breath so that pending repaints get some cpu time before the upload starts
-		function doSubmit() {
-			// make sure form attrs are set
-			var t = $form.attr('target'), a = $form.attr('action');
-
-			// update form attrs in IE friendly way
-			form.setAttribute('target',id);
-			if (!method) {
-				form.setAttribute('method', 'POST');
-			}
-			if (a != s.url) {
-				form.setAttribute('action', s.url);
-			}
-
-			// ie borks in some cases when setting encoding
-			if (! s.skipEncodingOverride && (!method || /post/i.test(method))) {
-				$form.attr({
-					encoding: 'multipart/form-data',
-					enctype:  'multipart/form-data'
-				});
-			}
-
-			// support timout
-			if (s.timeout) {
-				timeoutHandle = setTimeout(function() { timedOut = true; cb(CLIENT_TIMEOUT_ABORT); }, s.timeout);
-			}
-			
-			// look for server aborts
-			function checkState() {
-				try {
-					var state = getDoc(io).readyState;
-					log('state = ' + state);
-					if (state.toLowerCase() == 'uninitialized')
-						setTimeout(checkState,50);
-				}
-				catch(e) {
-					log('Server abort: ' , e, ' (', e.name, ')');
-					cb(SERVER_ABORT);
-					timeoutHandle && clearTimeout(timeoutHandle);
-					timeoutHandle = undefined;
-				}
-			}
-
-			// add "extra" data to form if provided in options
-			var extraInputs = [];
-			try {
-				if (s.extraData) {
-					for (var n in s.extraData) {
-						extraInputs.push(
-							$('<input type="hidden" name="'+n+'">').attr('value',s.extraData[n])
-								.appendTo(form)[0]);
-					}
-				}
-
-				if (!s.iframeTarget) {
-					// add iframe to doc and submit the form
-					$io.appendTo('body');
-					io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
-				}
-				setTimeout(checkState,15);
-				form.submit();
-			}
-			finally {
-				// reset attrs and remove "extra" input elements
-				form.setAttribute('action',a);
-				if(t) {
-					form.setAttribute('target', t);
-				} else {
-					$form.removeAttr('target');
-				}
-				$(extraInputs).remove();
-			}
-		}
-
-		if (s.forceSync) {
-			doSubmit();
-		}
-		else {
-			setTimeout(doSubmit, 10); // this lets dom updates render
-		}
-
-		var data, doc, domCheckCount = 50, callbackProcessed;
-
-		function cb(e) {
-			if (xhr.aborted || callbackProcessed) {
-				return;
-			}
-			try {
-				doc = getDoc(io);
-			}
-			catch(ex) {
-				log('cannot access response document: ', ex);
-				e = SERVER_ABORT;
-			}
-			if (e === CLIENT_TIMEOUT_ABORT && xhr) {
-				xhr.abort('timeout');
-				return;
-			}
-			else if (e == SERVER_ABORT && xhr) {
-				xhr.abort('server abort');
-				return;
-			}
-
-			if (!doc || doc.location.href == s.iframeSrc) {
-				// response not received yet
-				if (!timedOut)
-					return;
-			}
-			io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
-
-			var status = 'success', errMsg;
-			try {
-				if (timedOut) {
-					throw 'timeout';
-				}
-
-				var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
-				log('isXml='+isXml);
-				if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
-					if (--domCheckCount) {
-						// in some browsers (Opera) the iframe DOM is not always traversable when
-						// the onload callback fires, so we loop a bit to accommodate
-						log('requeing onLoad callback, DOM not available');
-						setTimeout(cb, 250);
-						return;
-					}
-					// let this fall through because server response could be an empty document
-					//log('Could not access iframe DOM after mutiple tries.');
-					//throw 'DOMException: not available';
-				}
-
-				//log('response detected');
-				var docRoot = doc.body ? doc.body : doc.documentElement;
-				xhr.responseText = docRoot ? docRoot.innerHTML : null;
-				xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
-				if (isXml)
-					s.dataType = 'xml';
-				xhr.getResponseHeader = function(header){
-					var headers = {'content-type': s.dataType};
-					return headers[header];
-				};
-				// support for XHR 'status' & 'statusText' emulation :
-				if (docRoot) {
-					xhr.status = Number( docRoot.getAttribute('status') ) || xhr.status;
-					xhr.statusText = docRoot.getAttribute('statusText') || xhr.statusText;
-				}
-
-				var dt = (s.dataType || '').toLowerCase();
-				var scr = /(json|script|text)/.test(dt);
-				if (scr || s.textarea) {
-					// see if user embedded response in textarea
-					var ta = doc.getElementsByTagName('textarea')[0];
-					if (ta) {
-						xhr.responseText = ta.value;
-						// support for XHR 'status' & 'statusText' emulation :
-						xhr.status = Number( ta.getAttribute('status') ) || xhr.status;
-						xhr.statusText = ta.getAttribute('statusText') || xhr.statusText;
-					}
-					else if (scr) {
-						// account for browsers injecting pre around json response
-						var pre = doc.getElementsByTagName('pre')[0];
-						var b = doc.getElementsByTagName('body')[0];
-						if (pre) {
-							xhr.responseText = pre.textContent ? pre.textContent : pre.innerText;
-						}
-						else if (b) {
-							xhr.responseText = b.textContent ? b.textContent : b.innerText;
-						}
-					}
-				}
-				else if (dt == 'xml' && !xhr.responseXML && xhr.responseText != null) {
-					xhr.responseXML = toXml(xhr.responseText);
-				}
-
-				try {
-					data = httpData(xhr, dt, s);
-				}
-				catch (e) {
-					status = 'parsererror';
-					xhr.error = errMsg = (e || status);
-				}
-			}
-			catch (e) {
-				log('error caught: ',e);
-				status = 'error';
-				xhr.error = errMsg = (e || status);
-			}
-
-			if (xhr.aborted) {
-				log('upload aborted');
-				status = null;
-			}
-
-			if (xhr.status) { // we've set xhr.status
-				status = (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) ? 'success' : 'error';
-			}
-
-			// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
-			if (status === 'success') {
-				s.success && s.success.call(s.context, data, 'success', xhr);
-				g && $.event.trigger("ajaxSuccess", [xhr, s]);
-			}
-			else if (status) {
-				if (errMsg == undefined)
-					errMsg = xhr.statusText;
-				s.error && s.error.call(s.context, xhr, status, errMsg);
-				g && $.event.trigger("ajaxError", [xhr, s, errMsg]);
-			}
-
-			g && $.event.trigger("ajaxComplete", [xhr, s]);
-
-			if (g && ! --$.active) {
-				$.event.trigger("ajaxStop");
-			}
-
-			s.complete && s.complete.call(s.context, xhr, status);
-
-			callbackProcessed = true;
-			if (s.timeout)
-				clearTimeout(timeoutHandle);
-
-			// clean up
-			setTimeout(function() {
-				if (!s.iframeTarget)
-					$io.remove();
-				xhr.responseXML = null;
-			}, 100);
-		}
-
-		var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
-			if (window.ActiveXObject) {
-				doc = new ActiveXObject('Microsoft.XMLDOM');
-				doc.async = 'false';
-				doc.loadXML(s);
-			}
-			else {
-				doc = (new DOMParser()).parseFromString(s, 'text/xml');
-			}
-			return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
-		};
-		var parseJSON = $.parseJSON || function(s) {
-			return window['eval']('(' + s + ')');
-		};
-
-		var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
-
-			var ct = xhr.getResponseHeader('content-type') || '',
-				xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
-				data = xml ? xhr.responseXML : xhr.responseText;
-
-			if (xml && data.documentElement.nodeName === 'parsererror') {
-				$.error && $.error('parsererror');
-			}
-			if (s && s.dataFilter) {
-				data = s.dataFilter(data, type);
-			}
-			if (typeof data === 'string') {
-				if (type === 'json' || !type && ct.indexOf('json') >= 0) {
-					data = parseJSON(data);
-				} else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
-					$.globalEval(data);
-				}
-			}
-			return data;
-		};
-	}
-};
-
-/**
- * ajaxForm() provides a mechanism for fully automating form submission.
- *
- * The advantages of using this method instead of ajaxSubmit() are:
- *
- * 1: This method will include coordinates for <input type="image" /> elements (if the element
- *	is used to submit the form).
- * 2. This method will include the submit element's name/value data (for the element that was
- *	used to submit the form).
- * 3. This method binds the submit() method to the form for you.
- *
- * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
- * passes the options argument along after properly binding events for submit elements and
- * the form itself.
- */
-$.fn.ajaxForm = function(options) {
-	// in jQuery 1.3+ we can fix mistakes with the ready state
-	if (this.length === 0) {
-		var o = { s: this.selector, c: this.context };
-		if (!$.isReady && o.s) {
-			log('DOM not ready, queuing ajaxForm');
-			$(function() {
-				$(o.s,o.c).ajaxForm(options);
-			});
-			return this;
-		}
-		// is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
-		log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
-		return this;
-	}
-
-	return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
-		if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
-			e.preventDefault();
-			$(this).ajaxSubmit(options);
-		}
-	}).bind('click.form-plugin', function(e) {
-		var target = e.target;
-		var $el = $(target);
-		if (!($el.is(":submit,input:image"))) {
-			// is this a child element of the submit el?  (ex: a span within a button)
-			var t = $el.closest(':submit');
-			if (t.length == 0) {
-				return;
-			}
-			target = t[0];
-		}
-		var form = this;
-		form.clk = target;
-		if (target.type == 'image') {
-			if (e.offsetX != undefined) {
-				form.clk_x = e.offsetX;
-				form.clk_y = e.offsetY;
-			} else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
-				var offset = $el.offset();
-				form.clk_x = e.pageX - offset.left;
-				form.clk_y = e.pageY - offset.top;
-			} else {
-				form.clk_x = e.pageX - target.offsetLeft;
-				form.clk_y = e.pageY - target.offsetTop;
-			}
-		}
-		// clear form vars
-		setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
-	});
-};
-
-// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
-$.fn.ajaxFormUnbind = function() {
-	return this.unbind('submit.form-plugin click.form-plugin');
-};
-
-/**
- * formToArray() gathers form element data into an array of objects that can
- * be passed to any of the following ajax functions: $.get, $.post, or load.
- * Each object in the array has both a 'name' and 'value' property.  An example of
- * an array for a simple login form might be:
- *
- * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
- *
- * It is this array that is passed to pre-submit callback functions provided to the
- * ajaxSubmit() and ajaxForm() methods.
- */
-$.fn.formToArray = function(semantic) {
-	var a = [];
-	if (this.length === 0) {
-		return a;
-	}
-
-	var form = this[0];
-	var els = semantic ? form.getElementsByTagName('*') : form.elements;
-	if (!els) {
-		return a;
-	}
-
-	var i,j,n,v,el,max,jmax;
-	for(i=0, max=els.length; i < max; i++) {
-		el = els[i];
-		n = el.name;
-		if (!n) {
-			continue;
-		}
-
-		if (semantic && form.clk && el.type == "image") {
-			// handle image inputs on the fly when semantic == true
-			if(!el.disabled && form.clk == el) {
-				a.push({name: n, value: $(el).val(), type: el.type });
-				a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-			}
-			continue;
-		}
-
-		v = $.fieldValue(el, true);
-		if (v && v.constructor == Array) {
-			for(j=0, jmax=v.length; j < jmax; j++) {
-				a.push({name: n, value: v[j]});
-			}
-		}
-		else if (v !== null && typeof v != 'undefined') {
-			a.push({name: n, value: v, type: el.type});
-		}
-	}
-
-	if (!semantic && form.clk) {
-		// input type=='image' are not found in elements array! handle it here
-		var $input = $(form.clk), input = $input[0];
-		n = input.name;
-		if (n && !input.disabled && input.type == 'image') {
-			a.push({name: n, value: $input.val()});
-			a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-		}
-	}
-	return a;
-};
-
-/**
- * Serializes form data into a 'submittable' string. This method will return a string
- * in the format: name1=value1&amp;name2=value2
- */
-$.fn.formSerialize = function(semantic) {
-	//hand off to jQuery.param for proper encoding
-	return $.param(this.formToArray(semantic));
-};
-
-/**
- * Serializes all field elements in the jQuery object into a query string.
- * This method will return a string in the format: name1=value1&amp;name2=value2
- */
-$.fn.fieldSerialize = function(successful) {
-	var a = [];
-	this.each(function() {
-		var n = this.name;
-		if (!n) {
-			return;
-		}
-		var v = $.fieldValue(this, successful);
-		if (v && v.constructor == Array) {
-			for (var i=0,max=v.length; i < max; i++) {
-				a.push({name: n, value: v[i]});
-			}
-		}
-		else if (v !== null && typeof v != 'undefined') {
-			a.push({name: this.name, value: v});
-		}
-	});
-	//hand off to jQuery.param for proper encoding
-	return $.param(a);
-};
-
-/**
- * Returns the value(s) of the element in the matched set.  For example, consider the following form:
- *
- *  <form><fieldset>
- *	  <input name="A" type="text" />
- *	  <input name="A" type="text" />
- *	  <input name="B" type="checkbox" value="B1" />
- *	  <input name="B" type="checkbox" value="B2"/>
- *	  <input name="C" type="radio" value="C1" />
- *	  <input name="C" type="radio" value="C2" />
- *  </fieldset></form>
- *
- *  var v = $(':text').fieldValue();
- *  // if no values are entered into the text inputs
- *  v == ['','']
- *  // if values entered into the text inputs are 'foo' and 'bar'
- *  v == ['foo','bar']
- *
- *  var v = $(':checkbox').fieldValue();
- *  // if neither checkbox is checked
- *  v === undefined
- *  // if both checkboxes are checked
- *  v == ['B1', 'B2']
- *
- *  var v = $(':radio').fieldValue();
- *  // if neither radio is checked
- *  v === undefined
- *  // if first radio is checked
- *  v == ['C1']
- *
- * The successful argument controls whether or not the field element must be 'successful'
- * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
- * The default value of the successful argument is true.  If this value is false the value(s)
- * for each element is returned.
- *
- * Note: This method *always* returns an array.  If no valid value can be determined the
- *	array will be empty, otherwise it will contain one or more values.
- */
-$.fn.fieldValue = function(successful) {
-	for (var val=[], i=0, max=this.length; i < max; i++) {
-		var el = this[i];
-		var v = $.fieldValue(el, successful);
-		if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
-			continue;
-		}
-		v.constructor == Array ? $.merge(val, v) : val.push(v);
-	}
-	return val;
-};
-
-/**
- * Returns the value of the field element.
- */
-$.fieldValue = function(el, successful) {
-	var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
-	if (successful === undefined) {
-		successful = true;
-	}
-
-	if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
-		(t == 'checkbox' || t == 'radio') && !el.checked ||
-		(t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
-		tag == 'select' && el.selectedIndex == -1)) {
-			return null;
-	}
-
-	if (tag == 'select') {
-		var index = el.selectedIndex;
-		if (index < 0) {
-			return null;
-		}
-		var a = [], ops = el.options;
-		var one = (t == 'select-one');
-		var max = (one ? index+1 : ops.length);
-		for(var i=(one ? index : 0); i < max; i++) {
-			var op = ops[i];
-			if (op.selected) {
-				var v = op.value;
-				if (!v) { // extra pain for IE...
-					v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
-				}
-				if (one) {
-					return v;
-				}
-				a.push(v);
-			}
-		}
-		return a;
-	}
-	return $(el).val();
-};
-
-/**
- * Clears the form data.  Takes the following actions on the form's input fields:
- *  - input text fields will have their 'value' property set to the empty string
- *  - select elements will have their 'selectedIndex' property set to -1
- *  - checkbox and radio inputs will have their 'checked' property set to false
- *  - inputs of type submit, button, reset, and hidden will *not* be effected
- *  - button elements will *not* be effected
- */
-$.fn.clearForm = function(includeHidden) {
-	return this.each(function() {
-		$('input,select,textarea', this).clearFields(includeHidden);
-	});
-};
-
-/**
- * Clears the selected form elements.
- */
-$.fn.clearFields = $.fn.clearInputs = function(includeHidden) {
-	var re = /^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i; // 'hidden' is not in this list
-	return this.each(function() {
-		var t = this.type, tag = this.tagName.toLowerCase();
-		if (re.test(t) || tag == 'textarea' || (includeHidden && /hidden/.test(t)) ) {
-			this.value = '';
-		}
-		else if (t == 'checkbox' || t == 'radio') {
-			this.checked = false;
-		}
-		else if (tag == 'select') {
-			this.selectedIndex = -1;
-		}
-	});
-};
-
-/**
- * Resets the form data.  Causes all form elements to be reset to their original value.
- */
-$.fn.resetForm = function() {
-	return this.each(function() {
-		// guard against an input with the name of 'reset'
-		// note that IE reports the reset function as an 'object'
-		if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
-			this.reset();
-		}
-	});
-};
-
-/**
- * Enables or disables any matching elements.
- */
-$.fn.enable = function(b) {
-	if (b === undefined) {
-		b = true;
-	}
-	return this.each(function() {
-		this.disabled = !b;
-	});
-};
-
-/**
- * Checks/unchecks any matching checkboxes or radio buttons and
- * selects/deselects and matching option elements.
- */
-$.fn.selected = function(select) {
-	if (select === undefined) {
-		select = true;
-	}
-	return this.each(function() {
-		var t = this.type;
-		if (t == 'checkbox' || t == 'radio') {
-			this.checked = select;
-		}
-		else if (this.tagName.toLowerCase() == 'option') {
-			var $sel = $(this).parent('select');
-			if (select && $sel[0] && $sel[0].type == 'select-one') {
-				// deselect all other options
-				$sel.find('option').selected(false);
-			}
-			this.selected = select;
-		}
-	});
-};
-
-// expose debug var
-$.fn.ajaxSubmit.debug = false;
-
-// helper fn for console logging
-function log() {
-	if (!$.fn.ajaxSubmit.debug) 
-		return;
-	var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
-	if (window.console && window.console.log) {
-		window.console.log(msg);
-	}
-	else if (window.opera && window.opera.postError) {
-		window.opera.postError(msg);
-	}
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.hoverIntent.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.hoverIntent.js
deleted file mode 100644
index 3dcff26..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.hoverIntent.js
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
-* hoverIntent is similar to jQuery's built-in "hover" function except that
-* instead of firing the onMouseOver event immediately, hoverIntent checks
-* to see if the user's mouse has slowed down (beneath the sensitivity
-* threshold) before firing the onMouseOver event.
-* 
-* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
-* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
-* 
-* hoverIntent is currently available for use in all personal or commercial 
-* projects under both MIT and GPL licenses. This means that you can choose 
-* the license that best suits your project, and use it accordingly.
-* 
-* // basic usage (just like .hover) receives onMouseOver and onMouseOut functions
-* $("ul li").hoverIntent( showNav , hideNav );
-* 
-* // advanced usage receives configuration object only
-* $("ul li").hoverIntent({
-*	sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
-*	interval: 100,   // number = milliseconds of polling interval
-*	over: showNav,  // function = onMouseOver callback (required)
-*	timeout: 0,   // number = milliseconds delay before onMouseOut function call
-*	out: hideNav    // function = onMouseOut callback (required)
-* });
-* 
-* @param  f  onMouseOver function || An object with configuration options
-* @param  g  onMouseOut function  || Nothing (use configuration options object)
-* @author    Brian Cherne brian(at)cherne(dot)net
-*/
-(function($) {
-	$.fn.hoverIntent = function(f,g) {
-		// default configuration options
-		var cfg = {
-			sensitivity: 7,
-			interval: 100,
-			timeout: 0
-		};
-		// override configuration options with user supplied object
-		cfg = $.extend(cfg, g ? { over: f, out: g } : f );
-
-		// instantiate variables
-		// cX, cY = current X and Y position of mouse, updated by mousemove event
-		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
-		var cX, cY, pX, pY;
-
-		// A private function for getting mouse position
-		var track = function(ev) {
-			cX = ev.pageX;
-			cY = ev.pageY;
-		};
-
-		// A private function for comparing current and previous mouse position
-		var compare = function(ev,ob) {
-			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
-			// compare mouse positions to see if they've crossed the threshold
-			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
-				$(ob).unbind("mousemove",track);
-				// set hoverIntent state to true (so mouseOut can be called)
-				ob.hoverIntent_s = 1;
-				return cfg.over.apply(ob,[ev]);
-			} else {
-				// set previous coordinates for next time
-				pX = cX; pY = cY;
-				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
-				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
-			}
-		};
-
-		// A private function for delaying the mouseOut function
-		var delay = function(ev,ob) {
-			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
-			ob.hoverIntent_s = 0;
-			return cfg.out.apply(ob,[ev]);
-		};
-
-		// A private function for handling mouse 'hovering'
-		var handleHover = function(e) {
-			// copy objects to be passed into t (required for event object to be passed in IE)
-			var ev = jQuery.extend({},e);
-			var ob = this;
-
-			// cancel hoverIntent timer if it exists
-			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
-
-			// if e.type == "mouseenter"
-			if (e.type == "mouseenter") {
-				// set "previous" X and Y position based on initial entry point
-				pX = ev.pageX; pY = ev.pageY;
-				// update "current" X and Y position based on mousemove
-				$(ob).bind("mousemove",track);
-				// start polling interval (self-calling timeout) to compare mouse coordinates over time
-				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
-
-			// else e.type == "mouseleave"
-			} else {
-				// unbind expensive mousemove event
-				$(ob).unbind("mousemove",track);
-				// if hoverIntent state is true, then call the mouseOut function after the specified delay
-				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
-			}
-		};
-
-		// bind the function to the two event listeners
-		return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover);
-	};
-})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.ajaxupload.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.ajaxupload.js
deleted file mode 100644
index ad9abb8..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.ajaxupload.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Ajaxupload for Jeditable
- *
- * Copyright (c) 2008-2009 Mika Tuupola
- *
- * Licensed under the MIT license:
- *   http://www.opensource.org/licenses/mit-license.php
- *
- * Depends on Ajax fileupload jQuery plugin by PHPLetter guys:
- *   http://www.phpletter.com/Our-Projects/AjaxFileUpload/
- *
- * Project home:
- *   http://www.appelsiini.net/projects/jeditable
- *
- * Revision: $Id$
- *
- */
- 
-$.editable.addInputType('ajaxupload', {
-    /* create input element */
-    element : function(settings) {
-        settings.onblur = 'ignore';
-        var input = $('<input type="file" id="upload" name="upload" />');
-        $(this).append(input);
-        return(input);
-    },
-    content : function(string, settings, original) {
-        /* do nothing */
-    },
-    plugin : function(settings, original) {
-        var form = this;
-        form.attr("enctype", "multipart/form-data");
-        $("button:submit", form).bind('click', function() {
-            //$(".message").show();
-            $.ajaxFileUpload({
-                type    : 'POST',
-                url: settings.target,
-                secureuri:false,
-                fileElementId: 'upload',
-                dataType: 'html',
-                success: function (data, status) {
-                    if (data.indexOf("div id=\"notification\"") > 0) {
-                      // the request resulted in an error...
-                      $("#notification").replaceWith(data);
-                      $(original).html(settings.placeholder);
-                    } else {
-                      $(original).html(data);
-                      if (!$.trim($(original).html())) {
-                          $(original).html(settings.placeholder);
-                      }
-                    }
-                    original.editing = false;
-                },
-                error: function (data, status, e) {
-                    alert(e);
-                }
-            });
-            return(false);
-        });
-    }
-});
-
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.js
deleted file mode 100644
index ae07c8e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jeditable.js
+++ /dev/null
@@ -1,556 +0,0 @@
-/*
- * Jeditable - jQuery in place edit plugin
- *
- * Copyright (c) 2006-2009 Mika Tuupola, Dylan Verheul
- *
- * Licensed under the MIT license:
- *   http://www.opensource.org/licenses/mit-license.php
- *
- * Project home:
- *   http://www.appelsiini.net/projects/jeditable
- *
- * Based on editable by Dylan Verheul <dylan_at_dyve.net>:
- *    http://www.dyve.net/jquery/?editable
- *
- */
-
-/**
-  * Version 1.7.1
-  *
-  * ** means there is basic unit tests for this parameter. 
-  *
-  * @name  Jeditable
-  * @type  jQuery
-  * @param String  target             (POST) URL or function to send edited content to **
-  * @param Hash    options            additional options 
-  * @param String  options[method]    method to use to send edited content (POST or PUT) **
-  * @param Function options[callback] Function to run after submitting edited content **
-  * @param String  options[name]      POST parameter name of edited content
-  * @param String  options[id]        POST parameter name of edited div id
-  * @param Hash    options[submitdata] Extra parameters to send when submitting edited content.
-  * @param String  options[type]      text, textarea or select (or any 3rd party input type) **
-  * @param Integer options[rows]      number of rows if using textarea ** 
-  * @param Integer options[cols]      number of columns if using textarea **
-  * @param Mixed   options[height]    'auto', 'none' or height in pixels **
-  * @param Mixed   options[width]     'auto', 'none' or width in pixels **
-  * @param String  options[loadurl]   URL to fetch input content before editing **
-  * @param String  options[loadtype]  Request type for load url. Should be GET or POST.
-  * @param String  options[loadtext]  Text to display while loading external content.
-  * @param Mixed   options[loaddata]  Extra parameters to pass when fetching content before editing.
-  * @param Mixed   options[data]      Or content given as paramameter. String or function.**
-  * @param String  options[indicator] indicator html to show when saving
-  * @param String  options[tooltip]   optional tooltip text via title attribute **
-  * @param String  options[event]     jQuery event such as 'click' of 'dblclick' **
-  * @param String  options[submit]    submit button value, empty means no button **
-  * @param String  options[cancel]    cancel button value, empty means no button **
-  * @param String  options[cssclass]  CSS class to apply to input form. 'inherit' to copy from parent. **
-  * @param String  options[style]     Style to apply to input form 'inherit' to copy from parent. **
-  * @param String  options[select]    true or false, when true text is highlighted ??
-  * @param String  options[placeholder] Placeholder text or html to insert when element is empty. **
-  * @param String  options[onblur]    'cancel', 'submit', 'ignore' or function ??
-  *             
-  * @param Function options[onsubmit] function(settings, original) { ... } called before submit
-  * @param Function options[onreset]  function(settings, original) { ... } called before reset
-  * @param Function options[onsuccess] function(result, status, xhr) { ... } called on success
-  * @param Function options[onerror]  function(settings, original, xhr) { ... } called on error
-  *             
-  * @param Hash    options[ajaxoptions]  jQuery Ajax options. See docs.jquery.com.
-  *             
-  */
-
-(function($) {
-
-    $.fn.editable = function(target, options) {
-            
-        if ('disable' == target) {
-            $(this).data('disabled.editable', true);
-            return;
-        }
-        if ('enable' == target) {
-            $(this).data('disabled.editable', false);
-            return;
-        }
-        if ('destroy' == target) {
-            $(this)
-                .unbind($(this).data('event.editable'))
-                .removeData('disabled.editable')
-                .removeData('event.editable');
-            return;
-        }
-        
-        var settings = $.extend({}, $.fn.editable.defaults, {target:target}, options);
-        
-        /* setup some functions */
-        var plugin   = $.editable.types[settings.type].plugin || function() { };
-        var submit   = $.editable.types[settings.type].submit || function() { };
-        var buttons  = $.editable.types[settings.type].buttons 
-                    || $.editable.types['defaults'].buttons;
-        var content  = $.editable.types[settings.type].content 
-                    || $.editable.types['defaults'].content;
-        var element  = $.editable.types[settings.type].element 
-                    || $.editable.types['defaults'].element;
-        var reset    = $.editable.types[settings.type].reset 
-                    || $.editable.types['defaults'].reset;
-        var callback = settings.callback || function() { };
-        var onedit   = settings.onedit   || function() { }; 
-        var onsubmit = settings.onsubmit || function() { };
-        var onreset  = settings.onreset  || function() { };
-        var onsuccess = settings.onsuccess || function() { };
-        var onerror  = settings.onerror  || reset;
-        var oneditcomplete   = settings.oneditcomplete   || function() { };
-        var onresetcomplete  = settings.onresetcomplete  || function() { };
-          
-        /* show tooltip */
-        if (settings.tooltip) {
-            $(this).attr('title', settings.tooltip);
-        }
-        
-        settings.autowidth  = 'auto' == settings.width;
-        settings.autoheight = 'auto' == settings.height;
-        
-        return this.each(function() {
-                        
-            /* save this to self because this changes when scope changes */
-            var self = this;  
-                   
-            /* inlined block elements lose their width and height after first edit */
-            /* save them for later use as workaround */
-            var savedwidth  = $(self).width();
-            var savedheight = $(self).height();
-            
-            /* save so it can be later used by $.editable('destroy') */
-            $(this).data('event.editable', settings.event);
-            
-            /* if element is empty add something clickable (if requested) */
-            if (!$.trim($(this).html())) {
-                $(this).html(settings.placeholder);
-            }
-            
-            $(this).bind(settings.event, function(e) {
-                
-                /* abort if disabled for this element */
-                if (true === $(this).data('disabled.editable')) {
-                    return;
-                }
-                
-                /* prevent throwing an exeption if edit field is clicked again */
-                if (self.editing) {
-                    return;
-                }
-                
-                /* abort if onedit hook returns false */
-                if (false === onedit.apply(this, [settings, self])) {
-                   return;
-                }
-                
-                /* prevent default action and bubbling */
-                e.preventDefault();
-                e.stopPropagation();
-                
-                /* remove tooltip */
-                if (settings.tooltip) {
-                    $(self).removeAttr('title');
-                }
-                
-                /* figure out how wide and tall we are, saved width and height */
-                /* are workaround for http://dev.jquery.com/ticket/2190 */
-                if (0 == $(self).width()) {
-                    //$(self).css('visibility', 'hidden');
-                    settings.width  = savedwidth;
-                    settings.height = savedheight;
-                } else {
-                    if (settings.width != 'none') {
-                        settings.width = 
-                            settings.autowidth ? $(self).width()  : settings.width;
-                    }
-                    if (settings.height != 'none') {
-                        settings.height = 
-                            settings.autoheight ? $(self).height() : settings.height;
-                    }
-                }
-                //$(this).css('visibility', '');
-                
-                /* remove placeholder text, replace is here because of IE */
-                if ($(this).html().toLowerCase().replace(/(;|")/g, '') == 
-                    settings.placeholder.toLowerCase().replace(/(;|")/g, '')) {
-                        $(this).html('');
-                }
-                                
-                self.editing    = true;
-                self.revert     = $(self).html();
-                $(self).html('');
-
-                /* create the form object */
-                var form = $('<form />');
-                
-                /* apply css or style or both */
-                if (settings.cssclass) {
-                    if ('inherit' == settings.cssclass) {
-                        form.attr('class', $(self).attr('class'));
-                    } else {
-                        form.attr('class', settings.cssclass);
-                    }
-                }
-
-                if (settings.style) {
-                    if ('inherit' == settings.style) {
-                        form.attr('style', $(self).attr('style'));
-                        /* IE needs the second line or display wont be inherited */
-                        form.css('display', $(self).css('display'));                
-                    } else {
-                        form.attr('style', settings.style);
-                    }
-                }
-
-                /* add main input element to form and store it in input */
-                var input = element.apply(form, [settings, self]);
-
-                /* set input content via POST, GET, given data or existing value */
-                var input_content;
-                
-                if (settings.loadurl) {
-                    var t = setTimeout(function() {
-                        input.disabled = true;
-                        content.apply(form, [settings.loadtext, settings, self]);
-                    }, 100);
-
-                    var loaddata = {};
-                    loaddata[settings.id] = self.id;
-                    if ($.isFunction(settings.loaddata)) {
-                        $.extend(loaddata, settings.loaddata.apply(self, [self.revert, settings]));
-                    } else {
-                        $.extend(loaddata, settings.loaddata);
-                    }
-                    $.ajax({
-                       type : settings.loadtype,
-                       url  : settings.loadurl,
-                       data : loaddata,
-                       async : false,
-                       success: function(result) {
-                          window.clearTimeout(t);
-                          input_content = result;
-                          input.disabled = false;
-                       }
-                    });
-                } else if (settings.data) {
-                    input_content = settings.data;
-                    if ($.isFunction(settings.data)) {
-                        input_content = settings.data.apply(self, [self.revert, settings]);
-                    }
-                } else {
-                    input_content = self.revert; 
-                }
-                content.apply(form, [input_content, settings, self]);
-
-                input.attr('name', settings.name);
-        
-                /* add buttons to the form */
-                buttons.apply(form, [settings, self]);
-         
-                /* add created form to self */
-                $(self).append(form);
-         
-                /* attach 3rd party plugin if requested */
-                plugin.apply(form, [settings, self]);
-
-                /* focus to first visible form element */
-                $(':input:visible:enabled:first', form).focus();
-
-                /* highlight input contents when requested */
-                if (settings.select) {
-                    input.select();
-                }
-        
-                /* discard changes if pressing esc */
-                input.keydown(function(e) {
-                    if (e.keyCode == 27) {
-                        e.preventDefault();
-                        //self.reset();
-                        reset.apply(form, [settings, self]);
-                    }
-                });
-
-                /* discard, submit or nothing with changes when clicking outside */
-                /* do nothing is usable when navigating with tab */
-                var t;
-                if ('cancel' == settings.onblur) {
-                    input.blur(function(e) {
-                        /* prevent canceling if submit was clicked */
-                        t = setTimeout(function() {
-                            reset.apply(form, [settings, self]);
-                        }, 500);
-                    });
-                } else if ('submit' == settings.onblur) {
-                    input.blur(function(e) {
-                        /* prevent double submit if submit was clicked */
-                        t = setTimeout(function() {
-                            form.submit();
-                        }, 200);
-                    });
-                } else if ($.isFunction(settings.onblur)) {
-                    input.blur(function(e) {
-                        settings.onblur.apply(self, [input.val(), settings]);
-                    });
-                } else {
-                    input.blur(function(e) {
-                      /* TODO: maybe something here */
-                    });
-                }
-
-                form.submit(function(e) {
-
-                    if (t) { 
-                        clearTimeout(t);
-                    }
-
-                    /* do no submit */
-                    e.preventDefault(); 
-            
-                    /* call before submit hook. */
-                    /* if it returns false abort submitting */                    
-                    if (false !== onsubmit.apply(form, [settings, self])) { 
-                        /* custom inputs call before submit hook. */
-                        /* if it returns false abort submitting */
-                        if (false !== submit.apply(form, [settings, self])) { 
-
-                          /* check if given target is function */
-                          if ($.isFunction(settings.target)) {
-                              var str = settings.target.apply(self, [input.val(), settings]);
-                              $(self).html(str);
-                              self.editing = false;
-                              callback.apply(self, [self.innerHTML, settings]);
-                              /* TODO: this is not dry */                              
-                              if (!$.trim($(self).html())) {
-                                  $(self).html(settings.placeholder);
-                              }
-                          } else {
-                              /* add edited content and id of edited element to POST */
-                              var submitdata = {};
-                              submitdata[settings.name] = input.val();
-                              submitdata[settings.id] = self.id;
-                              /* add extra data to be POST:ed */
-                              if ($.isFunction(settings.submitdata)) {
-                                  $.extend(submitdata, settings.submitdata.apply(self, [self.revert, settings]));
-                              } else {
-                                  $.extend(submitdata, settings.submitdata);
-                              }
-
-                              /* quick and dirty PUT support */
-                              if ('PUT' == settings.method) {
-                                  submitdata['_method'] = 'put';
-                              }
-
-                              /* show the saving indicator */
-                              $(self).html(settings.indicator);
-                              
-                              /* defaults for ajaxoptions */
-                              var ajaxoptions = {
-                                  type    : 'POST',
-                                  data    : submitdata,
-                                  dataType: 'html',
-                                  url     : settings.target,
-                                  success : function(result, status, jqXHR) {
-                                      if (ajaxoptions.dataType == 'html') {
-                                        $(self).html(result);
-                                      }
-                                      self.editing = false;
-                                      callback.apply(self, [result, settings]);
-                                      onsuccess.apply(self, [result, status, jqXHR]);
-                                      if (!$.trim($(self).html())) {
-                                          $(self).html(settings.placeholder);
-                                      }
-                                  },
-                                  error   : function(xhr, status, error) {
-                                      onerror.apply(form, [settings, self, xhr]);
-                                  }
-                              };
-                              
-                              /* override with what is given in settings.ajaxoptions */
-                              $.extend(ajaxoptions, settings.ajaxoptions);   
-                              $.ajax(ajaxoptions);          
-                              
-                            }
-                        }
-                    }
-                    
-                    /* show tooltip again */
-                    $(self).attr('title', settings.tooltip);
-                    
-                    return false;
-                });
-                
-                if(oneditcomplete){
-                    oneditcomplete.apply(form, [settings, self])
-                }
-            });
-            
-            /* privileged methods */
-            this.reset = function(form) {
-                /* prevent calling reset twice when blurring */
-                if (this.editing) {
-                    /* before reset hook, if it returns false abort reseting */
-                    if (false !== onreset.apply(form, [settings, self])) { 
-                        $(self).html(self.revert);
-                        self.editing   = false;
-                        if (!$.trim($(self).html())) {
-                            $(self).html(settings.placeholder);
-                        }
-                        /* show tooltip again */
-                        if (settings.tooltip) {
-                            $(self).attr('title', settings.tooltip);                
-                        }
-                        if(onresetcomplete){
-                            onresetcomplete.apply(form, [settings, self])
-                        }
-                    }                    
-                }
-            };            
-        });
-
-    };
-
-
-    $.editable = {
-        types: {
-            defaults: {
-                element : function(settings, original) {
-                    var input = $('<input type="hidden"></input>');                
-                    $(this).append(input);
-                    return(input);
-                },
-                content : function(string, settings, original) {
-                    $(':input:first', this).val(string);
-                },
-                reset : function(settings, original) {
-                  original.reset(this);
-                },
-                buttons : function(settings, original) {
-                    var form = this;
-                    if (settings.submit) {
-                        /* if given html string use that */
-                        if (settings.submit.match(/>$/)) {
-                            var submit = $(settings.submit).click(function() {
-                                if (submit.attr("type") != "submit") {
-                                    form.submit();
-                                }
-                            });
-                        /* otherwise use button with given string as text */
-                        } else {
-                            var submit = $('<button type="submit" />');
-                            submit.html(settings.submit);                            
-                        }
-                        $(this).append(submit);
-                    }
-                    if (settings.cancel) {
-                        /* if given html string use that */
-                        if (settings.cancel.match(/>$/)) {
-                            var cancel = $(settings.cancel);
-                        /* otherwise use button with given string as text */
-                        } else {
-                            var cancel = $('<button type="cancel" />');
-                            cancel.html(settings.cancel);
-                        }
-                        $(this).append(cancel);
-
-                        $(cancel).click(function(event) {
-                            //original.reset();
-                            if ($.isFunction($.editable.types[settings.type].reset)) {
-                                var reset = $.editable.types[settings.type].reset;                                                                
-                            } else {
-                                var reset = $.editable.types['defaults'].reset;                                
-                            }
-                            reset.apply(form, [settings, original]);
-                            return false;
-                        });
-                    }
-                }
-            },
-            text: {
-                element : function(settings, original) {
-                    var input = $('<input />');
-                    if (settings.width  != 'none') { input.width(settings.width);  }
-                    if (settings.height != 'none') { input.height(settings.height); }
-                    /* https://bugzilla.mozilla.org/show_bug.cgi?id=236791 */
-                    //input[0].setAttribute('autocomplete','off');
-                    input.attr('autocomplete','off');
-                    $(this).append(input);
-                    return(input);
-                }
-            },
-            textarea: {
-                element : function(settings, original) {
-                    var textarea = $('<textarea />');
-                    if (settings.rows) {
-                        textarea.attr('rows', settings.rows);
-                    } else if (settings.height != "none") {
-                        textarea.height(settings.height);
-                    }
-                    if (settings.cols) {
-                        textarea.attr('cols', settings.cols);
-                    } else if (settings.width != "none") {
-                        textarea.width(settings.width);
-                    }
-                    $(this).append(textarea);
-                    return(textarea);
-                }
-            },
-            select: {
-               element : function(settings, original) {
-                    var select = $('<select />');
-                    $(this).append(select);
-                    return(select);
-                },
-                content : function(data, settings, original) {
-                    /* If it is string assume it is json. */
-                    if (String == data.constructor) {      
-                        eval ('var json = ' + data);
-                    } else {
-                    /* Otherwise assume it is a hash already. */
-                        var json = data;
-                    }
-                    for (var key in json) {
-                        if (!json.hasOwnProperty(key)) {
-                            continue;
-                        }
-                        if ('selected' == key) {
-                            continue;
-                        } 
-                        var option = $('<option />').val(key).append(json[key]);
-                        $('select', this).append(option);    
-                    }                    
-                    /* Loop option again to set selected. IE needed this... */ 
-                    $('select', this).children().each(function() {
-                        if ($(this).val() == json['selected'] || 
-                            $(this).text() == $.trim(original.revert)) {
-                                $(this).attr('selected', 'selected');
-                        }
-                    });
-                }
-            }
-        },
-
-        /* Add new input type */
-        addInputType: function(name, input) {
-            $.editable.types[name] = input;
-        }
-    };
-
-    // publicly accessible defaults
-    $.fn.editable.defaults = {
-        name       : 'value',
-        id         : 'id',
-        type       : 'text',
-        width      : 'auto',
-        height     : 'auto',
-        event      : 'click.editable',
-        onblur     : 'cancel',
-        loadtype   : 'GET',
-        loadtext   : 'Loading...',
-        placeholder: 'Click to edit',
-        loaddata   : {},
-        submitdata : {},
-        ajaxoptions: {}
-    };
-
-})(jQuery);
-
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jnotify.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jnotify.js
deleted file mode 100644
index c73c1db..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jnotify.js
+++ /dev/null
@@ -1,210 +0,0 @@
-/*!
- * jNotify jQuery Plug-in
- *
- * Copyright 2010 Giva, Inc. (http://www.givainc.com/labs/) 
- * 
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- * 	http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Date: 2010-09-30
- * Rev:  1.1.00
- */
-;(function($){
-	$.jnotify = function (m, o, d){
-		return new jNotify(m, o, d);
-	};
-
-	// set the version of the plug-in
-	$.jnotify.version = "1.1.00";
-	
-	var $jnotify, queue = [], count = 0, playing = false, paused = false, queuedId, queuedNote, 
-		// define default settings
-		defaults = {
-			// define core settings
-			  type: ""                                  // if a type is specified, then an additional class of classNotification + type is created for each notification
-			, delay: 2000                               // the default time to show each notification (in milliseconds)
-			, sticky: false                             // determines if the message should be considered "sticky" (user must manually close notification)
-			, closeLabel: "&times;"                     // the HTML to use for the "Close" link
-			, showClose: true                           // determines if the "Close" link should be shown if notification is also sticky
-			, fadeSpeed: 1000                           // the speed to fade messages out (in milliseconds)
-			, slideSpeed: 250                           // the speed used to slide messages out (in milliseconds)
-            , alwaysClosable: false                     // makes notifications always closable, even if they're not sticky. off by default
-			
-			// define the class statements
-			, classContainer: "jnotify-container"       // className to use for the outer most container--this is where all the notifications appear
-			, classNotification: "jnotify-notification" // className of the individual notification containers
-			, classBackground: "jnotify-background"     // className of the background layer for each notification container
-			, classClose: "jnotify-close"               // className to use for the "Close" link
-			, classMessage: "jnotify-message"           // className to use for the actual notification text container--this is where the message is actually written
-	
-			// event handlers
-			, init: null                                // callback that occurs when the main jnotify container is created
-			, create: null                              // callback that occurs when when the note is created (occurs just before appearing in DOM)
-			, beforeRemove: null                        // callback that occurs when before the notification starts to fade away
-			, remove: null                              // callback that occurs when notification is removed
-			, transition: null                          // allows you to overwrite how the transitions between messages are handled
-			                                            // receives the following arguments:
-			                                            //   container - jQuery object containing the notification
-			                                            //   message   - jQuery object of the actual message
-			                                            //   count     - the number of items left in queue
-			                                            //   callback  - a function you must execute once your transition has executed
-			                                            //   options   - the options used for this jnotify instance
-		};
-
-	// override the defaults
-	$.jnotify.setup = function (o){
-		defaults = $.extend({}, defaults, o) ;
-	};
-
-	$.jnotify.play = function (f, d){
-		if( playing && (f !== true ) || (queue.length == 0) ) return;
-		playing = true;
-		
-		// get first note
-		var note = queue.shift();
-		queuedNote = note;
-
-		// determine delay to use
-		var delay = (arguments.length >= 2) ? parseInt(d, 10) : note.options.delay;
-		
-		// run delay before removing message
-		queuedId = setTimeout(function(){
-			// clear timeout id
-			queuedId = 0;
-			note.remove(function (){
-				// makr that the queue is empty
-				if( queue.length == 0 ) playing = false;
-				// force playing the next item in queue
-				else if( !paused ) $.jnotify.play(true);
-			});
-		}, delay);
-	};
-
-	$.jnotify.pause = function(){
-		clearTimeout(queuedId);
-		// push the item back into the queue
-		if( queuedId ) queue.unshift(queuedNote);
-		// mark that we're playing (so it doesn't automatically start playing)
-		paused = playing = true;
-  };
-
-	$.jnotify.resume = function(){
-		// mark that we're no longer pause
-		paused = false;
-
-		// resume playing
-		$.jnotify.play(true, 0);
-  };
-
-	
-	function jNotify(message, options){
-		// a reference to the jNotify object
-		var self = this, TO = typeof options;
-
-		if( TO == "number" ){
-			options = $.extend({}, defaults, {delay: options});
-		} else if( TO == "boolean" ){
-			options = $.extend({}, defaults, {sticky: true}) ;
-		} else if( TO == "string" ){
-			options = $.extend({}, defaults, {type: options, delay: ((arguments.length > 2) && (typeof arguments[2] == "number")) ? arguments[2] : defaults.delay, sticky: ((arguments.length > 2) && (typeof arguments[2] == "boolean")) ? arguments[2] : defaults.sticky}) ;
-		} else {
-			options = $.extend({}, defaults, options);
-		}
-		
-		// store the options
-		this.options = options;
-		
-		// if the container doesn't exist, create it
-		if( !$jnotify ){
-			// we want to use one single container, so always use the default container class
-			$jnotify = $('<div class="' + defaults.classContainer + '" />').appendTo("body");
-			if( $.isFunction(options.init) ) options.init.apply(self, [$jnotify]);
-		} 
-		
-		// create the notification
-		function create(message){
-			var html = '<div class="' + options.classNotification + (options.type.length ? (" " + options.classNotification + "-" + options.type) : "") + '">'
-			         + '<div class="' + options.classBackground + '"></div>'
-			         + ((options.sticky && options.showClose) || options.alwaysClosable ? ('<a class="' + options.classClose + '">' + options.closeLabel + '</a>') : '')
-			         + '<div class="' + options.classMessage + '">'
-			         + '<div>' + message + '</div>'
-			         + '</div></div>';
-
-			// increase the counter tracking the notification instances
-			count++;
-			
-			// create the note
-			var $note = $(html);
-			
-			if( options.alwaysClosable || options.sticky ){
-				// add click handler to remove the sticky notification
-				$note.find("a." + options.classClose).bind("click.jnotify", function (){
-					self.remove();
-				});
-			}
-
-			// run callback
-			if( $.isFunction(options.create) ) options.create.apply(self, [$note]);
-
-			// return the new note			
-			return $note.appendTo($jnotify);
-		}
-
-		// remove the notification		
-		this.remove = function (callback){
-			var $msg = $note.find("." + options.classMessage), $parent = $msg.parent();
-			// remove message from counter
-			var index = count--;
-
-			// run callback
-			if( $.isFunction(options.beforeRemove) ) options.beforeRemove.apply(self, [$msg]);
-			
-			// cleans up notification
-			function finished(){
-				// remove the parent container
-				$parent.remove();
-				
-				// if there's a callback, run it
-				if( $.isFunction(callback) ) callback.apply(self, [$msg]);
-				if( $.isFunction(options.remove) ) options.remove.apply(self, [$msg]);
-			}
-
-			// check if a custom transition has been specified
-			if( $.isFunction(options.transition) ) options.transition.apply(self, [$parent, $msg, index, finished, options]);
-			else {
-				$msg.fadeTo(options.fadeSpeed, 0.01, function (){
-					// if last item, just remove
-					if( index <= 1 ) finished();
-					// slide the parent closed
-					else $parent.slideUp(options.slideSpeed, finished);
-				});
-				
-				// if the last notification, fade out the container
-				if( count <= 0 ) $parent.fadeOut(options.fadeSpeed);
-			}
-		};
-		
-		// create the note
-		var $note = create(message);
-		
-		// if not a sticky, add to show queue
-		if( !options.sticky ){
-			// add the message to the queue
-			queue.push(this);
-			// play queue
-			$.jnotify.play();
-		}
-
-		return this;
-	}
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.js
deleted file mode 100644
index 2aee9d9..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.js
+++ /dev/null
@@ -1,1390 +0,0 @@
-/*!
- * jScrollPane - v2.0.0beta11 - 2011-07-04
- * http://jscrollpane.kelvinluck.com/
- *
- * Copyright (c) 2010 Kelvin Luck
- * Dual licensed under the MIT and GPL licenses.
- */
-
-// Script: jScrollPane - cross browser customisable scrollbars
-//
-// *Version: 2.0.0beta11, Last updated: 2011-07-04*
-//
-// Project Home - http://jscrollpane.kelvinluck.com/
-// GitHub       - http://github.com/vitch/jScrollPane
-// Source       - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.js
-// (Minified)   - http://github.com/vitch/jScrollPane/raw/master/script/jquery.jscrollpane.min.js
-//
-// About: License
-//
-// Copyright (c) 2011 Kelvin Luck
-// Dual licensed under the MIT or GPL Version 2 licenses.
-// http://jscrollpane.kelvinluck.com/MIT-LICENSE.txt
-// http://jscrollpane.kelvinluck.com/GPL-LICENSE.txt
-//
-// About: Examples
-//
-// All examples and demos are available through the jScrollPane example site at:
-// http://jscrollpane.kelvinluck.com/
-//
-// About: Support and Testing
-//
-// This plugin is tested on the browsers below and has been found to work reliably on them. If you run
-// into a problem on one of the supported browsers then please visit the support section on the jScrollPane
-// website (http://jscrollpane.kelvinluck.com/) for more information on getting support. You are also
-// welcome to fork the project on GitHub if you can contribute a fix for a given issue. 
-//
-// jQuery Versions - tested in 1.4.2+ - reported to work in 1.3.x
-// Browsers Tested - Firefox 3.6.8, Safari 5, Opera 10.6, Chrome 5.0, IE 6, 7, 8
-//
-// About: Release History
-//
-// 2.0.0beta11 - (in progress) 
-// 2.0.0beta10 - (2011-04-17) cleaner required size calculation, improved keyboard support, stickToBottom/Left, other small fixes
-// 2.0.0beta9 - (2011-01-31) new API methods, bug fixes and correct keyboard support for FF/OSX
-// 2.0.0beta8 - (2011-01-29) touchscreen support, improved keyboard support
-// 2.0.0beta7 - (2011-01-23) scroll speed consistent (thanks Aivo Paas)
-// 2.0.0beta6 - (2010-12-07) scrollToElement horizontal support
-// 2.0.0beta5 - (2010-10-18) jQuery 1.4.3 support, various bug fixes
-// 2.0.0beta4 - (2010-09-17) clickOnTrack support, bug fixes
-// 2.0.0beta3 - (2010-08-27) Horizontal mousewheel, mwheelIntent, keyboard support, bug fixes
-// 2.0.0beta2 - (2010-08-21) Bug fixes
-// 2.0.0beta1 - (2010-08-17) Rewrite to follow modern best practices and enable horizontal scrolling, initially hidden
-//							 elements and dynamically sized elements.
-// 1.x - (2006-12-31 - 2010-07-31) Initial version, hosted at googlecode, deprecated
-
-(function($,window,undefined){
-
-	$.fn.jScrollPane = function(settings)
-	{
-		// JScrollPane "class" - public methods are available through $('selector').data('jsp')
-		function JScrollPane(elem, s)
-		{
-			var settings, jsp = this, pane, paneWidth, paneHeight, container, contentWidth, contentHeight,
-				percentInViewH, percentInViewV, isScrollableV, isScrollableH, verticalDrag, dragMaxY,
-				verticalDragPosition, horizontalDrag, dragMaxX, horizontalDragPosition,
-				verticalBar, verticalTrack, scrollbarWidth, verticalTrackHeight, verticalDragHeight, arrowUp, arrowDown,
-				horizontalBar, horizontalTrack, horizontalTrackWidth, horizontalDragWidth, arrowLeft, arrowRight,
-				reinitialiseInterval, originalPadding, originalPaddingTotalWidth, previousContentWidth,
-				wasAtTop = true, wasAtLeft = true, wasAtBottom = false, wasAtRight = false,
-				originalElement = elem.clone(false, false).empty(),
-				mwEvent = $.fn.mwheelIntent ? 'mwheelIntent.jsp' : 'mousewheel.jsp';
-
-			originalPadding = elem.css('paddingTop') + ' ' +
-								elem.css('paddingRight') + ' ' +
-								elem.css('paddingBottom') + ' ' +
-								elem.css('paddingLeft');
-			originalPaddingTotalWidth = (parseInt(elem.css('paddingLeft'), 10) || 0) +
-										(parseInt(elem.css('paddingRight'), 10) || 0);
-
-			function initialise(s)
-			{
-
-				var /*firstChild, lastChild, */isMaintainingPositon, lastContentX, lastContentY,
-						hasContainingSpaceChanged, originalScrollTop, originalScrollLeft,
-						maintainAtBottom = false, maintainAtRight = false;
-
-				settings = s;
-
-				if (pane === undefined) {
-					originalScrollTop = elem.scrollTop();
-					originalScrollLeft = elem.scrollLeft();
-
-					elem.css(
-						{
-							overflow: 'hidden',
-							padding: 0
-						}
-					);
-					// TODO: Deal with where width/ height is 0 as it probably means the element is hidden and we should
-					// come back to it later and check once it is unhidden...
-					paneWidth = elem.innerWidth() + originalPaddingTotalWidth;
-					paneHeight = elem.innerHeight();
-
-					elem.width(paneWidth);
-					
-					pane = $('<div class="jspPane" />').css('padding', originalPadding).append(elem.children());
-					container = $('<div class="jspContainer" />')
-						.css({
-							'width': paneWidth + 'px',
-							'height': paneHeight + 'px'
-						}
-					).append(pane).appendTo(elem);
-
-					/*
-					// Move any margins from the first and last children up to the container so they can still
-					// collapse with neighbouring elements as they would before jScrollPane 
-					firstChild = pane.find(':first-child');
-					lastChild = pane.find(':last-child');
-					elem.css(
-						{
-							'margin-top': firstChild.css('margin-top'),
-							'margin-bottom': lastChild.css('margin-bottom')
-						}
-					);
-					firstChild.css('margin-top', 0);
-					lastChild.css('margin-bottom', 0);
-					*/
-				} else {
-					elem.css('width', '');
-
-					maintainAtBottom = settings.stickToBottom && isCloseToBottom();
-					maintainAtRight  = settings.stickToRight  && isCloseToRight();
-
-					hasContainingSpaceChanged = elem.innerWidth() + originalPaddingTotalWidth != paneWidth || elem.outerHeight() != paneHeight;
-
-					if (hasContainingSpaceChanged) {
-						paneWidth = elem.innerWidth() + originalPaddingTotalWidth;
-						paneHeight = elem.innerHeight();
-						container.css({
-							width: paneWidth + 'px',
-							height: paneHeight + 'px'
-						});
-					}
-
-					// If nothing changed since last check...
-					if (!hasContainingSpaceChanged && previousContentWidth == contentWidth && pane.outerHeight() == contentHeight) {
-						elem.width(paneWidth);
-						return;
-					}
-					previousContentWidth = contentWidth;
-					
-					pane.css('width', '');
-					elem.width(paneWidth);
-
-					container.find('>.jspVerticalBar,>.jspHorizontalBar').remove().end();
-				}
-
-				pane.css('overflow', 'auto');
-				if (s.contentWidth) {
-					contentWidth = s.contentWidth;
-				} else {
-					contentWidth = pane[0].scrollWidth;
-				}
-				contentHeight = pane[0].scrollHeight;
-				pane.css('overflow', '');
-
-				percentInViewH = contentWidth / paneWidth;
-				percentInViewV = contentHeight / paneHeight;
-				isScrollableV = percentInViewV > 1;
-
-				isScrollableH = percentInViewH > 1;
-
-				//console.log(paneWidth, paneHeight, contentWidth, contentHeight, percentInViewH, percentInViewV, isScrollableH, isScrollableV);
-
-				if (!(isScrollableH || isScrollableV)) {
-					elem.removeClass('jspScrollable');
-					pane.css({
-						top: 0,
-						width: container.width() - originalPaddingTotalWidth
-					});
-					removeMousewheel();
-					removeFocusHandler();
-					removeKeyboardNav();
-					removeClickOnTrack();
-					unhijackInternalLinks();
-				} else {
-					elem.addClass('jspScrollable');
-
-					isMaintainingPositon = settings.maintainPosition && (verticalDragPosition || horizontalDragPosition);
-					if (isMaintainingPositon) {
-						lastContentX = contentPositionX();
-						lastContentY = contentPositionY();
-					}
-
-					initialiseVerticalScroll();
-					initialiseHorizontalScroll();
-					resizeScrollbars();
-
-					if (isMaintainingPositon) {
-						scrollToX(maintainAtRight  ? (contentWidth  - paneWidth ) : lastContentX, false);
-						scrollToY(maintainAtBottom ? (contentHeight - paneHeight) : lastContentY, false);
-					}
-
-					initFocusHandler();
-					initMousewheel();
-					initTouch();
-					
-					if (settings.enableKeyboardNavigation) {
-						initKeyboardNav();
-					}
-					if (settings.clickOnTrack) {
-						initClickOnTrack();
-					}
-					
-					observeHash();
-					if (settings.hijackInternalLinks) {
-						hijackInternalLinks();
-					}
-				}
-
-				if (settings.autoReinitialise && !reinitialiseInterval) {
-					reinitialiseInterval = setInterval(
-						function()
-						{
-							initialise(settings);
-						},
-						settings.autoReinitialiseDelay
-					);
-				} else if (!settings.autoReinitialise && reinitialiseInterval) {
-					clearInterval(reinitialiseInterval);
-				}
-
-				originalScrollTop && elem.scrollTop(0) && scrollToY(originalScrollTop, false);
-				originalScrollLeft && elem.scrollLeft(0) && scrollToX(originalScrollLeft, false);
-
-				elem.trigger('jsp-initialised', [isScrollableH || isScrollableV]);
-			}
-
-			function initialiseVerticalScroll()
-			{
-				if (isScrollableV) {
-
-					container.append(
-						$('<div class="jspVerticalBar" />').append(
-							$('<div class="jspCap jspCapTop" />'),
-							$('<div class="jspTrack" />').append(
-								$('<div class="jspDrag" />').append(
-									$('<div class="jspDragTop" />'),
-									$('<div class="jspDragBottom" />')
-								)
-							),
-							$('<div class="jspCap jspCapBottom" />')
-						)
-					);
-
-					verticalBar = container.find('>.jspVerticalBar');
-					verticalTrack = verticalBar.find('>.jspTrack');
-					verticalDrag = verticalTrack.find('>.jspDrag');
-
-					if (settings.showArrows) {
-						arrowUp = $('<a class="jspArrow jspArrowUp" />').bind(
-							'mousedown.jsp', getArrowScroll(0, -1)
-						).bind('click.jsp', nil);
-						arrowDown = $('<a class="jspArrow jspArrowDown" />').bind(
-							'mousedown.jsp', getArrowScroll(0, 1)
-						).bind('click.jsp', nil);
-						if (settings.arrowScrollOnHover) {
-							arrowUp.bind('mouseover.jsp', getArrowScroll(0, -1, arrowUp));
-							arrowDown.bind('mouseover.jsp', getArrowScroll(0, 1, arrowDown));
-						}
-
-						appendArrows(verticalTrack, settings.verticalArrowPositions, arrowUp, arrowDown);
-					}
-
-					verticalTrackHeight = paneHeight;
-					container.find('>.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow').each(
-						function()
-						{
-							verticalTrackHeight -= $(this).outerHeight();
-						}
-					);
-
-
-					verticalDrag.hover(
-						function()
-						{
-							verticalDrag.addClass('jspHover');
-						},
-						function()
-						{
-							verticalDrag.removeClass('jspHover');
-						}
-					).bind(
-						'mousedown.jsp',
-						function(e)
-						{
-							// Stop IE from allowing text selection
-							$('html').bind('dragstart.jsp selectstart.jsp', nil);
-
-							verticalDrag.addClass('jspActive');
-
-							var startY = e.pageY - verticalDrag.position().top;
-
-							$('html').bind(
-								'mousemove.jsp',
-								function(e)
-								{
-									positionDragY(e.pageY - startY, false);
-								}
-							).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
-							return false;
-						}
-					);
-					sizeVerticalScrollbar();
-				}
-			}
-
-			function sizeVerticalScrollbar()
-			{
-				verticalTrack.height(verticalTrackHeight + 'px');
-				verticalDragPosition = 0;
-				scrollbarWidth = settings.verticalGutter + verticalTrack.outerWidth();
-
-				// Make the pane thinner to allow for the vertical scrollbar
-				pane.width(paneWidth - scrollbarWidth - originalPaddingTotalWidth);
-
-				// Add margin to the left of the pane if scrollbars are on that side (to position
-				// the scrollbar on the left or right set it's left or right property in CSS)
-				try {
-					if (verticalBar.position().left === 0) {
-						pane.css('margin-left', scrollbarWidth + 'px');
-					}
-				} catch (err) {
-				}
-			}
-
-			function initialiseHorizontalScroll()
-			{
-				if (isScrollableH) {
-
-					container.append(
-						$('<div class="jspHorizontalBar" />').append(
-							$('<div class="jspCap jspCapLeft" />'),
-							$('<div class="jspTrack" />').append(
-								$('<div class="jspDrag" />').append(
-									$('<div class="jspDragLeft" />'),
-									$('<div class="jspDragRight" />')
-								)
-							),
-							$('<div class="jspCap jspCapRight" />')
-						)
-					);
-
-					horizontalBar = container.find('>.jspHorizontalBar');
-					horizontalTrack = horizontalBar.find('>.jspTrack');
-					horizontalDrag = horizontalTrack.find('>.jspDrag');
-
-					if (settings.showArrows) {
-						arrowLeft = $('<a class="jspArrow jspArrowLeft" />').bind(
-							'mousedown.jsp', getArrowScroll(-1, 0)
-						).bind('click.jsp', nil);
-						arrowRight = $('<a class="jspArrow jspArrowRight" />').bind(
-							'mousedown.jsp', getArrowScroll(1, 0)
-						).bind('click.jsp', nil);
-						if (settings.arrowScrollOnHover) {
-							arrowLeft.bind('mouseover.jsp', getArrowScroll(-1, 0, arrowLeft));
-							arrowRight.bind('mouseover.jsp', getArrowScroll(1, 0, arrowRight));
-						}
-						appendArrows(horizontalTrack, settings.horizontalArrowPositions, arrowLeft, arrowRight);
-					}
-
-					horizontalDrag.hover(
-						function()
-						{
-							horizontalDrag.addClass('jspHover');
-						},
-						function()
-						{
-							horizontalDrag.removeClass('jspHover');
-						}
-					).bind(
-						'mousedown.jsp',
-						function(e)
-						{
-							// Stop IE from allowing text selection
-							$('html').bind('dragstart.jsp selectstart.jsp', nil);
-
-							horizontalDrag.addClass('jspActive');
-
-							var startX = e.pageX - horizontalDrag.position().left;
-
-							$('html').bind(
-								'mousemove.jsp',
-								function(e)
-								{
-									positionDragX(e.pageX - startX, false);
-								}
-							).bind('mouseup.jsp mouseleave.jsp', cancelDrag);
-							return false;
-						}
-					);
-					horizontalTrackWidth = container.innerWidth();
-					sizeHorizontalScrollbar();
-				}
-			}
-
-			function sizeHorizontalScrollbar()
-			{
-				container.find('>.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow').each(
-					function()
-					{
-						horizontalTrackWidth -= $(this).outerWidth();
-					}
-				);
-
-				horizontalTrack.width(horizontalTrackWidth + 'px');
-				horizontalDragPosition = 0;
-			}
-
-			function resizeScrollbars()
-			{
-				if (isScrollableH && isScrollableV) {
-					var horizontalTrackHeight = horizontalTrack.outerHeight(),
-						verticalTrackWidth = verticalTrack.outerWidth();
-					verticalTrackHeight -= horizontalTrackHeight;
-					$(horizontalBar).find('>.jspCap:visible,>.jspArrow').each(
-						function()
-						{
-							horizontalTrackWidth += $(this).outerWidth();
-						}
-					);
-					horizontalTrackWidth -= verticalTrackWidth;
-					paneHeight -= verticalTrackWidth;
-					paneWidth -= horizontalTrackHeight;
-					horizontalTrack.parent().append(
-						$('<div class="jspCorner" />').css('width', horizontalTrackHeight + 'px')
-					);
-					sizeVerticalScrollbar();
-					sizeHorizontalScrollbar();
-				}
-				// reflow content
-				if (isScrollableH) {
-					pane.width((container.outerWidth() - originalPaddingTotalWidth) + 'px');
-				}
-				contentHeight = pane.outerHeight();
-				percentInViewV = contentHeight / paneHeight;
-
-				if (isScrollableH) {
-					horizontalDragWidth = Math.ceil(1 / percentInViewH * horizontalTrackWidth);
-					if (horizontalDragWidth > settings.horizontalDragMaxWidth) {
-						horizontalDragWidth = settings.horizontalDragMaxWidth;
-					} else if (horizontalDragWidth < settings.horizontalDragMinWidth) {
-						horizontalDragWidth = settings.horizontalDragMinWidth;
-					}
-					horizontalDrag.width(horizontalDragWidth + 'px');
-					dragMaxX = horizontalTrackWidth - horizontalDragWidth;
-					_positionDragX(horizontalDragPosition); // To update the state for the arrow buttons
-				}
-				if (isScrollableV) {
-					verticalDragHeight = Math.ceil(1 / percentInViewV * verticalTrackHeight);
-					if (verticalDragHeight > settings.verticalDragMaxHeight) {
-						verticalDragHeight = settings.verticalDragMaxHeight;
-					} else if (verticalDragHeight < settings.verticalDragMinHeight) {
-						verticalDragHeight = settings.verticalDragMinHeight;
-					}
-					verticalDrag.height(verticalDragHeight + 'px');
-					dragMaxY = verticalTrackHeight - verticalDragHeight;
-					_positionDragY(verticalDragPosition); // To update the state for the arrow buttons
-				}
-			}
-
-			function appendArrows(ele, p, a1, a2)
-			{
-				var p1 = "before", p2 = "after", aTemp;
-				
-				// Sniff for mac... Is there a better way to determine whether the arrows would naturally appear
-				// at the top or the bottom of the bar?
-				if (p == "os") {
-					p = /Mac/.test(navigator.platform) ? "after" : "split";
-				}
-				if (p == p1) {
-					p2 = p;
-				} else if (p == p2) {
-					p1 = p;
-					aTemp = a1;
-					a1 = a2;
-					a2 = aTemp;
-				}
-
-				ele[p1](a1)[p2](a2);
-			}
-
-			function getArrowScroll(dirX, dirY, ele)
-			{
-				return function()
-				{
-					arrowScroll(dirX, dirY, this, ele);
-					this.blur();
-					return false;
-				};
-			}
-
-			function arrowScroll(dirX, dirY, arrow, ele)
-			{
-				arrow = $(arrow).addClass('jspActive');
-
-				var eve,
-					scrollTimeout,
-					isFirst = true,
-					doScroll = function()
-					{
-						if (dirX !== 0) {
-							jsp.scrollByX(dirX * settings.arrowButtonSpeed);
-						}
-						if (dirY !== 0) {
-							jsp.scrollByY(dirY * settings.arrowButtonSpeed);
-						}
-						scrollTimeout = setTimeout(doScroll, isFirst ? settings.initialDelay : settings.arrowRepeatFreq);
-						isFirst = false;
-					};
-
-				doScroll();
-
-				eve = ele ? 'mouseout.jsp' : 'mouseup.jsp';
-				ele = ele || $('html');
-				ele.bind(
-					eve,
-					function()
-					{
-						arrow.removeClass('jspActive');
-						scrollTimeout && clearTimeout(scrollTimeout);
-						scrollTimeout = null;
-						ele.unbind(eve);
-					}
-				);
-			}
-
-			function initClickOnTrack()
-			{
-				removeClickOnTrack();
-				if (isScrollableV) {
-					verticalTrack.bind(
-						'mousedown.jsp',
-						function(e)
-						{
-							if (e.originalTarget === undefined || e.originalTarget == e.currentTarget) {
-								var clickedTrack = $(this),
-									offset = clickedTrack.offset(),
-									direction = e.pageY - offset.top - verticalDragPosition,
-									scrollTimeout,
-									isFirst = true,
-									doScroll = function()
-									{
-										var offset = clickedTrack.offset(),
-											pos = e.pageY - offset.top - verticalDragHeight / 2,
-											contentDragY = paneHeight * settings.scrollPagePercent,
-											dragY = dragMaxY * contentDragY / (contentHeight - paneHeight);
-										if (direction < 0) {
-											if (verticalDragPosition - dragY > pos) {
-												jsp.scrollByY(-contentDragY);
-											} else {
-												positionDragY(pos);
-											}
-										} else if (direction > 0) {
-											if (verticalDragPosition + dragY < pos) {
-												jsp.scrollByY(contentDragY);
-											} else {
-												positionDragY(pos);
-											}
-										} else {
-											cancelClick();
-											return;
-										}
-										scrollTimeout = setTimeout(doScroll, isFirst ? settings.initialDelay : settings.trackClickRepeatFreq);
-										isFirst = false;
-									},
-									cancelClick = function()
-									{
-										scrollTimeout && clearTimeout(scrollTimeout);
-										scrollTimeout = null;
-										$(document).unbind('mouseup.jsp', cancelClick);
-									};
-								doScroll();
-								$(document).bind('mouseup.jsp', cancelClick);
-								return false;
-							}
-						}
-					);
-				}
-				
-				if (isScrollableH) {
-					horizontalTrack.bind(
-						'mousedown.jsp',
-						function(e)
-						{
-							if (e.originalTarget === undefined || e.originalTarget == e.currentTarget) {
-								var clickedTrack = $(this),
-									offset = clickedTrack.offset(),
-									direction = e.pageX - offset.left - horizontalDragPosition,
-									scrollTimeout,
-									isFirst = true,
-									doScroll = function()
-									{
-										var offset = clickedTrack.offset(),
-											pos = e.pageX - offset.left - horizontalDragWidth / 2,
-											contentDragX = paneWidth * settings.scrollPagePercent,
-											dragX = dragMaxX * contentDragX / (contentWidth - paneWidth);
-										if (direction < 0) {
-											if (horizontalDragPosition - dragX > pos) {
-												jsp.scrollByX(-contentDragX);
-											} else {
-												positionDragX(pos);
-											}
-										} else if (direction > 0) {
-											if (horizontalDragPosition + dragX < pos) {
-												jsp.scrollByX(contentDragX);
-											} else {
-												positionDragX(pos);
-											}
-										} else {
-											cancelClick();
-											return;
-										}
-										scrollTimeout = setTimeout(doScroll, isFirst ? settings.initialDelay : settings.trackClickRepeatFreq);
-										isFirst = false;
-									},
-									cancelClick = function()
-									{
-										scrollTimeout && clearTimeout(scrollTimeout);
-										scrollTimeout = null;
-										$(document).unbind('mouseup.jsp', cancelClick);
-									};
-								doScroll();
-								$(document).bind('mouseup.jsp', cancelClick);
-								return false;
-							}
-						}
-					);
-				}
-			}
-
-			function removeClickOnTrack()
-			{
-				if (horizontalTrack) {
-					horizontalTrack.unbind('mousedown.jsp');
-				}
-				if (verticalTrack) {
-					verticalTrack.unbind('mousedown.jsp');
-				}
-			}
-
-			function cancelDrag()
-			{
-				$('html').unbind('dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp');
-
-				if (verticalDrag) {
-					verticalDrag.removeClass('jspActive');
-				}
-				if (horizontalDrag) {
-					horizontalDrag.removeClass('jspActive');
-				}
-			}
-
-			function positionDragY(destY, animate)
-			{
-				if (!isScrollableV) {
-					return;
-				}
-				if (destY < 0) {
-					destY = 0;
-				} else if (destY > dragMaxY) {
-					destY = dragMaxY;
-				}
-
-				// can't just check if(animate) because false is a valid value that could be passed in...
-				if (animate === undefined) {
-					animate = settings.animateScroll;
-				}
-				if (animate) {
-					jsp.animate(verticalDrag, 'top', destY,	_positionDragY);
-				} else {
-					verticalDrag.css('top', destY);
-					_positionDragY(destY);
-				}
-
-			}
-
-			function _positionDragY(destY)
-			{
-				if (destY === undefined) {
-					destY = verticalDrag.position().top;
-				}
-
-				container.scrollTop(0);
-				verticalDragPosition = destY;
-
-				var isAtTop = verticalDragPosition === 0,
-					isAtBottom = verticalDragPosition == dragMaxY,
-					percentScrolled = destY/ dragMaxY,
-					destTop = -percentScrolled * (contentHeight - paneHeight);
-
-				if (wasAtTop != isAtTop || wasAtBottom != isAtBottom) {
-					wasAtTop = isAtTop;
-					wasAtBottom = isAtBottom;
-					elem.trigger('jsp-arrow-change', [wasAtTop, wasAtBottom, wasAtLeft, wasAtRight]);
-				}
-				
-				updateVerticalArrows(isAtTop, isAtBottom);
-				pane.css('top', destTop);
-				elem.trigger('jsp-scroll-y', [-destTop, isAtTop, isAtBottom]).trigger('scroll');
-			}
-
-			function positionDragX(destX, animate)
-			{
-				if (!isScrollableH) {
-					return;
-				}
-				if (destX < 0) {
-					destX = 0;
-				} else if (destX > dragMaxX) {
-					destX = dragMaxX;
-				}
-
-				if (animate === undefined) {
-					animate = settings.animateScroll;
-				}
-				if (animate) {
-					jsp.animate(horizontalDrag, 'left', destX,	_positionDragX);
-				} else {
-					horizontalDrag.css('left', destX);
-					_positionDragX(destX);
-				}
-			}
-
-			function _positionDragX(destX)
-			{
-				if (destX === undefined) {
-					destX = horizontalDrag.position().left;
-				}
-
-				container.scrollTop(0);
-				horizontalDragPosition = destX;
-
-				var isAtLeft = horizontalDragPosition === 0,
-					isAtRight = horizontalDragPosition == dragMaxX,
-					percentScrolled = destX / dragMaxX,
-					destLeft = -percentScrolled * (contentWidth - paneWidth);
-
-				if (wasAtLeft != isAtLeft || wasAtRight != isAtRight) {
-					wasAtLeft = isAtLeft;
-					wasAtRight = isAtRight;
-					elem.trigger('jsp-arrow-change', [wasAtTop, wasAtBottom, wasAtLeft, wasAtRight]);
-				}
-				
-				updateHorizontalArrows(isAtLeft, isAtRight);
-				pane.css('left', destLeft);
-				elem.trigger('jsp-scroll-x', [-destLeft, isAtLeft, isAtRight]).trigger('scroll');
-			}
-
-			function updateVerticalArrows(isAtTop, isAtBottom)
-			{
-				if (settings.showArrows) {
-					arrowUp[isAtTop ? 'addClass' : 'removeClass']('jspDisabled');
-					arrowDown[isAtBottom ? 'addClass' : 'removeClass']('jspDisabled');
-				}
-			}
-
-			function updateHorizontalArrows(isAtLeft, isAtRight)
-			{
-				if (settings.showArrows) {
-					arrowLeft[isAtLeft ? 'addClass' : 'removeClass']('jspDisabled');
-					arrowRight[isAtRight ? 'addClass' : 'removeClass']('jspDisabled');
-				}
-			}
-
-			function scrollToY(destY, animate)
-			{
-				var percentScrolled = destY / (contentHeight - paneHeight);
-				positionDragY(percentScrolled * dragMaxY, animate);
-			}
-
-			function scrollToX(destX, animate)
-			{
-				var percentScrolled = destX / (contentWidth - paneWidth);
-				positionDragX(percentScrolled * dragMaxX, animate);
-			}
-
-			function scrollToElement(ele, stickToTop, animate)
-			{
-				var e, eleHeight, eleWidth, eleTop = 0, eleLeft = 0, viewportTop, viewportLeft, maxVisibleEleTop, maxVisibleEleLeft, destY, destX;
-
-				// Legal hash values aren't necessarily legal jQuery selectors so we need to catch any
-				// errors from the lookup...
-				try {
-					e = $(ele);
-				} catch (err) {
-					return;
-				}
-				eleHeight = e.outerHeight();
-				eleWidth= e.outerWidth();
-
-				container.scrollTop(0);
-				container.scrollLeft(0);
-				
-				// loop through parents adding the offset top of any elements that are relatively positioned between
-				// the focused element and the jspPane so we can get the true distance from the top
-				// of the focused element to the top of the scrollpane...
-				while (!e.is('.jspPane')) {
-					eleTop += e.position().top;
-					eleLeft += e.position().left;
-					e = e.offsetParent();
-					if (/^body|html$/i.test(e[0].nodeName)) {
-						// we ended up too high in the document structure. Quit!
-						return;
-					}
-				}
-
-				viewportTop = contentPositionY();
-				maxVisibleEleTop = viewportTop + paneHeight;
-				if (eleTop < viewportTop || stickToTop) { // element is above viewport
-					destY = eleTop - settings.verticalGutter;
-				} else if (eleTop + eleHeight > maxVisibleEleTop) { // element is below viewport
-					destY = eleTop - paneHeight + eleHeight + settings.verticalGutter;
-				}
-				if (destY) {
-					scrollToY(destY, animate);
-				}
-				
-				viewportLeft = contentPositionX();
-	            maxVisibleEleLeft = viewportLeft + paneWidth;
-	            if (eleLeft < viewportLeft || stickToTop) { // element is to the left of viewport
-	                destX = eleLeft - settings.horizontalGutter;
-	            } else if (eleLeft + eleWidth > maxVisibleEleLeft) { // element is to the right viewport
-	                destX = eleLeft - paneWidth + eleWidth + settings.horizontalGutter;
-	            }
-	            if (destX) {
-	                scrollToX(destX, animate);
-	            }
-
-			}
-
-			function contentPositionX()
-			{
-				return -pane.position().left;
-			}
-
-			function contentPositionY()
-			{
-				return -pane.position().top;
-			}
-
-			function isCloseToBottom()
-			{
-				var scrollableHeight = contentHeight - paneHeight;
-				return (scrollableHeight > 20) && (scrollableHeight - contentPositionY() < 10);
-			}
-
-			function isCloseToRight()
-			{
-				var scrollableWidth = contentWidth - paneWidth;
-				return (scrollableWidth > 20) && (scrollableWidth - contentPositionX() < 10);
-			}
-
-			function initMousewheel()
-			{
-				container.unbind(mwEvent).bind(
-					mwEvent,
-					function (event, delta, deltaX, deltaY) {
-						var dX = horizontalDragPosition, dY = verticalDragPosition;
-						jsp.scrollBy(deltaX * settings.mouseWheelSpeed, -deltaY * settings.mouseWheelSpeed, false);
-						// return true if there was no movement so rest of screen can scroll
-						return dX == horizontalDragPosition && dY == verticalDragPosition;
-					}
-				);
-			}
-
-			function removeMousewheel()
-			{
-				container.unbind(mwEvent);
-			}
-
-			function nil()
-			{
-				return false;
-			}
-
-			function initFocusHandler()
-			{
-				pane.find(':input,a').unbind('focus.jsp').bind(
-					'focus.jsp',
-					function(e)
-					{
-						scrollToElement(e.target, false);
-					}
-				);
-			}
-
-			function removeFocusHandler()
-			{
-				pane.find(':input,a').unbind('focus.jsp');
-			}
-			
-			function initKeyboardNav()
-			{
-				var keyDown, elementHasScrolled, validParents = [];
-				isScrollableH && validParents.push(horizontalBar[0]);
-				isScrollableV && validParents.push(verticalBar[0]);
-				
-				// IE also focuses elements that don't have tabindex set.
-				pane.focus(
-					function()
-					{
-						elem.focus();
-					}
-				);
-				
-				elem.attr('tabindex', 0)
-					.unbind('keydown.jsp keypress.jsp')
-					.bind(
-						'keydown.jsp',
-						function(e)
-						{
-							if (e.target !== this && !(validParents.length && $(e.target).closest(validParents).length)){
-								return;
-							}
-							var dX = horizontalDragPosition, dY = verticalDragPosition;
-							switch(e.keyCode) {
-								case 40: // down
-								case 38: // up
-								case 34: // page down
-								case 32: // space
-								case 33: // page up
-								case 39: // right
-								case 37: // left
-									keyDown = e.keyCode;
-									keyDownHandler();
-									break;
-								case 35: // end
-									scrollToY(contentHeight - paneHeight);
-									keyDown = null;
-									break;
-								case 36: // home
-									scrollToY(0);
-									keyDown = null;
-									break;
-							}
-
-							elementHasScrolled = e.keyCode == keyDown && dX != horizontalDragPosition || dY != verticalDragPosition;
-							return !elementHasScrolled;
-						}
-					).bind(
-						'keypress.jsp', // For FF/ OSX so that we can cancel the repeat key presses if the JSP scrolls...
-						function(e)
-						{
-							if (e.keyCode == keyDown) {
-								keyDownHandler();
-							}
-							return !elementHasScrolled;
-						}
-					);
-				
-				if (settings.hideFocus) {
-					elem.css('outline', 'none');
-					if ('hideFocus' in container[0]){
-						elem.attr('hideFocus', true);
-					}
-				} else {
-					elem.css('outline', '');
-					if ('hideFocus' in container[0]){
-						elem.attr('hideFocus', false);
-					}
-				}
-				
-				function keyDownHandler()
-				{
-					var dX = horizontalDragPosition, dY = verticalDragPosition;
-					switch(keyDown) {
-						case 40: // down
-							jsp.scrollByY(settings.keyboardSpeed, false);
-							break;
-						case 38: // up
-							jsp.scrollByY(-settings.keyboardSpeed, false);
-							break;
-						case 34: // page down
-						case 32: // space
-							jsp.scrollByY(paneHeight * settings.scrollPagePercent, false);
-							break;
-						case 33: // page up
-							jsp.scrollByY(-paneHeight * settings.scrollPagePercent, false);
-							break;
-						case 39: // right
-							jsp.scrollByX(settings.keyboardSpeed, false);
-							break;
-						case 37: // left
-							jsp.scrollByX(-settings.keyboardSpeed, false);
-							break;
-					}
-
-					elementHasScrolled = dX != horizontalDragPosition || dY != verticalDragPosition;
-					return elementHasScrolled;
-				}
-			}
-			
-			function removeKeyboardNav()
-			{
-				elem.attr('tabindex', '-1')
-					.removeAttr('tabindex')
-					.unbind('keydown.jsp keypress.jsp');
-			}
-
-			function observeHash()
-			{
-				if (location.hash && location.hash.length > 1) {
-					var e,
-						retryInt,
-						hash = escape(location.hash) // hash must be escaped to prevent XSS
-						;
-					try {
-						e = $(hash);
-					} catch (err) {
-						return;
-					}
-
-					if (e.length && pane.find(hash)) {
-						// nasty workaround but it appears to take a little while before the hash has done its thing
-						// to the rendered page so we just wait until the container's scrollTop has been messed up.
-						if (container.scrollTop() === 0) {
-							retryInt = setInterval(
-								function()
-								{
-									if (container.scrollTop() > 0) {
-										scrollToElement(hash, true);
-										$(document).scrollTop(container.position().top);
-										clearInterval(retryInt);
-									}
-								},
-								50
-							);
-						} else {
-							scrollToElement(hash, true);
-							$(document).scrollTop(container.position().top);
-						}
-					}
-				}
-			}
-
-			function unhijackInternalLinks()
-			{
-				$('a.jspHijack').unbind('click.jsp-hijack').removeClass('jspHijack');
-			}
-
-			function hijackInternalLinks()
-			{
-				unhijackInternalLinks();
-				$('a[href^=#]').addClass('jspHijack').bind(
-					'click.jsp-hijack',
-					function()
-					{
-						var uriParts = this.href.split('#'), hash;
-						if (uriParts.length > 1) {
-							hash = uriParts[1];
-							if (hash.length > 0 && pane.find('#' + hash).length > 0) {
-								scrollToElement('#' + hash, true);
-								// Need to return false otherwise things mess up... Would be nice to maybe also scroll
-								// the window to the top of the scrollpane?
-								return false;
-							}
-						}
-					}
-				);
-			}
-			
-			// Init touch on iPad, iPhone, iPod, Android
-			function initTouch()
-			{
-				var startX,
-					startY,
-					touchStartX,
-					touchStartY,
-					moved,
-					moving = false;
-  
-				container.unbind('touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick').bind(
-					'touchstart.jsp',
-					function(e)
-					{
-						var touch = e.originalEvent.touches[0];
-						startX = contentPositionX();
-						startY = contentPositionY();
-						touchStartX = touch.pageX;
-						touchStartY = touch.pageY;
-						moved = false;
-						moving = true;
-					}
-				).bind(
-					'touchmove.jsp',
-					function(ev)
-					{
-						if(!moving) {
-							return;
-						}
-						
-						var touchPos = ev.originalEvent.touches[0],
-							dX = horizontalDragPosition, dY = verticalDragPosition;
-						
-						jsp.scrollTo(startX + touchStartX - touchPos.pageX, startY + touchStartY - touchPos.pageY);
-						
-						moved = moved || Math.abs(touchStartX - touchPos.pageX) > 5 || Math.abs(touchStartY - touchPos.pageY) > 5;
-						
-						// return true if there was no movement so rest of screen can scroll
-						return dX == horizontalDragPosition && dY == verticalDragPosition;
-					}
-				).bind(
-					'touchend.jsp',
-					function(e)
-					{
-						moving = false;
-						/*if(moved) {
-							return false;
-						}*/
-					}
-				).bind(
-					'click.jsp-touchclick',
-					function(e)
-					{
-						if(moved) {
-							moved = false;
-							return false;
-						}
-					}
-				);
-			}
-			
-			function destroy(){
-				var currentY = contentPositionY(),
-					currentX = contentPositionX();
-				elem.removeClass('jspScrollable').unbind('.jsp');
-				elem.replaceWith(originalElement.append(pane.children()));
-				originalElement.scrollTop(currentY);
-				originalElement.scrollLeft(currentX);
-			}
-
-			// Public API
-			$.extend(
-				jsp,
-				{
-					// Reinitialises the scroll pane (if it's internal dimensions have changed since the last time it
-					// was initialised). The settings object which is passed in will override any settings from the
-					// previous time it was initialised - if you don't pass any settings then the ones from the previous
-					// initialisation will be used.
-					reinitialise: function(s)
-					{
-						s = $.extend({}, settings, s);
-						initialise(s);
-					},
-					// Scrolls the specified element (a jQuery object, DOM node or jQuery selector string) into view so
-					// that it can be seen within the viewport. If stickToTop is true then the element will appear at
-					// the top of the viewport, if it is false then the viewport will scroll as little as possible to
-					// show the element. You can also specify if you want animation to occur. If you don't provide this
-					// argument then the animateScroll value from the settings object is used instead.
-					scrollToElement: function(ele, stickToTop, animate)
-					{
-						scrollToElement(ele, stickToTop, animate);
-					},
-					// Scrolls the pane so that the specified co-ordinates within the content are at the top left
-					// of the viewport. animate is optional and if not passed then the value of animateScroll from
-					// the settings object this jScrollPane was initialised with is used.
-					scrollTo: function(destX, destY, animate)
-					{
-						scrollToX(destX, animate);
-						scrollToY(destY, animate);
-					},
-					// Scrolls the pane so that the specified co-ordinate within the content is at the left of the
-					// viewport. animate is optional and if not passed then the value of animateScroll from the settings
-					// object this jScrollPane was initialised with is used.
-					scrollToX: function(destX, animate)
-					{
-						scrollToX(destX, animate);
-					},
-					// Scrolls the pane so that the specified co-ordinate within the content is at the top of the
-					// viewport. animate is optional and if not passed then the value of animateScroll from the settings
-					// object this jScrollPane was initialised with is used.
-					scrollToY: function(destY, animate)
-					{
-						scrollToY(destY, animate);
-					},
-					// Scrolls the pane to the specified percentage of its maximum horizontal scroll position. animate
-					// is optional and if not passed then the value of animateScroll from the settings object this
-					// jScrollPane was initialised with is used.
-					scrollToPercentX: function(destPercentX, animate)
-					{
-						scrollToX(destPercentX * (contentWidth - paneWidth), animate);
-					},
-					// Scrolls the pane to the specified percentage of its maximum vertical scroll position. animate
-					// is optional and if not passed then the value of animateScroll from the settings object this
-					// jScrollPane was initialised with is used.
-					scrollToPercentY: function(destPercentY, animate)
-					{
-						scrollToY(destPercentY * (contentHeight - paneHeight), animate);
-					},
-					// Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
-					// the value of animateScroll from the settings object this jScrollPane was initialised with is used.
-					scrollBy: function(deltaX, deltaY, animate)
-					{
-						jsp.scrollByX(deltaX, animate);
-						jsp.scrollByY(deltaY, animate);
-					},
-					// Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
-					// the value of animateScroll from the settings object this jScrollPane was initialised with is used.
-					scrollByX: function(deltaX, animate)
-					{
-						var destX = contentPositionX() + Math[deltaX<0 ? 'floor' : 'ceil'](deltaX),
-							percentScrolled = destX / (contentWidth - paneWidth);
-						positionDragX(percentScrolled * dragMaxX, animate);
-					},
-					// Scrolls the pane by the specified amount of pixels. animate is optional and if not passed then
-					// the value of animateScroll from the settings object this jScrollPane was initialised with is used.
-					scrollByY: function(deltaY, animate)
-					{
-						var destY = contentPositionY() + Math[deltaY<0 ? 'floor' : 'ceil'](deltaY),
-							percentScrolled = destY / (contentHeight - paneHeight);
-						positionDragY(percentScrolled * dragMaxY, animate);
-					},
-					// Positions the horizontal drag at the specified x position (and updates the viewport to reflect
-					// this). animate is optional and if not passed then the value of animateScroll from the settings
-					// object this jScrollPane was initialised with is used.
-					positionDragX: function(x, animate)
-					{
-						positionDragX(x, animate);
-					},
-					// Positions the vertical drag at the specified y position (and updates the viewport to reflect
-					// this). animate is optional and if not passed then the value of animateScroll from the settings
-					// object this jScrollPane was initialised with is used.
-					positionDragY: function(y, animate)
-					{
-						positionDragY(y, animate);
-					},
-					// This method is called when jScrollPane is trying to animate to a new position. You can override
-					// it if you want to provide advanced animation functionality. It is passed the following arguments:
-					//  * ele          - the element whose position is being animated
-					//  * prop         - the property that is being animated
-					//  * value        - the value it's being animated to
-					//  * stepCallback - a function that you must execute each time you update the value of the property
-					// You can use the default implementation (below) as a starting point for your own implementation.
-					animate: function(ele, prop, value, stepCallback)
-					{
-						var params = {};
-						params[prop] = value;
-						ele.animate(
-							params,
-							{
-								'duration'	: settings.animateDuration,
-								'easing'	: settings.animateEase,
-								'queue'		: false,
-								'step'		: stepCallback
-							}
-						);
-					},
-					// Returns the current x position of the viewport with regards to the content pane.
-					getContentPositionX: function()
-					{
-						return contentPositionX();
-					},
-					// Returns the current y position of the viewport with regards to the content pane.
-					getContentPositionY: function()
-					{
-						return contentPositionY();
-					},
-					// Returns the width of the content within the scroll pane.
-					getContentWidth: function()
-					{
-						return contentWidth;
-					},
-					// Returns the height of the content within the scroll pane.
-					getContentHeight: function()
-					{
-						return contentHeight;
-					},
-					// Returns the horizontal position of the viewport within the pane content.
-					getPercentScrolledX: function()
-					{
-						return contentPositionX() / (contentWidth - paneWidth);
-					},
-					// Returns the vertical position of the viewport within the pane content.
-					getPercentScrolledY: function()
-					{
-						return contentPositionY() / (contentHeight - paneHeight);
-					},
-					// Returns whether or not this scrollpane has a horizontal scrollbar.
-					getIsScrollableH: function()
-					{
-						return isScrollableH;
-					},
-					// Returns whether or not this scrollpane has a vertical scrollbar.
-					getIsScrollableV: function()
-					{
-						return isScrollableV;
-					},
-					// Gets a reference to the content pane. It is important that you use this method if you want to
-					// edit the content of your jScrollPane as if you access the element directly then you may have some
-					// problems (as your original element has had additional elements for the scrollbars etc added into
-					// it).
-					getContentPane: function()
-					{
-						return pane;
-					},
-					// Scrolls this jScrollPane down as far as it can currently scroll. If animate isn't passed then the
-					// animateScroll value from settings is used instead.
-					scrollToBottom: function(animate)
-					{
-						positionDragY(dragMaxY, animate);
-					},
-					// Hijacks the links on the page which link to content inside the scrollpane. If you have changed
-					// the content of your page (e.g. via AJAX) and want to make sure any new anchor links to the
-					// contents of your scroll pane will work then call this function.
-					hijackInternalLinks: function()
-					{
-						hijackInternalLinks();
-					},
-					// Removes the jScrollPane and returns the page to the state it was in before jScrollPane was
-					// initialised.
-					destroy: function()
-					{
-							destroy();
-					}
-				}
-			);
-			
-			initialise(s);
-		}
-
-		// Pluginifying code...
-		settings = $.extend({}, $.fn.jScrollPane.defaults, settings);
-		
-		// Apply default speed
-		$.each(['mouseWheelSpeed', 'arrowButtonSpeed', 'trackClickSpeed', 'keyboardSpeed'], function() {
-			settings[this] = settings[this] || settings.speed;
-		});
-
-		return this.each(
-			function()
-			{
-				var elem = $(this), jspApi = elem.data('jsp');
-				if (jspApi) {
-					jspApi.reinitialise(settings);
-				} else {
-					jspApi = new JScrollPane(elem, settings);
-					elem.data('jsp', jspApi);
-				}
-			}
-		);
-	};
-
-	$.fn.jScrollPane.defaults = {
-		showArrows					: false,
-		maintainPosition			: true,
-		stickToBottom				: false,
-		stickToRight				: false,
-		clickOnTrack				: true,
-		autoReinitialise			: false,
-		autoReinitialiseDelay		: 500,
-		verticalDragMinHeight		: 0,
-		verticalDragMaxHeight		: 99999,
-		horizontalDragMinWidth		: 0,
-		horizontalDragMaxWidth		: 99999,
-		contentWidth				: undefined,
-		animateScroll				: false,
-		animateDuration				: 300,
-		animateEase					: 'linear',
-		hijackInternalLinks			: false,
-		verticalGutter				: 4,
-		horizontalGutter			: 4,
-		mouseWheelSpeed				: 0,
-		arrowButtonSpeed			: 0,
-		arrowRepeatFreq				: 50,
-		arrowScrollOnHover			: false,
-		trackClickSpeed				: 0,
-		trackClickRepeatFreq		: 70,
-		verticalArrowPositions		: 'split',
-		horizontalArrowPositions	: 'split',
-		enableKeyboardNavigation	: true,
-		hideFocus					: false,
-		keyboardSpeed				: 0,
-		initialDelay                : 300,        // Delay before starting repeating
-		speed						: 30,		// Default speed when others falsey
-		scrollPagePercent			: .8		// Percent of visible area scrolled when pageUp/Down or track area pressed
-	};
-
-})(jQuery,this);
-
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.min.js
deleted file mode 100644
index 3ec540f..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.jscrollpane.min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * jScrollPane - v2.0.0beta11 - 2011-07-04
- * http://jscrollpane.kelvinluck.com/
- *
- * Copyright (c) 2010 Kelvin Luck
- * Dual licensed under the MIT and GPL licenses.
- */
-(function(b,a,c){b.fn.jScrollPane=function(e){function d(D,O){var az,Q=this,Y,ak,v,am,T,Z,y,q,aA,aF,av,i,I,h,j,aa,U,aq,X,t,A,ar,af,an,G,l,au,ay,x,aw,aI,f,L,aj=true,P=true,aH=false,k=false,ap=D.clone(false,false).empty(),ac=b.fn.mwheelIntent?"mwheelIntent.jsp":"mousewheel.jsp";aI=D.css("paddingTop")+" "+D.css("paddingRight")+" "+D.css("paddingBottom")+" "+D.css("paddingLeft");f=(parseInt(D.css("paddingLeft"),10)||0)+(parseInt(D.css("paddingRight"),10)||0);function at(aR){var aM,aO,aN,aK,aJ,aQ,aP=false,aL=false;az=aR;if(Y===c){aJ=D.scrollTop();aQ=D.scrollLeft();D.css({overflow:"hidden",padding:0});ak=D.innerWidth()+f;v=D.innerHeight();D.width(ak);Y=b('<div class="jspPane" />').css("padding",aI).append(D.children());am=b('<div class="jspContainer" />').css({width:ak+"px",height:v+"px"}).append(Y).appendTo(D)}else{D.css("width","");aP=az.stickToBottom&&K();aL=az.stickToRight&&B();aK=D.innerWidth()+f!=ak||D.outerHeight()!=v;if(aK){ak=D.innerWidth()+f;v=D.innerHeight();am.css({width:ak+"px",height:v+"px"})}if(!aK&&L==T&&Y.outerHeight()==Z){D.width(ak);return}L=T;Y.css("width","");D.width(ak);am.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()}Y.css("overflow","auto");if(aR.contentWidth){T=aR.contentWidth}else{T=Y[0].scrollWidth}Z=Y[0].scrollHeight;Y.css("overflow","");y=T/ak;q=Z/v;aA=q>1;aF=y>1;if(!(aF||aA)){D.removeClass("jspScrollable");Y.css({top:0,width:am.width()-f});n();E();R();w();ai()}else{D.addClass("jspScrollable");aM=az.maintainPosition&&(I||aa);if(aM){aO=aD();aN=aB()}aG();z();F();if(aM){N(aL?(T-ak):aO,false);M(aP?(Z-v):aN,false)}J();ag();ao();if(az.enableKeyboardNavigation){S()}if(az.clickOnTrack){p()}C();if(az.hijackInternalLinks){m()}}if(az.autoReinitialise&&!aw){aw=setInterval(function(){at(az)},az.autoReinitialiseDelay)}else{if(!az.autoReinitialise&&aw){clearInterval(aw)}}aJ&&D.scrollTop(0)&&M(aJ,false);aQ&&D.scrollLeft(0)&&N(aQ,false);D.trigger("jsp-initialised",[aF||aA])}function aG(){if(aA){am.append(b('<div class="jspVerticalBar" />').append(b('<div class="jspCap jspCapTop" />'),b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragTop" />'),b('<div class="jspDragBottom" />'))),b('<div class="jspCap jspCapBottom" />')));U=am.find(">.jspVerticalBar");aq=U.find(">.jspTrack");av=aq.find(">.jspDrag");if(az.showArrows){ar=b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp",aE(0,-1)).bind("click.jsp",aC);af=b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp",aE(0,1)).bind("click.jsp",aC);if(az.arrowScrollOnHover){ar.bind("mouseover.jsp",aE(0,-1,ar));af.bind("mouseover.jsp",aE(0,1,af))}al(aq,az.verticalArrowPositions,ar,af)}t=v;am.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function(){t-=b(this).outerHeight()});av.hover(function(){av.addClass("jspHover")},function(){av.removeClass("jspHover")}).bind("mousedown.jsp",function(aJ){b("html").bind("dragstart.jsp selectstart.jsp",aC);av.addClass("jspActive");var s=aJ.pageY-av.position().top;b("html").bind("mousemove.jsp",function(aK){V(aK.pageY-s,false)}).bind("mouseup.jsp mouseleave.jsp",ax);return false});o()}}function o(){aq.height(t+"px");I=0;X=az.verticalGutter+aq.outerWidth();Y.width(ak-X-f);try{if(U.position().left===0){Y.css("margin-left",X+"px")}}catch(s){}}function z(){if(aF){am.append(b('<div class="jspHorizontalBar" />').append(b('<div class="jspCap jspCapLeft" />'),b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragLeft" />'),b('<div class="jspDragRight" />'))),b('<div class="jspCap jspCapRight" />')));an=am.find(">.jspHorizontalBar");G=an.find(">.jspTrack");h=G.find(">.jspDrag");if(az.showArrows){ay=b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp",aE(-1,0)).bind("click.jsp",aC);x=b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp",aE(1,0)).bind("click.jsp",aC);
-if(az.arrowScrollOnHover){ay.bind("mouseover.jsp",aE(-1,0,ay));x.bind("mouseover.jsp",aE(1,0,x))}al(G,az.horizontalArrowPositions,ay,x)}h.hover(function(){h.addClass("jspHover")},function(){h.removeClass("jspHover")}).bind("mousedown.jsp",function(aJ){b("html").bind("dragstart.jsp selectstart.jsp",aC);h.addClass("jspActive");var s=aJ.pageX-h.position().left;b("html").bind("mousemove.jsp",function(aK){W(aK.pageX-s,false)}).bind("mouseup.jsp mouseleave.jsp",ax);return false});l=am.innerWidth();ah()}}function ah(){am.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function(){l-=b(this).outerWidth()});G.width(l+"px");aa=0}function F(){if(aF&&aA){var aJ=G.outerHeight(),s=aq.outerWidth();t-=aJ;b(an).find(">.jspCap:visible,>.jspArrow").each(function(){l+=b(this).outerWidth()});l-=s;v-=s;ak-=aJ;G.parent().append(b('<div class="jspCorner" />').css("width",aJ+"px"));o();ah()}if(aF){Y.width((am.outerWidth()-f)+"px")}Z=Y.outerHeight();q=Z/v;if(aF){au=Math.ceil(1/y*l);if(au>az.horizontalDragMaxWidth){au=az.horizontalDragMaxWidth}else{if(au<az.horizontalDragMinWidth){au=az.horizontalDragMinWidth}}h.width(au+"px");j=l-au;ae(aa)}if(aA){A=Math.ceil(1/q*t);if(A>az.verticalDragMaxHeight){A=az.verticalDragMaxHeight}else{if(A<az.verticalDragMinHeight){A=az.verticalDragMinHeight}}av.height(A+"px");i=t-A;ad(I)}}function al(aK,aM,aJ,s){var aO="before",aL="after",aN;if(aM=="os"){aM=/Mac/.test(navigator.platform)?"after":"split"}if(aM==aO){aL=aM}else{if(aM==aL){aO=aM;aN=aJ;aJ=s;s=aN}}aK[aO](aJ)[aL](s)}function aE(aJ,s,aK){return function(){H(aJ,s,this,aK);this.blur();return false}}function H(aM,aL,aP,aO){aP=b(aP).addClass("jspActive");var aN,aK,aJ=true,s=function(){if(aM!==0){Q.scrollByX(aM*az.arrowButtonSpeed)}if(aL!==0){Q.scrollByY(aL*az.arrowButtonSpeed)}aK=setTimeout(s,aJ?az.initialDelay:az.arrowRepeatFreq);aJ=false};s();aN=aO?"mouseout.jsp":"mouseup.jsp";aO=aO||b("html");aO.bind(aN,function(){aP.removeClass("jspActive");aK&&clearTimeout(aK);aK=null;aO.unbind(aN)})}function p(){w();if(aA){aq.bind("mousedown.jsp",function(aO){if(aO.originalTarget===c||aO.originalTarget==aO.currentTarget){var aM=b(this),aP=aM.offset(),aN=aO.pageY-aP.top-I,aK,aJ=true,s=function(){var aS=aM.offset(),aT=aO.pageY-aS.top-A/2,aQ=v*az.scrollPagePercent,aR=i*aQ/(Z-v);if(aN<0){if(I-aR>aT){Q.scrollByY(-aQ)}else{V(aT)}}else{if(aN>0){if(I+aR<aT){Q.scrollByY(aQ)}else{V(aT)}}else{aL();return}}aK=setTimeout(s,aJ?az.initialDelay:az.trackClickRepeatFreq);aJ=false},aL=function(){aK&&clearTimeout(aK);aK=null;b(document).unbind("mouseup.jsp",aL)};s();b(document).bind("mouseup.jsp",aL);return false}})}if(aF){G.bind("mousedown.jsp",function(aO){if(aO.originalTarget===c||aO.originalTarget==aO.currentTarget){var aM=b(this),aP=aM.offset(),aN=aO.pageX-aP.left-aa,aK,aJ=true,s=function(){var aS=aM.offset(),aT=aO.pageX-aS.left-au/2,aQ=ak*az.scrollPagePercent,aR=j*aQ/(T-ak);if(aN<0){if(aa-aR>aT){Q.scrollByX(-aQ)}else{W(aT)}}else{if(aN>0){if(aa+aR<aT){Q.scrollByX(aQ)}else{W(aT)}}else{aL();return}}aK=setTimeout(s,aJ?az.initialDelay:az.trackClickRepeatFreq);aJ=false},aL=function(){aK&&clearTimeout(aK);aK=null;b(document).unbind("mouseup.jsp",aL)};s();b(document).bind("mouseup.jsp",aL);return false}})}}function w(){if(G){G.unbind("mousedown.jsp")}if(aq){aq.unbind("mousedown.jsp")}}function ax(){b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");if(av){av.removeClass("jspActive")}if(h){h.removeClass("jspActive")}}function V(s,aJ){if(!aA){return}if(s<0){s=0}else{if(s>i){s=i}}if(aJ===c){aJ=az.animateScroll}if(aJ){Q.animate(av,"top",s,ad)}else{av.css("top",s);ad(s)}}function ad(aJ){if(aJ===c){aJ=av.position().top}am.scrollTop(0);I=aJ;var aM=I===0,aK=I==i,aL=aJ/i,s=-aL*(Z-v);if(aj!=aM||aH!=aK){aj=aM;aH=aK;D.trigger("jsp-arrow-change",[aj,aH,P,k])}u(aM,aK);Y.css("top",s);D.trigger("jsp-scroll-y",[-s,aM,aK]).trigger("scroll")}function W(aJ,s){if(!aF){return}if(aJ<0){aJ=0}else{if(aJ>j){aJ=j}}if(s===c){s=az.animateScroll}if(s){Q.animate(h,"left",aJ,ae)
-}else{h.css("left",aJ);ae(aJ)}}function ae(aJ){if(aJ===c){aJ=h.position().left}am.scrollTop(0);aa=aJ;var aM=aa===0,aL=aa==j,aK=aJ/j,s=-aK*(T-ak);if(P!=aM||k!=aL){P=aM;k=aL;D.trigger("jsp-arrow-change",[aj,aH,P,k])}r(aM,aL);Y.css("left",s);D.trigger("jsp-scroll-x",[-s,aM,aL]).trigger("scroll")}function u(aJ,s){if(az.showArrows){ar[aJ?"addClass":"removeClass"]("jspDisabled");af[s?"addClass":"removeClass"]("jspDisabled")}}function r(aJ,s){if(az.showArrows){ay[aJ?"addClass":"removeClass"]("jspDisabled");x[s?"addClass":"removeClass"]("jspDisabled")}}function M(s,aJ){var aK=s/(Z-v);V(aK*i,aJ)}function N(aJ,s){var aK=aJ/(T-ak);W(aK*j,s)}function ab(aW,aR,aK){var aO,aL,aM,s=0,aV=0,aJ,aQ,aP,aT,aS,aU;try{aO=b(aW)}catch(aN){return}aL=aO.outerHeight();aM=aO.outerWidth();am.scrollTop(0);am.scrollLeft(0);while(!aO.is(".jspPane")){s+=aO.position().top;aV+=aO.position().left;aO=aO.offsetParent();if(/^body|html$/i.test(aO[0].nodeName)){return}}aJ=aB();aP=aJ+v;if(s<aJ||aR){aS=s-az.verticalGutter}else{if(s+aL>aP){aS=s-v+aL+az.verticalGutter}}if(aS){M(aS,aK)}aQ=aD();aT=aQ+ak;if(aV<aQ||aR){aU=aV-az.horizontalGutter}else{if(aV+aM>aT){aU=aV-ak+aM+az.horizontalGutter}}if(aU){N(aU,aK)}}function aD(){return -Y.position().left}function aB(){return -Y.position().top}function K(){var s=Z-v;return(s>20)&&(s-aB()<10)}function B(){var s=T-ak;return(s>20)&&(s-aD()<10)}function ag(){am.unbind(ac).bind(ac,function(aM,aN,aL,aJ){var aK=aa,s=I;Q.scrollBy(aL*az.mouseWheelSpeed,-aJ*az.mouseWheelSpeed,false);return aK==aa&&s==I})}function n(){am.unbind(ac)}function aC(){return false}function J(){Y.find(":input,a").unbind("focus.jsp").bind("focus.jsp",function(s){ab(s.target,false)})}function E(){Y.find(":input,a").unbind("focus.jsp")}function S(){var s,aJ,aL=[];aF&&aL.push(an[0]);aA&&aL.push(U[0]);Y.focus(function(){D.focus()});D.attr("tabindex",0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp",function(aO){if(aO.target!==this&&!(aL.length&&b(aO.target).closest(aL).length)){return}var aN=aa,aM=I;switch(aO.keyCode){case 40:case 38:case 34:case 32:case 33:case 39:case 37:s=aO.keyCode;aK();break;case 35:M(Z-v);s=null;break;case 36:M(0);s=null;break}aJ=aO.keyCode==s&&aN!=aa||aM!=I;return !aJ}).bind("keypress.jsp",function(aM){if(aM.keyCode==s){aK()}return !aJ});if(az.hideFocus){D.css("outline","none");if("hideFocus" in am[0]){D.attr("hideFocus",true)}}else{D.css("outline","");if("hideFocus" in am[0]){D.attr("hideFocus",false)}}function aK(){var aN=aa,aM=I;switch(s){case 40:Q.scrollByY(az.keyboardSpeed,false);break;case 38:Q.scrollByY(-az.keyboardSpeed,false);break;case 34:case 32:Q.scrollByY(v*az.scrollPagePercent,false);break;case 33:Q.scrollByY(-v*az.scrollPagePercent,false);break;case 39:Q.scrollByX(az.keyboardSpeed,false);break;case 37:Q.scrollByX(-az.keyboardSpeed,false);break}aJ=aN!=aa||aM!=I;return aJ}}function R(){D.attr("tabindex","-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp")}function C(){if(location.hash&&location.hash.length>1){var aL,aJ,aK=escape(location.hash);try{aL=b(aK)}catch(s){return}if(aL.length&&Y.find(aK)){if(am.scrollTop()===0){aJ=setInterval(function(){if(am.scrollTop()>0){ab(aK,true);b(document).scrollTop(am.position().top);clearInterval(aJ)}},50)}else{ab(aK,true);b(document).scrollTop(am.position().top)}}}}function ai(){b("a.jspHijack").unbind("click.jsp-hijack").removeClass("jspHijack")}function m(){ai();b("a[href^=#]").addClass("jspHijack").bind("click.jsp-hijack",function(){var s=this.href.split("#"),aJ;if(s.length>1){aJ=s[1];if(aJ.length>0&&Y.find("#"+aJ).length>0){ab("#"+aJ,true);return false}}})}function ao(){var aK,aJ,aM,aL,aN,s=false;am.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp",function(aO){var aP=aO.originalEvent.touches[0];aK=aD();aJ=aB();aM=aP.pageX;aL=aP.pageY;aN=false;s=true}).bind("touchmove.jsp",function(aR){if(!s){return}var aQ=aR.originalEvent.touches[0],aP=aa,aO=I;Q.scrollTo(aK+aM-aQ.pageX,aJ+aL-aQ.pageY);aN=aN||Math.abs(aM-aQ.pageX)>5||Math.abs(aL-aQ.pageY)>5;
-return aP==aa&&aO==I}).bind("touchend.jsp",function(aO){s=false}).bind("click.jsp-touchclick",function(aO){if(aN){aN=false;return false}})}function g(){var s=aB(),aJ=aD();D.removeClass("jspScrollable").unbind(".jsp");D.replaceWith(ap.append(Y.children()));ap.scrollTop(s);ap.scrollLeft(aJ)}b.extend(Q,{reinitialise:function(aJ){aJ=b.extend({},az,aJ);at(aJ)},scrollToElement:function(aK,aJ,s){ab(aK,aJ,s)},scrollTo:function(aK,s,aJ){N(aK,aJ);M(s,aJ)},scrollToX:function(aJ,s){N(aJ,s)},scrollToY:function(s,aJ){M(s,aJ)},scrollToPercentX:function(aJ,s){N(aJ*(T-ak),s)},scrollToPercentY:function(aJ,s){M(aJ*(Z-v),s)},scrollBy:function(aJ,s,aK){Q.scrollByX(aJ,aK);Q.scrollByY(s,aK)},scrollByX:function(s,aK){var aJ=aD()+Math[s<0?"floor":"ceil"](s),aL=aJ/(T-ak);W(aL*j,aK)},scrollByY:function(s,aK){var aJ=aB()+Math[s<0?"floor":"ceil"](s),aL=aJ/(Z-v);V(aL*i,aK)},positionDragX:function(s,aJ){W(s,aJ)},positionDragY:function(aJ,s){V(aJ,s)},animate:function(aJ,aM,s,aL){var aK={};aK[aM]=s;aJ.animate(aK,{duration:az.animateDuration,easing:az.animateEase,queue:false,step:aL})},getContentPositionX:function(){return aD()},getContentPositionY:function(){return aB()},getContentWidth:function(){return T},getContentHeight:function(){return Z},getPercentScrolledX:function(){return aD()/(T-ak)},getPercentScrolledY:function(){return aB()/(Z-v)},getIsScrollableH:function(){return aF},getIsScrollableV:function(){return aA},getContentPane:function(){return Y},scrollToBottom:function(s){V(i,s)},hijackInternalLinks:function(){m()},destroy:function(){g()}});at(O)}e=b.extend({},b.fn.jScrollPane.defaults,e);b.each(["mouseWheelSpeed","arrowButtonSpeed","trackClickSpeed","keyboardSpeed"],function(){e[this]=e[this]||e.speed});return this.each(function(){var f=b(this),g=f.data("jsp");if(g){g.reinitialise(e)}else{g=new d(f,e);f.data("jsp",g)}})};b.fn.jScrollPane.defaults={showArrows:false,maintainPosition:true,stickToBottom:false,stickToRight:false,clickOnTrack:true,autoReinitialise:false,autoReinitialiseDelay:500,verticalDragMinHeight:0,verticalDragMaxHeight:99999,horizontalDragMinWidth:0,horizontalDragMaxWidth:99999,contentWidth:c,animateScroll:false,animateDuration:300,animateEase:"linear",hijackInternalLinks:false,verticalGutter:4,horizontalGutter:4,mouseWheelSpeed:0,arrowButtonSpeed:0,arrowRepeatFreq:50,arrowScrollOnHover:false,trackClickSpeed:0,trackClickRepeatFreq:70,verticalArrowPositions:"split",horizontalArrowPositions:"split",enableKeyboardNavigation:true,hideFocus:false,keyboardSpeed:0,initialDelay:300,speed:30,scrollPagePercent:0.8}})(jQuery,this);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.linkHover.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.linkHover.js
deleted file mode 100644
index 0aa43ee..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.linkHover.js
+++ /dev/null
@@ -1,89 +0,0 @@
- /*
- * Copyright (c) 2008 John McMullen (http://www.smple.com)
- * This is licensed under GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * For a copy of the GNU General Public License, see <http://www.gnu.org/licenses/>.
- *
- * Heavily modified by Jason Rist of Red Hat, Inc.
- *
- * jQuery Plugin for Hovering Over a Row and seeing "more stuff"
- *
- * to use:
- * 1.) include this script in your page.
- * 2.) add something like this this to your doc ready
-        $('a.linkHoverClass').linkHover({overlay:true, padding:5, bgColor:'#fff', borderColor:'#333'});
-*/
-
- (function($){
-	$.fn.linkHover = function(options){
-
-		var defaults = {
-			borderColor: '#B5B5B5',
-            padding: 5,
-			inline: false,
-			overlay: false,
-            color: '#000',
-            somethingMore: "something else here"
-		};
-
-		var opts = $.extend(defaults, options);
-
-		var href = '';
-		var currentText = '';
-
-		return this.each(function(){
-            $(this).hoverIntent({
-                over: function(){
-                    var currentBg = $(this).css("background-color");
-                    currentText = $(this).html();
-                    $(this).removeAttr('href');
-                    var w = $(this).width();
-                    var h = $(this).height();
-                    $(this).css('position','relative');
-                    var box = $('<div/>', {
-                        id: 'link-text',
-                        style:  'position: absolute; ' +
-                                'left: -1px; ' +
-                                'top: 0px; ' +
-                                'display: block; ' +
-                                'z-index: 10; ' +
-                                'background: ' + currentBg + '; ' +
-                                'border: ' + opts.borderColor + ' 1px solid; ' +
-                                'width: 445px; ' +
-                                'padding: 1px 1px 1px 2px; ' +
-                                'height: ' + (2*h) + ';'
-                    });
-                    var origText = $('<div/>', {
-                        style:  'top: 0; ' +
-                                'padding: ' + opts.padding + 'px; ',
-                        text: $(currentText)
-                    });
-                    var additionalText = $('<div/>', {
-                        style:  'top: ' + (h) + '; ' +
-                                'padding: ' + opts.padding + 'px; ',
-                        text: opts.somethingMore
-                    });
-                    $(this).append(
-                            box.append(
-                                    origText.append($(currentText))).append(additionalText));
-                },
-                out: function(){
-                    $(this).html($(currentText));
-                },
-                timeout: 500,
-                sensitivity: 10,
-                interval: 500
-            });
-		}); // end this.each
-	}; // end fn.linkHover
-})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.loadmask.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.loadmask.min.js
deleted file mode 100644
index 8581728..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.loadmask.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Copyright (c) 2009 Sergiy Kovalchuk (serg472@gmail.com)
- *
- * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
- * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
- *
- * Following code is based on Element.mask() implementation from ExtJS framework (http://extjs.com/)
- *
- */
-(function(a){a.fn.mask=function(c,b){a(this).each(function(){if(b!==undefined&&b>0){var d=a(this);d.data("_mask_timeout",setTimeout(function(){a.maskElement(d,c)},b))}else{a.maskElement(a(this),c)}})};a.fn.unmask=function(){a(this).each(function(){a.unmaskElement(a(this))})};a.fn.isMasked=function(){return this.hasClass("masked")};a.maskElement=function(d,c){if(d.data("_mask_timeout")!==undefined){clearTimeout(d.data("_mask_timeout"));d.removeData("_mask_timeout")}if(d.isMasked()){a.unmaskElement(d)}if(d.css("position")=="static"){d.addClass("masked-relative")}d.addClass("masked");var e=a('<div class="loadmask"></div>');if(navigator.userAgent.toLowerCase().indexOf("msie")>-1){e.height(d.height()+parseInt(d.css("padding-top"))+parseInt(d.css("padding-bottom")));e.width(d.width()+parseInt(d.css("padding-left"))+parseInt(d.css("padding-right")))}if(navigator.userAgent.toLowerCase().indexOf("msie 6")>-1){d.find("select").addClass("masked-hidden")}d.append(e);if(c!==undefined){var b=a('<div class="loadmask-msg" style="display:none;"></div>');b.append("<div>"+c+"</div>");d.append(b);b.css("top",Math.round(d.height()/2-(b.height()-parseInt(b.css("padding-top"))-parseInt(b.css("padding-bottom")))/2)+"px");b.css("left",Math.round(d.width()/2-(b.width()-parseInt(b.css("padding-left"))-parseInt(b.css("padding-right")))/2)+"px");b.show()}};a.unmaskElement=function(b){if(b.data("_mask_timeout")!==undefined){clearTimeout(b.data("_mask_timeout"));b.removeData("_mask_timeout")}b.find(".loadmask-msg,.loadmask").remove();b.removeClass("masked");b.removeClass("masked-relative");b.find("select").removeClass("masked-hidden")}})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.mousewheel.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.mousewheel.js
deleted file mode 100644
index b793241..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.mousewheel.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
- * Licensed under the MIT License (LICENSE.txt).
- *
- * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
- * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
- * Thanks to: Seamus Leahy for adding deltaX and deltaY
- *
- * Version: 3.0.4
- * 
- * Requires: 1.2.2+
- */
-
-(function($) {
-
-var types = ['DOMMouseScroll', 'mousewheel'];
-
-$.event.special.mousewheel = {
-    setup: function() {
-        if ( this.addEventListener ) {
-            for ( var i=types.length; i; ) {
-                this.addEventListener( types[--i], handler, false );
-            }
-        } else {
-            this.onmousewheel = handler;
-        }
-    },
-    
-    teardown: function() {
-        if ( this.removeEventListener ) {
-            for ( var i=types.length; i; ) {
-                this.removeEventListener( types[--i], handler, false );
-            }
-        } else {
-            this.onmousewheel = null;
-        }
-    }
-};
-
-$.fn.extend({
-    mousewheel: function(fn) {
-        return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
-    },
-    
-    unmousewheel: function(fn) {
-        return this.unbind("mousewheel", fn);
-    }
-});
-
-
-function handler(event) {
-    var orgEvent = event || window.event, args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true, deltaX = 0, deltaY = 0;
-    event = $.event.fix(orgEvent);
-    event.type = "mousewheel";
-    
-    // Old school scrollwheel delta
-    if ( event.wheelDelta ) { delta = event.wheelDelta/120; }
-    if ( event.detail     ) { delta = -event.detail/3; }
-    
-    // New school multidimensional scroll (touchpads) deltas
-    deltaY = delta;
-    
-    // Gecko
-    if ( orgEvent.axis !== undefined && orgEvent.axis === orgEvent.HORIZONTAL_AXIS ) {
-        deltaY = 0;
-        deltaX = -1*delta;
-    }
-    
-    // Webkit
-    if ( orgEvent.wheelDeltaY !== undefined ) { deltaY = orgEvent.wheelDeltaY/120; }
-    if ( orgEvent.wheelDeltaX !== undefined ) { deltaX = -1*orgEvent.wheelDeltaX/120; }
-    
-    // Add event and delta to the front of the arguments
-    args.unshift(event, delta, deltaX, deltaY);
-    
-    return $.event.handle.apply(this, args);
-}
-
-})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.pack.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.pack.js
deleted file mode 100644
index 74cdfee..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.pack.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * jQuery 1.2.3 - New Wave Javascript
- *
- * Copyright (c) 2008 John Resig (jquery.com)
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * $Date: 2008-02-06 00:21:25 -0500 (Wed, 06 Feb 2008) $
- * $Rev: 4663 $
- */
-eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(J(){7(1e.3N)L w=1e.3N;L E=1e.3N=J(a,b){K 1B E.2l.4T(a,b)};7(1e.$)L D=1e.$;1e.$=E;L u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;L G=/^.[^:#\\[\\.]*$/;E.1n=E.2l={4T:J(d,b){d=d||T;7(d.15){6[0]=d;6.M=1;K 6}N 7(1o d=="25"){L c=u.2O(d);7(c&&(c[1]||!b)){7(c[1])d=E.4a([c[1]],b);N{L a=T.5J(c[3]);7(a)7(a.2w!=c[3])K E().2s(d);N{6[0]=a;6.M=1;K 6}N d=[]}}N K 1B E(b).2s(d)}N 7(E.1q(d))K 1B E(T)[E.1n.21?"21":"3U"](d);K 6.6E(d.1k==1M&&d||(d.5h||d.M&&d!=1e&&!d.15&&d[0]!=10&&d[0].15)&&E.2I(d)||[d])},5h:"1.2.3",87:J(){K 6.M},M:0,22:J(a){K a==10?E.2I(6):6[a]},2F:J(b){L a=E(b);a.54=6;K a},6E:J(a){6.M=0;1M.2l.1g.1i(6,a);K 6},R:J(a,b){K E.R(6,a,b)},4X:J(b){L a=-1;6.R(J(i){7(6==b)a=i});K a},1J:J(c,a,b){L d=c;7(c.1k==4e)7(a==10)K 6.M&&E[b||"1J"](6[0],c)||10;N{d={};d[c]=a}K 6.R(J(i){Q(c 1p d)E.1J(b?6.W:6,c,E.1l(6,d[c],b,i,c))})},1j:J(b,a){7((b==\'27\'||b==\'1R\')&&2M(a)<0)a=10;K 6.1J(b,a,"2o")},1u:J(b){7(1o b!="3V"&&b!=V)K 6.4x().3t((6[0]&&6[0].2i||T).5r(b));L a="";E.R(b||6,J(){E.R(6.3p,J(){7(6.15!=8)a+=6.15!=1?6.6K:E.1n.1u([6])})});K a},5m:J(b){7(6[0])E(b,6[0].2i).5k().3o(6[0]).2c(J(){L a=6;2b(a.1C)a=a.1C;K a}).3t(6);K 6},8w:J(a){K 6.R(J(){E(6).6z().5m(a)})},8p:J(a){K 6.R(J(){E(6).5m(a)})},3t:J(){K 6.3O(18,P,S,J(a){7(6.15==1)6.38(a)})},6q:J(){K 6.3O(18,P,P,J(a){7(6.15==1)6.3o(a,6.1C)})},6o:J(){K 6.3O(18,S,S,J(a){6.1a.3o(a,6)})},5a:J(){K 6.3O(18,S,P,J(a){6.1a.3o(a,6.2B)})},3h:J(){K 6.54||E([])},2s:J(b){L c=E.2c(6,J(a){K E.2s(b,a)});K 6.2F(/[^+>] [^+>]/.17(b)||b.1f("..")>-1?E.57(c):c)},5k:J(e){L f=6.2c(J(){7(E.14.1d&&!E.3E(6)){L a=6.69(P),4Y=T.3s("1x");4Y.38(a);K E.4a([4Y.3d])[0]}N K 6.69(P)});L d=f.2s("*").4R().R(J(){7(6[F]!=10)6[F]=V});7(e===P)6.2s("*").4R().R(J(i){7(6.15==3)K;L c=E.O(6,"2R");Q(L a 1p c)Q(L b 1p c[a])E.16.1b(d[i],a,c[a][b],c[a][b].O)});K f},1E:J(b){K 6.2F(E.1q(b)&&E.3y(6,J(a,i){K b.1P(a,i)})||E.3e(b,6))},56:J(b){7(b.1k==4e)7(G.17(b))K 6.2F(E.3e(b,6,P));N b=E.3e(b,6);L a=b.M&&b[b.M-1]!==10&&!b.15;K 6.1E(J(){K a?E.33(6,b)<0:6!=b})},1b:J(a){K!a?6:6.2F(E.37(6.22(),a.1k==4e?E(a).22():a.M!=10&&(!a.12||E.12(a,"3u"))?a:[a]))},3H:J(a){K a?E.3e(a,6).M>0:S},7j:J(a){K 6.3H("."+a)},5O:J(b){7(b==10){7(6.M){L c=6[0];7(E.12(c,"2k")){L e=c.3T,5I=[],11=c.11,2X=c.U=="2k-2X";7(e<0)K V;Q(L i=2X?e:0,2f=2X?e+1:11.M;i<2f;i++){L d=11[i];7(d.2p){b=E.14.1d&&!d.9J.1A.9y?d.1u:d.1A;7(2X)K b;5I.1g(b)}}K 5I}N K(6[0].1A||"").1r(/\\r/g,"")}K 10}K 6.R(J(){7(6.15!=1)K;7(b.1k==1M&&/5u|5t/.17(6.U))6.3k=(E.33(6.1A,b)>=0||E.33(6.31,b)>=0);N 7(E.12(6,"2k")){L a=b.1k==1M?b:[b];E("98",6).R(J(){6.2p=(E.33(6.1A,a)>=0||E.33(6.1u,a)>=0)});7(!a.M)6.3T=-1}N 6.1A=b})},3q:J(a){K a==10?(6.M?6[0].3d:V):6.4x().3t(a)},6S:J(a){K 6.5a(a).1V()},6Z:J(i){K 6.2K(i,i+1)},2K:J(){K 6.2F(1M.2l.2K.1i(6,18))},2c:J(b){K 6.2F(E.2c(6,J(a,i){K b.1P(a,i,a)}))},4R:J(){K 6.1b(6.54)},O:J(d,b){L a=d.23(".");a[1]=a[1]?"."+a[1]:"";7(b==V){L c=6.5n("8P"+a[1]+"!",[a[0]]);7(c==10&&6.M)c=E.O(6[0],d);K c==V&&a[1]?6.O(a[0]):c}N K 6.1N("8K"+a[1]+"!",[a[0],b]).R(J(){E.O(6,d,b)})},35:J(a){K 6.R(J(){E.35(6,a)})},3O:J(g,f,h,d){L e=6.M>1,3n;K 6.R(J(){7(!3n){3n=E.4a(g,6.2i);7(h)3n.8D()}L b=6;7(f&&E.12(6,"1O")&&E.12(3n[0],"4v"))b=6.3S("1U")[0]||6.38(6.2i.3s("1U"));L c=E([]);E.R(3n,J(){L a=e?E(6).5k(P)[0]:6;7(E.12(a,"1m")){c=c.1b(a)}N{7(a.15==1)c=c.1b(E("1m",a).1V());d.1P(b,a)}});c.R(6A)})}};E.2l.4T.2l=E.2l;J 6A(i,a){7(a.3Q)E.3P({1c:a.3Q,3l:S,1H:"1m"});N E.5g(a.1u||a.6x||a.3d||"");7(a.1a)a.1a.34(a)}E.1s=E.1n.1s=J(){L b=18[0]||{},i=1,M=18.M,5c=S,11;7(b.1k==8d){5c=b;b=18[1]||{};i=2}7(1o b!="3V"&&1o b!="J")b={};7(M==1){b=6;i=0}Q(;i<M;i++)7((11=18[i])!=V)Q(L a 1p 11){7(b===11[a])6w;7(5c&&11[a]&&1o 11[a]=="3V"&&b[a]&&!11[a].15)b[a]=E.1s(b[a],11[a]);N 7(11[a]!=10)b[a]=11[a]}K b};L F="3N"+(1B 3v()).3L(),6t=0,5b={};L H=/z-?4X|86-?84|1w|6k|7Z-?1R/i;E.1s({7Y:J(a){1e.$=D;7(a)1e.3N=w;K E},1q:J(a){K!!a&&1o a!="25"&&!a.12&&a.1k!=1M&&/J/i.17(a+"")},3E:J(a){K a.1F&&!a.1h||a.28&&a.2i&&!a.2i.1h},5g:J(a){a=E.3g(a);7(a){L b=T.3S("6f")[0]||T.1F,1m=T.3s("1m");1m.U="1u/4m";7(E.14.1d)1m.1u=a;N 1m.38(T.5r(a));b.38(1m);b.34(1m)}},12:J(b,a){K b.12&&b.12.2E()==a.2E()},1T:{},O:J(c,d,b){c=c==1e?5b:c;L a=c[F];7(!a)a=c[F]=++6t;7(d&&!E.1T[a])E.1T[a]={};7(b!=10)E.1T[a][d]=b;K d?E.1T[a][d]:a},35:J(c,b){c=c==1e?5b:c;L a=c[F];7(b){7(E.1T[a]){2V E.1T[a][b];b="";Q(b 1p E.1T[a])1Q;7(!b)E.35(c)}}N{1S{2V c[F]}1X(e){7(c.52)c.52(F)}2V E.1T[a]}},R:J(c,a,b){7(b){7(c.M==10){Q(L d 1p c)7(a.1i(c[d],b)===S)1Q}N Q(L i=0,M=c.M;i<M;i++)7(a.1i(c[i],b)===S)1Q}N{7(c.M==10){Q(L d 1p c)7(a.1P(c[d],d,c[d])===S)1Q}N Q(L i=0,M=c.M,1A=c[0];i<M&&a.1P(1A,i,1A)!==S;1A=c[++i]){}}K c},1l:J(b,a,c,i,d){7(E.1q(a))a=a.1P(b,i);K a&&a.1k==51&&c=="2o"&&!H.17(d)?a+"2S":a},1t:{1b:J(c,b){E.R((b||"").23(/\\s+/),J(i,a){7(c.15==1&&!E.1t.3Y(c.1t,a))c.1t+=(c.1t?" ":"")+a})},1V:J(c,b){7(c.15==1)c.1t=b!=10?E.3y(c.1t.23(/\\s+/),J(a){K!E.1t.3Y(b,a)}).6a(" "):""},3Y:J(b,a){K E.33(a,(b.1t||b).3X().23(/\\s+/))>-1}},68:J(b,c,a){L e={};Q(L d 1p c){e[d]=b.W[d];b.W[d]=c[d]}a.1P(b);Q(L d 1p c)b.W[d]=e[d]},1j:J(d,e,c){7(e=="27"||e=="1R"){L b,46={43:"4W",4U:"1Z",19:"3D"},3c=e=="27"?["7O","7M"]:["7J","7I"];J 5E(){b=e=="27"?d.7H:d.7F;L a=0,2N=0;E.R(3c,J(){a+=2M(E.2o(d,"7E"+6,P))||0;2N+=2M(E.2o(d,"2N"+6+"5X",P))||0});b-=24.7C(a+2N)}7(E(d).3H(":4d"))5E();N E.68(d,46,5E);K 24.2f(0,b)}K E.2o(d,e,c)},2o:J(e,k,j){L d;J 3x(b){7(!E.14.2d)K S;L a=T.4c.4K(b,V);K!a||a.4M("3x")==""}7(k=="1w"&&E.14.1d){d=E.1J(e.W,"1w");K d==""?"1":d}7(E.14.2z&&k=="19"){L c=e.W.50;e.W.50="0 7r 7o";e.W.50=c}7(k.1D(/4g/i))k=y;7(!j&&e.W&&e.W[k])d=e.W[k];N 7(T.4c&&T.4c.4K){7(k.1D(/4g/i))k="4g";k=k.1r(/([A-Z])/g,"-$1").2h();L h=T.4c.4K(e,V);7(h&&!3x(e))d=h.4M(k);N{L f=[],2C=[];Q(L a=e;a&&3x(a);a=a.1a)2C.4J(a);Q(L i=0;i<2C.M;i++)7(3x(2C[i])){f[i]=2C[i].W.19;2C[i].W.19="3D"}d=k=="19"&&f[2C.M-1]!=V?"2H":(h&&h.4M(k))||"";Q(L i=0;i<f.M;i++)7(f[i]!=V)2C[i].W.19=f[i]}7(k=="1w"&&d=="")d="1"}N 7(e.4n){L g=k.1r(/\\-(\\w)/g,J(a,b){K b.2E()});d=e.4n[k]||e.4n[g];7(!/^\\d+(2S)?$/i.17(d)&&/^\\d/.17(d)){L l=e.W.26,3K=e.3K.26;e.3K.26=e.4n.26;e.W.26=d||0;d=e.W.7f+"2S";e.W.26=l;e.3K.26=3K}}K d},4a:J(l,h){L k=[];h=h||T;7(1o h.3s==\'10\')h=h.2i||h[0]&&h[0].2i||T;E.R(l,J(i,d){7(!d)K;7(d.1k==51)d=d.3X();7(1o d=="25"){d=d.1r(/(<(\\w+)[^>]*?)\\/>/g,J(b,a,c){K c.1D(/^(aa|a6|7e|a5|4D|7a|a0|3m|9W|9U|9S)$/i)?b:a+"></"+c+">"});L f=E.3g(d).2h(),1x=h.3s("1x");L e=!f.1f("<9P")&&[1,"<2k 74=\'74\'>","</2k>"]||!f.1f("<9M")&&[1,"<73>","</73>"]||f.1D(/^<(9G|1U|9E|9B|9x)/)&&[1,"<1O>","</1O>"]||!f.1f("<4v")&&[2,"<1O><1U>","</1U></1O>"]||(!f.1f("<9w")||!f.1f("<9v"))&&[3,"<1O><1U><4v>","</4v></1U></1O>"]||!f.1f("<7e")&&[2,"<1O><1U></1U><6V>","</6V></1O>"]||E.14.1d&&[1,"1x<1x>","</1x>"]||[0,"",""];1x.3d=e[1]+d+e[2];2b(e[0]--)1x=1x.5o;7(E.14.1d){L g=!f.1f("<1O")&&f.1f("<1U")<0?1x.1C&&1x.1C.3p:e[1]=="<1O>"&&f.1f("<1U")<0?1x.3p:[];Q(L j=g.M-1;j>=0;--j)7(E.12(g[j],"1U")&&!g[j].3p.M)g[j].1a.34(g[j]);7(/^\\s/.17(d))1x.3o(h.5r(d.1D(/^\\s*/)[0]),1x.1C)}d=E.2I(1x.3p)}7(d.M===0&&(!E.12(d,"3u")&&!E.12(d,"2k")))K;7(d[0]==10||E.12(d,"3u")||d.11)k.1g(d);N k=E.37(k,d)});K k},1J:J(d,e,c){7(!d||d.15==3||d.15==8)K 10;L f=E.3E(d)?{}:E.46;7(e=="2p"&&E.14.2d)d.1a.3T;7(f[e]){7(c!=10)d[f[e]]=c;K d[f[e]]}N 7(E.14.1d&&e=="W")K E.1J(d.W,"9u",c);N 7(c==10&&E.14.1d&&E.12(d,"3u")&&(e=="9r"||e=="9o"))K d.9m(e).6K;N 7(d.28){7(c!=10){7(e=="U"&&E.12(d,"4D")&&d.1a)6Q"U 9i 9h\'t 9g 9e";d.9b(e,""+c)}7(E.14.1d&&/6O|3Q/.17(e)&&!E.3E(d))K d.4z(e,2);K d.4z(e)}N{7(e=="1w"&&E.14.1d){7(c!=10){d.6k=1;d.1E=(d.1E||"").1r(/6M\\([^)]*\\)/,"")+(2M(c).3X()=="96"?"":"6M(1w="+c*6L+")")}K d.1E&&d.1E.1f("1w=")>=0?(2M(d.1E.1D(/1w=([^)]*)/)[1])/6L).3X():""}e=e.1r(/-([a-z])/95,J(a,b){K b.2E()});7(c!=10)d[e]=c;K d[e]}},3g:J(a){K(a||"").1r(/^\\s+|\\s+$/g,"")},2I:J(b){L a=[];7(1o b!="93")Q(L i=0,M=b.M;i<M;i++)a.1g(b[i]);N a=b.2K(0);K a},33:J(b,a){Q(L i=0,M=a.M;i<M;i++)7(a[i]==b)K i;K-1},37:J(a,b){7(E.14.1d){Q(L i=0;b[i];i++)7(b[i].15!=8)a.1g(b[i])}N Q(L i=0;b[i];i++)a.1g(b[i]);K a},57:J(a){L c=[],2r={};1S{Q(L i=0,M=a.M;i<M;i++){L b=E.O(a[i]);7(!2r[b]){2r[b]=P;c.1g(a[i])}}}1X(e){c=a}K c},3y:J(c,a,d){L b=[];Q(L i=0,M=c.M;i<M;i++)7(!d&&a(c[i],i)||d&&!a(c[i],i))b.1g(c[i]);K b},2c:J(d,a){L c=[];Q(L i=0,M=d.M;i<M;i++){L b=a(d[i],i);7(b!==V&&b!=10){7(b.1k!=1M)b=[b];c=c.71(b)}}K c}});L v=8Y.8W.2h();E.14={5K:(v.1D(/.+(?:8T|8S|8R|8O)[\\/: ]([\\d.]+)/)||[])[1],2d:/77/.17(v),2z:/2z/.17(v),1d:/1d/.17(v)&&!/2z/.17(v),48:/48/.17(v)&&!/(8L|77)/.17(v)};L y=E.14.1d?"6H":"75";E.1s({8I:!E.14.1d||T.6F=="79",46:{"Q":"8F","8E":"1t","4g":y,75:y,6H:y,3d:"3d",1t:"1t",1A:"1A",2Y:"2Y",3k:"3k",8C:"8B",2p:"2p",8A:"8z",3T:"3T",6C:"6C",28:"28",12:"12"}});E.R({6B:J(a){K a.1a},8y:J(a){K E.4u(a,"1a")},8x:J(a){K E.2Z(a,2,"2B")},8v:J(a){K E.2Z(a,2,"4t")},8u:J(a){K E.4u(a,"2B")},8t:J(a){K E.4u(a,"4t")},8s:J(a){K E.5i(a.1a.1C,a)},8r:J(a){K E.5i(a.1C)},6z:J(a){K E.12(a,"8q")?a.8o||a.8n.T:E.2I(a.3p)}},J(c,d){E.1n[c]=J(b){L a=E.2c(6,d);7(b&&1o b=="25")a=E.3e(b,a);K 6.2F(E.57(a))}});E.R({6y:"3t",8m:"6q",3o:"6o",8l:"5a",8k:"6S"},J(c,b){E.1n[c]=J(){L a=18;K 6.R(J(){Q(L i=0,M=a.M;i<M;i++)E(a[i])[b](6)})}});E.R({8j:J(a){E.1J(6,a,"");7(6.15==1)6.52(a)},8i:J(a){E.1t.1b(6,a)},8h:J(a){E.1t.1V(6,a)},8g:J(a){E.1t[E.1t.3Y(6,a)?"1V":"1b"](6,a)},1V:J(a){7(!a||E.1E(a,[6]).r.M){E("*",6).1b(6).R(J(){E.16.1V(6);E.35(6)});7(6.1a)6.1a.34(6)}},4x:J(){E(">*",6).1V();2b(6.1C)6.34(6.1C)}},J(a,b){E.1n[a]=J(){K 6.R(b,18)}});E.R(["8f","5X"],J(i,c){L b=c.2h();E.1n[b]=J(a){K 6[0]==1e?E.14.2z&&T.1h["5e"+c]||E.14.2d&&1e["8e"+c]||T.6F=="79"&&T.1F["5e"+c]||T.1h["5e"+c]:6[0]==T?24.2f(24.2f(T.1h["5d"+c],T.1F["5d"+c]),24.2f(T.1h["5L"+c],T.1F["5L"+c])):a==10?(6.M?E.1j(6[0],b):V):6.1j(b,a.1k==4e?a:a+"2S")}});L C=E.14.2d&&4s(E.14.5K)<8c?"(?:[\\\\w*4r-]|\\\\\\\\.)":"(?:[\\\\w\\8b-\\8a*4r-]|\\\\\\\\.)",6v=1B 4q("^>\\\\s*("+C+"+)"),6u=1B 4q("^("+C+"+)(#)("+C+"+)"),6s=1B 4q("^([#.]?)("+C+"*)");E.1s({6r:{"":J(a,i,m){K m[2]=="*"||E.12(a,m[2])},"#":J(a,i,m){K a.4z("2w")==m[2]},":":{89:J(a,i,m){K i<m[3]-0},88:J(a,i,m){K i>m[3]-0},2Z:J(a,i,m){K m[3]-0==i},6Z:J(a,i,m){K m[3]-0==i},3j:J(a,i){K i==0},3J:J(a,i,m,r){K i==r.M-1},6n:J(a,i){K i%2==0},6l:J(a,i){K i%2},"3j-4p":J(a){K a.1a.3S("*")[0]==a},"3J-4p":J(a){K E.2Z(a.1a.5o,1,"4t")==a},"83-4p":J(a){K!E.2Z(a.1a.5o,2,"4t")},6B:J(a){K a.1C},4x:J(a){K!a.1C},82:J(a,i,m){K(a.6x||a.81||E(a).1u()||"").1f(m[3])>=0},4d:J(a){K"1Z"!=a.U&&E.1j(a,"19")!="2H"&&E.1j(a,"4U")!="1Z"},1Z:J(a){K"1Z"==a.U||E.1j(a,"19")=="2H"||E.1j(a,"4U")=="1Z"},80:J(a){K!a.2Y},2Y:J(a){K a.2Y},3k:J(a){K a.3k},2p:J(a){K a.2p||E.1J(a,"2p")},1u:J(a){K"1u"==a.U},5u:J(a){K"5u"==a.U},5t:J(a){K"5t"==a.U},59:J(a){K"59"==a.U},3I:J(a){K"3I"==a.U},58:J(a){K"58"==a.U},6j:J(a){K"6j"==a.U},6i:J(a){K"6i"==a.U},2G:J(a){K"2G"==a.U||E.12(a,"2G")},4D:J(a){K/4D|2k|6h|2G/i.17(a.12)},3Y:J(a,i,m){K E.2s(m[3],a).M},7X:J(a){K/h\\d/i.17(a.12)},7W:J(a){K E.3y(E.3G,J(b){K a==b.Y}).M}}},6g:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1B 4q("^([:.#]*)("+C+"+)")],3e:J(a,c,b){L d,2m=[];2b(a&&a!=d){d=a;L f=E.1E(a,c,b);a=f.t.1r(/^\\s*,\\s*/,"");2m=b?c=f.r:E.37(2m,f.r)}K 2m},2s:J(t,p){7(1o t!="25")K[t];7(p&&p.15!=1&&p.15!=9)K[];p=p||T;L d=[p],2r=[],3J,12;2b(t&&3J!=t){L r=[];3J=t;t=E.3g(t);L o=S;L g=6v;L m=g.2O(t);7(m){12=m[1].2E();Q(L i=0;d[i];i++)Q(L c=d[i].1C;c;c=c.2B)7(c.15==1&&(12=="*"||c.12.2E()==12))r.1g(c);d=r;t=t.1r(g,"");7(t.1f(" ")==0)6w;o=P}N{g=/^([>+~])\\s*(\\w*)/i;7((m=g.2O(t))!=V){r=[];L l={};12=m[2].2E();m=m[1];Q(L j=0,3f=d.M;j<3f;j++){L n=m=="~"||m=="+"?d[j].2B:d[j].1C;Q(;n;n=n.2B)7(n.15==1){L h=E.O(n);7(m=="~"&&l[h])1Q;7(!12||n.12.2E()==12){7(m=="~")l[h]=P;r.1g(n)}7(m=="+")1Q}}d=r;t=E.3g(t.1r(g,""));o=P}}7(t&&!o){7(!t.1f(",")){7(p==d[0])d.4l();2r=E.37(2r,d);r=d=[p];t=" "+t.6e(1,t.M)}N{L k=6u;L m=k.2O(t);7(m){m=[0,m[2],m[3],m[1]]}N{k=6s;m=k.2O(t)}m[2]=m[2].1r(/\\\\/g,"");L f=d[d.M-1];7(m[1]=="#"&&f&&f.5J&&!E.3E(f)){L q=f.5J(m[2]);7((E.14.1d||E.14.2z)&&q&&1o q.2w=="25"&&q.2w!=m[2])q=E(\'[@2w="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.12(q,m[3]))?[q]:[]}N{Q(L i=0;d[i];i++){L a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];7(a=="*"&&d[i].12.2h()=="3V")a="3m";r=E.37(r,d[i].3S(a))}7(m[1]==".")r=E.55(r,m[2]);7(m[1]=="#"){L e=[];Q(L i=0;r[i];i++)7(r[i].4z("2w")==m[2]){e=[r[i]];1Q}r=e}d=r}t=t.1r(k,"")}}7(t){L b=E.1E(t,r);d=r=b.r;t=E.3g(b.t)}}7(t)d=[];7(d&&p==d[0])d.4l();2r=E.37(2r,d);K 2r},55:J(r,m,a){m=" "+m+" ";L c=[];Q(L i=0;r[i];i++){L b=(" "+r[i].1t+" ").1f(m)>=0;7(!a&&b||a&&!b)c.1g(r[i])}K c},1E:J(t,r,h){L d;2b(t&&t!=d){d=t;L p=E.6g,m;Q(L i=0;p[i];i++){m=p[i].2O(t);7(m){t=t.7V(m[0].M);m[2]=m[2].1r(/\\\\/g,"");1Q}}7(!m)1Q;7(m[1]==":"&&m[2]=="56")r=G.17(m[3])?E.1E(m[3],r,P).r:E(r).56(m[3]);N 7(m[1]==".")r=E.55(r,m[2],h);N 7(m[1]=="["){L g=[],U=m[3];Q(L i=0,3f=r.M;i<3f;i++){L a=r[i],z=a[E.46[m[2]]||m[2]];7(z==V||/6O|3Q|2p/.17(m[2]))z=E.1J(a,m[2])||\'\';7((U==""&&!!z||U=="="&&z==m[5]||U=="!="&&z!=m[5]||U=="^="&&z&&!z.1f(m[5])||U=="$="&&z.6e(z.M-m[5].M)==m[5]||(U=="*="||U=="~=")&&z.1f(m[5])>=0)^h)g.1g(a)}r=g}N 7(m[1]==":"&&m[2]=="2Z-4p"){L e={},g=[],17=/(-?)(\\d*)n((?:\\+|-)?\\d*)/.2O(m[3]=="6n"&&"2n"||m[3]=="6l"&&"2n+1"||!/\\D/.17(m[3])&&"7U+"+m[3]||m[3]),3j=(17[1]+(17[2]||1))-0,d=17[3]-0;Q(L i=0,3f=r.M;i<3f;i++){L j=r[i],1a=j.1a,2w=E.O(1a);7(!e[2w]){L c=1;Q(L n=1a.1C;n;n=n.2B)7(n.15==1)n.4k=c++;e[2w]=P}L b=S;7(3j==0){7(j.4k==d)b=P}N 7((j.4k-d)%3j==0&&(j.4k-d)/3j>=0)b=P;7(b^h)g.1g(j)}r=g}N{L f=E.6r[m[1]];7(1o f=="3V")f=f[m[2]];7(1o f=="25")f=6c("S||J(a,i){K "+f+";}");r=E.3y(r,J(a,i){K f(a,i,m,r)},h)}}K{r:r,t:t}},4u:J(b,c){L d=[];L a=b[c];2b(a&&a!=T){7(a.15==1)d.1g(a);a=a[c]}K d},2Z:J(a,e,c,b){e=e||1;L d=0;Q(;a;a=a[c])7(a.15==1&&++d==e)1Q;K a},5i:J(n,a){L r=[];Q(;n;n=n.2B){7(n.15==1&&(!a||n!=a))r.1g(n)}K r}});E.16={1b:J(f,i,g,e){7(f.15==3||f.15==8)K;7(E.14.1d&&f.53!=10)f=1e;7(!g.2D)g.2D=6.2D++;7(e!=10){L h=g;g=J(){K h.1i(6,18)};g.O=e;g.2D=h.2D}L j=E.O(f,"2R")||E.O(f,"2R",{}),1v=E.O(f,"1v")||E.O(f,"1v",J(){L a;7(1o E=="10"||E.16.5f)K a;a=E.16.1v.1i(18.3R.Y,18);K a});1v.Y=f;E.R(i.23(/\\s+/),J(c,b){L a=b.23(".");b=a[0];g.U=a[1];L d=j[b];7(!d){d=j[b]={};7(!E.16.2y[b]||E.16.2y[b].4j.1P(f)===S){7(f.3F)f.3F(b,1v,S);N 7(f.6b)f.6b("4i"+b,1v)}}d[g.2D]=g;E.16.2a[b]=P});f=V},2D:1,2a:{},1V:J(e,h,f){7(e.15==3||e.15==8)K;L i=E.O(e,"2R"),29,4X;7(i){7(h==10||(1o h=="25"&&h.7T(0)=="."))Q(L g 1p i)6.1V(e,g+(h||""));N{7(h.U){f=h.2q;h=h.U}E.R(h.23(/\\s+/),J(b,a){L c=a.23(".");a=c[0];7(i[a]){7(f)2V i[a][f.2D];N Q(f 1p i[a])7(!c[1]||i[a][f].U==c[1])2V i[a][f];Q(29 1p i[a])1Q;7(!29){7(!E.16.2y[a]||E.16.2y[a].4h.1P(e)===S){7(e.67)e.67(a,E.O(e,"1v"),S);N 7(e.66)e.66("4i"+a,E.O(e,"1v"))}29=V;2V i[a]}}})}Q(29 1p i)1Q;7(!29){L d=E.O(e,"1v");7(d)d.Y=V;E.35(e,"2R");E.35(e,"1v")}}},1N:J(g,c,d,f,h){c=E.2I(c||[]);7(g.1f("!")>=0){g=g.2K(0,-1);L a=P}7(!d){7(6.2a[g])E("*").1b([1e,T]).1N(g,c)}N{7(d.15==3||d.15==8)K 10;L b,29,1n=E.1q(d[g]||V),16=!c[0]||!c[0].36;7(16)c.4J(6.4Z({U:g,2L:d}));c[0].U=g;7(a)c[0].65=P;7(E.1q(E.O(d,"1v")))b=E.O(d,"1v").1i(d,c);7(!1n&&d["4i"+g]&&d["4i"+g].1i(d,c)===S)b=S;7(16)c.4l();7(h&&E.1q(h)){29=h.1i(d,b==V?c:c.71(b));7(29!==10)b=29}7(1n&&f!==S&&b!==S&&!(E.12(d,\'a\')&&g=="4V")){6.5f=P;1S{d[g]()}1X(e){}}6.5f=S}K b},1v:J(c){L a;c=E.16.4Z(c||1e.16||{});L b=c.U.23(".");c.U=b[0];L f=E.O(6,"2R")&&E.O(6,"2R")[c.U],42=1M.2l.2K.1P(18,1);42.4J(c);Q(L j 1p f){L d=f[j];42[0].2q=d;42[0].O=d.O;7(!b[1]&&!c.65||d.U==b[1]){L e=d.1i(6,42);7(a!==S)a=e;7(e===S){c.36();c.44()}}}7(E.14.1d)c.2L=c.36=c.44=c.2q=c.O=V;K a},4Z:J(c){L a=c;c=E.1s({},a);c.36=J(){7(a.36)a.36();a.7S=S};c.44=J(){7(a.44)a.44();a.7R=P};7(!c.2L)c.2L=c.7Q||T;7(c.2L.15==3)c.2L=a.2L.1a;7(!c.4S&&c.5w)c.4S=c.5w==c.2L?c.7P:c.5w;7(c.64==V&&c.63!=V){L b=T.1F,1h=T.1h;c.64=c.63+(b&&b.2v||1h&&1h.2v||0)-(b.62||0);c.7N=c.7L+(b&&b.2x||1h&&1h.2x||0)-(b.60||0)}7(!c.3c&&((c.4f||c.4f===0)?c.4f:c.5Z))c.3c=c.4f||c.5Z;7(!c.7b&&c.5Y)c.7b=c.5Y;7(!c.3c&&c.2G)c.3c=(c.2G&1?1:(c.2G&2?3:(c.2G&4?2:0)));K c},2y:{21:{4j:J(){5M();K},4h:J(){K}},3C:{4j:J(){7(E.14.1d)K S;E(6).2j("4P",E.16.2y.3C.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4P",E.16.2y.3C.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3C";K E.16.1v.1i(6,18)}},3B:{4j:J(){7(E.14.1d)K S;E(6).2j("4O",E.16.2y.3B.2q);K P},4h:J(){7(E.14.1d)K S;E(6).3w("4O",E.16.2y.3B.2q);K P},2q:J(a){7(I(a,6))K P;18[0].U="3B";K E.16.1v.1i(6,18)}}}};E.1n.1s({2j:J(c,a,b){K c=="4H"?6.2X(c,a,b):6.R(J(){E.16.1b(6,c,b||a,b&&a)})},2X:J(d,b,c){K 6.R(J(){E.16.1b(6,d,J(a){E(6).3w(a);K(c||b).1i(6,18)},c&&b)})},3w:J(a,b){K 6.R(J(){E.16.1V(6,a,b)})},1N:J(c,a,b){K 6.R(J(){E.16.1N(c,a,6,P,b)})},5n:J(c,a,b){7(6[0])K E.16.1N(c,a,6[0],S,b);K 10},2g:J(){L b=18;K 6.4V(J(a){6.4N=0==6.4N?1:0;a.36();K b[6.4N].1i(6,18)||S})},7D:J(a,b){K 6.2j(\'3C\',a).2j(\'3B\',b)},21:J(a){5M();7(E.2Q)a.1P(T,E);N E.3A.1g(J(){K a.1P(6,E)});K 6}});E.1s({2Q:S,3A:[],21:J(){7(!E.2Q){E.2Q=P;7(E.3A){E.R(E.3A,J(){6.1i(T)});E.3A=V}E(T).5n("21")}}});L x=S;J 5M(){7(x)K;x=P;7(T.3F&&!E.14.2z)T.3F("5W",E.21,S);7(E.14.1d&&1e==3b)(J(){7(E.2Q)K;1S{T.1F.7B("26")}1X(3a){3z(18.3R,0);K}E.21()})();7(E.14.2z)T.3F("5W",J(){7(E.2Q)K;Q(L i=0;i<T.4L.M;i++)7(T.4L[i].2Y){3z(18.3R,0);K}E.21()},S);7(E.14.2d){L a;(J(){7(E.2Q)K;7(T.39!="5V"&&T.39!="1y"){3z(18.3R,0);K}7(a===10)a=E("W, 7a[7A=7z]").M;7(T.4L.M!=a){3z(18.3R,0);K}E.21()})()}E.16.1b(1e,"3U",E.21)}E.R(("7y,7x,3U,7w,5d,4H,4V,7v,"+"7G,7u,7t,4P,4O,7s,2k,"+"58,7K,7q,7p,3a").23(","),J(i,b){E.1n[b]=J(a){K a?6.2j(b,a):6.1N(b)}});L I=J(a,c){L b=a.4S;2b(b&&b!=c)1S{b=b.1a}1X(3a){b=c}K b==c};E(1e).2j("4H",J(){E("*").1b(T).3w()});E.1n.1s({3U:J(g,d,c){7(E.1q(g))K 6.2j("3U",g);L e=g.1f(" ");7(e>=0){L i=g.2K(e,g.M);g=g.2K(0,e)}c=c||J(){};L f="4Q";7(d)7(E.1q(d)){c=d;d=V}N{d=E.3m(d);f="61"}L h=6;E.3P({1c:g,U:f,1H:"3q",O:d,1y:J(a,b){7(b=="1W"||b=="5U")h.3q(i?E("<1x/>").3t(a.4b.1r(/<1m(.|\\s)*?\\/1m>/g,"")).2s(i):a.4b);h.R(c,[a.4b,b,a])}});K 6},7n:J(){K E.3m(6.5T())},5T:J(){K 6.2c(J(){K E.12(6,"3u")?E.2I(6.7m):6}).1E(J(){K 6.31&&!6.2Y&&(6.3k||/2k|6h/i.17(6.12)||/1u|1Z|3I/i.17(6.U))}).2c(J(i,c){L b=E(6).5O();K b==V?V:b.1k==1M?E.2c(b,J(a,i){K{31:c.31,1A:a}}):{31:c.31,1A:b}}).22()}});E.R("5S,6d,5R,6D,5Q,6m".23(","),J(i,o){E.1n[o]=J(f){K 6.2j(o,f)}});L B=(1B 3v).3L();E.1s({22:J(d,b,a,c){7(E.1q(b)){a=b;b=V}K E.3P({U:"4Q",1c:d,O:b,1W:a,1H:c})},7l:J(b,a){K E.22(b,V,a,"1m")},7k:J(c,b,a){K E.22(c,b,a,"3i")},7i:J(d,b,a,c){7(E.1q(b)){a=b;b={}}K E.3P({U:"61",1c:d,O:b,1W:a,1H:c})},85:J(a){E.1s(E.4I,a)},4I:{2a:P,U:"4Q",2U:0,5P:"4o/x-7h-3u-7g",5N:P,3l:P,O:V,6p:V,3I:V,49:{3M:"4o/3M, 1u/3M",3q:"1u/3q",1m:"1u/4m, 4o/4m",3i:"4o/3i, 1u/4m",1u:"1u/a7",4G:"*/*"}},4F:{},3P:J(s){L f,2W=/=\\?(&|$)/g,1z,O;s=E.1s(P,s,E.1s(P,{},E.4I,s));7(s.O&&s.5N&&1o s.O!="25")s.O=E.3m(s.O);7(s.1H=="4E"){7(s.U.2h()=="22"){7(!s.1c.1D(2W))s.1c+=(s.1c.1D(/\\?/)?"&":"?")+(s.4E||"7d")+"=?"}N 7(!s.O||!s.O.1D(2W))s.O=(s.O?s.O+"&":"")+(s.4E||"7d")+"=?";s.1H="3i"}7(s.1H=="3i"&&(s.O&&s.O.1D(2W)||s.1c.1D(2W))){f="4E"+B++;7(s.O)s.O=(s.O+"").1r(2W,"="+f+"$1");s.1c=s.1c.1r(2W,"="+f+"$1");s.1H="1m";1e[f]=J(a){O=a;1W();1y();1e[f]=10;1S{2V 1e[f]}1X(e){}7(h)h.34(g)}}7(s.1H=="1m"&&s.1T==V)s.1T=S;7(s.1T===S&&s.U.2h()=="22"){L i=(1B 3v()).3L();L j=s.1c.1r(/(\\?|&)4r=.*?(&|$)/,"$a4="+i+"$2");s.1c=j+((j==s.1c)?(s.1c.1D(/\\?/)?"&":"?")+"4r="+i:"")}7(s.O&&s.U.2h()=="22"){s.1c+=(s.1c.1D(/\\?/)?"&":"?")+s.O;s.O=V}7(s.2a&&!E.5H++)E.16.1N("5S");7((!s.1c.1f("a3")||!s.1c.1f("//"))&&s.1H=="1m"&&s.U.2h()=="22"){L h=T.3S("6f")[0];L g=T.3s("1m");g.3Q=s.1c;7(s.7c)g.a2=s.7c;7(!f){L l=S;g.9Z=g.9Y=J(){7(!l&&(!6.39||6.39=="5V"||6.39=="1y")){l=P;1W();1y();h.34(g)}}}h.38(g);K 10}L m=S;L k=1e.78?1B 78("9X.9V"):1B 76();k.9T(s.U,s.1c,s.3l,s.6p,s.3I);1S{7(s.O)k.4C("9R-9Q",s.5P);7(s.5C)k.4C("9O-5A-9N",E.4F[s.1c]||"9L, 9K 9I 9H 5z:5z:5z 9F");k.4C("X-9C-9A","76");k.4C("9z",s.1H&&s.49[s.1H]?s.49[s.1H]+", */*":s.49.4G)}1X(e){}7(s.6Y)s.6Y(k);7(s.2a)E.16.1N("6m",[k,s]);L c=J(a){7(!m&&k&&(k.39==4||a=="2U")){m=P;7(d){6I(d);d=V}1z=a=="2U"&&"2U"||!E.6X(k)&&"3a"||s.5C&&E.6J(k,s.1c)&&"5U"||"1W";7(1z=="1W"){1S{O=E.6W(k,s.1H)}1X(e){1z="5x"}}7(1z=="1W"){L b;1S{b=k.5q("6U-5A")}1X(e){}7(s.5C&&b)E.4F[s.1c]=b;7(!f)1W()}N E.5v(s,k,1z);1y();7(s.3l)k=V}};7(s.3l){L d=53(c,13);7(s.2U>0)3z(J(){7(k){k.9t();7(!m)c("2U")}},s.2U)}1S{k.9s(s.O)}1X(e){E.5v(s,k,V,e)}7(!s.3l)c();J 1W(){7(s.1W)s.1W(O,1z);7(s.2a)E.16.1N("5Q",[k,s])}J 1y(){7(s.1y)s.1y(k,1z);7(s.2a)E.16.1N("5R",[k,s]);7(s.2a&&!--E.5H)E.16.1N("6d")}K k},5v:J(s,a,b,e){7(s.3a)s.3a(a,b,e);7(s.2a)E.16.1N("6D",[a,s,e])},5H:0,6X:J(r){1S{K!r.1z&&9q.9p=="59:"||(r.1z>=6T&&r.1z<9n)||r.1z==6R||r.1z==9l||E.14.2d&&r.1z==10}1X(e){}K S},6J:J(a,c){1S{L b=a.5q("6U-5A");K a.1z==6R||b==E.4F[c]||E.14.2d&&a.1z==10}1X(e){}K S},6W:J(r,b){L c=r.5q("9k-U");L d=b=="3M"||!b&&c&&c.1f("3M")>=0;L a=d?r.9j:r.4b;7(d&&a.1F.28=="5x")6Q"5x";7(b=="1m")E.5g(a);7(b=="3i")a=6c("("+a+")");K a},3m:J(a){L s=[];7(a.1k==1M||a.5h)E.R(a,J(){s.1g(3r(6.31)+"="+3r(6.1A))});N Q(L j 1p a)7(a[j]&&a[j].1k==1M)E.R(a[j],J(){s.1g(3r(j)+"="+3r(6))});N s.1g(3r(j)+"="+3r(a[j]));K s.6a("&").1r(/%20/g,"+")}});E.1n.1s({1G:J(c,b){K c?6.2e({1R:"1G",27:"1G",1w:"1G"},c,b):6.1E(":1Z").R(J(){6.W.19=6.5s||"";7(E.1j(6,"19")=="2H"){L a=E("<"+6.28+" />").6y("1h");6.W.19=a.1j("19");7(6.W.19=="2H")6.W.19="3D";a.1V()}}).3h()},1I:J(b,a){K b?6.2e({1R:"1I",27:"1I",1w:"1I"},b,a):6.1E(":4d").R(J(){6.5s=6.5s||E.1j(6,"19");6.W.19="2H"}).3h()},6N:E.1n.2g,2g:J(a,b){K E.1q(a)&&E.1q(b)?6.6N(a,b):a?6.2e({1R:"2g",27:"2g",1w:"2g"},a,b):6.R(J(){E(6)[E(6).3H(":1Z")?"1G":"1I"]()})},9f:J(b,a){K 6.2e({1R:"1G"},b,a)},9d:J(b,a){K 6.2e({1R:"1I"},b,a)},9c:J(b,a){K 6.2e({1R:"2g"},b,a)},9a:J(b,a){K 6.2e({1w:"1G"},b,a)},99:J(b,a){K 6.2e({1w:"1I"},b,a)},97:J(c,a,b){K 6.2e({1w:a},c,b)},2e:J(l,k,j,h){L i=E.6P(k,j,h);K 6[i.2P===S?"R":"2P"](J(){7(6.15!=1)K S;L g=E.1s({},i);L f=E(6).3H(":1Z"),4A=6;Q(L p 1p l){7(l[p]=="1I"&&f||l[p]=="1G"&&!f)K E.1q(g.1y)&&g.1y.1i(6);7(p=="1R"||p=="27"){g.19=E.1j(6,"19");g.32=6.W.32}}7(g.32!=V)6.W.32="1Z";g.40=E.1s({},l);E.R(l,J(c,a){L e=1B E.2t(4A,g,c);7(/2g|1G|1I/.17(a))e[a=="2g"?f?"1G":"1I":a](l);N{L b=a.3X().1D(/^([+-]=)?([\\d+-.]+)(.*)$/),1Y=e.2m(P)||0;7(b){L d=2M(b[2]),2A=b[3]||"2S";7(2A!="2S"){4A.W[c]=(d||1)+2A;1Y=((d||1)/e.2m(P))*1Y;4A.W[c]=1Y+2A}7(b[1])d=((b[1]=="-="?-1:1)*d)+1Y;e.45(1Y,d,2A)}N e.45(1Y,a,"")}});K P})},2P:J(a,b){7(E.1q(a)||(a&&a.1k==1M)){b=a;a="2t"}7(!a||(1o a=="25"&&!b))K A(6[0],a);K 6.R(J(){7(b.1k==1M)A(6,a,b);N{A(6,a).1g(b);7(A(6,a).M==1)b.1i(6)}})},94:J(b,c){L a=E.3G;7(b)6.2P([]);6.R(J(){Q(L i=a.M-1;i>=0;i--)7(a[i].Y==6){7(c)a[i](P);a.72(i,1)}});7(!c)6.5p();K 6}});L A=J(b,c,a){7(!b)K 10;c=c||"2t";L q=E.O(b,c+"2P");7(!q||a)q=E.O(b,c+"2P",a?E.2I(a):[]);K q};E.1n.5p=J(a){a=a||"2t";K 6.R(J(){L q=A(6,a);q.4l();7(q.M)q[0].1i(6)})};E.1s({6P:J(b,a,c){L d=b&&b.1k==92?b:{1y:c||!c&&a||E.1q(b)&&b,2u:b,3Z:c&&a||a&&a.1k!=91&&a};d.2u=(d.2u&&d.2u.1k==51?d.2u:{90:8Z,9D:6T}[d.2u])||8X;d.5y=d.1y;d.1y=J(){7(d.2P!==S)E(6).5p();7(E.1q(d.5y))d.5y.1i(6)};K d},3Z:{70:J(p,n,b,a){K b+a*p},5j:J(p,n,b,a){K((-24.8V(p*24.8U)/2)+0.5)*a+b}},3G:[],3W:V,2t:J(b,c,a){6.11=c;6.Y=b;6.1l=a;7(!c.47)c.47={}}});E.2t.2l={4y:J(){7(6.11.30)6.11.30.1i(6.Y,[6.2J,6]);(E.2t.30[6.1l]||E.2t.30.4G)(6);7(6.1l=="1R"||6.1l=="27")6.Y.W.19="3D"},2m:J(a){7(6.Y[6.1l]!=V&&6.Y.W[6.1l]==V)K 6.Y[6.1l];L r=2M(E.1j(6.Y,6.1l,a));K r&&r>-8Q?r:2M(E.2o(6.Y,6.1l))||0},45:J(c,b,d){6.5B=(1B 3v()).3L();6.1Y=c;6.3h=b;6.2A=d||6.2A||"2S";6.2J=6.1Y;6.4B=6.4w=0;6.4y();L e=6;J t(a){K e.30(a)}t.Y=6.Y;E.3G.1g(t);7(E.3W==V){E.3W=53(J(){L a=E.3G;Q(L i=0;i<a.M;i++)7(!a[i]())a.72(i--,1);7(!a.M){6I(E.3W);E.3W=V}},13)}},1G:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1G=P;6.45(0,6.2m());7(6.1l=="27"||6.1l=="1R")6.Y.W[6.1l]="8N";E(6.Y).1G()},1I:J(){6.11.47[6.1l]=E.1J(6.Y.W,6.1l);6.11.1I=P;6.45(6.2m(),0)},30:J(a){L t=(1B 3v()).3L();7(a||t>6.11.2u+6.5B){6.2J=6.3h;6.4B=6.4w=1;6.4y();6.11.40[6.1l]=P;L b=P;Q(L i 1p 6.11.40)7(6.11.40[i]!==P)b=S;7(b){7(6.11.19!=V){6.Y.W.32=6.11.32;6.Y.W.19=6.11.19;7(E.1j(6.Y,"19")=="2H")6.Y.W.19="3D"}7(6.11.1I)6.Y.W.19="2H";7(6.11.1I||6.11.1G)Q(L p 1p 6.11.40)E.1J(6.Y.W,p,6.11.47[p])}7(b&&E.1q(6.11.1y))6.11.1y.1i(6.Y);K S}N{L n=t-6.5B;6.4w=n/6.11.2u;6.4B=E.3Z[6.11.3Z||(E.3Z.5j?"5j":"70")](6.4w,n,0,1,6.11.2u);6.2J=6.1Y+((6.3h-6.1Y)*6.4B);6.4y()}K P}};E.2t.30={2v:J(a){a.Y.2v=a.2J},2x:J(a){a.Y.2x=a.2J},1w:J(a){E.1J(a.Y.W,"1w",a.2J)},4G:J(a){a.Y.W[a.1l]=a.2J+a.2A}};E.1n.5L=J(){L b=0,3b=0,Y=6[0],5l;7(Y)8M(E.14){L d=Y.1a,41=Y,1K=Y.1K,1L=Y.2i,5D=2d&&4s(5K)<8J&&!/a1/i.17(v),2T=E.1j(Y,"43")=="2T";7(Y.6G){L c=Y.6G();1b(c.26+24.2f(1L.1F.2v,1L.1h.2v),c.3b+24.2f(1L.1F.2x,1L.1h.2x));1b(-1L.1F.62,-1L.1F.60)}N{1b(Y.5G,Y.5F);2b(1K){1b(1K.5G,1K.5F);7(48&&!/^t(8H|d|h)$/i.17(1K.28)||2d&&!5D)2N(1K);7(!2T&&E.1j(1K,"43")=="2T")2T=P;41=/^1h$/i.17(1K.28)?41:1K;1K=1K.1K}2b(d&&d.28&&!/^1h|3q$/i.17(d.28)){7(!/^8G|1O.*$/i.17(E.1j(d,"19")))1b(-d.2v,-d.2x);7(48&&E.1j(d,"32")!="4d")2N(d);d=d.1a}7((5D&&(2T||E.1j(41,"43")=="4W"))||(48&&E.1j(41,"43")!="4W"))1b(-1L.1h.5G,-1L.1h.5F);7(2T)1b(24.2f(1L.1F.2v,1L.1h.2v),24.2f(1L.1F.2x,1L.1h.2x))}5l={3b:3b,26:b}}J 2N(a){1b(E.2o(a,"a8",P),E.2o(a,"a9",P))}J 1b(l,t){b+=4s(l)||0;3b+=4s(t)||0}K 5l}})();',62,631,'||||||this|if||||||||||||||||||||||||||||||||||||||function|return|var|length|else|data|true|for|each|false|document|type|null|style||elem||undefined|options|nodeName||browser|nodeType|event|test|arguments|display|parentNode|add|url|msie|window|indexOf|push|body|apply|css|constructor|prop|script|fn|typeof|in|isFunction|replace|extend|className|text|handle|opacity|div|complete|status|value|new|firstChild|match|filter|documentElement|show|dataType|hide|attr|offsetParent|doc|Array|trigger|table|call|break|height|try|cache|tbody|remove|success|catch|start|hidden||ready|get|split|Math|string|left|width|tagName|ret|global|while|map|safari|animate|max|toggle|toLowerCase|ownerDocument|bind|select|prototype|cur||curCSS|selected|handler|done|find|fx|duration|scrollLeft|id|scrollTop|special|opera|unit|nextSibling|stack|guid|toUpperCase|pushStack|button|none|makeArray|now|slice|target|parseFloat|border|exec|queue|isReady|events|px|fixed|timeout|delete|jsre|one|disabled|nth|step|name|overflow|inArray|removeChild|removeData|preventDefault|merge|appendChild|readyState|error|top|which|innerHTML|multiFilter|rl|trim|end|json|first|checked|async|param|elems|insertBefore|childNodes|html|encodeURIComponent|createElement|append|form|Date|unbind|color|grep|setTimeout|readyList|mouseleave|mouseenter|block|isXMLDoc|addEventListener|timers|is|password|last|runtimeStyle|getTime|xml|jQuery|domManip|ajax|src|callee|getElementsByTagName|selectedIndex|load|object|timerId|toString|has|easing|curAnim|offsetChild|args|position|stopPropagation|custom|props|orig|mozilla|accepts|clean|responseText|defaultView|visible|String|charCode|float|teardown|on|setup|nodeIndex|shift|javascript|currentStyle|application|child|RegExp|_|parseInt|previousSibling|dir|tr|state|empty|update|getAttribute|self|pos|setRequestHeader|input|jsonp|lastModified|_default|unload|ajaxSettings|unshift|getComputedStyle|styleSheets|getPropertyValue|lastToggle|mouseout|mouseover|GET|andSelf|relatedTarget|init|visibility|click|absolute|index|container|fix|outline|Number|removeAttribute|setInterval|prevObject|classFilter|not|unique|submit|file|after|windowData|deep|scroll|client|triggered|globalEval|jquery|sibling|swing|clone|results|wrapAll|triggerHandler|lastChild|dequeue|getResponseHeader|createTextNode|oldblock|checkbox|radio|handleError|fromElement|parsererror|old|00|Modified|startTime|ifModified|safari2|getWH|offsetTop|offsetLeft|active|values|getElementById|version|offset|bindReady|processData|val|contentType|ajaxSuccess|ajaxComplete|ajaxStart|serializeArray|notmodified|loaded|DOMContentLoaded|Width|ctrlKey|keyCode|clientTop|POST|clientLeft|clientX|pageX|exclusive|detachEvent|removeEventListener|swap|cloneNode|join|attachEvent|eval|ajaxStop|substr|head|parse|textarea|reset|image|zoom|odd|ajaxSend|even|before|username|prepend|expr|quickClass|uuid|quickID|quickChild|continue|textContent|appendTo|contents|evalScript|parent|defaultValue|ajaxError|setArray|compatMode|getBoundingClientRect|styleFloat|clearInterval|httpNotModified|nodeValue|100|alpha|_toggle|href|speed|throw|304|replaceWith|200|Last|colgroup|httpData|httpSuccess|beforeSend|eq|linear|concat|splice|fieldset|multiple|cssFloat|XMLHttpRequest|webkit|ActiveXObject|CSS1Compat|link|metaKey|scriptCharset|callback|col|pixelLeft|urlencoded|www|post|hasClass|getJSON|getScript|elements|serialize|black|keyup|keypress|solid|change|mousemove|mouseup|dblclick|resize|focus|blur|stylesheet|rel|doScroll|round|hover|padding|offsetHeight|mousedown|offsetWidth|Bottom|Top|keydown|clientY|Right|pageY|Left|toElement|srcElement|cancelBubble|returnValue|charAt|0n|substring|animated|header|noConflict|line|enabled|innerText|contains|only|weight|ajaxSetup|font|size|gt|lt|uFFFF|u0128|417|Boolean|inner|Height|toggleClass|removeClass|addClass|removeAttr|replaceAll|insertAfter|prependTo|contentWindow|contentDocument|wrap|iframe|children|siblings|prevAll|nextAll|prev|wrapInner|next|parents|maxLength|maxlength|readOnly|readonly|reverse|class|htmlFor|inline|able|boxModel|522|setData|compatible|with|1px|ie|getData|10000|ra|it|rv|PI|cos|userAgent|400|navigator|600|slow|Function|Object|array|stop|ig|NaN|fadeTo|option|fadeOut|fadeIn|setAttribute|slideToggle|slideUp|changed|slideDown|be|can|property|responseXML|content|1223|getAttributeNode|300|method|protocol|location|action|send|abort|cssText|th|td|cap|specified|Accept|With|colg|Requested|fast|tfoot|GMT|thead|1970|Jan|attributes|01|Thu|leg|Since|If|opt|Type|Content|embed|open|area|XMLHTTP|hr|Microsoft|onreadystatechange|onload|meta|adobeair|charset|http|1_|img|br|plain|borderLeftWidth|borderTopWidth|abbr'.split('|'),0,{}))
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.periodicalupdater.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.periodicalupdater.js
deleted file mode 100644
index 569b131..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.periodicalupdater.js
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- * PeriodicalUpdater - jQuery plugin for timed, decaying ajax calls
- *
- * http://www.360innovate.co.uk/blog/2009/03/periodicalupdater-for-jquery/
- * http://enfranchisedmind.com/blog/posts/jquery-periodicalupdater-ajax-polling/
- *
- * Copyright (c) 2009 by the following:
- *  Frank White (http://customcode.info)
- *  Robert Fischer (http://smokejumperit.com)
- *  360innovate (http://www.360innovate.co.uk)
- *
- * Dual licensed under the MIT and GPL licenses:
- * http://www.opensource.org/licenses/mit-license.php
- * http://www.gnu.org/licenses/gpl.html
- *
- */
-
-(function($) {
-    var pu_log = function(msg) {
-      try {
-        //console.log(msg); //No logging for now
-      } catch(err) {}
-    }
-
-    // Now back to our regularly scheduled work
-    $.PeriodicalUpdater = function(url, options, callback, autoStopCallback){
-      var settings = jQuery.extend(true, {
-          url: url,         // URL of ajax request
-          cache: false,     // By default, don't allow caching
-          method: 'GET',    // method; get or post
-          data: '',         // array of values to be passed to the page - e.g. {name: "John", greeting: "hello"}
-          minTimeout: 1000, // starting value for the timeout in milliseconds
-          maxTimeout: 8000, // maximum length of time between requests
-          multiplier: 2,    // if set to 2, timerInterval will double each time the response hasn't changed (up to maxTimeout)
-          maxCalls: 0,      // maximum number of calls. 0 = no limit.
-          autoStop: 0       // automatically stop requests after this many returns of the same data. 0 = disabled
-        }, options);
-
-        // set some initial values, then begin
-        var timer         = null;
-        var timerInterval = settings.minTimeout;
-        var maxCalls      = settings.maxCalls;
-        var autoStop      = settings.autoStop;
-        var calls         = 0;
-        var noChange      = 0;
-        var originalMaxCalls = maxCalls;
-
-        var reset_timer = function(interval) {
-          if (timer != null) {
-            clearTimeout(timer);
-          }
-          timerInterval = interval;
-          pu_log('resetting timer to '+ timerInterval +'.');
-          timer = setTimeout(getdata, timerInterval);
-        }
-
-        // Function to boost the timer
-        var boostPeriod = function() {
-          if(settings.multiplier >= 1) {
-            before = timerInterval;
-            timerInterval = timerInterval * settings.multiplier;
-
-            if(timerInterval > settings.maxTimeout) {
-              timerInterval = settings.maxTimeout;
-            }
-            after = timerInterval;
-            pu_log('adjusting timer from '+ before +' to '+ after +'.');
-            reset_timer(timerInterval);
-          }
-        };
-
-        // Construct the settings for $.ajax based on settings
-        var ajaxSettings = jQuery.extend(true, {}, settings);
-        if(settings.type && !ajaxSettings.dataType) ajaxSettings.dataType = settings.type;
-        if(settings.sendData) ajaxSettings.data = settings.sendData;
-        ajaxSettings.type = settings.method; // 'type' is used internally for jQuery.  Who knew?
-        ajaxSettings.ifModified = true;
-
-        var handle = {
-					restart: function() {
-						maxCalls = originalMaxCalls;
-						calls = 0;
-						reset_timer(timerInterval);
-						return;
-					},
-          stop: function() {
-            maxCalls = -1;
-            return;
-          }
-        };
-
-        // Create the function to get data
-        // TODO It'd be nice to do the options.data check once (a la boostPeriod)
-        function getdata() {
-          var toSend  = jQuery.extend(true, {}, ajaxSettings); // jQuery screws with what you pass in
-          if(typeof(options.data) == 'function') {
-            toSend.data = options.data();
-            if(toSend.data) {
-              // Handle transformations (only strings and objects are understood)
-              if(typeof(toSend.data) == "number") {
-                toSend.data = toSend.data.toString();
-              }
-            }
-          }
-
-          if(maxCalls == 0) {
-            $.ajax(toSend);
-          } else if(maxCalls > 0 && calls < maxCalls) {
-            $.ajax(toSend);
-            calls++;
-          }
-        }
-
-        // Implement the tricky behind logic
-        var remoteData  = null;
-        var prevData    = null;
-
-        ajaxSettings.success = function(data) {
-          pu_log("Successful run! (In 'success')");
-          remoteData      = data;
-          // timerInterval   = settings.minTimeout;
-        };
-
-        ajaxSettings.complete = function(xhr, success) {
-          //pu_log("Status of call: " + success + " (In 'complete')");
-          if(maxCalls == -1) return;
-          if(success == "success" || success == "notmodified") {
-            var rawData = $.trim(xhr.responseText);
-            if(rawData == 'STOP_AJAX_CALLS') {
-							handle.stop();
-              return;
-            }
-            if(prevData == rawData) {
-              if(autoStop > 0) {
-                noChange++;
-                if(noChange == autoStop) {
-									handle.stop();
-                  if(autoStopCallback) autoStopCallback(noChange);
-                  return;
-                }
-              }
-              boostPeriod();
-            } else {
-              noChange        = 0;
-              reset_timer(settings.minTimeout);
-              prevData        = rawData;
-              if(remoteData == null) remoteData = rawData;
-              // jQuery 1.4+ $.ajax() automatically converts "data" into a JS Object for "type:json" requests now
-              // For compatibility with 1.4+ and pre1.4 jQuery only try to parse actual strings, skip when remoteData is already an Object
-              if((ajaxSettings.dataType === 'json') && (typeof(remoteData) === 'string') && (success == "success")) {
-                remoteData = JSON.parse(remoteData);
-              }
-              if(settings.success) { settings.success(remoteData, success, xhr, handle); }
-              if(callback) callback(remoteData, success, xhr, handle);
-            }
-          }
-          remoteData = null;
-        }
-
-
-        ajaxSettings.error = function (xhr, textStatus) {
-          //pu_log("Error message: " + textStatus + " (In 'error')");
-          if(textStatus != "notmodified") {
-            prevData = null;
-            reset_timer(settings.minTimeout);
-          }
-          if(settings.error) { settings.error(xhr, textStatus); }
-        };
-
-        // Make the first call
-        $(function() { reset_timer(timerInterval); });
-
-        return handle;
-    };
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sortElements.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sortElements.js
deleted file mode 100644
index d76c8b2..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sortElements.js
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * jQuery.fn.sortElements
- * --------------
- * @author James Padolsey (http://james.padolsey.com)
- * @version 0.11
- * @updated 18-MAR-2010
- * --------------
- * @param Function comparator:
- *   Exactly the same behaviour as [1,2,3].sort(comparator)
- *   
- * @param Function getSortable
- *   A function that should return the element that is
- *   to be sorted. The comparator will run on the
- *   current collection, but you may want the actual
- *   resulting sort to occur on a parent or another
- *   associated element.
- *   
- *   E.g. $('td').sortElements(comparator, function(){
- *      return this.parentNode; 
- *   })
- *   
- *   The <td>'s parent (<tr>) will be sorted instead
- *   of the <td> itself.
- *
- * Copyright (c) 2010 James Padolsey
- * -------------------------------------------------------
- * Dual licensed under the MIT and GPL licenses.
- *    - http://www.opensource.org/licenses/mit-license.php
- *    - http://www.gnu.org/copyleft/gpl.html
- */
-jQuery.fn.sortElements = (function(){
-    
-    var sort = [].sort;
-    
-    return function(comparator, getSortable) {
-        
-        getSortable = getSortable || function(){return this;};
-        
-        var placements = this.map(function(){
-            
-            var sortElement = getSortable.call(this),
-                parentNode = sortElement.parentNode,
-                
-                // Since the element itself will change position, we have
-                // to have some way of storing it's original position in
-                // the DOM. The easiest way is to have a 'flag' node:
-                nextSibling = parentNode.insertBefore(
-                    document.createTextNode(''),
-                    sortElement.nextSibling
-                );
-            
-            return function() {
-                
-                if (parentNode === this) {
-                    throw new Error(
-                        "You can't sort elements if any one is a descendant of another."
-                    );
-                }
-                
-                // Insert before flag:
-                parentNode.insertBefore(this, nextSibling);
-                // Remove flag:
-                parentNode.removeChild(nextSibling);
-                
-            };
-            
-        });
-       
-        return sort.call(this, comparator).each(function(i){
-            placements[i].call(getSortable.call(this));
-        });
-        
-    };
-    
-})();
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sparkline.min.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sparkline.min.js
deleted file mode 100644
index fe745b4..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.sparkline.min.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/* jquery.sparkline 1.6 - http://omnipotent.net/jquery.sparkline/ 
-** Licensed under the New BSD License - see above site for details */
-
-(function($){var defaults={common:{type:'line',lineColor:'#00f',fillColor:'#cdf',defaultPixelsPerValue:3,width:'auto',height:'auto',composite:false,tagValuesAttribute:'values',tagOptionsPrefix:'spark',enableTagOptions:false},line:{spotColor:'#f80',spotRadius:1.5,minSpotColor:'#f80',maxSpotColor:'#f80',lineWidth:1,normalRangeMin:undefined,normalRangeMax:undefined,normalRangeColor:'#ccc',drawNormalOnTop:false,chartRangeMin:undefined,chartRangeMax:undefined,chartRangeMinX:undefined,chartRangeMaxX:undefined},bar:{barColor:'#00f',negBarColor:'#f44',zeroColor:undefined,nullColor:undefined,zeroAxis:undefined,barWidth:4,barSpacing:1,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false,colorMap:undefined},tristate:{barWidth:4,barSpacing:1,posBarColor:'#6f6',negBarColor:'#f44',zeroBarColor:'#999',colorMap:{}},discrete:{lineHeight:'auto',thresholdColor:undefined,thresholdValue:0,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false},bullet:{targetColor:'red',targetWidth:3,performanceColor:'blue',rangeColors:['#D3DAFE','#A8B6FF','#7F94FF'],base:undefined},pie:{sliceColors:['#f00','#0f0','#00f']},box:{raw:false,boxLineColor:'black',boxFillColor:'#cdf',whiskerColor:'black',outlierLineColor:'#333',outlierFillColor:'white',medianColor:'red',showOutliers:true,outlierIQR:1.5,spotRadius:1.5,target:undefined,targetColor:'#4a2',chartRangeMax:undefined,chartRangeMin:undefined}};var VCanvas_base,VCanvas_canvas,VCanvas_vml;$.fn.simpledraw=function(width,height,use_existing){if(use_existing&&this[0].VCanvas){return this[0].VCanvas;}
-if(width===undefined){width=$(this).innerWidth();}
-if(height===undefined){height=$(this).innerHeight();}
-if($.browser.hasCanvas){return new VCanvas_canvas(width,height,this);}else if($.browser.msie){return new VCanvas_vml(width,height,this);}else{return false;}};var pending=[];$.fn.sparkline=function(uservalues,userOptions){return this.each(function(){var options=new $.fn.sparkline.options(this,userOptions);var render=function(){var values,width,height;if(uservalues==='html'||uservalues===undefined){var vals=this.getAttribute(options.get('tagValuesAttribute'));if(vals===undefined||vals===null){vals=$(this).html();}
-values=vals.replace(/(^\s*<!--)|(-->\s*$)|\s+/g,'').split(',');}else{values=uservalues;}
-width=options.get('width')=='auto'?values.length*options.get('defaultPixelsPerValue'):options.get('width');if(options.get('height')=='auto'){if(!options.get('composite')||!this.VCanvas){var tmp=document.createElement('span');tmp.innerHTML='a';$(this).html(tmp);height=$(tmp).innerHeight();$(tmp).remove();}}else{height=options.get('height');}
-$.fn.sparkline[options.get('type')].call(this,values,options,width,height);};if(($(this).html()&&$(this).is(':hidden'))||($.fn.jquery<"1.3.0"&&$(this).parents().is(':hidden'))||!$(this).parents('body').length){pending.push([this,render]);}else{render.call(this);}});};$.fn.sparkline.defaults=defaults;$.sparkline_display_visible=function(){for(var i=pending.length-1;i>=0;i--){var el=pending[i][0];if($(el).is(':visible')&&!$(el).parents().is(':hidden')){pending[i][1].call(el);pending.splice(i,1);}}};var UNSET_OPTION={};var normalizeValue=function(val){switch(val){case'undefined':val=undefined;break;case'null':val=null;break;case'true':val=true;break;case'false':val=false;break;default:var nf=parseFloat(val);if(val==nf){val=nf;}}
-return val;};$.fn.sparkline.options=function(tag,userOptions){var extendedOptions;this.userOptions=userOptions=userOptions||{};this.tag=tag;this.tagValCache={};var defaults=$.fn.sparkline.defaults;var base=defaults.common;this.tagOptionsPrefix=userOptions.enableTagOptions&&(userOptions.tagOptionsPrefix||base.tagOptionsPrefix);var tagOptionType=this.getTagSetting('type');if(tagOptionType===UNSET_OPTION){extendedOptions=defaults[userOptions.type||base.type];}else{extendedOptions=defaults[tagOptionType];}
-this.mergedOptions=$.extend({},base,extendedOptions,userOptions);};$.fn.sparkline.options.prototype.getTagSetting=function(key){var val,i,prefix=this.tagOptionsPrefix;if(prefix===false||prefix===undefined){return UNSET_OPTION;}
-if(this.tagValCache.hasOwnProperty(key)){val=this.tagValCache.key;}else{val=this.tag.getAttribute(prefix+key);if(val===undefined||val===null){val=UNSET_OPTION;}else if(val.substr(0,1)=='['){val=val.substr(1,val.length-2).split(',');for(i=val.length;i--;){val[i]=normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g,''));}}else if(val.substr(0,1)=='{'){var pairs=val.substr(1,val.length-2).split(',');val={};for(i=pairs.length;i--;){var keyval=pairs[i].split(':',2);val[keyval[0].replace(/(^\s*)|(\s*$)/g,'')]=normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g,''));}}else{val=normalizeValue(val);}
-this.tagValCache.key=val;}
-return val;};$.fn.sparkline.options.prototype.get=function(key){var tagOption=this.getTagSetting(key);if(tagOption!==UNSET_OPTION){return tagOption;}
-return this.mergedOptions[key];};$.fn.sparkline.line=function(values,options,width,height){var xvalues=[],yvalues=[],yminmax=[];for(var i=0;i<values.length;i++){var val=values[i];var isstr=typeof(values[i])=='string';var isarray=typeof(values[i])=='object'&&values[i]instanceof Array;var sp=isstr&&values[i].split(':');if(isstr&&sp.length==2){xvalues.push(Number(sp[0]));yvalues.push(Number(sp[1]));yminmax.push(Number(sp[1]));}else if(isarray){xvalues.push(val[0]);yvalues.push(val[1]);yminmax.push(val[1]);}else{xvalues.push(i);if(values[i]===null||values[i]=='null'){yvalues.push(null);}else{yvalues.push(Number(val));yminmax.push(Number(val));}}}
-if(options.get('xvalues')){xvalues=options.get('xvalues');}
-var maxy=Math.max.apply(Math,yminmax);var maxyval=maxy;var miny=Math.min.apply(Math,yminmax);var minyval=miny;var maxx=Math.max.apply(Math,xvalues);var minx=Math.min.apply(Math,xvalues);var normalRangeMin=options.get('normalRangeMin');var normalRangeMax=options.get('normalRangeMax');if(normalRangeMin!==undefined){if(normalRangeMin<miny){miny=normalRangeMin;}
-if(normalRangeMax>maxy){maxy=normalRangeMax;}}
-if(options.get('chartRangeMin')!==undefined&&(options.get('chartRangeClip')||options.get('chartRangeMin')<miny)){miny=options.get('chartRangeMin');}
-if(options.get('chartRangeMax')!==undefined&&(options.get('chartRangeClip')||options.get('chartRangeMax')>maxy)){maxy=options.get('chartRangeMax');}
-if(options.get('chartRangeMinX')!==undefined&&(options.get('chartRangeClipX')||options.get('chartRangeMinX')<minx)){minx=options.get('chartRangeMinX');}
-if(options.get('chartRangeMaxX')!==undefined&&(options.get('chartRangeClipX')||options.get('chartRangeMaxX')>maxx)){maxx=options.get('chartRangeMaxX');}
-var rangex=maxx-minx===0?1:maxx-minx;var rangey=maxy-miny===0?1:maxy-miny;var vl=yvalues.length-1;if(vl<1){this.innerHTML='';return;}
-var target=$(this).simpledraw(width,height,options.get('composite'));if(target){var canvas_width=target.pixel_width;var canvas_height=target.pixel_height;var canvas_top=0;var canvas_left=0;var spotRadius=options.get('spotRadius');if(spotRadius&&(canvas_width<(spotRadius*4)||canvas_height<(spotRadius*4))){spotRadius=0;}
-if(spotRadius){if(options.get('minSpotColor')||(options.get('spotColor')&&yvalues[vl]==miny)){canvas_height-=Math.ceil(spotRadius);}
-if(options.get('maxSpotColor')||(options.get('spotColor')&&yvalues[vl]==maxy)){canvas_height-=Math.ceil(spotRadius);canvas_top+=Math.ceil(spotRadius);}
-if(options.get('minSpotColor')||options.get('maxSpotColor')&&(yvalues[0]==miny||yvalues[0]==maxy)){canvas_left+=Math.ceil(spotRadius);canvas_width-=Math.ceil(spotRadius);}
-if(options.get('spotColor')||(options.get('minSpotColor')||options.get('maxSpotColor')&&(yvalues[vl]==miny||yvalues[vl]==maxy))){canvas_width-=Math.ceil(spotRadius);}}
-canvas_height--;var drawNormalRange=function(){if(normalRangeMin!==undefined){var ytop=canvas_top+Math.round(canvas_height-(canvas_height*((normalRangeMax-miny)/rangey)));var height=Math.round((canvas_height*(normalRangeMax-normalRangeMin))/rangey);target.drawRect(canvas_left,ytop,canvas_width,height,undefined,options.get('normalRangeColor'));}};if(!options.get('drawNormalOnTop')){drawNormalRange();}
-var path=[];var paths=[path];var x,y,vlen=yvalues.length;for(i=0;i<vlen;i++){x=xvalues[i];y=yvalues[i];if(y===null){if(i){if(yvalues[i-1]!==null){path=[];paths.push(path);}}}else{if(y<miny){y=miny;}
-if(y>maxy){y=maxy;}
-if(!path.length){path.push([canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+canvas_height]);}
-path.push([canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((y-miny)/rangey)))]);}}
-var lineshapes=[];var fillshapes=[];var plen=paths.length;for(i=0;i<plen;i++){path=paths[i];if(!path.length){continue;}
-if(options.get('fillColor')){path.push([path[path.length-1][0],canvas_top+canvas_height-1]);fillshapes.push(path.slice(0));path.pop();}
-if(path.length>2){path[0]=[path[0][0],path[1][1]];}
-lineshapes.push(path);}
-plen=fillshapes.length;for(i=0;i<plen;i++){target.drawShape(fillshapes[i],undefined,options.get('fillColor'));}
-if(options.get('drawNormalOnTop')){drawNormalRange();}
-plen=lineshapes.length;for(i=0;i<plen;i++){target.drawShape(lineshapes[i],options.get('lineColor'),undefined,options.get('lineWidth'));}
-if(spotRadius&&options.get('spotColor')){target.drawCircle(canvas_left+Math.round(xvalues[xvalues.length-1]*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((yvalues[vl]-miny)/rangey))),spotRadius,undefined,options.get('spotColor'));}
-if(maxy!=minyval){if(spotRadius&&options.get('minSpotColor')){x=xvalues[$.inArray(minyval,yvalues)];target.drawCircle(canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((minyval-miny)/rangey))),spotRadius,undefined,options.get('minSpotColor'));}
-if(spotRadius&&options.get('maxSpotColor')){x=xvalues[$.inArray(maxyval,yvalues)];target.drawCircle(canvas_left+Math.round((x-minx)*(canvas_width/rangex)),canvas_top+Math.round(canvas_height-(canvas_height*((maxyval-miny)/rangey))),spotRadius,undefined,options.get('maxSpotColor'));}}}else{this.innerHTML='';}};$.fn.sparkline.bar=function(values,options,width,height){width=(values.length*options.get('barWidth'))+((values.length-1)*options.get('barSpacing'));var num_values=[];for(var i=0,vlen=values.length;i<vlen;i++){if(values[i]=='null'||values[i]===null){values[i]=null;}else{values[i]=Number(values[i]);num_values.push(Number(values[i]));}}
-var max=Math.max.apply(Math,num_values),min=Math.min.apply(Math,num_values);if(options.get('chartRangeMin')!==undefined&&(options.get('chartRangeClip')||options.get('chartRangeMin')<min)){min=options.get('chartRangeMin');}
-if(options.get('chartRangeMax')!==undefined&&(options.get('chartRangeClip')||options.get('chartRangeMax')>max)){max=options.get('chartRangeMax');}
-var zeroAxis=options.get('zeroAxis');if(zeroAxis===undefined){zeroAxis=min<0;}
-var range=max-min===0?1:max-min;var colorMapByIndex,colorMapByValue;if($.isArray(options.get('colorMap'))){colorMapByIndex=options.get('colorMap');colorMapByValue=null;}else{colorMapByIndex=null;colorMapByValue=options.get('colorMap');}
-var target=$(this).simpledraw(width,height,options.get('composite'));if(target){var color,canvas_height=target.pixel_height,yzero=min<0&&zeroAxis?canvas_height-Math.round(canvas_height*(Math.abs(min)/range))-1:canvas_height-1;for(i=values.length;i--;){var x=i*(options.get('barWidth')+options.get('barSpacing')),y,val=values[i];if(val===null){if(options.get('nullColor')){color=options.get('nullColor');val=(zeroAxis&&min<0)?0:min;height=1;y=(zeroAxis&&min<0)?yzero:canvas_height-height;}else{continue;}}else{if(val<min){val=min;}
-if(val>max){val=max;}
-color=(val<0)?options.get('negBarColor'):options.get('barColor');if(zeroAxis&&min<0){height=Math.round(canvas_height*((Math.abs(val)/range)))+1;y=(val<0)?yzero:yzero-height;}else{height=Math.round(canvas_height*((val-min)/range))+1;y=canvas_height-height;}
-if(val===0&&options.get('zeroColor')!==undefined){color=options.get('zeroColor');}
-if(colorMapByValue&&colorMapByValue[val]){color=colorMapByValue[val];}else if(colorMapByIndex&&colorMapByIndex.length>i){color=colorMapByIndex[i];}
-if(color===null){continue;}}
-target.drawRect(x,y,options.get('barWidth')-1,height-1,color,color);}}else{this.innerHTML='';}};$.fn.sparkline.tristate=function(values,options,width,height){values=$.map(values,Number);width=(values.length*options.get('barWidth'))+((values.length-1)*options.get('barSpacing'));var colorMapByIndex,colorMapByValue;if($.isArray(options.get('colorMap'))){colorMapByIndex=options.get('colorMap');colorMapByValue=null;}else{colorMapByIndex=null;colorMapByValue=options.get('colorMap');}
-var target=$(this).simpledraw(width,height,options.get('composite'));if(target){var canvas_height=target.pixel_height,half_height=Math.round(canvas_height/2);for(var i=values.length;i--;){var x=i*(options.get('barWidth')+options.get('barSpacing')),y,color;if(values[i]<0){y=half_height;height=half_height-1;color=options.get('negBarColor');}else if(values[i]>0){y=0;height=half_height-1;color=options.get('posBarColor');}else{y=half_height-1;height=2;color=options.get('zeroBarColor');}
-if(colorMapByValue&&colorMapByValue[values[i]]){color=colorMapByValue[values[i]];}else if(colorMapByIndex&&colorMapByIndex.length>i){color=colorMapByIndex[i];}
-if(color===null){continue;}
-target.drawRect(x,y,options.get('barWidth')-1,height-1,color,color);}}else{this.innerHTML='';}};$.fn.sparkline.discrete=function(values,options,width,height){values=$.map(values,Number);width=options.get('width')=='auto'?values.length*2:width;var interval=Math.floor(width/values.length);var target=$(this).simpledraw(width,height,options.get('composite'));if(target){var canvas_height=target.pixel_height,line_height=options.get('lineHeight')=='auto'?Math.round(canvas_height*0.3):options.get('lineHeight'),pheight=canvas_height-line_height,min=Math.min.apply(Math,values),max=Math.max.apply(Math,values);if(options.get('chartRangeMin')!==undefined&&(options.get('chartRangeClip')||options.get('chartRangeMin')<min)){min=options.get('chartRangeMin');}
-if(options.get('chartRangeMax')!==undefined&&(options.get('chartRangeClip')||options.get('chartRangeMax')>max)){max=options.get('chartRangeMax');}
-var range=max-min;for(var i=values.length;i--;){var val=values[i];if(val<min){val=min;}
-if(val>max){val=max;}
-var x=(i*interval),ytop=Math.round(pheight-pheight*((val-min)/range));target.drawLine(x,ytop,x,ytop+line_height,(options.get('thresholdColor')&&val<options.get('thresholdValue'))?options.get('thresholdColor'):options.get('lineColor'));}}else{this.innerHTML='';}};$.fn.sparkline.bullet=function(values,options,width,height){values=$.map(values,Number);width=options.get('width')=='auto'?'4.0em':width;var target=$(this).simpledraw(width,height,options.get('composite'));if(target&&values.length>1){var canvas_width=target.pixel_width-Math.ceil(options.get('targetWidth')/2),canvas_height=target.pixel_height,min=Math.min.apply(Math,values),max=Math.max.apply(Math,values);if(options.get('base')===undefined){min=min<0?min:0;}else{min=options.get('base');}
-var range=max-min;for(var i=2,vlen=values.length;i<vlen;i++){var rangeval=values[i],rangewidth=Math.round(canvas_width*((rangeval-min)/range));target.drawRect(0,0,rangewidth-1,canvas_height-1,options.get('rangeColors')[i-2],options.get('rangeColors')[i-2]);}
-var perfval=values[1],perfwidth=Math.round(canvas_width*((perfval-min)/range));target.drawRect(0,Math.round(canvas_height*0.3),perfwidth-1,Math.round(canvas_height*0.4)-1,options.get('performanceColor'),options.get('performanceColor'));var targetval=values[0],x=Math.round(canvas_width*((targetval-min)/range)-(options.get('targetWidth')/2)),targettop=Math.round(canvas_height*0.10),targetheight=canvas_height-(targettop*2);target.drawRect(x,targettop,options.get('targetWidth')-1,targetheight-1,options.get('targetColor'),options.get('targetColor'));}else{this.innerHTML='';}};$.fn.sparkline.pie=function(values,options,width,height){values=$.map(values,Number);width=options.get('width')=='auto'?height:width;var target=$(this).simpledraw(width,height,options.get('composite'));if(target&&values.length>1){var canvas_width=target.pixel_width,canvas_height=target.pixel_height,radius=Math.floor(Math.min(canvas_width,canvas_height)/2),total=0,next=0,circle=2*Math.PI;for(var i=values.length;i--;){total+=values[i];}
-if(options.get('offset')){next+=(2*Math.PI)*(options.get('offset')/360);}
-var vlen=values.length;for(i=0;i<vlen;i++){var start=next;var end=next;if(total>0){end=next+(circle*(values[i]/total));}
-target.drawPieSlice(radius,radius,radius,start,end,undefined,options.get('sliceColors')[i%options.get('sliceColors').length]);next=end;}}};var quartile=function(values,q){if(q==2){var vl2=Math.floor(values.length/2);return values.length%2?values[vl2]:(values[vl2]+values[vl2+1])/2;}else{var vl4=Math.floor(values.length/4);return values.length%2?(values[vl4*q]+values[vl4*q+1])/2:values[vl4*q];}};$.fn.sparkline.box=function(values,options,width,height){values=$.map(values,Number);width=options.get('width')=='auto'?'4.0em':width;var minvalue=options.get('chartRangeMin')===undefined?Math.min.apply(Math,values):options.get('chartRangeMin'),maxvalue=options.get('chartRangeMax')===undefined?Math.max.apply(Math,values):options.get('chartRangeMax'),target=$(this).simpledraw(width,height,options.get('composite')),vlen=values.length,lwhisker,loutlier,q1,q2,q3,rwhisker,routlier;if(target&&values.length>1){var canvas_width=target.pixel_width,canvas_height=target.pixel_height;if(options.get('raw')){if(options.get('showOutliers')&&values.length>5){loutlier=values[0];lwhisker=values[1];q1=values[2];q2=values[3];q3=values[4];rwhisker=values[5];routlier=values[6];}else{lwhisker=values[0];q1=values[1];q2=values[2];q3=values[3];rwhisker=values[4];}}else{values.sort(function(a,b){return a-b;});q1=quartile(values,1);q2=quartile(values,2);q3=quartile(values,3);var iqr=q3-q1;if(options.get('showOutliers')){lwhisker=undefined;rwhisker=undefined;for(var i=0;i<vlen;i++){if(lwhisker===undefined&&values[i]>q1-(iqr*options.get('outlierIQR'))){lwhisker=values[i];}
-if(values[i]<q3+(iqr*options.get('outlierIQR'))){rwhisker=values[i];}}
-loutlier=values[0];routlier=values[vlen-1];}else{lwhisker=values[0];rwhisker=values[vlen-1];}}
-var unitsize=canvas_width/(maxvalue-minvalue+1),canvas_left=0;if(options.get('showOutliers')){canvas_left=Math.ceil(options.get('spotRadius'));canvas_width-=2*Math.ceil(options.get('spotRadius'));unitsize=canvas_width/(maxvalue-minvalue+1);if(loutlier<lwhisker){target.drawCircle((loutlier-minvalue)*unitsize+canvas_left,canvas_height/2,options.get('spotRadius'),options.get('outlierLineColor'),options.get('outlierFillColor'));}
-if(routlier>rwhisker){target.drawCircle((routlier-minvalue)*unitsize+canvas_left,canvas_height/2,options.get('spotRadius'),options.get('outlierLineColor'),options.get('outlierFillColor'));}}
-target.drawRect(Math.round((q1-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.1),Math.round((q3-q1)*unitsize),Math.round(canvas_height*0.8),options.get('boxLineColor'),options.get('boxFillColor'));target.drawLine(Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),Math.round((q1-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),options.get('lineColor'));target.drawLine(Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/4),Math.round((lwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height-canvas_height/4),options.get('whiskerColor'));target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),Math.round((q3-minvalue)*unitsize+canvas_left),Math.round(canvas_height/2),options.get('lineColor'));target.drawLine(Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height/4),Math.round((rwhisker-minvalue)*unitsize+canvas_left),Math.round(canvas_height-canvas_height/4),options.get('whiskerColor'));target.drawLine(Math.round((q2-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.1),Math.round((q2-minvalue)*unitsize+canvas_left),Math.round(canvas_height*0.9),options.get('medianColor'));if(options.get('target')){var size=Math.ceil(options.get('spotRadius'));target.drawLine(Math.round((options.get('target')-minvalue)*unitsize+canvas_left),Math.round((canvas_height/2)-size),Math.round((options.get('target')-minvalue)*unitsize+canvas_left),Math.round((canvas_height/2)+size),options.get('targetColor'));target.drawLine(Math.round((options.get('target')-minvalue)*unitsize+canvas_left-size),Math.round(canvas_height/2),Math.round((options.get('target')-minvalue)*unitsize+canvas_left+size),Math.round(canvas_height/2),options.get('targetColor'));}}else{this.innerHTML='';}};if($.browser.msie&&!document.namespaces.v){document.namespaces.add('v','urn:schemas-microsoft-com:vml','#default#VML');}
-if($.browser.hasCanvas===undefined){var t=document.createElement('canvas');$.browser.hasCanvas=t.getContext!==undefined;}
-VCanvas_base=function(width,height,target){};VCanvas_base.prototype={init:function(width,height,target){this.width=width;this.height=height;this.target=target;if(target[0]){target=target[0];}
-target.VCanvas=this;},drawShape:function(path,lineColor,fillColor,lineWidth){alert('drawShape not implemented');},drawLine:function(x1,y1,x2,y2,lineColor,lineWidth){return this.drawShape([[x1,y1],[x2,y2]],lineColor,lineWidth);},drawCircle:function(x,y,radius,lineColor,fillColor){alert('drawCircle not implemented');},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){alert('drawPieSlice not implemented');},drawRect:function(x,y,width,height,lineColor,fillColor){alert('drawRect not implemented');},getElement:function(){return this.canvas;},_insert:function(el,target){$(target).html(el);}};VCanvas_canvas=function(width,height,target){return this.init(width,height,target);};VCanvas_canvas.prototype=$.extend(new VCanvas_base(),{_super:VCanvas_base.prototype,init:function(width,height,target){this._super.init(width,height,target);this.canvas=document.createElement('canvas');if(target[0]){target=target[0];}
-target.VCanvas=this;$(this.canvas).css({display:'inline-block',width:width,height:height,verticalAlign:'top'});this._insert(this.canvas,target);this.pixel_height=$(this.canvas).height();this.pixel_width=$(this.canvas).width();this.canvas.width=this.pixel_width;this.canvas.height=this.pixel_height;$(this.canvas).css({width:this.pixel_width,height:this.pixel_height});},_getContext:function(lineColor,fillColor,lineWidth){var context=this.canvas.getContext('2d');if(lineColor!==undefined){context.strokeStyle=lineColor;}
-context.lineWidth=lineWidth===undefined?1:lineWidth;if(fillColor!==undefined){context.fillStyle=fillColor;}
-return context;},drawShape:function(path,lineColor,fillColor,lineWidth){var context=this._getContext(lineColor,fillColor,lineWidth);context.beginPath();context.moveTo(path[0][0]+0.5,path[0][1]+0.5);for(var i=1,plen=path.length;i<plen;i++){context.lineTo(path[i][0]+0.5,path[i][1]+0.5);}
-if(lineColor!==undefined){context.stroke();}
-if(fillColor!==undefined){context.fill();}},drawCircle:function(x,y,radius,lineColor,fillColor){var context=this._getContext(lineColor,fillColor);context.beginPath();context.arc(x,y,radius,0,2*Math.PI,false);if(lineColor!==undefined){context.stroke();}
-if(fillColor!==undefined){context.fill();}},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){var context=this._getContext(lineColor,fillColor);context.beginPath();context.moveTo(x,y);context.arc(x,y,radius,startAngle,endAngle,false);context.lineTo(x,y);context.closePath();if(lineColor!==undefined){context.stroke();}
-if(fillColor){context.fill();}},drawRect:function(x,y,width,height,lineColor,fillColor){return this.drawShape([[x,y],[x+width,y],[x+width,y+height],[x,y+height],[x,y]],lineColor,fillColor);}});VCanvas_vml=function(width,height,target){return this.init(width,height,target);};VCanvas_vml.prototype=$.extend(new VCanvas_base(),{_super:VCanvas_base.prototype,init:function(width,height,target){this._super.init(width,height,target);if(target[0]){target=target[0];}
-target.VCanvas=this;this.canvas=document.createElement('span');$(this.canvas).css({display:'inline-block',position:'relative',overflow:'hidden',width:width,height:height,margin:'0px',padding:'0px',verticalAlign:'top'});this._insert(this.canvas,target);this.pixel_height=$(this.canvas).height();this.pixel_width=$(this.canvas).width();this.canvas.width=this.pixel_width;this.canvas.height=this.pixel_height;var groupel='<v:group coordorigin="0 0" coordsize="'+this.pixel_width+' '+this.pixel_height+'"'+' style="position:absolute;top:0;left:0;width:'+this.pixel_width+'px;height='+this.pixel_height+'px;"></v:group>';this.canvas.insertAdjacentHTML('beforeEnd',groupel);this.group=$(this.canvas).children()[0];},drawShape:function(path,lineColor,fillColor,lineWidth){var vpath=[];for(var i=0,plen=path.length;i<plen;i++){vpath[i]=''+(path[i][0])+','+(path[i][1]);}
-var initial=vpath.splice(0,1);lineWidth=lineWidth===undefined?1:lineWidth;var stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="'+lineWidth+'" strokeColor="'+lineColor+'" ';var fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';var closed=vpath[0]==vpath[vpath.length-1]?'x ':'';var vel='<v:shape coordorigin="0 0" coordsize="'+this.pixel_width+' '+this.pixel_height+'" '+
-stroke+
-fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixel_height+'px;width:'+this.pixel_width+'px;padding:0px;margin:0px;" '+' path="m '+initial+' l '+vpath.join(', ')+' '+closed+'e">'+' </v:shape>';this.group.insertAdjacentHTML('beforeEnd',vel);},drawCircle:function(x,y,radius,lineColor,fillColor){x-=radius+1;y-=radius+1;var stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="1" strokeColor="'+lineColor+'" ';var fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';var vel='<v:oval '+
-stroke+
-fill+' style="position:absolute;top:'+y+'px; left:'+x+'px; width:'+(radius*2)+'px; height:'+(radius*2)+'px"></v:oval>';this.group.insertAdjacentHTML('beforeEnd',vel);},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){if(startAngle==endAngle){return;}
-if((endAngle-startAngle)==(2*Math.PI)){startAngle=0.0;endAngle=(2*Math.PI);}
-var startx=x+Math.round(Math.cos(startAngle)*radius);var starty=y+Math.round(Math.sin(startAngle)*radius);var endx=x+Math.round(Math.cos(endAngle)*radius);var endy=y+Math.round(Math.sin(endAngle)*radius);if(startx==endx&&starty==endy&&(endAngle-startAngle)<Math.PI){return;}
-var vpath=[x-radius,y-radius,x+radius,y+radius,startx,starty,endx,endy];var stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="1" strokeColor="'+lineColor+'" ';var fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';var vel='<v:shape coordorigin="0 0" coordsize="'+this.pixel_width+' '+this.pixel_height+'" '+
-stroke+
-fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixel_height+'px;width:'+this.pixel_width+'px;padding:0px;margin:0px;" '+' path="m '+x+','+y+' wa '+vpath.join(', ')+' x e">'+' </v:shape>';this.group.insertAdjacentHTML('beforeEnd',vel);},drawRect:function(x,y,width,height,lineColor,fillColor){return this.drawShape([[x,y],[x,y+height],[x+width,y+height],[x+width,y],[x,y]],lineColor,fillColor);}});})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.text-overflow.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.text-overflow.js
deleted file mode 100644
index 89da61e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.text-overflow.js
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * MIT LICENSE
- * Copyright (c) 2009-2011 Devon Govett.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated 
- * documentation files (the "Software"), to deal in the Software without restriction, including without limitation 
- * the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 
- * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or substantial portions 
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 
- * THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 
- * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-(function($) {
-	$.fn.ellipsis = function(enableUpdating){
-		var s = document.documentElement.style;
-		if (!('textOverflow' in s || 'OTextOverflow' in s)) {
-			return this.each(function(){
-				var el = $(this);
-				if(el.css("overflow") == "hidden"){
-					var originalText = el.html();
-					var w = el.width();
-					
-					var t = $(this.cloneNode(true)).hide().css({
-                        'position': 'absolute',
-                        'width': 'auto',
-                        'overflow': 'visible',
-                        'max-width': 'inherit'
-                    });
-					el.after(t);
-					
-					var text = originalText;
-					while(text.length > 0 && t.width() > el.width()){
-						text = text.substr(0, text.length - 1);
-						t.html(text + "...");
-					}
-					el.html(t.html());
-					
-					t.remove();
-					
-					if(enableUpdating == true){
-						var oldW = el.width();
-						setInterval(function(){
-							if(el.width() != oldW){
-								oldW = el.width();
-								el.html(originalText);
-								el.ellipsis();
-							}
-						}, 200);
-					}
-				}
-			});
-		} else return this;
-	};
-})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timepickr.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timepickr.js
deleted file mode 100644
index d18589d..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timepickr.js
+++ /dev/null
@@ -1,214 +0,0 @@
-/*
-  jQuery Ui timepickr
-  (c) Maxime Haineault <haineault@gmail.com>
-  http://haineault.com
-
-  MIT License (http://www.opensource.org/licenses/mit-license.php
-  Modified under license by Daniel Wachsstock & Haso Keric
-
-	Updated 10/25/2010 for jQuery UI 1.8.5
-*/
-
-(function($) {
-	var menuTemplate = '<div class="ui-helper-reset ui-timepickr ui-widget" />';
-	var rowTemplate = '<ol />';
-	var buttonTemplate = '<li class="{className}">{label}</li>';
-	function format(s, o){ // simple parameterizing strings
-		for (key in o) s = s.replace('{'+key+'}', o[key]);
-		return s;
-	}
-
-$.widget('ui.timepickr', {
-	_init: function() {
-		var ui = this, element = this.element;
-		element.data('timepickr.initialValue', element.val());
-		var menu = this.menu = ui._buildMenu().insertAfter(element);
-		menu.children().hide();
-
-		element.bind(this.options.trigger + '.timepickr', function(){
-			ui.show();
-		});
-
-		var hover = this.options.hoverIntent && $.fn.hoverIntent ? 'hoverIntent' : 'hover';
-		menu
-			.data('timepickr', this)
-			.css({width:this.options.width})
-			.find('li')
-				.addClass('ui-state-default ui-corner-all')
-				[hover](function(){
-					ui.inside = true;
-					$(this).siblings().removeClass('ui-state-hover');
-					$(this).addClass('ui-state-hover');
-					ui._redraw();
-					ui.showNextLevel(this);
-					ui.update();
-				}, function(){
-					ui.inside = false;
-				}).end()
-			.find('ol')
-				.addClass('ui-widget ui-helper-clearfix ui-helper-reset')
-				.hide();
-
-		this._redraw();
-
-		element.blur(function(e) {
-			ui.hide();
-			if (ui.inside){
-				// clicking outside the element blurs it before the click on the new element in called
-				ui._trigger ('select', [e, ui]);
-			}
-			if (ui.options.resetOnBlur) {
-				element.val(element.data('timepickr.initialValue'));
-			}
-		});
-
-		if (this.options.val) {
-			element.val(this.options.val);
-		}
-
-		if (this.options.handle) {
-			$(this.options.handle).click(function() {
-				ui.show();
-				ui.element.focus();
-			});
-		}
-
-		if (this.options.resetOnBlur) {
-			menu.find('li').bind('mousedown.timepickr', function(){
-				element.data('timepickr.initialValue', element.val());
-			});
-		}
-
-		this._redraw();
-	},
-
-	update: function() {
-		var val = {
-			h: this.getValue('hour'),
-			m: this.getValue('minute'),
-			prefix: this.getValue('prefix'),
-			suffix: this.getValue('suffix')
-		};
-		$(this.element).val(format(this.options.format, val));
-	},
-
-	getValue: function(type) {
-		// get the highlighted element; if none is highlighted, get the first one
-		var elem = $('.'+ type +'.ui-state-hover', this.menu)[0] || $('.'+type+':first', this.menu)[0];
-		return $(elem).text();
-	},
-
-	destroy: function() {
-		this.menu.remove();
-		$.Widget.prototype.destroy.apply(this);
-	},
-
-	show: function() {
-		this.menu.css({
-			top: this.element.position().top + this.element.height() + this.options.top,
-			zIndex: 1000
-		});
-		this.menu.find('ol:eq(0)').css('left', this.element.position().left).show();
-	},
-
-	showNextLevel: function(el) {
-		$(el).closest('ol').next().show(this.options.animSpeed);
-	},
-
-	// essentially reposition each ol
-	_redraw: function() {
-		this.menu.css({
-			top: this.element.position().top + this.element.height() + this.options.top,
-			left: this.element.position().left + this.options.left
-		});
-
-		if (this.options.convention === 24) {
-			var hrs        = this.menu.find('ol:eq(1)');
-			var dayHours   = hrs.find('li').slice(0, 12);
-			var nightHours = hrs.find('li').slice(12, 24);
-			if (this.menu.find('ol:eq(0) li:eq(0)').hasClass('ui-state-hover')){
-				// daytime
-				nightHours.hide();
-				dayHours.show();
-			}else{
-				//nighttime
-				dayHours.hide();
-				nightHours.show();
-			}
-		}
-
-		// reposition each ol
-		var ols = this.menu.find('ol');
-		ols.each(function(i) {
-			var prevOL = $(this).prev('ol');
-			// find the span that's being hovered; if nothing, use the first one
-			var pos = prevOL.find('.ui-state-hover:visible').position() || prevOL.find('li:visible:first').position();
-			if (pos) $(this).css('margin-left', pos.left);
-		});
-	},
-
-	// hide all levels
-	hide: function() {
-		this.menu.find('ol').hide();
-	},
-
-	activate: function(e) {
-		this.element.focus();
-		this.show(this.options.animSpeed);
-	},
-
-	_createRow: function(range, className) {
-		var row = $(rowTemplate);
-		$.each(range, function(){
-			row.append($(format(buttonTemplate, {className: className, label: this.toString()})));
-		});
-		return row;
-	},
-
-	_getRanges12: function() {
-		var o = [];
-		o.push(this._createRow(['01','02','03','04','05','06','07','08','09','10','11','12'], 'hour'));
-		o.push(this._createRow(this.options.rangeMin, 'minute'));
-		o.push(this._createRow(this.options.suffix, 'suffix'));
-		return o;
-	},
-
-	_getRanges24: function() {
-		var o = [], opt = this.options;
-		o.push(this._createRow(this.options.prefix, false, 'prefix')); // prefix is required in 24h mode
-		o.push(this._createRow(
-			['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23'],
-			'hour'
-		));
-		o.push(this._createRow(this.options.rangeMin, 'minute'));
-		return o;
-	},
-
-	_buildMenu: function() {
-		var menu   = $(menuTemplate);
-		var ranges = this.options.convention === 24
-								 && this._getRanges24() || this._getRanges12();
-		$.each(ranges, function(i, val){
-				menu.append(val);
-		});
-		return menu;
-	}
-});
-
-$.ui.timepickr.prototype.options = {
-	top:       6,
-	left:      0,
-	animSpeed: 0,
-	trigger:   'click',
-	convention:  12, // 24, 12
-	format:    '{h}:{m} {suffix}',
-	handle:      false,
-	prefix:      ['00-11', '12-23'],
-	suffix:      ['am', 'pm'],
-	rangeMin:    ['00', '15', '30', '45'],
-	resetOnBlur: true,
-	val:         false,
-	hoverIntent: false
-};
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timers.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timers.js
deleted file mode 100644
index 406de7e..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.timers.js
+++ /dev/null
@@ -1,142 +0,0 @@
-jQuery.fn.extend({
-	everyTime: function(interval, label, fn, times, belay) {
-		return this.each(function() {
-			jQuery.timer.add(this, interval, label, fn, times, belay);
-		});
-	},
-	oneTime: function(interval, label, fn) {
-		return this.each(function() {
-			jQuery.timer.add(this, interval, label, fn, 1);
-		});
-	},
-	stopTime: function(label, fn) {
-		return this.each(function() {
-			jQuery.timer.remove(this, label, fn);
-		});
-	}
-});
-
-jQuery.extend({
-	timer: {
-		guid: 1,
-		global: {},
-		regex: /^([0-9]+)\s*(.*s)?$/,
-		powers: {
-			// Yeah this is major overkill...
-			'ms': 1,
-			'cs': 10,
-			'ds': 100,
-			's': 1000,
-			'das': 10000,
-			'hs': 100000,
-			'ks': 1000000
-		},
-		timeParse: function(value) {
-			if (value == undefined || value == null)
-				return null;
-			var result = this.regex.exec(jQuery.trim(value.toString()));
-			if (result[2]) {
-				var num = parseInt(result[1], 10);
-				var mult = this.powers[result[2]] || 1;
-				return num * mult;
-			} else {
-				return value;
-			}
-		},
-		add: function(element, interval, label, fn, times, belay) {
-			var counter = 0;
-			
-			if (jQuery.isFunction(label)) {
-				if (!times) 
-					times = fn;
-				fn = label;
-				label = interval;
-			}
-			
-			interval = jQuery.timer.timeParse(interval);
-
-			if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
-				return;
-
-			if (times && times.constructor != Number) {
-				belay = !!times;
-				times = 0;
-			}
-			
-			times = times || 0;
-			belay = belay || false;
-			
-			if (!element.$timers) 
-				element.$timers = {};
-			
-			if (!element.$timers[label])
-				element.$timers[label] = {};
-			
-			fn.$timerID = fn.$timerID || this.guid++;
-			
-			var handler = function() {
-				if (belay && this.inProgress) 
-					return;
-				this.inProgress = true;
-				if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
-					jQuery.timer.remove(element, label, fn);
-				this.inProgress = false;
-			};
-			
-			handler.$timerID = fn.$timerID;
-			
-			if (!element.$timers[label][fn.$timerID]) 
-				element.$timers[label][fn.$timerID] = window.setInterval(handler,interval);
-			
-			if ( !this.global[label] )
-				this.global[label] = [];
-			this.global[label].push( element );
-			
-		},
-		remove: function(element, label, fn) {
-			var timers = element.$timers, ret;
-			
-			if ( timers ) {
-				
-				if (!label) {
-					for ( label in timers )
-						this.remove(element, label, fn);
-				} else if ( timers[label] ) {
-					if ( fn ) {
-						if ( fn.$timerID ) {
-							window.clearInterval(timers[label][fn.$timerID]);
-							delete timers[label][fn.$timerID];
-						}
-					} else {
-						for ( var fn in timers[label] ) {
-							window.clearInterval(timers[label][fn]);
-							delete timers[label][fn];
-						}
-					}
-					
-					for ( ret in timers[label] ) break;
-					if ( !ret ) {
-						ret = null;
-						delete timers[label];
-					}
-				}
-				
-				for ( ret in timers ) break;
-				if ( !ret ) 
-					element.$timers = null;
-			}
-		}
-	}
-});
-
-if (jQuery.browser.msie)
-	jQuery(window).one("unload", function() {
-		var global = jQuery.timer.global;
-		for ( var label in global ) {
-			var els = global[label], i = els.length;
-			while ( --i )
-				jQuery.timer.remove(els[i], label);
-		}
-	});
-
-
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.tipsy.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.tipsy.js
deleted file mode 100644
index 6e97efa..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.tipsy.js
+++ /dev/null
@@ -1,331 +0,0 @@
-// tipsy, facebook style tooltips for jquery
-// version 1.0.0a
-// (c) 2008-2010 jason frame [jason@onehackoranother.com]
-// released under the MIT license
-
-(function($) {
-    
-    function maybeCall(thing, ctx) {
-        return (typeof thing == 'function') ? (thing.call(ctx)) : thing;
-    };
-    
-    function Tipsy(element, options) {
-        this.$element = $(element);
-        this.options = options;
-        this.enabled = true;
-        this.fixTitle();
-    };
-    
-    Tipsy.prototype = {
-        show: function() {
-            var title = this.getTitle();
-            if (title && this.enabled) {
-                var $tip = this.tip();
-                
-                $tip.find('.tipsy-inner')[this.options.html ? 'html' : 'text'](title);
-                $tip[0].className = 'tipsy'; // reset classname in case of dynamic gravity
-                $tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).prependTo(document.body);
-
-                if (this.options.className) {
-                    $tip.addClass(maybeCall(this.options.className, this.$element[0]));
-                }
-
-                var that = this;
-                function tipOver() {
-                    that.hoverTooltip = true;
-                }
-                function tipOut() {
-                    if (that.hoverState == 'in') return;  // If field is still focused.
-                    that.hoverTooltip = false;
-                    if (that.options.trigger != 'manual') {
-                        var eventOut = that.options.trigger == 'hover' ? 'mouseleave.tipsy' : 'blur.tipsy';
-                        that.$element.trigger(eventOut);
-                    }
-                }
-
-                if (this.options.hoverable) {
-                    $tip.hover(tipOver, tipOut);
-                }
-                
-                var pos = $.extend({}, this.$element.offset(), {
-                    width: this.$element[0].offsetWidth,
-                    height: this.$element[0].offsetHeight
-                });
-                
-                var actualWidth = $tip[0].offsetWidth,
-                    actualHeight = $tip[0].offsetHeight,
-                    gravity = maybeCall(this.options.gravity, this.$element[0]);
-                
-                var tp;
-                switch (gravity.charAt(0)) {
-                    case 'n':
-                        tp = {top: pos.top + pos.height + this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
-                        break;
-                    case 's':
-                        tp = {top: pos.top - actualHeight - this.options.offset, left: pos.left + pos.width / 2 - actualWidth / 2};
-                        break;
-                    case 'e':
-                        tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth - this.options.offset};
-                        break;
-                    case 'w':
-                        tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width + this.options.offset};
-                        break;
-                }
-                
-                if (gravity.length == 2) {
-                    if (gravity.charAt(1) == 'w') {
-                        tp.left = pos.left + pos.width / 2 - 15;
-                    } else {
-                        tp.left = pos.left + pos.width / 2 - actualWidth + 15;
-                    }
-                }
-                
-                $tip.css(tp).addClass('tipsy-' + gravity);
-                $tip.find('.tipsy-arrow')[0].className = 'tipsy-arrow tipsy-arrow-' + gravity.charAt(0);
-                
-                if (this.options.fade) {
-                    $tip.stop().css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: this.options.opacity});
-                } else {
-                    $tip.css({visibility: 'visible', opacity: this.options.opacity});
-                }
-                // if there's a callback, run it
-                if( $.isFunction(this.options.afterShow) ) this.options.afterShow.apply(self);
-            }
-        },
-        
-        hide: function() {
-            if (this.options.fade) {
-                this.tip().stop().fadeOut(function() { $(this).remove(); });
-            } else {
-                this.tip().remove();
-            }
-        },
-        
-        fixTitle: function() {
-            var $e = this.$element;
-            if ($e.attr('title') || typeof($e.attr('original-title')) != 'string') {
-                $e.attr('original-title', $e.attr('title') || '').removeAttr('title');
-            }
-        },
-        
-        getTitle: function() {
-            var title, $e = this.$element, o = this.options;
-            this.fixTitle();
-            var title, o = this.options;
-            if (typeof o.title == 'string') {
-                title = $e.attr(o.title == 'title' ? 'original-title' : o.title);
-            } else if (typeof o.title == 'function') {
-                title = o.title.call($e[0]);
-            }
-            title = ('' + title).replace(/(^\s*|\s*$)/, "");
-            return title || o.fallback;
-        },
-        
-        tip: function() {
-            if (!this.$tip) {
-                this.$tip = $('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>');
-            }
-            return this.$tip;
-        },
-        
-        validate: function() {
-            if (!this.$element[0].parentNode) {
-                this.hide();
-                this.$element = null;
-                this.options = null;
-            }
-        },
-        
-        enable: function() { this.enabled = true; },
-        disable: function() { this.enabled = false; },
-        toggleEnabled: function() { this.enabled = !this.enabled; }
-    };
-    
-    $.fn.tipsy = function(options) {
-        
-        if (options === true) {
-            return this.data('tipsy');
-        } else if (typeof options == 'string') {
-            var tipsy = this.data('tipsy');
-            if (tipsy) tipsy[options]();
-            return this;
-        }
-        
-        options = $.extend({}, $.fn.tipsy.defaults, options);
-        if (options.hoverable) {
-            options.delayOut = options.delayOut || 200;
-        }
-        
-        function get(ele) {
-            var tipsy = $.data(ele, 'tipsy');
-            if (!tipsy) {
-                tipsy = new Tipsy(ele, $.fn.tipsy.elementOptions(ele, options));
-                $.data(ele, 'tipsy', tipsy);
-            }
-            return tipsy;
-        }
-        
-        function enter() {
-            var tipsy = get(this);
-            if( options.activeTip === undefined ){
-                tipsy.hoverState = 'in';
-                if (options.delayIn == 0) {
-                    tipsy.show();
-                } else {
-                    tipsy.fixTitle();
-                    setTimeout(function() { if (tipsy.hoverState == 'in') tipsy.show(); }, options.delayIn);
-                }
-            }
-        };
-        
-        function leave() {
-            var tipsy = get(this);
-            if( tipsy.clickState !== 'on' ){
-                tipsy.hoverState = 'out';
-                if (options.delayOut == 0) {
-                    tipsy.hide();
-                } else {
-                    setTimeout(function() { if (tipsy.hoverState == 'out' && !tipsy.hoverTooltip) tipsy.hide(); }, options.delayOut);
-                }
-            }
-        };
-        
-        function sticky() {
-            var tipsy = get(this),
-                activeTip,
-                show = (tipsy.clickState === 'on') ? false : true;
-            
-            handleClose();
-
-            if( show ){
-                tipsy.show();
-                tipsy.clickState = 'on';
-                options.activeTip = this;
-                $(this).addClass('tipsy-sticky-click');
-                options.stickyClick(this, tipsy.clickState);
-            }
-        }
-
-        function handleScroll(event) {
-            var target = $(event.target);
-
-            if( !(target.parents().hasClass('tipsy-inner')) ){
-                if( options.activeTip ){
-                    options.activeTip.clickState = 'off';
-                    options.stickyClick(options.activeTip, 'off');
-                    get(options.activeTip).hide();
-                    options.activeTip = undefined;
-                }
-            }
-        }
-
-        function closeAll(){
-            var elements = $('.tipsy');
-
-            elements.remove();
-        }
-
-        function handleClose(){
-            var elements = $('.tipsy-sticky-click'),
-                i, length, tipsy, node;
-
-            for(i=0, length = elements.length; i < length; i += 1){
-                node = elements[i];
-                $(node).removeClass('tipsy-sticky-click');
-                tipsy = get(node);
-                tipsy.clickState = 'off';
-                tipsy.hide();
-                options.stickyClick(node, tipsy.clickState);
-            }
-            options.activeTip = undefined;
-        }
-
-        if (!options.live) this.each(function() { get(this); });
-        
-        if (options.trigger != 'manual') {
-            var binder   = options.live ? 'live' : 'bind',
-                eventIn  = options.trigger == 'hover' ? 'mouseenter.tipsy' : 'focus.tipsy',
-                eventOut = options.trigger == 'hover' ? 'mouseleave.tipsy' : 'blur.tipsy';
-            this[binder](eventIn, enter)[binder](eventOut, leave);
-        }
-        
-        if (options.stickyClick) {
-            this['live']('click', sticky);
-            $(document).bind('scroll', handleScroll);
-            $(document).bind('close.tipsy', handleClose);
-        }
-
-        $(document).bind('close.tipsy', function(){
-            closeAll();  
-        });
-
-        return this;
-        
-    };
-    
-    $.fn.tipsy.defaults = {
-        className: null,
-        delayIn: 0,
-        delayOut: 0,
-        fade: false,
-        fallback: '',
-        gravity: 'n',
-        html: false,
-        live: false,
-        hoverable: false,
-        stickyClick: false,
-        offset: 0,
-        opacity: 0.8,
-        title: 'title',
-        trigger: 'hover',
-        afterShow: null //call back after the tip is shown
-    };
-    
-    // Overwrite this method to provide options on a per-element basis.
-    // For example, you could store the gravity in a 'tipsy-gravity' attribute:
-    // return $.extend({}, options, {gravity: $(ele).attr('tipsy-gravity') || 'n' });
-    // (remember - do not modify 'options' in place!)
-    $.fn.tipsy.elementOptions = function(ele, options) {
-        return $.metadata ? $.extend({}, options, $(ele).metadata()) : options;
-    };
-    
-    $.fn.tipsy.autoNS = function() {
-        return $(this).offset().top > ($(document).scrollTop() + $(window).height() / 2) ? 's' : 'n';
-    };
-    
-    $.fn.tipsy.autoWE = function() {
-        return $(this).offset().left > ($(document).scrollLeft() + $(window).width() / 2) ? 'e' : 'w';
-    };
-    
-    /**
-     * yields a closure of the supplied parameters, producing a function that takes
-     * no arguments and is suitable for use as an autogravity function like so:
-     *
-     * @param margin (int) - distance from the viewable region edge that an
-     *        element should be before setting its tooltip's gravity to be away
-     *        from that edge.
-     * @param prefer (string, e.g. 'n', 'sw', 'w') - the direction to prefer
-     *        if there are no viewable region edges effecting the tooltip's
-     *        gravity. It will try to vary from this minimally, for example,
-     *        if 'sw' is preferred and an element is near the right viewable 
-     *        region edge, but not the top edge, it will set the gravity for
-     *        that element's tooltip to be 'se', preserving the southern
-     *        component.
-     */
-     $.fn.tipsy.autoBounds = function(margin, prefer) {
-		return function() {
-			var dir = {ns: prefer[0], ew: (prefer.length > 1 ? prefer[1] : false)},
-			    boundTop = $(document).scrollTop() + margin,
-			    boundLeft = $(document).scrollLeft() + margin,
-			    $this = $(this);
-
-			if ($this.offset().top < boundTop) dir.ns = 'n';
-			if ($this.offset().left < boundLeft) dir.ew = 'w';
-			if ($(window).width() + $(document).scrollLeft() - $this.offset().left < margin) dir.ew = 'e';
-			if ($(window).height() + $(document).scrollTop() - $this.offset().top < margin) dir.ns = 's';
-
-			return dir.ns + (dir.ew ? dir.ew : '');
-		}
-	};
-    
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.treeTable.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.treeTable.js
deleted file mode 100644
index 2731b24..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.treeTable.js
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * jQuery treeTable Plugin unreleased
- * http://ludo.cubicphuse.nl/jquery-plugins/treeTable/doc/
- *
- * Copyright 2011, Ludo van den Boom
- * Dual licensed under the MIT or GPL Version 2 licenses.
- */
-(function($) {
-  // Helps to make options available to all functions
-  // TODO: This gives problems when there are both expandable and non-expandable
-  // trees on a page. The options shouldn't be global to all these instances!
-  var options;
-  var defaultPaddingLeft;
-
-  $.fn.treeTable = function(opts) {
-    options = $.extend({}, $.fn.treeTable.defaults, opts);
-
-    return this.each(function() {
-      $(this).addClass("treeTable").find("tbody tr").each(function() {
-        // Initialize root nodes only if possible
-        if(!options.expandable || $(this)[0].className.search(options.childPrefix) == -1) {
-          // To optimize performance of indentation, I retrieve the padding-left
-          // value of the first root node. This way I only have to call +css+
-          // once.
-          if (isNaN(defaultPaddingLeft)) {
-            defaultPaddingLeft = parseInt($($(this).children("td")[options.treeColumn]).css('padding-left'), 10);
-          }
-
-          initialize($(this));
-        } else if(options.initialState == "collapsed") {
-          this.style.display = "none"; // Performance! $(this).hide() is slow...
-        }
-      });
-    });
-  };
-
-  $.fn.treeTable.defaults = {
-    childPrefix: "child-of-",
-    clickableNodeNames: false,
-    expandable: true,
-    indent: 19,
-    initialState: "collapsed",
-    onNodeShow: null,
-    treeColumn: 0
-  };
-
-  // Recursively hide all node's children in a tree
-  $.fn.collapse = function() {
-    $(this).addClass("collapsed");
-
-    childrenOf($(this)).each(function() {
-      if(!$(this).hasClass("collapsed")) {
-        $(this).collapse();
-      }
-
-      this.style.display = "none"; // Performance! $(this).hide() is slow...
-    });
-
-    return this;
-  };
-
-  // Recursively show all node's children in a tree
-  $.fn.expand = function() {
-    $(this).removeClass("collapsed").addClass("expanded");
-
-    childrenOf($(this)).each(function() {
-      initialize($(this));
-
-      if($(this).is(".expanded.parent")) {
-        $(this).expand();
-      }
-
-      // this.style.display = "table-row"; // Unfortunately this is not possible with IE :-(
-      $(this).show();
-
-      if($.isFunction(options.onNodeShow)) {
-        options.onNodeShow.call();
-      }
-    });
-
-    return this;
-  };
-
-  // Reveal a node by expanding all ancestors
-  $.fn.reveal = function() {
-    $(ancestorsOf($(this)).reverse()).each(function() {
-      initialize($(this));
-      $(this).expand().show();
-    });
-
-    return this;
-  };
-
-  // Add an entire branch to +destination+
-  $.fn.appendBranchTo = function(destination) {
-    var node = $(this);
-    var parent = parentOf(node);
-
-    var ancestorNames = $.map(ancestorsOf($(destination)), function(a) { return a.id; });
-
-    // Conditions:
-    // 1: +node+ should not be inserted in a location in a branch if this would
-    //    result in +node+ being an ancestor of itself.
-    // 2: +node+ should not have a parent OR the destination should not be the
-    //    same as +node+'s current parent (this last condition prevents +node+
-    //    from being moved to the same location where it already is).
-    // 3: +node+ should not be inserted as a child of +node+ itself.
-    if($.inArray(node[0].id, ancestorNames) == -1 && (!parent || (destination.id != parent[0].id)) && destination.id != node[0].id) {
-      indent(node, ancestorsOf(node).length * options.indent * -1); // Remove indentation
-
-      if(parent) { node.removeClass(options.childPrefix + parent[0].id); }
-
-      node.addClass(options.childPrefix + destination.id);
-      move(node, destination); // Recursively move nodes to new location
-      indent(node, ancestorsOf(node).length * options.indent);
-    }
-
-    return this;
-  };
-
-  // Add reverse() function from JS Arrays
-  $.fn.reverse = function() {
-    return this.pushStack(this.get().reverse(), arguments);
-  };
-
-  // Toggle an entire branch
-  $.fn.toggleBranch = function() {
-    if($(this).hasClass("collapsed")) {
-      $(this).expand();
-    } else {
-      $(this).removeClass("expanded").collapse();
-    }
-
-    return this;
-  };
-
-  // === Private functions
-
-  function ancestorsOf(node) {
-    var ancestors = [];
-    while(node = parentOf(node)) {
-      ancestors[ancestors.length] = node[0];
-    }
-    return ancestors;
-  };
-
-  function childrenOf(node) {
-    return $("table.treeTable tbody tr." + options.childPrefix + node[0].id);
-  };
-
-  function getPaddingLeft(node) {
-    var paddingLeft = parseInt(node[0].style.paddingLeft, 10);
-    return (isNaN(paddingLeft)) ? defaultPaddingLeft : paddingLeft;
-  }
-
-  function indent(node, value) {
-    var cell = $(node.children("td")[options.treeColumn]);
-    cell[0].style.paddingLeft = getPaddingLeft(cell) + value + "px";
-
-    childrenOf(node).each(function() {
-      indent($(this), value);
-    });
-  };
-
-  function initialize(node) {
-    if(!node.hasClass("initialized")) {
-      node.addClass("initialized");
-
-      var childNodes = childrenOf(node);
-
-      if(!node.hasClass("parent") && childNodes.length > 0) {
-        node.addClass("parent");
-      }
-
-      if(node.hasClass("parent")) {
-        var cell = $(node.children("td")[options.treeColumn]);
-        var padding = getPaddingLeft(cell) + options.indent;
-
-        childNodes.each(function() {
-          $(this).children("td")[options.treeColumn].style.paddingLeft = padding + "px";
-        });
-
-        if(options.expandable) {
-          cell.prepend('<span style="margin-left: -' + options.indent + 'px; padding-left: ' + options.indent + 'px" class="expander"></span>');
-          $(cell[0].firstChild).click(function() { node.toggleBranch(); });
-
-          if(options.clickableNodeNames) {
-            cell[0].style.cursor = "pointer";
-            $(cell).click(function(e) {
-              // Don't double-toggle if the click is on the existing expander icon
-              if (e.target.className != 'expander') {
-                node.toggleBranch();
-              }
-            });
-          }
-
-          // Check for a class set explicitly by the user, otherwise set the default class
-          if(!(node.hasClass("expanded") || node.hasClass("collapsed"))) {
-            node.addClass(options.initialState);
-          }
-
-          if(node.hasClass("expanded")) {
-            node.expand();
-          }
-        }
-      }
-    }
-  };
-
-  function move(node, destination) {
-    node.insertAfter(destination);
-    childrenOf(node).reverse().each(function() { move($(this), node[0]); });
-  };
-
-  function parentOf(node) {
-    var classNames = node[0].className.split(' ');
-
-    for(var key=0; key<classNames.length; key++) {
-      if(classNames[key].match(options.childPrefix)) {
-        return $("#" + classNames[key].substring(9));
-      }
-    }
-
-    return null;
-  };
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.multiselect.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.multiselect.js
deleted file mode 100644
index 4b54e67..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.multiselect.js
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * jQuery UI Multiselect
- *
- * Authors:
- *  Michael Aufreiter (quasipartikel.at)
- *  Yanick Rochon (yanick.rochon[at]gmail[dot]com)
- *
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://www.quasipartikel.at/multiselect/
- *
- *
- * Depends:
- *	ui.core.js
- *	ui.sortable.js
- *
- * Optional:
- * localization (http://plugins.jquery.com/project/localisation)
- * scrollTo (http://plugins.jquery.com/project/ScrollTo)
- *
- * Todo:
- *  Make batch actions faster
- *  Implement dynamic insertion through remote calls
- */
-
-
-(function($) {
-
-$.widget("ui.multiselect", {
-  options: {
-		sortable: true,
-		searchable: true,
-		doubleClickable: true,
-		animated: 'fast',
-		show: 'slideDown',
-		hide: 'slideUp',
-		dividerLocation: 0.6,
-		nodeComparator: function(node1,node2) {
-			var text1 = node1.text(),
-			    text2 = node2.text();
-			return text1 == text2 ? 0 : (text1 < text2 ? -1 : 1);
-		}
-	},
-	_create: function() {
-                this.id = this.element.attr("id");
-//                alert("select[id=" + this.id + "]" + "," + $("select[id=" + this.id + "]").id);
-		this.element.hide();
-		this.container = $('<div class="ui-multiselect ui-helper-clearfix ui-widget"></div>').insertAfter(this.element);
-		this.count = 0; // number of currently selected options
-		this.availableContainer = $('<div class="available"></div>').appendTo(this.container);
-		this.selectedContainer = $('<div class="selected"></div>').appendTo(this.container);
-		this.selectedActions = $('<div class="multi-actions ui-widget-header ui-helper-clearfix"><span class="count">0 '+$.ui.multiselect.locale.itemsCount+'</span><a href="#" class="remove-all">'+$.ui.multiselect.locale.removeAll+'</a></div>').appendTo(this.selectedContainer);
-		this.availableActions = $('<div class="multi-actions ui-widget-header ui-helper-clearfix"><input type="text" class="search empty ui-widget-content ui-corner-all"/><a href="#" class="add-all">'+$.ui.multiselect.locale.addAll+'</a></div>').appendTo(this.availableContainer);
-		this.selectedList = $('<ul class="selected connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.selectedContainer);
-		this.availableList = $('<ul class="available connected-list"><li class="ui-helper-hidden-accessible"></li></ul>').bind('selectstart', function(){return false;}).appendTo(this.availableContainer);
-
-		var that = this;
-
-
-		// set dimensions
-		this.container.width(this.element.width()+1);
-		this.selectedContainer.width(Math.floor(this.element.width()*this.options.dividerLocation));
-		this.availableContainer.width(Math.floor(this.element.width()*(1-this.options.dividerLocation)));
-
-		// fix list height to match <option> depending on their individual header's heights
-		this.selectedList.height(Math.max(this.element.height()-this.selectedActions.height(),1));
-		this.availableList.height(Math.max(this.element.height()-this.availableActions.height(),1));
-
-		if ( !this.options.animated ) {
-			this.options.show = 'show';
-			this.options.hide = 'hide';
-		}
-
-		// init lists
-		this._populateLists(this.element.find('option'));
-
-		// make selection sortable
-		if (this.options.sortable) {
-			this.selectedList.sortable({
-				placeholder: 'ui-state-highlight',
-				axis: 'y',
-				update: function(event, ui) {
-					// apply the new sort order to the original selectbox
-					that.selectedList.find('li').each(function() {
-						if ($(this).data('optionLink'))
-							$(this).data('optionLink').remove().appendTo(that.element);
-					});
-				},
-				receive: function(event, ui) {
-					ui.item.data('optionLink').attr('selected', true);
-					// increment count
-					that.count += 1;
-					that._updateCount();
-					// workaround, because there's no way to reference
-					// the new element, see http://dev.jqueryui.com/ticket/4303
-					that.selectedList.children('.ui-draggable').each(function() {
-						$(this).removeClass('ui-draggable');
-						$(this).data('optionLink', ui.item.data('optionLink'));
-						$(this).data('idx', ui.item.data('idx'));
-						that._applyItemState($(this), true);
-					});
-
-					// workaround according to http://dev.jqueryui.com/ticket/4088
-					setTimeout(function() { ui.item.remove(); }, 1);
-				}
-			});
-		}
-
-		// set up livesearch
-		if (this.options.searchable) {
-			this._registerSearchEvents(this.availableContainer.find('input.search'));
-		} else {
-			$('.search').hide();
-		}
-
-		// batch actions
-		this.container.find(".remove-all").click(function() {
-			that._populateLists(that.element.find('option').removeAttr('selected'));
-			return false;
-		});
-
-		this.container.find(".add-all").click(function() {
-			var options = that.element.find('option').not(":selected");
-			if (that.availableList.children('li:hidden').length > 1) {
-				that.availableList.children('li').each(function(i) {
-					if ($(this).is(":visible")) $(options[i-1]).attr('selected', 'selected');
-				});
-			} else {
-				options.attr('selected', 'selected');
-			}
-			that._populateLists(that.element.find('option'));
-			return false;
-		});
-	},
-	destroy: function() {
-		this.element.show();
-		this.container.remove();
-
-		$.Widget.prototype.destroy.apply(this, arguments);
-	},
-	_populateLists: function(options) {
-		this.selectedList.children('.ui-element').remove();
-		this.availableList.children('.ui-element').remove();
-		this.count = 0;
-
-		var that = this;
-		var items = $(options.map(function(i) {
-	      var item = that._getOptionNode(this).appendTo(this.selected ? that.selectedList : that.availableList).show();
-
-			if (this.selected) that.count += 1;
-			that._applyItemState(item, this.selected);
-			item.data('idx', i);
-			return item[0];
-    }));
-
-		// update count
-		this._updateCount();
-		that._filter.apply(this.availableContainer.find('input.search'), [that.availableList]);
-  },
-	_updateCount: function() {
-		this.selectedContainer.find('span.count').text(this.count+" "+$.ui.multiselect.locale.itemsCount);
-	},
-	_getOptionNode: function(option) {
-		option = $(option);
-		var node = $('<li class="ui-state-default ui-element" title="'+option.text()+'"><span class="ui-icon"/>'+option.text()+'<a href="#" class="multi-action"><span class="ui-corner-all ui-icon"/></a></li>').hide();
-		node.data('optionLink', option);
-		return node;
-	},
-	// clones an item with associated data
-	// didn't find a smarter away around this
-	_cloneWithData: function(clonee) {
-		var clone = clonee.clone(false,false);
-		clone.data('optionLink', clonee.data('optionLink'));
-		clone.data('idx', clonee.data('idx'));
-		return clone;
-	},
-	_setSelected: function(item, selected) {
-		item.data('optionLink').attr('selected', selected);
-
-		if (selected) {
-			var selectedItem = this._cloneWithData(item);
-			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
-			selectedItem.appendTo(this.selectedList).hide()[this.options.show](this.options.animated);
-
-			this._applyItemState(selectedItem, true);
-			return selectedItem;
-		} else {
-
-			// look for successor based on initial option index
-			var items = this.availableList.find('li'), comparator = this.options.nodeComparator;
-			var succ = null, i = item.data('idx'), direction = comparator(item, $(items[i]));
-
-			// TODO: test needed for dynamic list populating
-			if ( direction ) {
-				while (i>=0 && i<items.length) {
-					direction > 0 ? i++ : i--;
-					if ( direction != comparator(item, $(items[i])) ) {
-						// going up, go back one item down, otherwise leave as is
-						succ = items[direction > 0 ? i : i+1];
-						break;
-					}
-				}
-			} else {
-				succ = items[i];
-			}
-
-			var availableItem = this._cloneWithData(item);
-			succ ? availableItem.insertBefore($(succ)) : availableItem.appendTo(this.availableList);
-			item[this.options.hide](this.options.animated, function() { $(this).remove(); });
-			availableItem.hide()[this.options.show](this.options.animated);
-
-			this._applyItemState(availableItem, false);
-			return availableItem;
-		}
-	},
-	_applyItemState: function(item, selected) {
-		if (selected) {
-			if (this.options.sortable)
-				item.children('span').addClass('ui-icon-arrowthick-2-n-s').removeClass('ui-helper-hidden').addClass('ui-icon');
-			else
-				item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.multi-action span').addClass('ui-icon-minus').removeClass('ui-icon-plus');
-			this._registerRemoveEvents(item.find('a.multi-action'));
-
-		} else {
-			item.children('span').removeClass('ui-icon-arrowthick-2-n-s').addClass('ui-helper-hidden').removeClass('ui-icon');
-			item.find('a.multi-action span').addClass('ui-icon-plus').removeClass('ui-icon-minus');
-			this._registerAddEvents(item.find('a.multi-action'));
-		}
-
-		this._registerDoubleClickEvents(item);
-		this._registerHoverEvents(item);
-	},
-	// taken from John Resig's liveUpdate script
-	_filter: function(list) {
-		var input = $(this);
-		var rows = list.children('li'),
-			cache = rows.map(function(){
-
-				return $(this).text().toLowerCase();
-			});
-
-		var term = $.trim(input.val().toLowerCase()), scores = [];
-
-		if (!term) {
-			rows.show();
-		} else {
-			rows.hide();
-
-			cache.each(function(i) {
-				if (this.indexOf(term)>-1) { scores.push(i); }
-			});
-
-			$.each(scores, function() {
-				$(rows[this]).show();
-			});
-		}
-	},
-	_registerDoubleClickEvents: function(elements) {
-		if (!this.options.doubleClickable) return;
-		elements.dblclick(function() {
-			elements.find('a.multi-action').click();
-		});
-	},
-	_registerHoverEvents: function(elements) {
-		elements.removeClass('ui-state-hover');
-		elements.mouseover(function() {
-			$(this).addClass('ui-state-hover');
-		});
-		elements.mouseout(function() {
-			$(this).removeClass('ui-state-hover');
-		});
-	},
-	_registerAddEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			var item = that._setSelected($(this).parent(), true);
-			that.count += 1;
-			that._updateCount();
-			return false;
-		});
-
-		// make draggable
-		if (this.options.sortable) {
-		elements.each(function() {
-			$(this).parent().draggable({
-	      connectToSortable: that.selectedList,
-				helper: function() {
-					var selectedItem = that._cloneWithData($(this)).width($(this).width() - 50);
-					selectedItem.width($(this).width());
-					return selectedItem;
-				},
-				appendTo: that.container,
-				containment: that.container,
-				revert: 'invalid'
-	    });
-		});
-		}
-	},
-	_registerRemoveEvents: function(elements) {
-		var that = this;
-		elements.click(function() {
-			that._setSelected($(this).parent(), false);
-			that.count -= 1;
-			that._updateCount();
-			return false;
-		});
-	},
-	_registerSearchEvents: function(input) {
-		var that = this;
-
-		input.focus(function() {
-			$(this).addClass('ui-state-active');
-		})
-		.blur(function() {
-			$(this).removeClass('ui-state-active');
-		})
-		.keypress(function(e) {
-			if (e.keyCode == 13)
-				return false;
-		})
-		.keyup(function() {
-			that._filter.apply(this, [that.availableList]);
-		});
-	}
-});
-
-$.extend($.ui.multiselect, {
-	locale: {
-		addAll:i18n.add_all,
-		removeAll:i18n.remove_all,
-		itemsCount:i18n.items_selected
-	}
-});
-
-
-})(jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.totop.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.totop.js
deleted file mode 100644
index ad82a37..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.ui.totop.js
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-|--------------------------------------------------------------------------
-| UItoTop jQuery Plugin 1.1
-| http://www.mattvarone.com/web-design/uitotop-jquery-plugin/
-|--------------------------------------------------------------------------
-*/
-
-(function($){
-	$.fn.UItoTop = function(options) {
-
- 		var defaults = {
-			text: 'To Top',
-			min: 200,
-			inDelay:600,
-			outDelay:400,
-  			containerID: 'toTop',
-			containerHoverID: 'toTopHover',
-			scrollSpeed: 1200,
-			easingType: 'linear'
- 		};
-
- 		var settings = $.extend(defaults, options);
-		var containerIDhash = '#' + settings.containerID;
-		var containerHoverIDHash = '#'+settings.containerHoverID;
-		
-		$('body').append('<a href="#" id="'+settings.containerID+'">'+settings.text+'</a>');
-		$(containerIDhash).hide().click(function(){
-			$('html, body').animate({scrollTop:0}, settings.scrollSpeed, settings.easingType);
-			$('#'+settings.containerHoverID, this).stop().animate({'opacity': 0 }, settings.inDelay, settings.easingType);
-			return false;
-		})
-		.prepend('<span id="'+settings.containerHoverID+'"></span>')
-		.hover(function() {
-				$(containerHoverIDHash, this).stop().animate({
-					'opacity': 1
-				}, 600, 'linear');
-			}, function() { 
-				$(containerHoverIDHash, this).stop().animate({
-					'opacity': 0
-				}, 700, 'linear');
-			});
-					
-		$(window).scroll(function() {
-			var sd = $(window).scrollTop();
-			if(typeof document.body.style.maxHeight === "undefined") {
-				$(containerIDhash).css({
-					'position': 'absolute',
-					'top': $(window).scrollTop() + $(window).height() - 50
-				});
-			}
-			if ( sd > settings.min ) 
-				$(containerIDhash).fadeIn(settings.inDelay);
-			else 
-				$(containerIDhash).fadeOut(settings.Outdelay);
-		});
-
-};
-})(jQuery);
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.uitablefilter.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.uitablefilter.js
deleted file mode 100644
index be7b0b5..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/jquery.uitablefilter.js
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (c) 2008 Greg Weber greg at gregweber.info
- * Dual licensed under the MIT and GPLv2 licenses just as jQuery is:
- * http://jquery.org/license
- *
- * documentation at http://gregweber.info/projects/uitablefilter
- *
- * allows table rows to be filtered (made invisible)
- * <code>
- * t = $('table')
- * $.uiTableFilter( t, phrase )
- * </code>
- * arguments:
- *   jQuery object containing table rows
- *   phrase to search for
- *   optional arguments:
- *     column to limit search too (the column title in the table header)
- *     ifHidden - callback to execute if one or more elements was hidden
- *
- * If a user has a table where certain rows should not be filtered,
- * simply add a class of 'not_filtered' to those rows and they will
- * be skipped during filtering.
- */
-(function($) {
-  $.uiTableFilter = function(jq, phrase, column, ifHidden){
-    var new_hidden = false;
-    if( this.last_phrase === phrase ) return false;
-
-    var phrase_length = phrase.length;
-    var words = phrase.toLowerCase().split(" ");
-
-    // these function pointers may change
-    var matches = function(elem) { elem.show() }
-    var noMatch = function(elem) { elem.hide(); new_hidden = true }
-    var getText = function(elem) { return elem.text() }
-
-    if( column ) {
-      var index = null;
-      jq.find("thead > tr:last > th").each( function(i){
-        if( $.trim($(this).text()) == column ){
-          index = i; return false;
-        }
-      });
-      if( index == null ) throw("given column: " + column + " not found")
-
-      getText = function(elem){ return $(elem.find(
-        ("td:eq(" + index + ")")  )).text()
-      }
-    }
-
-    // if added one letter to last time,
-    // just check newest word and only need to hide
-    if( (words.size > 1) && (phrase.substr(0, phrase_length - 1) ===
-          this.last_phrase) ) {
-
-      if( phrase[-1] === " " )
-      { this.last_phrase = phrase; return false; }
-
-      var words = words[-1]; // just search for the newest word
-
-      // only hide visible rows
-      matches = function(elem) {;}
-      var elems = jq.find("tbody:first > tr:visible").not(".not_filtered")
-    }
-    else {
-      new_hidden = true;
-      var elems = jq.find("tbody:first > tr").not(".not_filtered")
-    }
-
-    elems.each(function(){
-      var elem = $(this);
-      $.uiTableFilter.has_words( getText(elem), words, false ) ?
-        matches(elem) : noMatch(elem);
-    });
-
-    last_phrase = phrase;
-    if( ifHidden && new_hidden ) ifHidden();
-    return jq;
-  };
-
-  // caching for speedup
-  $.uiTableFilter.last_phrase = ""
-
-  // not jQuery dependent
-  // "" [""] -> Boolean
-  // "" [""] Boolean -> Boolean
-  $.uiTableFilter.has_words = function( str, words, caseSensitive )
-  {
-    var text = caseSensitive ? str : str.toLowerCase();
-    for (var i=0; i < words.length; i++) {
-      if (text.indexOf(words[i]) === -1) return false;
-    }
-    return true;
-  }
-}) (jQuery);
diff --git a/src/lib/converge-ui/javascripts/lib/jquery/plugins/ui.spinner.js b/src/lib/converge-ui/javascripts/lib/jquery/plugins/ui.spinner.js
deleted file mode 100644
index 5f887c3..0000000
--- a/src/lib/converge-ui/javascripts/lib/jquery/plugins/ui.spinner.js
+++ /dev/null
@@ -1,683 +0,0 @@
-/** 
- * @license jQuery UI Spinner 1.20
- *
- * Copyright (c) 2009-2010 Brant Burnett
- * Dual licensed under the MIT or GPL Version 2 licenses.
- */
- (function($, undefined) {
-
-var 
-	// constants
-	active = 'ui-state-active',
-	hover = 'ui-state-hover',
-	disabled = 'ui-state-disabled',
-	
-	keyCode = $.ui.keyCode,
-	up = keyCode.UP,
-	down = keyCode.DOWN,
-	right = keyCode.RIGHT,
-	left = keyCode.LEFT,
-	pageUp = keyCode.PAGE_UP,
-	pageDown = keyCode.PAGE_DOWN,
-	home = keyCode.HOME,
-	end = keyCode.END,
-	
-	msie = $.browser.msie,
-	mouseWheelEventName = $.browser.mozilla ? 'DOMMouseScroll' : 'mousewheel',
-	
-	// namespace for events on input
-	eventNamespace = '.uispinner', 
-	
-	// only these special keys will be accepted, all others will be ignored unless CTRL or ALT are pressed
-	validKeys = [up, down, right, left, pageUp, pageDown, home, end, keyCode.BACKSPACE, keyCode.DELETE, keyCode.TAB],
-	
-	// stores the currently focused spinner
-	// Note: due to oddities in the focus/blur events, this is part of a two-part system for confirming focus
-	// this must set to the control, and the focus variable must be true
-	// this is because hitting up/down arrows with mouse causes focus to change, but blur event for previous control doesn't fire
-	focusCtrl;
-	
-$.widget('ui.spinner', {
-	options: {
-		min: null,
-		max: null,
-		allowNull: false,
-		
-		group: '',
-		point: '.',
-		prefix: '',
-		suffix: '',
-		places: null, // null causes it to detect the number of places in step, 'free' will let the user enters decimals as he wants
-		
-		defaultStep: 1, // real value is 'step', and should be passed as such.  This value is used to detect if passed value should override HTML5 attribute
-		largeStep: 10,
-		mouseWheel: true,
-		increment: 'slow',		
-		className: null,
-		showOn: 'always',
-		width: 16,
-		upIconClass: "ui-icon-triangle-1-n",
-		downIconClass: "ui-icon-triangle-1-s",
-		
-		format: function(num, places) {
-			var options = this,
-				regex = /(\d+)(\d{3})/;
-			var result;
-            if ('free' == places)
-                result = (isNaN(num) ? 0 : Math.abs(num)) + '';
-            else 
-                result = ((isNaN(num) ? 0 : Math.abs(num)).toFixed(places)) + '';
-				
-			for (result = result.replace('.', options.point); regex.test(result) && options.group; result=result.replace(regex, '$1'+options.group+'$2')) {};
-			return (num < 0 ? '-' : '') + options.prefix + result + options.suffix;
-		},
-		
-		parse: function(val) {
-			var options = this;
-			
-			if (options.group == '.')
-				val = val.replace('.', '');
-			if (options.point != '.')
-				val = val.replace(options.point, '.');
-			return parseFloat(val.replace(/[^0-9\-\.]/g, ''));
-		}
-	},
-	
-	// * Widget fields *
-	// curvalue - current value
-	// places - currently effective number of decimal places
-	// oWidth - original input width (used for destroy)
-	// oMargin - original input right margin (used for destroy)
-	// counter - number of spins at the current spin speed
-	// incCounter - index within options.increment of the current spin speed
-	// selfChange - indicates that change event is being fired by the widget, so don't reprocess input value
-	// inputMaxLength - initial maxLength value on the input
-	// focused - this spinner currently has the focus
-
-	_create: function() {
-		// shortcuts
-		var self = this,
-			input = self.element,
-			type = input.attr('type');
-			
-		if (!input.is('input') || ((type != 'text') && (type != 'number'))) {
-			console.error('Invalid target for ui.spinner');
-			return;
-		}
-		
-		self._procOptions(true);
-		self._createButtons(input);
-
-		if (!input.is(':enabled'))
-			self.disable();
-	},
-	
-	_createButtons: function(input) {
-        function getMargin(margin) {
-			// IE8 returns auto if no margin specified
-			return margin == 'auto' ? 0 : parseInt(margin);
-		}
-
-		var self = this,
-			options = self.options,
-			className = options.className,
-			buttonWidth = options.width,
-			showOn = options.showOn,
-			box = $.support.boxModel,
-			height = input.outerHeight(),
-			rightMargin = self.oMargin = getMargin(input.css('margin-right')); // store original width and right margin for later destroy
-            input.css({ textAlign: 'right' });
-            if (showOn != 'never') {             
-			    wrapper = self.wrapper = input.css({ width: (self.oWidth = (box ? input.width() : input.outerWidth())) - buttonWidth, 
-												     marginRight: rightMargin + buttonWidth})
-				    .after('<span class="ui-spinner ui-widget"></span>').next(),
-			    btnContainer = self.btnContainer = $(
-				    '<div class="ui-spinner-buttons">' + 
-					    '<div class="ui-spinner-up ui-spinner-button ui-state-default ui-corner-tr"><span class="ui-icon '+options.upIconClass+'">&nbsp;</span></div>' + 
-					    '<div class="ui-spinner-down ui-spinner-button ui-state-default ui-corner-br"><span class="ui-icon '+options.downIconClass+'">&nbsp;</span></div>' + 
-				    '</div>');
-            }
-
-			// object shortcuts
-			var upButton, downButton, buttons, icons,
-
-			hoverDelay,
-			hoverDelayCallback,
-			
-			// current state booleans
-			hovered, inKeyDown, inSpecialKey, inMouseDown,
-						
-			// used to reverse left/right key directions
-			rtl = input[0].dir == 'rtl';
-		
-		// apply className before doing any calculations because it could affect them
-		if (className && typeof(wrapper) != 'undefined') wrapper.addClass(className);
-		
-        if (showOn != 'never') {
-		    wrapper.append(btnContainer.css({ height: height, left: -buttonWidth-rightMargin,
-			    // use offset calculation to fix vertical position in Firefox
-			    top: (input.offset().top - wrapper.offset().top) + 'px' }));
-		    
-		    buttons = self.buttons = btnContainer.find('div.ui-spinner-button');
-		    buttons.css({ width: buttonWidth - (box ? buttons.outerWidth() - buttons.width() : 0), height: height/2 - (box ? buttons.outerHeight() - buttons.height() : 0) });
-		    upButton = buttons[0];
-		    downButton = buttons[1];
-
-		    // fix icon centering
-		    icons = buttons.find('span.ui-icon');
-		    icons.css({ marginLeft: (buttons.innerWidth() - icons.width()) / 2, marginTop:  (buttons.innerHeight() - icons.height()) / 2 });
-		    
-		    // set width of btnContainer to be the same as the buttons
-		    btnContainer.width(buttons.outerWidth());
-		    if (showOn != 'always')
-			    btnContainer.css('opacity', 0);
-        }
-		
-		/* Event Bindings */
-
-		// bind hover events to show/hide buttons
-		if (showOn == 'hover' || showOn == 'both')
-			buttons.add(input)
-				.bind('mouseenter' + eventNamespace, function() {
-					setHoverDelay(function() {
-						hovered = true;
-						if (!self.focused || (showOn == 'hover')) // ignore focus flag if show on hover only
-							self.showButtons();
-					});
-				})
-				
-				.bind('mouseleave' + eventNamespace, function hoverOut() {
-					setHoverDelay(function() {
-						hovered = false;
-						if (!self.focused || (showOn == 'hover')) // ignore focus flag if show on hover only
-							self.hideButtons();
-					});
-				});
-
-	
-        if (buttons != null) {
-		    buttons.hover(function() {
-					    // ensure that both buttons have hover removed, sometimes they get left on
-					    self.buttons.removeClass(hover);
-					    
-					    if (!options.disabled)
-						    $(this).addClass(hover);
-				    }, function() {
-					    $(this).removeClass(hover);
-				    })
-			    .mousedown(mouseDown)
-			    .mouseup(mouseUp)
-			    .mouseout(mouseUp);
-        }
-			
-		if (msie && buttons != null)
-			// fixes dbl click not firing second mouse down in IE
-			buttons.dblclick(function() {
-					if (!options.disabled) {
-						// make sure any changes are posted
-						self._change();
-						self._doSpin((this === upButton ? 1 : -1) * options.step);
-					}
-					
-					return false;
-				}) 
-				
-				// fixes IE8 dbl click selection highlight
-				.bind('selectstart', function() {return false;});
-				
-		input.bind('keydown' + eventNamespace, function(e) {
-					var dir, large, limit,
-						keyCode = e.keyCode; // shortcut for minimization
-					if (e.ctrl || e.alt) return true; // ignore these events
-					
-					if (isSpecialKey(keyCode))
-						inSpecialKey = true;                    
-					
-					if (inKeyDown) return false; // only one direction at a time, and suppress invalid keys
-					
-					switch (keyCode) {
-						case up:
-						case pageUp:
-							dir = 1;
-							large = keyCode == pageUp;
-							break;
-							
-						case down:
-						case pageDown:
-							dir = -1;
-							large = keyCode == pageDown;
-							break;
-							
-						case right:
-						case left:
-							dir = (keyCode == right) ^ rtl ? 1 : -1;
-							break;
-							
-						case home:
-							limit = self.options.min;
-							if (limit != null) self._setValue(limit);
-							return false;
-							
-						case end:
-							limit = self.options.max;
-							limit = self.options.max;
-							if (limit != null) self._setValue(limit);
-							return false;
-					}
-					
-					if (dir) { // only process if dir was set above
-						if (!inKeyDown && !options.disabled) {
-							keyDir = dir;
-							 if (buttons != null)
-							    $(dir > 0 ? upButton : downButton).addClass(active);
-							inKeyDown = true;
-							self._startSpin(dir, large);
-						}
-						
-						return false;
-					}
-				})
-				
-			.bind('keyup' + eventNamespace, function(e) {
-					if (e.ctrl || e.alt) return true; // ignore these events
-					var keyCode = e.keyCode; // shortcut for minimization
-                    
-					if (isSpecialKey(keyCode))
-						inSpecialKey = false; 
-					
-					switch (keyCode) {
-						case up:
-						case right:
-						case pageUp:
-						case down:
-						case left:
-						case pageDown:
-							if (buttons != null) 
-                                buttons.removeClass(active);
-							self._stopSpin();
-							inKeyDown = false;
-							return false;
-					}
-				})
-				
-			.bind('keypress' + eventNamespace, function(e) {
-					if (invalidKey(e.keyCode, e.charCode, e.target)) return false;
-				})
-				
-			.bind('change' + eventNamespace, function() { self._change(); })
-			
-			.bind('focus' + eventNamespace, function() {
-					function selectAll() {
-						self.element.select();
-					}
-
-					msie ? selectAll() : setTimeout(selectAll, 0); // add delay for Chrome, but breaks IE8
-					self.focused = true;
-					focusCtrl = self;
-					if (!hovered && (showOn == 'focus' || showOn == 'both')) // hovered will only be set if hover affects show
-						self.showButtons();
-				})
-				
-			.bind('blur' + eventNamespace, function() {
-					self.focused = false;
-					if (!hovered && (showOn == 'focus' || showOn == 'both')) // hovered will only be set if hover affects show
-						self.hideButtons();
-				});
-				
-		function isSpecialKey(keyCode) {
-			for (var i=0; i<validKeys.length; i++) // predefined list of special keys
-				if (validKeys[i] == keyCode) return true;
-				
-			return false;
-		}
-			
-		function invalidKey(keyCode, charCode, target) {
-            if (inSpecialKey) return false;				
-			
-			var ch = String.fromCharCode(charCode || keyCode),
-				options = self.options;
-				
-			if ((ch >= '0') && (ch <= '9') || (ch == '-')) return false;
-            // Allow the decimal separator if there's only one and we want decimals            
-			if (((self.places > 0 || self.places == 'free') && (ch == options.point) && ($(target).val() == null || $(target).val().indexOf(options.point) == -1))
-				|| (ch == options.group)) return false;
-					
-			return true;
-		}
-		
-		// used to delay start of hover show/hide by 100 milliseconds
-		function setHoverDelay(callback) {
-			if (hoverDelay) {
-				// don't do anything if trying to set the same callback again
-				if (callback === hoverDelayCallback) return;
-				
-				clearTimeout(hoverDelay);
-			}
-			
-			hoverDelayCallback = callback;
-			hoverDelay = setTimeout(execute, 100);
-			
-			function execute() {
-				hoverDelay = 0;
-				callback();
-			}
-		}
-			
-		function mouseDown() {
-			if (!options.disabled) {
-				var input = self.element[0],
-					dir = (this === upButton ? 1 : -1);
-					
-				input.focus();
-				input.select();
-				$(this).addClass(active);
-				
-				inMouseDown = true;
-				self._startSpin(dir);
-			}
-
-			return false;
-		}
-		
-		function mouseUp() {
-			if (inMouseDown) {
-				$(this).removeClass(active);
-				self._stopSpin();
-				inMouseDown = false;
-			}
-			return false;
-		}           
-	},
-	
-	_procOptions: function(init) {
-		var self = this,
-			input = self.element,
-			options = self.options,
-			min = options.min,
-			max = options.max,
-			step = options.step,
-			places = options.places,
-			maxlength = -1, temp;
-			
-		// setup increment based on speed string
-		if (options.increment == 'slow')
-			options.increment = [{count: 1, mult: 1, delay: 250},
-								 {count: 3, mult: 1, delay: 100},
-								 {count: 0, mult: 1, delay: 50}];
-		else if (options.increment == 'fast')
-			options.increment = [{count: 1, mult: 1, delay: 250},
-								 {count: 19, mult: 1, delay: 100},
-								 {count: 80, mult: 1, delay: 20},
-								 {count: 100, mult: 10, delay: 20},
-								 {count: 0, mult: 100, delay: 20}];
-
-        if ((min == null) && ((temp = input.attr('min')) != null))
-			min = parseFloat(temp);
-		
-		if ((max == null) && ((temp = input.attr('max')) != null))
-			max = parseFloat(temp);
-		
-		if (!step && ((temp = input.attr('step')) != null))
-			if (temp != 'any') {
-				step = parseFloat(temp);
-				options.largeStep *= step;
-			}
-		options.step = step = step || options.defaultStep;
-
-		// Process step for decimal places if none are specified
-		if ((places == null) && ((temp = step + '').indexOf('.') != -1))
-			places = temp.length - temp.indexOf('.') - 1;
-		self.places = places;
-		
-		if ((max != null) && (min != null)) {
-			// ensure that min is less than or equal to max
-			if (min > max) min = max;
-			
-			// set maxlength based on min/max
-			maxlength = Math.max(Math.max(maxlength, options.format(max, places, input).length), options.format(min, places, input).length);
-		}
-		
-		// only lookup input maxLength on init
-		if (init) self.inputMaxLength = input[0].maxLength;
-		temp = self.inputMaxLength;
-
-		if (temp > 0) {
-			maxlength = maxlength > 0 ? Math.min(temp, maxlength) : temp;
-			temp = Math.pow(10, maxlength) - 1;
-
-            // Infinity is a value assigned by IE in temp when it becomes to big or too small
-			if (((max == null) || (max > temp)) && temp != 'Infinity')
-				max = temp;
-			temp = -(temp + 1) / 10 + 1;
-			if (((min == null) || (min < temp)) && temp != '-Infinity')
-				min = temp;
-		}
-		
-		if (maxlength > 0)
-			input.attr('maxlength', maxlength);
-					
-		options.min = min;
-		options.max = max;
-
-		// ensures that current value meets constraints
-		self._change();
-		
-		input.unbind(mouseWheelEventName + eventNamespace);
-		if (options.mouseWheel)
-			input.bind(mouseWheelEventName + eventNamespace, self._mouseWheel);
-	},
-		
-	_mouseWheel: function(e) {
-		var self = $.data(this, 'spinner');
-		if (!self.options.disabled && self.focused && (focusCtrl === self)) {
-			// make sure changes are posted
-			self._change();
-			self._doSpin(((e.wheelDelta || -e.detail) > 0 ? 1 : -1) * self.options.step);
-			return false;
-		}
-	},
-	
-	// sets an interval to call the _spin function
-	_setTimer: function(delay, dir, large) {
-		var self = this;
-		self._stopSpin();
-		self.timer = setInterval(fire, delay);
-		
-		function fire() {
-			self._spin(dir, large);
-		}
-	},
-	
-	// stops the spin timer
-	_stopSpin: function() {
-		if (this.timer) {
-			clearInterval(this.timer);
-			this.timer = 0;
-		}
-	},
-	
-	// performs first step, and starts the spin timer if increment is set
-	_startSpin: function(dir, large) {
-		// shortcuts
-		var self = this,
-			options = self.options,
-			increment = options.increment;
-			
-		// make sure any changes are posted
-		self._change();
-		self._doSpin(dir * (large ? self.options.largeStep : self.options.step));
-		
-		if (increment && increment.length > 0) {		
-			self.counter = 0;
-			self.incCounter = 0;
-			self._setTimer(increment[0].delay, dir, large);
-		}
-	},
-	
-	// called by timer for each step in the spin
-	_spin: function(dir, large) {
-		// shortcuts
-		var self = this,
-			increment = self.options.increment,
-			curIncrement = increment[self.incCounter];
-		
-		self._doSpin(dir * curIncrement.mult * (large ? self.options.largeStep : self.options.step));
-		self.counter++;
-
-		if ((self.counter > curIncrement.count) && (self.incCounter < increment.length-1)) {
-			self.counter = 0;
-			curIncrement = increment[++self.incCounter];
-			self._setTimer(curIncrement.delay, dir, large);
-		}
-	},
-	
-	// actually spins the timer by a step
-	_doSpin: function(step) {
-		// shortcut
-		var self = this,
-			value = self.curvalue;
-			
-		if (value == null) 
-			value = (step > 0 ? self.options.min : self.options.max) || 0;
-		 if (self.options.places == 'free') {
-             // We may be in the floating problem! Lets stick with the number of decimals in the original value or in the step (max)
-             var point = self.options.point,
-                 result = value + step,
-                 strResult = result.toString(),
-                 strValue = value.toString(),
-                 strStep  = step.toString(),
-                 numDigitValue = (strValue.indexOf(point) == -1 ? 0 : strValue.length - strValue.indexOf(point) - 1), 
-                 numDigitStep =   (strStep.indexOf(point) == -1 ? 0 : strStep.length - strStep.indexOf(point) - 1), 
-                 desiredNumDigit = Math.max(numDigitValue, numDigitStep),
-                 numDigitResult = (strResult.indexOf(point) == -1 ? 0 : strResult.length - strResult.indexOf(point) - 1);                  
-             if (numDigitResult > desiredNumDigit)
-                self._setValue(result.toFixed(desiredNumDigit));
-             else 
-                self._setValue(result);
-             
-         } else {
-		    self._setValue(value + step);
-         }
-	},
-	
-	// Parse the value currently in the field
-	_parseValue: function() {
-		var value = this.element.val();
-		return value ? this.options.parse(value, this.element) : null;
-	},
-	
-	_validate: function(value) {
-		var options = this.options,
-			min = options.min,
-			max = options.max;
-
-		if ((value == null) && !options.allowNull)
-			value = this.curvalue != null ? this.curvalue : min || max || 0; // must confirm not null in case just initializing and had blank value
-
-		if ((max != null) && (value > max))
-			return max;
-		else if ((min != null) && (value < min))
-			return min;
-		else
-			return value;
-	},
-	
-	_change: function() {
-		var self = this, // shortcut
-			value = self._parseValue(),
-			min = self.options.min,
-			max = self.options.max;
-			
-		// don't reprocess if change was self triggered
-		if (!self.selfChange) {
-			if (isNaN(value))
-				value = self.curvalue;
-
-			self._setValue(value, true);
-		}
-	},
-	
-	// overrides _setData to force option parsing
-	_setOption: function(key, value) {
-		$.Widget.prototype._setOption.call(this, key, value);
-		this._procOptions();
-	},
-	
-	increment: function() {
-		this._doSpin(this.options.step);
-	},
-	
-	decrement: function() {
-		this._doSpin(-this.options.step);
-	},
-	
-	showButtons: function(immediate) {
-		var btnContainer = this.btnContainer.stop();
-		if (immediate)
-			btnContainer.css('opacity', 1);
-		else
-			btnContainer.fadeTo('fast', 1);
-	},
-	
-	hideButtons: function(immediate) {
-		var btnContainer = this.btnContainer.stop();
-		if (immediate)
-			btnContainer.css('opacity', 0);
-		else
-			btnContainer.fadeTo('fast', 0);
-		this.buttons.removeClass(hover);
-	},
-	
-	// Set the value directly
-	_setValue: function(value, suppressFireEvent) {
-		var self = this;
-		
-		self.curvalue = value = self._validate(value);
-		self.element.val(value != null ? 
-			self.options.format(value, self.places, self.element) :
-			'');
-		
-		if (!suppressFireEvent) {
-			self.selfChange = true;
-			self.element.change();
-			self.selfChange = false;
-		}
-	},
-
-	// Set or retrieve the value
-	value: function(newValue) {
-		if (arguments.length) {
-			this._setValue(newValue);
-			
-			// maintains chaining
-			return this.element;
-		}
-
-		return this.curvalue;
-	},
-
-	enable: function() {
-		this.buttons.removeClass(disabled);
-		this.element[0].disabled = false;
-		$.Widget.prototype.enable.call(this);
-	},
-	
-	disable: function() {
-		this.buttons.addClass(disabled)
-			// in case hover class got left on
-			.removeClass(hover);
-			
-		this.element[0].disabled = true;
-		$.Widget.prototype.disable.call(this);
-	},
-	
-	destroy: function(target) {
-		if (typeof(this.wrapper) != 'undefined') 
-            this.wrapper.remove();
-		this.element.unbind(eventNamespace).css({ width: this.oWidth, marginRight: this.oMargin });
-		
-		$.Widget.prototype.destroy.call(this);
-	}	
-});
-
-})( jQuery );
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/rails.js b/src/lib/converge-ui/javascripts/lib/rails.js
deleted file mode 100644
index 3bb4426..0000000
--- a/src/lib/converge-ui/javascripts/lib/rails.js
+++ /dev/null
@@ -1,331 +0,0 @@
-/**
- * Unobtrusive scripting adapter for jQuery
- *
- * Requires jQuery 1.6.0 or later.
- * https://github.com/rails/jquery-ujs
-
- * Uploading file using rails.js
- * =============================
- *
- * By default, browsers do not allow files to be uploaded via AJAX. As a result, if there are any non-blank file fields
- * in the remote form, this adapter aborts the AJAX submission and allows the form to submit through standard means.
- *
- * The `ajax:aborted:file` event allows you to bind your own handler to process the form submission however you wish.
- *
- * Ex:
- *     $('form').live('ajax:aborted:file', function(event, elements){
- *       // Implement own remote file-transfer handler here for non-blank file inputs passed in `elements`.
- *       // Returning false in this handler tells rails.js to disallow standard form submission
- *       return false;
- *     });
- *
- * The `ajax:aborted:file` event is fired when a file-type input is detected with a non-blank value.
- *
- * Third-party tools can use this hook to detect when an AJAX file upload is attempted, and then use
- * techniques like the iframe method to upload the file instead.
- *
- * Required fields in rails.js
- * ===========================
- *
- * If any blank required inputs (required="required") are detected in the remote form, the whole form submission
- * is canceled. Note that this is unlike file inputs, which still allow standard (non-AJAX) form submission.
- *
- * The `ajax:aborted:required` event allows you to bind your own handler to inform the user of blank required inputs.
- *
- * !! Note that Opera does not fire the form's submit event if there are blank required inputs, so this event may never
- *    get fired in Opera. This event is what causes other browsers to exhibit the same submit-aborting behavior.
- *
- * Ex:
- *     $('form').live('ajax:aborted:required', function(event, elements){
- *       // Returning false in this handler tells rails.js to submit the form anyway.
- *       // The blank required inputs are passed to this function in `elements`.
- *       return ! confirm("Would you like to submit the form with missing info?");
- *     });
- */
-
-(function($, undefined) {
-  // Shorthand to make it a little easier to call public rails functions from within rails.js
-  var rails;
-
-  $.rails = rails = {
-    // Link elements bound by jquery-ujs
-    linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]',
-
-		// Select elements bound by jquery-ujs
-		selectChangeSelector: 'select[data-remote]',
-
-    // Form elements bound by jquery-ujs
-    formSubmitSelector: 'form',
-
-    // Form input elements bound by jquery-ujs
-    formInputClickSelector: 'form input[type=submit], form input[type=image], form button[type=submit], form button:not([type])',
-
-    // Form input elements disabled during form submission
-    disableSelector: 'input[data-disable-with], button[data-disable-with], textarea[data-disable-with]',
-
-    // Form input elements re-enabled after form submission
-    enableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled',
-
-    // Form required input elements
-    requiredInputSelector: 'input[name][required]:not([disabled]),textarea[name][required]:not([disabled])',
-
-    // Form file input elements
-    fileInputSelector: 'input:file',
-
-    // Make sure that every Ajax request sends the CSRF token
-    CSRFProtection: function(xhr) {
-      var token = $('meta[name="csrf-token"]').attr('content');
-      if (token) xhr.setRequestHeader('X-CSRF-Token', token);
-    },
-
-    // Triggers an event on an element and returns false if the event result is false
-    fire: function(obj, name, data) {
-      var event = $.Event(name);
-      obj.trigger(event, data);
-      return event.result !== false;
-    },
-
-    // Default confirm dialog, may be overridden with custom confirm dialog in $.rails.confirm
-    confirm: function(message) {
-      return confirm(message);
-    },
-
-    // Default ajax function, may be overridden with custom function in $.rails.ajax
-    ajax: function(options) {
-      return $.ajax(options);
-    },
-
-    // Submits "remote" forms and links with ajax
-    handleRemote: function(element) {
-      var method, url, data,
-        crossDomain = element.data('cross-domain') || null,
-        dataType = element.data('type') || ($.ajaxSettings && $.ajaxSettings.dataType);
-
-      if (rails.fire(element, 'ajax:before')) {
-
-        if (element.is('form')) {
-          method = element.attr('method');
-          url = element.attr('action');
-          data = element.serializeArray();
-          // memoized value from clicked submit button
-          var button = element.data('ujs:submit-button');
-          if (button) {
-            data.push(button);
-            element.data('ujs:submit-button', null);
-          }
-        } else if (element.is('select')) {
-          method = element.data('method');
-          url = element.data('url');
-          data = element.serialize();
-          if (element.data('params')) data = data + "&" + element.data('params'); 
-        } else {
-           method = element.data('method');
-           url = element.attr('href');
-           data = element.data('params') || null; 
-        }
-
-        options = {
-          type: method || 'GET', data: data, dataType: dataType, crossDomain: crossDomain,
-          // stopping the "ajax:beforeSend" event will cancel the ajax request
-          beforeSend: function(xhr, settings) {
-            if (settings.dataType === undefined) {
-              xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script);
-            }
-            return rails.fire(element, 'ajax:beforeSend', [xhr, settings]);
-          },
-          success: function(data, status, xhr) {
-            element.trigger('ajax:success', [data, status, xhr]);
-          },
-          complete: function(xhr, status) {
-            element.trigger('ajax:complete', [xhr, status]);
-          },
-          error: function(xhr, status, error) {
-            element.trigger('ajax:error', [xhr, status, error]);
-          }
-        };
-        // Do not pass url to `ajax` options if blank
-        if (url) { $.extend(options, { url: url }); }
-
-        rails.ajax(options);
-      }
-    },
-
-    // Handles "data-method" on links such as:
-    // <a href="/users/5" data-method="delete" rel="nofollow" data-confirm="Are you sure?">Delete</a>
-    handleMethod: function(link) {
-      var href = link.attr('href'),
-        method = link.data('method'),
-        csrf_token = $('meta[name=csrf-token]').attr('content'),
-        csrf_param = $('meta[name=csrf-param]').attr('content'),
-        form = $('<form method="post" action="' + href + '"></form>'),
-        metadata_input = '<input name="_method" value="' + method + '" type="hidden" />';
-
-      if (csrf_param !== undefined && csrf_token !== undefined) {
-        metadata_input += '<input name="' + csrf_param + '" value="' + csrf_token + '" type="hidden" />';
-      }
-
-      form.hide().append(metadata_input).appendTo('body');
-      form.submit();
-    },
-
-    /* Disables form elements:
-      - Caches element value in 'ujs:enable-with' data store
-      - Replaces element text with value of 'data-disable-with' attribute
-      - Adds disabled=disabled attribute
-    */
-    disableFormElements: function(form) {
-      form.find(rails.disableSelector).each(function() {
-        var element = $(this), method = element.is('button') ? 'html' : 'val';
-        element.data('ujs:enable-with', element[method]());
-        element[method](element.data('disable-with'));
-        element.attr('disabled', 'disabled');
-      });
-    },
-
-    /* Re-enables disabled form elements:
-      - Replaces element text with cached value from 'ujs:enable-with' data store (created in `disableFormElements`)
-      - Removes disabled attribute
-    */
-    enableFormElements: function(form) {
-      form.find(rails.enableSelector).each(function() {
-        var element = $(this), method = element.is('button') ? 'html' : 'val';
-        if (element.data('ujs:enable-with')) element[method](element.data('ujs:enable-with'));
-        element.removeAttr('disabled');
-      });
-    },
-
-   /* For 'data-confirm' attribute:
-      - Fires `confirm` event
-      - Shows the confirmation dialog
-      - Fires the `confirm:complete` event
-
-      Returns `true` if no function stops the chain and user chose yes; `false` otherwise.
-      Attaching a handler to the element's `confirm` event that returns a `falsy` value cancels the confirmation dialog.
-      Attaching a handler to the element's `confirm:complete` event that returns a `falsy` value makes this function
-      return false. The `confirm:complete` event is fired whether or not the user answered true or false to the dialog.
-   */
-    allowAction: function(element) {
-      var message = element.data('confirm'),
-          answer = false, callback;
-      if (!message) { return true; }
-
-      if (rails.fire(element, 'confirm')) {
-        answer = rails.confirm(message);
-        callback = rails.fire(element, 'confirm:complete', [answer]);
-      }
-      return answer && callback;
-    },
-
-    // Helper function which checks for blank inputs in a form that match the specified CSS selector
-    blankInputs: function(form, specifiedSelector, nonBlank) {
-      var inputs = $(), input,
-        selector = specifiedSelector || 'input,textarea';
-      form.find(selector).each(function() {
-        input = $(this);
-        // Collect non-blank inputs if nonBlank option is true, otherwise, collect blank inputs
-        if (nonBlank ? input.val() : !input.val()) {
-          inputs = inputs.add(input);
-        }
-      });
-      return inputs.length ? inputs : false;
-    },
-
-    // Helper function which checks for non-blank inputs in a form that match the specified CSS selector
-    nonBlankInputs: function(form, specifiedSelector) {
-      return rails.blankInputs(form, specifiedSelector, true); // true specifies nonBlank
-    },
-
-    // Helper function, needed to provide consistent behavior in IE
-    stopEverything: function(e) {
-      $(e.target).trigger('ujs:everythingStopped');
-      e.stopImmediatePropagation();
-      return false;
-    },
-
-    // find all the submit events directly bound to the form and
-    // manually invoke them. If anyone returns false then stop the loop
-    callFormSubmitBindings: function(form) {
-      var events = form.data('events'), continuePropagation = true;
-      if (events !== undefined && events['submit'] !== undefined) {
-        $.each(events['submit'], function(i, obj){
-          if (typeof obj.handler === 'function') return continuePropagation = obj.handler(obj.data);
-        });
-      }
-      return continuePropagation;
-    }
-  };
-
-  $.ajaxPrefilter(function(options, originalOptions, xhr){ if ( !options.crossDomain ) { rails.CSRFProtection(xhr); }});
-
-  $(rails.linkClickSelector).live('click.rails', function(e) {
-    var link = $(this);
-    if (!rails.allowAction(link)) return rails.stopEverything(e);
-
-    if (link.data('remote') !== undefined) {
-      rails.handleRemote(link);
-      return false;
-    } else if (link.data('method')) {
-      rails.handleMethod(link);
-      return false;
-    }
-  });
-
-	$(rails.selectChangeSelector).live('change.rails', function(e) {
-    var link = $(this);
-    if (!rails.allowAction(link)) return rails.stopEverything(e);
-
-    rails.handleRemote(link);
-    return false;
-  });	
-
-  $(rails.formSubmitSelector).live('submit.rails', function(e) {
-    var form = $(this),
-      remote = form.data('remote') !== undefined,
-      blankRequiredInputs = rails.blankInputs(form, rails.requiredInputSelector),
-      nonBlankFileInputs = rails.nonBlankInputs(form, rails.fileInputSelector);
-
-    if (!rails.allowAction(form)) return rails.stopEverything(e);
-
-    // skip other logic when required values are missing or file upload is present
-    if (blankRequiredInputs && rails.fire(form, 'ajax:aborted:required', [blankRequiredInputs])) {
-      return rails.stopEverything(e);
-    }
-
-    if (remote) {
-      if (nonBlankFileInputs) {
-        return rails.fire(form, 'ajax:aborted:file', [nonBlankFileInputs]);
-      }
-
-      // If browser does not support submit bubbling, then this live-binding will be called before direct
-      // bindings. Therefore, we should directly call any direct bindings before remotely submitting form.
-      if (!$.support.submitBubbles && rails.callFormSubmitBindings(form) === false) return rails.stopEverything(e);
-
-      rails.handleRemote(form);
-      return false;
-    } else {
-      // slight timeout so that the submit button gets properly serialized
-      setTimeout(function(){ rails.disableFormElements(form); }, 13);
-    }
-  });
-
-  $(rails.formInputClickSelector).live('click.rails', function(event) {
-    var button = $(this);
-
-    if (!rails.allowAction(button)) return rails.stopEverything(event);
-
-    // register the pressed submit button
-    var name = button.attr('name'),
-      data = name ? {name:name, value:button.val()} : null;
-
-    button.closest('form').data('ujs:submit-button', data);
-  });
-
-  $(rails.formSubmitSelector).live('ajax:beforeSend.rails', function(event) {
-    if (this == event.target) rails.disableFormElements($(this));
-  });
-
-  $(rails.formSubmitSelector).live('ajax:complete.rails', function(event) {
-    if (this == event.target) rails.enableFormElements($(this));
-  });
-
-})( jQuery );
\ No newline at end of file
diff --git a/src/lib/converge-ui/javascripts/lib/underscore.js b/src/lib/converge-ui/javascripts/lib/underscore.js
deleted file mode 100644
index 208d4cd..0000000
--- a/src/lib/converge-ui/javascripts/lib/underscore.js
+++ /dev/null
@@ -1,999 +0,0 @@
-//     Underscore.js 1.3.1
-//     (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
-//     Underscore is freely distributable under the MIT license.
-//     Portions of Underscore are inspired or borrowed from Prototype,
-//     Oliver Steele's Functional, and John Resig's Micro-Templating.
-//     For all details and documentation:
-//     http://documentcloud.github.com/underscore
-
-(function() {
-
-  // Baseline setup
-  // --------------
-
-  // Establish the root object, `window` in the browser, or `global` on the server.
-  var root = this;
-
-  // Save the previous value of the `_` variable.
-  var previousUnderscore = root._;
-
-  // Establish the object that gets returned to break out of a loop iteration.
-  var breaker = {};
-
-  // Save bytes in the minified (but not gzipped) version:
-  var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;
-
-  // Create quick reference variables for speed access to core prototypes.
-  var slice            = ArrayProto.slice,
-      unshift          = ArrayProto.unshift,
-      toString         = ObjProto.toString,
-      hasOwnProperty   = ObjProto.hasOwnProperty;
-
-  // All **ECMAScript 5** native function implementations that we hope to use
-  // are declared here.
-  var
-    nativeForEach      = ArrayProto.forEach,
-    nativeMap          = ArrayProto.map,
-    nativeReduce       = ArrayProto.reduce,
-    nativeReduceRight  = ArrayProto.reduceRight,
-    nativeFilter       = ArrayProto.filter,
-    nativeEvery        = ArrayProto.every,
-    nativeSome         = ArrayProto.some,
-    nativeIndexOf      = ArrayProto.indexOf,
-    nativeLastIndexOf  = ArrayProto.lastIndexOf,
-    nativeIsArray      = Array.isArray,
-    nativeKeys         = Object.keys,
-    nativeBind         = FuncProto.bind;
-
-  // Create a safe reference to the Underscore object for use below.
-  var _ = function(obj) { return new wrapper(obj); };
-
-  // Export the Underscore object for **Node.js**, with
-  // backwards-compatibility for the old `require()` API. If we're in
-  // the browser, add `_` as a global object via a string identifier,
-  // for Closure Compiler "advanced" mode.
-  if (typeof exports !== 'undefined') {
-    if (typeof module !== 'undefined' && module.exports) {
-      exports = module.exports = _;
-    }
-    exports._ = _;
-  } else {
-    root['_'] = _;
-  }
-
-  // Current version.
-  _.VERSION = '1.3.1';
-
-  // Collection Functions
-  // --------------------
-
-  // The cornerstone, an `each` implementation, aka `forEach`.
-  // Handles objects with the built-in `forEach`, arrays, and raw objects.
-  // Delegates to **ECMAScript 5**'s native `forEach` if available.
-  var each = _.each = _.forEach = function(obj, iterator, context) {
-    if (obj == null) return;
-    if (nativeForEach && obj.forEach === nativeForEach) {
-      obj.forEach(iterator, context);
-    } else if (obj.length === +obj.length) {
-      for (var i = 0, l = obj.length; i < l; i++) {
-        if (i in obj && iterator.call(context, obj[i], i, obj) === breaker) return;
-      }
-    } else {
-      for (var key in obj) {
-        if (_.has(obj, key)) {
-          if (iterator.call(context, obj[key], key, obj) === breaker) return;
-        }
-      }
-    }
-  };
-
-  // Return the results of applying the iterator to each element.
-  // Delegates to **ECMAScript 5**'s native `map` if available.
-  _.map = _.collect = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
-    each(obj, function(value, index, list) {
-      results[results.length] = iterator.call(context, value, index, list);
-    });
-    if (obj.length === +obj.length) results.length = obj.length;
-    return results;
-  };
-
-  // **Reduce** builds up a single result from a list of values, aka `inject`,
-  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
-  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduce && obj.reduce === nativeReduce) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
-    }
-    each(obj, function(value, index, list) {
-      if (!initial) {
-        memo = value;
-        initial = true;
-      } else {
-        memo = iterator.call(context, memo, value, index, list);
-      }
-    });
-    if (!initial) throw new TypeError('Reduce of empty array with no initial value');
-    return memo;
-  };
-
-  // The right-associative version of reduce, also known as `foldr`.
-  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
-  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
-    var initial = arguments.length > 2;
-    if (obj == null) obj = [];
-    if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
-      if (context) iterator = _.bind(iterator, context);
-      return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
-    }
-    var reversed = _.toArray(obj).reverse();
-    if (context && !initial) iterator = _.bind(iterator, context);
-    return initial ? _.reduce(reversed, iterator, memo, context) : _.reduce(reversed, iterator);
-  };
-
-  // Return the first value which passes a truth test. Aliased as `detect`.
-  _.find = _.detect = function(obj, iterator, context) {
-    var result;
-    any(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) {
-        result = value;
-        return true;
-      }
-    });
-    return result;
-  };
-
-  // Return all the elements that pass a truth test.
-  // Delegates to **ECMAScript 5**'s native `filter` if available.
-  // Aliased as `select`.
-  _.filter = _.select = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
-    each(obj, function(value, index, list) {
-      if (iterator.call(context, value, index, list)) results[results.length] = value;
-    });
-    return results;
-  };
-
-  // Return all the elements for which a truth test fails.
-  _.reject = function(obj, iterator, context) {
-    var results = [];
-    if (obj == null) return results;
-    each(obj, function(value, index, list) {
-      if (!iterator.call(context, value, index, list)) results[results.length] = value;
-    });
-    return results;
-  };
-
-  // Determine whether all of the elements match a truth test.
-  // Delegates to **ECMAScript 5**'s native `every` if available.
-  // Aliased as `all`.
-  _.every = _.all = function(obj, iterator, context) {
-    var result = true;
-    if (obj == null) return result;
-    if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
-    each(obj, function(value, index, list) {
-      if (!(result = result && iterator.call(context, value, index, list))) return breaker;
-    });
-    return result;
-  };
-
-  // Determine if at least one element in the object matches a truth test.
-  // Delegates to **ECMAScript 5**'s native `some` if available.
-  // Aliased as `any`.
-  var any = _.some = _.any = function(obj, iterator, context) {
-    iterator || (iterator = _.identity);
-    var result = false;
-    if (obj == null) return result;
-    if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
-    each(obj, function(value, index, list) {
-      if (result || (result = iterator.call(context, value, index, list))) return breaker;
-    });
-    return !!result;
-  };
-
-  // Determine if a given value is included in the array or object using `===`.
-  // Aliased as `contains`.
-  _.include = _.contains = function(obj, target) {
-    var found = false;
-    if (obj == null) return found;
-    if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
-    found = any(obj, function(value) {
-      return value === target;
-    });
-    return found;
-  };
-
-  // Invoke a method (with arguments) on every item in a collection.
-  _.invoke = function(obj, method) {
-    var args = slice.call(arguments, 2);
-    return _.map(obj, function(value) {
-      return (_.isFunction(method) ? method || value : value[method]).apply(value, args);
-    });
-  };
-
-  // Convenience version of a common use case of `map`: fetching a property.
-  _.pluck = function(obj, key) {
-    return _.map(obj, function(value){ return value[key]; });
-  };
-
-  // Return the maximum element or (element-based computation).
-  _.max = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj)) return Math.max.apply(Math, obj);
-    if (!iterator && _.isEmpty(obj)) return -Infinity;
-    var result = {computed : -Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed >= result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Return the minimum element (or element-based computation).
-  _.min = function(obj, iterator, context) {
-    if (!iterator && _.isArray(obj)) return Math.min.apply(Math, obj);
-    if (!iterator && _.isEmpty(obj)) return Infinity;
-    var result = {computed : Infinity};
-    each(obj, function(value, index, list) {
-      var computed = iterator ? iterator.call(context, value, index, list) : value;
-      computed < result.computed && (result = {value : value, computed : computed});
-    });
-    return result.value;
-  };
-
-  // Shuffle an array.
-  _.shuffle = function(obj) {
-    var shuffled = [], rand;
-    each(obj, function(value, index, list) {
-      if (index == 0) {
-        shuffled[0] = value;
-      } else {
-        rand = Math.floor(Math.random() * (index + 1));
-        shuffled[index] = shuffled[rand];
-        shuffled[rand] = value;
-      }
-    });
-    return shuffled;
-  };
-
-  // Sort the object's values by a criterion produced by an iterator.
-  _.sortBy = function(obj, iterator, context) {
-    return _.pluck(_.map(obj, function(value, index, list) {
-      return {
-        value : value,
-        criteria : iterator.call(context, value, index, list)
-      };
-    }).sort(function(left, right) {
-      var a = left.criteria, b = right.criteria;
-      return a < b ? -1 : a > b ? 1 : 0;
-    }), 'value');
-  };
-
-  // Groups the object's values by a criterion. Pass either a string attribute
-  // to group by, or a function that returns the criterion.
-  _.groupBy = function(obj, val) {
-    var result = {};
-    var iterator = _.isFunction(val) ? val : function(obj) { return obj[val]; };
-    each(obj, function(value, index) {
-      var key = iterator(value, index);
-      (result[key] || (result[key] = [])).push(value);
-    });
-    return result;
-  };
-
-  // Use a comparator function to figure out at what index an object should
-  // be inserted so as to maintain order. Uses binary search.
-  _.sortedIndex = function(array, obj, iterator) {
-    iterator || (iterator = _.identity);
-    var low = 0, high = array.length;
-    while (low < high) {
-      var mid = (low + high) >> 1;
-      iterator(array[mid]) < iterator(obj) ? low = mid + 1 : high = mid;
-    }
-    return low;
-  };
-
-  // Safely convert anything iterable into a real, live array.
-  _.toArray = function(iterable) {
-    if (!iterable)                return [];
-    if (iterable.toArray)         return iterable.toArray();
-    if (_.isArray(iterable))      return slice.call(iterable);
-    if (_.isArguments(iterable))  return slice.call(iterable);
-    return _.values(iterable);
-  };
-
-  // Return the number of elements in an object.
-  _.size = function(obj) {
-    return _.toArray(obj).length;
-  };
-
-  // Array Functions
-  // ---------------
-
-  // Get the first element of an array. Passing **n** will return the first N
-  // values in the array. Aliased as `head`. The **guard** check allows it to work
-  // with `_.map`.
-  _.first = _.head = function(array, n, guard) {
-    return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
-  };
-
-  // Returns everything but the last entry of the array. Especcialy useful on
-  // the arguments object. Passing **n** will return all the values in
-  // the array, excluding the last N. The **guard** check allows it to work with
-  // `_.map`.
-  _.initial = function(array, n, guard) {
-    return slice.call(array, 0, array.length - ((n == null) || guard ? 1 : n));
-  };
-
-  // Get the last element of an array. Passing **n** will return the last N
-  // values in the array. The **guard** check allows it to work with `_.map`.
-  _.last = function(array, n, guard) {
-    if ((n != null) && !guard) {
-      return slice.call(array, Math.max(array.length - n, 0));
-    } else {
-      return array[array.length - 1];
-    }
-  };
-
-  // Returns everything but the first entry of the array. Aliased as `tail`.
-  // Especially useful on the arguments object. Passing an **index** will return
-  // the rest of the values in the array from that index onward. The **guard**
-  // check allows it to work with `_.map`.
-  _.rest = _.tail = function(array, index, guard) {
-    return slice.call(array, (index == null) || guard ? 1 : index);
-  };
-
-  // Trim out all falsy values from an array.
-  _.compact = function(array) {
-    return _.filter(array, function(value){ return !!value; });
-  };
-
-  // Return a completely flattened version of an array.
-  _.flatten = function(array, shallow) {
-    return _.reduce(array, function(memo, value) {
-      if (_.isArray(value)) return memo.concat(shallow ? value : _.flatten(value));
-      memo[memo.length] = value;
-      return memo;
-    }, []);
-  };
-
-  // Return a version of the array that does not contain the specified value(s).
-  _.without = function(array) {
-    return _.difference(array, slice.call(arguments, 1));
-  };
-
-  // Produce a duplicate-free version of the array. If the array has already
-  // been sorted, you have the option of using a faster algorithm.
-  // Aliased as `unique`.
-  _.uniq = _.unique = function(array, isSorted, iterator) {
-    var initial = iterator ? _.map(array, iterator) : array;
-    var result = [];
-    _.reduce(initial, function(memo, el, i) {
-      if (0 == i || (isSorted === true ? _.last(memo) != el : !_.include(memo, el))) {
-        memo[memo.length] = el;
-        result[result.length] = array[i];
-      }
-      return memo;
-    }, []);
-    return result;
-  };
-
-  // Produce an array that contains the union: each distinct element from all of
-  // the passed-in arrays.
-  _.union = function() {
-    return _.uniq(_.flatten(arguments, true));
-  };
-
-  // Produce an array that contains every item shared between all the
-  // passed-in arrays. (Aliased as "intersect" for back-compat.)
-  _.intersection = _.intersect = function(array) {
-    var rest = slice.call(arguments, 1);
-    return _.filter(_.uniq(array), function(item) {
-      return _.every(rest, function(other) {
-        return _.indexOf(other, item) >= 0;
-      });
-    });
-  };
-
-  // Take the difference between one array and a number of other arrays.
-  // Only the elements present in just the first array will remain.
-  _.difference = function(array) {
-    var rest = _.flatten(slice.call(arguments, 1));
-    return _.filter(array, function(value){ return !_.include(rest, value); });
-  };
-
-  // Zip together multiple lists into a single array -- elements that share
-  // an index go together.
-  _.zip = function() {
-    var args = slice.call(arguments);
-    var length = _.max(_.pluck(args, 'length'));
-    var results = new Array(length);
-    for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
-    return results;
-  };
-
-  // If the browser doesn't supply us with indexOf (I'm looking at you, **MSIE**),
-  // we need this function. Return the position of the first occurrence of an
-  // item in an array, or -1 if the item is not included in the array.
-  // Delegates to **ECMAScript 5**'s native `indexOf` if available.
-  // If the array is large and already in sort order, pass `true`
-  // for **isSorted** to use binary search.
-  _.indexOf = function(array, item, isSorted) {
-    if (array == null) return -1;
-    var i, l;
-    if (isSorted) {
-      i = _.sortedIndex(array, item);
-      return array[i] === item ? i : -1;
-    }
-    if (nativeIndexOf && array.indexOf === nativeIndexOf) return array.indexOf(item);
-    for (i = 0, l = array.length; i < l; i++) if (i in array && array[i] === item) return i;
-    return -1;
-  };
-
-  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
-  _.lastIndexOf = function(array, item) {
-    if (array == null) return -1;
-    if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item);
-    var i = array.length;
-    while (i--) if (i in array && array[i] === item) return i;
-    return -1;
-  };
-
-  // Generate an integer Array containing an arithmetic progression. A port of
-  // the native Python `range()` function. See
-  // [the Python documentation](http://docs.python.org/library/functions.html#range).
-  _.range = function(start, stop, step) {
-    if (arguments.length <= 1) {
-      stop = start || 0;
-      start = 0;
-    }
-    step = arguments[2] || 1;
-
-    var len = Math.max(Math.ceil((stop - start) / step), 0);
-    var idx = 0;
-    var range = new Array(len);
-
-    while(idx < len) {
-      range[idx++] = start;
-      start += step;
-    }
-
-    return range;
-  };
-
-  // Function (ahem) Functions
-  // ------------------
-
-  // Reusable constructor function for prototype setting.
-  var ctor = function(){};
-
-  // Create a function bound to a given object (assigning `this`, and arguments,
-  // optionally). Binding with arguments is also known as `curry`.
-  // Delegates to **ECMAScript 5**'s native `Function.bind` if available.
-  // We check for `func.bind` first, to fail fast when `func` is undefined.
-  _.bind = function bind(func, context) {
-    var bound, args;
-    if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
-    if (!_.isFunction(func)) throw new TypeError;
-    args = slice.call(arguments, 2);
-    return bound = function() {
-      if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
-      ctor.prototype = func.prototype;
-      var self = new ctor;
-      var result = func.apply(self, args.concat(slice.call(arguments)));
-      if (Object(result) === result) return result;
-      return self;
-    };
-  };
-
-  // Bind all of an object's methods to that object. Useful for ensuring that
-  // all callbacks defined on an object belong to it.
-  _.bindAll = function(obj) {
-    var funcs = slice.call(arguments, 1);
-    if (funcs.length == 0) funcs = _.functions(obj);
-    each(funcs, function(f) { obj[f] = _.bind(obj[f], obj); });
-    return obj;
-  };
-
-  // Memoize an expensive function by storing its results.
-  _.memoize = function(func, hasher) {
-    var memo = {};
-    hasher || (hasher = _.identity);
-    return function() {
-      var key = hasher.apply(this, arguments);
-      return _.has(memo, key) ? memo[key] : (memo[key] = func.apply(this, arguments));
-    };
-  };
-
-  // Delays a function for the given number of milliseconds, and then calls
-  // it with the arguments supplied.
-  _.delay = function(func, wait) {
-    var args = slice.call(arguments, 2);
-    return setTimeout(function(){ return func.apply(func, args); }, wait);
-  };
-
-  // Defers a function, scheduling it to run after the current call stack has
-  // cleared.
-  _.defer = function(func) {
-    return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1)));
-  };
-
-  // Returns a function, that, when invoked, will only be triggered at most once
-  // during a given window of time.
-  _.throttle = function(func, wait) {
-    var context, args, timeout, throttling, more;
-    var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
-    return function() {
-      context = this; args = arguments;
-      var later = function() {
-        timeout = null;
-        if (more) func.apply(context, args);
-        whenDone();
-      };
-      if (!timeout) timeout = setTimeout(later, wait);
-      if (throttling) {
-        more = true;
-      } else {
-        func.apply(context, args);
-      }
-      whenDone();
-      throttling = true;
-    };
-  };
-
-  // Returns a function, that, as long as it continues to be invoked, will not
-  // be triggered. The function will be called after it stops being called for
-  // N milliseconds.
-  _.debounce = function(func, wait) {
-    var timeout;
-    return function() {
-      var context = this, args = arguments;
-      var later = function() {
-        timeout = null;
-        func.apply(context, args);
-      };
-      clearTimeout(timeout);
-      timeout = setTimeout(later, wait);
-    };
-  };
-
-  // Returns a function that will be executed at most one time, no matter how
-  // often you call it. Useful for lazy initialization.
-  _.once = function(func) {
-    var ran = false, memo;
-    return function() {
-      if (ran) return memo;
-      ran = true;
-      return memo = func.apply(this, arguments);
-    };
-  };
-
-  // Returns the first function passed as an argument to the second,
-  // allowing you to adjust arguments, run code before and after, and
-  // conditionally execute the original function.
-  _.wrap = function(func, wrapper) {
-    return function() {
-      var args = [func].concat(slice.call(arguments, 0));
-      return wrapper.apply(this, args);
-    };
-  };
-
-  // Returns a function that is the composition of a list of functions, each
-  // consuming the return value of the function that follows.
-  _.compose = function() {
-    var funcs = arguments;
-    return function() {
-      var args = arguments;
-      for (var i = funcs.length - 1; i >= 0; i--) {
-        args = [funcs[i].apply(this, args)];
-      }
-      return args[0];
-    };
-  };
-
-  // Returns a function that will only be executed after being called N times.
-  _.after = function(times, func) {
-    if (times <= 0) return func();
-    return function() {
-      if (--times < 1) { return func.apply(this, arguments); }
-    };
-  };
-
-  // Object Functions
-  // ----------------
-
-  // Retrieve the names of an object's properties.
-  // Delegates to **ECMAScript 5**'s native `Object.keys`
-  _.keys = nativeKeys || function(obj) {
-    if (obj !== Object(obj)) throw new TypeError('Invalid object');
-    var keys = [];
-    for (var key in obj) if (_.has(obj, key)) keys[keys.length] = key;
-    return keys;
-  };
-
-  // Retrieve the values of an object's properties.
-  _.values = function(obj) {
-    return _.map(obj, _.identity);
-  };
-
-  // Return a sorted list of the function names available on the object.
-  // Aliased as `methods`
-  _.functions = _.methods = function(obj) {
-    var names = [];
-    for (var key in obj) {
-      if (_.isFunction(obj[key])) names.push(key);
-    }
-    return names.sort();
-  };
-
-  // Extend a given object with all the properties in passed-in object(s).
-  _.extend = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      for (var prop in source) {
-        obj[prop] = source[prop];
-      }
-    });
-    return obj;
-  };
-
-  // Fill in a given object with default properties.
-  _.defaults = function(obj) {
-    each(slice.call(arguments, 1), function(source) {
-      for (var prop in source) {
-        if (obj[prop] == null) obj[prop] = source[prop];
-      }
-    });
-    return obj;
-  };
-
-  // Create a (shallow-cloned) duplicate of an object.
-  _.clone = function(obj) {
-    if (!_.isObject(obj)) return obj;
-    return _.isArray(obj) ? obj.slice() : _.extend({}, obj);
-  };
-
-  // Invokes interceptor with the obj, and then returns obj.
-  // The primary purpose of this method is to "tap into" a method chain, in
-  // order to perform operations on intermediate results within the chain.
-  _.tap = function(obj, interceptor) {
-    interceptor(obj);
-    return obj;
-  };
-
-  // Internal recursive comparison function.
-  function eq(a, b, stack) {
-    // Identical objects are equal. `0 === -0`, but they aren't identical.
-    // See the Harmony `egal` proposal: http://wiki.ecmascript.org/doku.php?id=harmony:egal.
-    if (a === b) return a !== 0 || 1 / a == 1 / b;
-    // A strict comparison is necessary because `null == undefined`.
-    if (a == null || b == null) return a === b;
-    // Unwrap any wrapped objects.
-    if (a._chain) a = a._wrapped;
-    if (b._chain) b = b._wrapped;
-    // Invoke a custom `isEqual` method if one is provided.
-    if (a.isEqual && _.isFunction(a.isEqual)) return a.isEqual(b);
-    if (b.isEqual && _.isFunction(b.isEqual)) return b.isEqual(a);
-    // Compare `[[Class]]` names.
-    var className = toString.call(a);
-    if (className != toString.call(b)) return false;
-    switch (className) {
-      // Strings, numbers, dates, and booleans are compared by value.
-      case '[object String]':
-        // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is
-        // equivalent to `new String("5")`.
-        return a == String(b);
-      case '[object Number]':
-        // `NaN`s are equivalent, but non-reflexive. An `egal` comparison is performed for
-        // other numeric values.
-        return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);
-      case '[object Date]':
-      case '[object Boolean]':
-        // Coerce dates and booleans to numeric primitive values. Dates are compared by their
-        // millisecond representations. Note that invalid dates with millisecond representations
-        // of `NaN` are not equivalent.
-        return +a == +b;
-      // RegExps are compared by their source patterns and flags.
-      case '[object RegExp]':
-        return a.source == b.source &&
-               a.global == b.global &&
-               a.multiline == b.multiline &&
-               a.ignoreCase == b.ignoreCase;
-    }
-    if (typeof a != 'object' || typeof b != 'object') return false;
-    // Assume equality for cyclic structures. The algorithm for detecting cyclic
-    // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.
-    var length = stack.length;
-    while (length--) {
-      // Linear search. Performance is inversely proportional to the number of
-      // unique nested structures.
-      if (stack[length] == a) return true;
-    }
-    // Add the first object to the stack of traversed objects.
-    stack.push(a);
-    var size = 0, result = true;
-    // Recursively compare objects and arrays.
-    if (className == '[object Array]') {
-      // Compare array lengths to determine if a deep comparison is necessary.
-      size = a.length;
-      result = size == b.length;
-      if (result) {
-        // Deep compare the contents, ignoring non-numeric properties.
-        while (size--) {
-          // Ensure commutative equality for sparse arrays.
-          if (!(result = size in a == size in b && eq(a[size], b[size], stack))) break;
-        }
-      }
-    } else {
-      // Objects with different constructors are not equivalent.
-      if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) return false;
-      // Deep compare objects.
-      for (var key in a) {
-        if (_.has(a, key)) {
-          // Count the expected number of properties.
-          size++;
-          // Deep compare each member.
-          if (!(result = _.has(b, key) && eq(a[key], b[key], stack))) break;
-        }
-      }
-      // Ensure that both objects contain the same number of properties.
-      if (result) {
-        for (key in b) {
-          if (_.has(b, key) && !(size--)) break;
-        }
-        result = !size;
-      }
-    }
-    // Remove the first object from the stack of traversed objects.
-    stack.pop();
-    return result;
-  }
-
-  // Perform a deep comparison to check if two objects are equal.
-  _.isEqual = function(a, b) {
-    return eq(a, b, []);
-  };
-
-  // Is a given array, string, or object empty?
-  // An "empty" object has no enumerable own-properties.
-  _.isEmpty = function(obj) {
-    if (_.isArray(obj) || _.isString(obj)) return obj.length === 0;
-    for (var key in obj) if (_.has(obj, key)) return false;
-    return true;
-  };
-
-  // Is a given value a DOM element?
-  _.isElement = function(obj) {
-    return !!(obj && obj.nodeType == 1);
-  };
-
-  // Is a given value an array?
-  // Delegates to ECMA5's native Array.isArray
-  _.isArray = nativeIsArray || function(obj) {
-    return toString.call(obj) == '[object Array]';
-  };
-
-  // Is a given variable an object?
-  _.isObject = function(obj) {
-    return obj === Object(obj);
-  };
-
-  // Is a given variable an arguments object?
-  _.isArguments = function(obj) {
-    return toString.call(obj) == '[object Arguments]';
-  };
-  if (!_.isArguments(arguments)) {
-    _.isArguments = function(obj) {
-      return !!(obj && _.has(obj, 'callee'));
-    };
-  }
-
-  // Is a given value a function?
-  _.isFunction = function(obj) {
-    return toString.call(obj) == '[object Function]';
-  };
-
-  // Is a given value a string?
-  _.isString = function(obj) {
-    return toString.call(obj) == '[object String]';
-  };
-
-  // Is a given value a number?
-  _.isNumber = function(obj) {
-    return toString.call(obj) == '[object Number]';
-  };
-
-  // Is the given value `NaN`?
-  _.isNaN = function(obj) {
-    // `NaN` is the only value for which `===` is not reflexive.
-    return obj !== obj;
-  };
-
-  // Is a given value a boolean?
-  _.isBoolean = function(obj) {
-    return obj === true || obj === false || toString.call(obj) == '[object Boolean]';
-  };
-
-  // Is a given value a date?
-  _.isDate = function(obj) {
-    return toString.call(obj) == '[object Date]';
-  };
-
-  // Is the given value a regular expression?
-  _.isRegExp = function(obj) {
-    return toString.call(obj) == '[object RegExp]';
-  };
-
-  // Is a given value equal to null?
-  _.isNull = function(obj) {
-    return obj === null;
-  };
-
-  // Is a given variable undefined?
-  _.isUndefined = function(obj) {
-    return obj === void 0;
-  };
-
-  // Has own property?
-  _.has = function(obj, key) {
-    return hasOwnProperty.call(obj, key);
-  };
-
-  // Utility Functions
-  // -----------------
-
-  // Run Underscore.js in *noConflict* mode, returning the `_` variable to its
-  // previous owner. Returns a reference to the Underscore object.
-  _.noConflict = function() {
-    root._ = previousUnderscore;
-    return this;
-  };
-
-  // Keep the identity function around for default iterators.
-  _.identity = function(value) {
-    return value;
-  };
-
-  // Run a function **n** times.
-  _.times = function (n, iterator, context) {
-    for (var i = 0; i < n; i++) iterator.call(context, i);
-  };
-
-  // Escape a string for HTML interpolation.
-  _.escape = function(string) {
-    return (''+string).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#x27;').replace(/\//g,'&#x2F;');
-  };
-
-  // Add your own custom functions to the Underscore object, ensuring that
-  // they're correctly added to the OOP wrapper as well.
-  _.mixin = function(obj) {
-    each(_.functions(obj), function(name){
-      addToWrapper(name, _[name] = obj[name]);
-    });
-  };
-
-  // Generate a unique integer id (unique within the entire client session).
-  // Useful for temporary DOM ids.
-  var idCounter = 0;
-  _.uniqueId = function(prefix) {
-    var id = idCounter++;
-    return prefix ? prefix + id : id;
-  };
-
-  // By default, Underscore uses ERB-style template delimiters, change the
-  // following template settings to use alternative delimiters.
-  _.templateSettings = {
-    evaluate    : /<%([\s\S]+?)%>/g,
-    interpolate : /<%=([\s\S]+?)%>/g,
-    escape      : /<%-([\s\S]+?)%>/g
-  };
-
-  // When customizing `templateSettings`, if you don't want to define an
-  // interpolation, evaluation or escaping regex, we need one that is
-  // guaranteed not to match.
-  var noMatch = /.^/;
-
-  // Within an interpolation, evaluation, or escaping, remove HTML escaping
-  // that had been previously added.
-  var unescape = function(code) {
-    return code.replace(/\\\\/g, '\\').replace(/\\'/g, "'");
-  };
-
-  // JavaScript micro-templating, similar to John Resig's implementation.
-  // Underscore templating handles arbitrary delimiters, preserves whitespace,
-  // and correctly escapes quotes within interpolated code.
-  _.template = function(str, data) {
-    var c  = _.templateSettings;
-    var tmpl = 'var __p=[],print=function(){__p.push.apply(__p,arguments);};' +
-      'with(obj||{}){__p.push(\'' +
-      str.replace(/\\/g, '\\\\')
-         .replace(/'/g, "\\'")
-         .replace(c.escape || noMatch, function(match, code) {
-           return "',_.escape(" + unescape(code) + "),'";
-         })
-         .replace(c.interpolate || noMatch, function(match, code) {
-           return "'," + unescape(code) + ",'";
-         })
-         .replace(c.evaluate || noMatch, function(match, code) {
-           return "');" + unescape(code).replace(/[\r\n\t]/g, ' ') + ";__p.push('";
-         })
-         .replace(/\r/g, '\\r')
-         .replace(/\n/g, '\\n')
-         .replace(/\t/g, '\\t')
-         + "');}return __p.join('');";
-    var func = new Function('obj', '_', tmpl);
-    if (data) return func(data, _);
-    return function(data) {
-      return func.call(this, data, _);
-    };
-  };
-
-  // Add a "chain" function, which will delegate to the wrapper.
-  _.chain = function(obj) {
-    return _(obj).chain();
-  };
-
-  // The OOP Wrapper
-  // ---------------
-
-  // If Underscore is called as a function, it returns a wrapped object that
-  // can be used OO-style. This wrapper holds altered versions of all the
-  // underscore functions. Wrapped objects may be chained.
-  var wrapper = function(obj) { this._wrapped = obj; };
-
-  // Expose `wrapper.prototype` as `_.prototype`
-  _.prototype = wrapper.prototype;
-
-  // Helper function to continue chaining intermediate results.
-  var result = function(obj, chain) {
-    return chain ? _(obj).chain() : obj;
-  };
-
-  // A method to easily add functions to the OOP wrapper.
-  var addToWrapper = function(name, func) {
-    wrapper.prototype[name] = function() {
-      var args = slice.call(arguments);
-      unshift.call(args, this._wrapped);
-      return result(func.apply(_, args), this._chain);
-    };
-  };
-
-  // Add all of the Underscore functions to the wrapper object.
-  _.mixin(_);
-
-  // Add all mutator Array functions to the wrapper.
-  each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {
-    var method = ArrayProto[name];
-    wrapper.prototype[name] = function() {
-      var wrapped = this._wrapped;
-      method.apply(wrapped, arguments);
-      var length = wrapped.length;
-      if ((name == 'shift' || name == 'splice') && length === 0) delete wrapped[0];
-      return result(wrapped, this._chain);
-    };
-  });
-
-  // Add all accessor Array functions to the wrapper.
-  each(['concat', 'join', 'slice'], function(name) {
-    var method = ArrayProto[name];
-    wrapper.prototype[name] = function() {
-      return result(method.apply(this._wrapped, arguments), this._chain);
-    };
-  });
-
-  // Start chaining a wrapped Underscore object.
-  wrapper.prototype.chain = function() {
-    this._chain = true;
-    return this;
-  };
-
-  // Extracts the result from a wrapped and chained object.
-  wrapper.prototype.value = function() {
-    return this._wrapped;
-  };
-
-}).call(this);
diff --git a/src/lib/converge-ui/rails/helpers/layout_helper.rb b/src/lib/converge-ui/rails/helpers/layout_helper.rb
deleted file mode 100644
index aeb84f1..0000000
--- a/src/lib/converge-ui/rails/helpers/layout_helper.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-#
-# Copyright 2011 Red Hat, Inc.
-#
-# This software is licensed to you under the GNU General Public
-# License as published by the Free Software Foundation; either version
-# 2 of the License (GPLv2) or (at your option) any later version.
-# There is NO WARRANTY for this software, express or implied,
-# including the implied warranties of MERCHANTABILITY,
-# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
-# have received a copy of GPLv2 along with this software; if not, see
-# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
-
-module LayoutHelper
-  def no_template
-    _("No Template")
-  end
-
-  # This is probably not the best indicator
-  def using_gettext?
-    !!respond_to?('_')
-  end
-
-  def redhat_string
-    using_gettext? ? _('redhat') : 'Red Hat' # No translation in Conductor
-  end
-
-  def copyright_string
-    if using_gettext?
-      "#{_("Copyright &copy; ")} #{(Time.now).year.to_s} #{_(" Red Hat, Inc.")}"
-    else
-      t("layout.copyright")
-    end
-  end
-
-end
diff --git a/src/lib/converge-ui/rails/layouts/_header_layout.haml b/src/lib/converge-ui/rails/layouts/_header_layout.haml
deleted file mode 100644
index 8507dde..0000000
--- a/src/lib/converge-ui/rails/layouts/_header_layout.haml
+++ /dev/null
@@ -1,7 +0,0 @@
-%h1
-  = yield :logo
-%nav#appnav
-  = yield :tabs
-#widget-container
-  = yield :widgets
-= yield :extra_header
diff --git a/src/lib/converge-ui/rails/layouts/shell_layout.haml b/src/lib/converge-ui/rails/layouts/shell_layout.haml
deleted file mode 100644
index 397ebf4..0000000
--- a/src/lib/converge-ui/rails/layouts/shell_layout.haml
+++ /dev/null
@@ -1,36 +0,0 @@
-!!!
-%html
-  %head
-    %meta(http-equiv="Content-Type" content="text/html; charset=UTF-8")
-    = favicon_link_tag 'favicon.png'
-    %title
-      = yield :title
-    = yield :stylesheets
-    = yield :head
-
-  %body
-    %header#header
-      = render :partial => "layouts/converge-ui/header_layout"
-    %article#maincontent
-      %section
-        = yield :content
-    %footer
-      %span
-        = redhat_string.html_safe
-      %p.copyright
-        = copyright_string.html_safe
-      / mawagner - FIXME - These links should either go somewhere, or be removed.
-      / %ul
-      /   %li
-      /     %a{ "href" => "#" }
-      /       #{_translate("Disclaimer")}
-      /   %li
-      /     %a{ "href" => "#" }
-      /       #{_translate("Terms of Use")}
-      /   %li
-      /     %a{ "href" => "#" }
-      /       #{_translate("Support")}
-      = yield :footer
-
-    = yield :javascript
-    = yield :extra
diff --git a/src/lib/converge-ui/rel-eng/packages/.readme b/src/lib/converge-ui/rel-eng/packages/.readme
deleted file mode 100644
index 8999c8d..0000000
--- a/src/lib/converge-ui/rel-eng/packages/.readme
+++ /dev/null
@@ -1,3 +0,0 @@
-the rel-eng/packages directory contains metadata files
-named after their packages. Each file has the latest tagged
-version and the project's relative directory.
diff --git a/src/lib/converge-ui/rel-eng/packages/converge-ui b/src/lib/converge-ui/rel-eng/packages/converge-ui
deleted file mode 100644
index c682317..0000000
--- a/src/lib/converge-ui/rel-eng/packages/converge-ui
+++ /dev/null
@@ -1 +0,0 @@
-0.2-1 /
diff --git a/src/lib/converge-ui/rel-eng/tito.props b/src/lib/converge-ui/rel-eng/tito.props
deleted file mode 100644
index 5e50458..0000000
--- a/src/lib/converge-ui/rel-eng/tito.props
+++ /dev/null
@@ -1,5 +0,0 @@
-[globalconfig]
-default_builder = tito.builder.Builder
-default_tagger = tito.tagger.VersionTagger
-changelog_do_not_remove_cherrypick = 0
-changelog_with_email = 1
diff --git a/src/lib/converge-ui/stylesheets/fonts.scss b/src/lib/converge-ui/stylesheets/fonts.scss
deleted file mode 100644
index 2a375da..0000000
--- a/src/lib/converge-ui/stylesheets/fonts.scss
+++ /dev/null
@@ -1,65 +0,0 @@
-@font-face {
-    font-family: 'Liberation Sans';
-    src: local('Liberation Sans'), local('LiberationSans'), local('Liberation-Sans'),
-         url('../../../fonts/LiberationSans-Regular-webfont.eot?#iefix') format('eot'),
-         url('../../../fonts/LiberationSans-Regular-webfont.woff') format('woff'),
-         url('../../../fonts/LiberationSans-Regular-webfont.ttf') format('truetype'),
-         url('../../../fonts/LiberationSans-Regular-webfont.svg#webfontLfr8h6FA') format('svg');
-    font-weight: normal;
-    font-style: normal;
-
-}
-
-@font-face {
-    font-family: 'Liberation Sans';
-    src: local('Liberation Sans Italic'), local('LiberationSansItalic'), local('Liberation-Sans-Italic'),
-         url('../../../fonts/LiberationSans-Italic-webfont.woff') format('woff'),
-         url('../../../fonts/LiberationSans-Italic-webfont.ttf') format('truetype'),
-         url('../../../fonts/LiberationSans-Italic-webfont.svg#webfont8TmwkzPJ') format('svg');
-    font-weight: normal;
-    font-style: italic;
-}
-
-@font-face {
-    font-family: 'Liberation Sans';
-    src: local('Liberation Sans Bold'), local('LiberationSansBold'), local('Liberation-Sans-Bold'),
-         url('../../../fonts/LiberationSans-Bold-webfont.woff') format('woff'),
-         url('../../../fonts/LiberationSans-Bold-webfont.ttf') format('truetype'),
-         url('../../../fonts/LiberationSans-Bold-webfont.svg#webfontHyWb8e07') format('svg');
-    font-weight: bold;
-    font-style: normal;
-}
-
-@font-face {
-    font-family: 'Liberation Sans';
-    src: local('Liberation Sans Bold Italic'), local('LiberationSansBoldItalic'), local('Liberation-Sans-Bold-Italic'),
-         url('../../../fonts/LiberationSans-BoldItalic-webfont.woff') format('woff'),
-         url('../../../fonts/LiberationSans-BoldItalic-webfont.ttf') format('truetype'),
-         url('../../../fonts/LiberationSans-BoldItalic-webfont.svg#webfont8uGO27Bu') format('svg');
-    font-weight: bold;
-    font-style: italic;
-}
-
-@font-face {
-  font-family: 'Overpass';
-  src: url('overpass_regular-web.eot');
-  src: local('Overpass'),
-  url('overpass_regular-web.eot?#iefix') format('eot'),
-         url('overpass_regular-web.woff') format('woff'),
-         url('overpass_regular-web.ttf') format('truetype'),
-         url('overpass_regular-web.svg#webfontLTZe4IYH') format('svg');
-  font-weight: normal;
-  font-style: normal;
-}
-
-@font-face {
-  font-family: 'Overpass';
-  src: url('overpass_bold-web.eot');
-  src: local('Overpass Bold'), local('Overpass-Bold'),
-  url('overpass_bold-web.eot?#iefix') format('eot'),
-         url('overpass_bold-web.woff') format('woff'),
-         url('overpass_bold-web.ttf') format('truetype'),
-         url('overpass_bold-web.svg#webfontzAU82Ltw') format('svg');
-  font-weight: bold;
-  font-style: normal;
-}
diff --git a/src/lib/converge-ui/stylesheets/footer.scss b/src/lib/converge-ui/stylesheets/footer.scss
deleted file mode 100644
index 61f9d39..0000000
--- a/src/lib/converge-ui/stylesheets/footer.scss
+++ /dev/null
@@ -1,39 +0,0 @@
-footer {
-  min-height: 45px;
-  background: #EBEBEB;
-  position: relative;
- 
-  span {
-    width: 74px;
-    position: absolute;
-    left: 30px;
-    bottom: 16px;
-  }
- 
-  p.copyright {
-    position: relative;
-    bottom: -16px;
-    text-align: center;
-  }
-
-  ul {
-    display: inline-block;
-    position: absolute;
-    right: 0;
-    bottom: 16px;
-
-    li {
-      margin-right: 20px;
-      float: left;
-
-      a {
-        font-size: 11px;
-        color: #50505a;
-      }
-    }
-    
-    &:last-child {
-      margin-right: 30px;
-    }
-  }
-}
diff --git a/src/lib/converge-ui/stylesheets/forms.scss b/src/lib/converge-ui/stylesheets/forms.scss
deleted file mode 100644
index 0b04c32..0000000
--- a/src/lib/converge-ui/stylesheets/forms.scss
+++ /dev/null
@@ -1,112 +0,0 @@
-input, textarea {
-  margin:0 0 1em 0;
-  padding:.75em 1em;
-  width:100%;
-  /*box-shadow*/
-  -webkit-box-shadow:inset 0px .15em .5em #dadada;
-  -moz-box-shadow:inset 0px .15em .5em #dadada;
-  box-shadow:inset 0px .15em .5em #dadada;
-  border:.09em solid #ddd;
-  background-color:#fff;
-  background-color:rgba(255,255,255,0.75);
-}
-input:focus, textarea:focus {
-  border-color:#fa0;
-  outline:none;
-  /*box-shadow*/
-  -webkit-box-shadow:0px 0em  .25em .2em #fa0;
-  -moz-box-shadow:0px 0em  .25em .2em #fa0;
-  box-shadow:0px 0em  .25em .2em #fa0;
-  background-color:#fff;
-}
-/*radio and checkboxes are special*/
-input[type="checkbox"],  input[type="radio"]{
-  display:inline;
-  display:inline-block;
-  width:1em;
-  height:1em;
-}
-/*input types with icons*/     /*we don't use our icon font because :before and :after selectors are not allowed on form elements, this means background-image is the only way*/
-input {
-  background-repeat:no-repeat;
-  background-position:.5em 50%;
-  /*background-size*/
-  -webkit-background-size:1em;
-  -moz-background-size:1em;
-  -o-background-size:1em;
-  background-size:1em;
-}
-/*making room for the icons*/
-input[type="username"],input[type="password"], input[type="search"] {
-  padding-left:2em;
-}
-/*setting the icons*/
-input[type="username"] {
-  background-image:url(../img/user.png);
-  /*fallback png then inline svg*/
-}
-input[type="password"] {
-  background-image:url(../img/lock.png);
-}
-input[required="required"]{
-/*consider adding an svg asterisk * */
-}
-input[type="search"]{}
-/*buttons are special*//*Buttons*/
-
-input[type="button"], input[type="submit"]{
-  -webkit-box-shadow:none;
-  -moz-box-shadow:none;
-  box-shadow:none;
-  padding:0em;
-  text-indent:0;
-  background-color:#dfdfdf;
-  background-color:rgba(0,0,0,0.1);
-  color:#222;
-  text-align:center;
-  text-decoration:none;
-  outline:none;
-  display:block;
-  width:100%;
-  cursor:pointer;
-  font-weight:normal;
-  text-transform:capitalize;
-}
-
-/*remove the border if we cansafely do box-shadow */
-.boxshadow input, .boxshadow textarea{
-  border-style:none;
-}
-/*only apply the tiny border if we can support boxshadow */
-.boxshadow.borderradius input, .boxshadow.borderradius textarea{
-  -webkit-border-radius:.35em;
-  -moz-border-radius:.35em;
-  border-radius:.35em;
-}
-.boxshadow.borderradius input[type="submit"], .boxshadow.borderradius input[type="button"] {}
-.boxshadow.borderradius input[type="button"]:hover,
-.boxshadow.borderradius input[type="submit"]:hover,
-.boxshadow.borderradius input[type="button"]:focus,
-.boxshadow.borderradius input[type="submit"]:focus {
-  background-color:#222;
-  color:#fff;
-  border-color:#222;
-}
-.boxshadow.borderradius input[type="button"]:hover,
-.boxshadow.borderradius input[type="submit"]:hover,
-.boxshadow.borderradius input[type="button"]:focus,
-.boxshadow.borderradius input[type="submit"]:focus {
-/*box-shadow*/
-  -webkit-box-shadow:0px 0em  .25em .2em #fa0, 0 1.5px 2px rgba(0, 0, 0, 0.1), 0 4px 5px rgba(0, 0, 0, 0.2), 0 0 4px rgba(255,255,255,0.7) inset,  0 -5px 10px rgba(0, 0, 0, 0.2) inset;
-   -moz-box-shadow:0px 0em  .25em .2em #fa0, 0 1.5px 2px rgba(0, 0, 0, 0.1), 0 4px 5px rgba(0, 0, 0, 0.2), 0 0 4px rgba(255,255,255,0.7) inset,  0 -5px 10px rgba(0, 0, 0, 0.2) inset;
-  box-shadow:0px 0em  .25em .2em #fa0, 0 1.5px 2px rgba(0, 0, 0, 0.1), 0 4px 5px rgba(0, 0, 0, 0.2), 0 0 4px rgba(255,255,255,0.7) inset,  0 -5px 10px rgba(0, 0, 0, 0.2) inset;
-  text-shadow:0px -1px rgba(0,0,0,0.4);
-}
-input[type="submit"]:hover, input[type="submit"]:focus {
-  background-color:#222;
-  color:#fff !important;
-  border-color:#000;
-}
-input[type="submit"].active{
-  outline:none;
-}
diff --git a/src/lib/converge-ui/stylesheets/header.scss b/src/lib/converge-ui/stylesheets/header.scss
deleted file mode 100644
index b65d7d0..0000000
--- a/src/lib/converge-ui/stylesheets/header.scss
+++ /dev/null
@@ -1,218 +0,0 @@
-$header-height: 85px !default;
-$header_border_top-color: #01536d !default;
-$header_border_bottom-color: #D9D9D9 !default;
-$tab_background-color: rgba(25, 25, 30, .40);
-
-header#header {
-  background: #009dcc; /* Old browsers */
-  background: -moz-linear-gradient(top,  #009dcc 0%, #009dcc 50%, #006f8f 100%); /* FF3.6+ */
-  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#009dcc), color-stop(50%,#009dcc), color-stop(100%,#006f8f)); /* Chrome,Safari4+ */
-  background: -webkit-linear-gradient(top,  #009dcc 0%,#009dcc 50%,#006f8f 100%); /* Chrome10+,Safari5.1+ */
-  background: -o-linear-gradient(top,  #009dcc 0%,#009dcc 50%,#006f8f 100%); /* Opera 11.10+ */
-  background: -ms-linear-gradient(top,  #009dcc 0%,#009dcc 50%,#006f8f 100%); /* IE10+ */
-  background: linear-gradient(top,  #009dcc 0%,#009dcc 50%,#006f8f 100%); /* W3C */
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#009dcc', endColorstr='#006f8f',GradientType=0 ); /* IE6-9 */
-  height: $header_height - 8px;
-  border-top: 4px solid $header_border_top-color;
-  border-bottom: 4px solid $header_border_bottom-color;
-  position: relative;
- 
-  h1 {
-    a {
-      position: absolute;
-      bottom: 25px;
-      left: 15px;
-      display: inline-block;    
-    }
-  }
-
-  #appnav {
-    border: 1px solid rgba(11, 15, 16, .55);
-    border-bottom: none;
-    border-radius: 3px 3px 0 0; 
-    white-space: nowrap;
-    position: absolute;
-    bottom: 0px;
-    left: 218px;
-    margin-right: 138px;
-    z-index: 2;
-
-    &:before {
-      content: "";
-      position: absolute;
-      bottom: 0;
-      left: -219px;
-      border-radius: 0 0 3px 0;
-      width: 218px;
-      height: 1px;
-      z-index: 4;
-      border-bottom: 1px solid rgba(205, 206, 208, .40);
-      border-right: 1px solid rgba(11, 15, 16, .55);
-      background: rgba(11, 15, 16, .55);
-    }
-    
-    ul {
-      position: relative;
-      overflow: auto;
-      border-radius: 3px 3px 0 0;
-      border: 1px solid rgba(205, 206, 208, .40);
-      border-bottom: none;
-
-      li {
-        display: block;
-        float: left;
-        position: relative;
-
-        a {
-          display: block;
-          text-decoration: none;
-          position: relative;
-          white-space: nowrap;
-          overflow: hidden;
-          text-overflow: ellipsis;
-          vertical-align: middle;
-          font-weight: bold;
-          color: #f1f1f1;
-          padding: 0 13px;
-          font-size: 13px;
-          background-color: $tab_background-color;
-          height: 28px;
-          line-height: 28px;
-          border-right: 3px solid rgba(205, 206, 208, .40);
-          -moz-background-clip: padding;   
-          -webkit-background-clip: padding;
-          background-clip: padding-box;           
-
-          &.selected {
-            color: #50505a;
-            position: relative;
-            background: #ffffff; /* Old browsers */
-            background: -moz-linear-gradient(top,  #ffffff 0%, #ebebeb 50%, #d9d9d9 100%); /* FF3.6+ */
-            background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(50%,#ebebeb), color-stop(100%,#d9d9d9)); /* Chrome,Safari4+ */
-            background: -webkit-linear-gradient(top,  #ffffff 0%,#ebebeb 50%,#d9d9d9 100%); /* Chrome10+,Safari5.1+ */
-            background: -o-linear-gradient(top,  #ffffff 0%,#ebebeb 50%,#d9d9d9 100%); /* Opera 11.10+ */
-            background: -ms-linear-gradient(top,  #ffffff 0%,#ebebeb 50%,#d9d9d9 100%); /* IE10+ */
-            background: linear-gradient(top,  #ffffff 0%,#ebebeb 50%,#d9d9d9 100%); /* W3C */
-            filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#d9d9d9',GradientType=0 ); /* IE6-9 */
-            -moz-background-clip: padding;   
-            -webkit-background-clip: padding;
-            background-clip: padding-box;           
-          }
-
-          &:hover {
-            background: rgba(25, 25, 30, .15);
-            color: #f1f1f1;
-          }
-        }
-
-        &:first-child > a {
-          -webkit-border-radius: 3px 0 0 0;
-          -moz-border-radius: 3px 0 0 0;
-          border-radius: 3px 0 0 0;
-        }
-
-        &:last-child > a {
-          -webkit-border-radius: 0 3px 0 0;
-          -moz-border-radius: 0 3px 0 0;
-          border-radius: 0 3px 0 0;
-          border-right: none;
-        }
-      }
-    }
-  }
-
-  #widget-container {
-    position: absolute;
-    top: 22px;
-    right: 30px;
-  }
-
-  .header-widget {
-    background-color: $tab_background-color;
-    -webkit-border-radius: 5px;
-    -moz-border-radius: 5px;
-    border-radius: 5px;
-    border: 2px solid rgba(0, 0, 0, .50);
-    font-size: 11px;
-    color: #FFF;
-    text-align: center;
-    margin-right: 8px;
-    padding: 1px 6px;
-    text-decoration: none;
-  }
-}
-
-
-#notifications {
-  position:absolute;
-  right:0em;
-  min-width:20em;
-  max-width:30em;
-  line-height:1.5em;
-
-  section {
-    /*border-radius*/
-    -webkit-border-radius:.5em;
-    -moz-border-radius:.5em;
-    border-radius:.5em;
-    position:relative;
-    overflow:visible;
-    width:100%;
-    margin:0em;
-    right:0;
-    display:block !important;
-    margin-top:1em;
-    padding:1em;
-    top:0em;
-    background-color:#555;
-    color:#ddd;
-    text-shadow:none;
-    text-indent:0em;
-    /*box-shadow*/
-    -webkit-box-shadow:0px 0em 0em .1em #fff, 0px .2em .5em rgba(0,0,0,0.1);
-    -moz-box-shadow:0px 0em 0em .1em #fff, 0px .2em .5em rgba(0,0,0,0.1);
-    box-shadow:0px 0em 0em .1em #fff, 0px .2em .5em rgba(0,0,0,0.1);
-  
-    &:before {
-      position:absolute;
-      display:block;
-      content:"";
-      height:0;
-      width:0;
-      border-width:0em .75em .75em .75em;
-      border-style:none solid solid solid;
-      top:-.79em;
-      right:6.75em;
-      border-color:transparent transparent #fff transparent;
-    }
-
-    &:after {
-      position:absolute;
-      display:block;
-      content:"";
-      height:0;
-      width:0;
-      border-width:0em .75em .75em .75em;
-      border-style:none solid solid solid;
-      top:-.70em;
-      right:6.75em;
-      border-color:transparent transparent #555 transparent;
-    }
-
-    a { color:#fff; }
-
-    .alert {
-      background-color:#a00;
-      color:#fff;
-      text-shadow:0 -1px #900;
-      /*box-shadow*/
-      -webkit-box-shadow:0px 0em 0em .1em #fff, 0px .2em .5em .2em rgba(255,0,0,0.21);
-      -moz-box-shadow:0px 0em 0em .1em #fff, 0px .2em .5em .2em rgba(255,0,0,0.21);
-      box-shadow:0px 0em 0em .1em #fff, 0px .2em .5em .2em rgba(255,0,0,0.21);
-
-      &:after {
-        border-color:transparent transparent #a00 transparent;
-      }
-    }
-  }
-}
diff --git a/src/lib/converge-ui/stylesheets/helpers.scss b/src/lib/converge-ui/stylesheets/helpers.scss
deleted file mode 100644
index 25215ed..0000000
--- a/src/lib/converge-ui/stylesheets/helpers.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-/* ==|== non-semantic helper classes ========================================
-   ,          _                     ___  _                        
- /|   |     | |                   / (_)| |                       
-  |___|  _  | |   _   _   ,_     |     | |  __,   ,   ,   _   ,  
-  |   |\|/  |/  |/ \_|/  /  |    |     |/  /  |  / \_/ \_|/  / \_
-  |   |/|__/|__/|__/ |__/   |_/   \___/|__/\_/|_/ \/  \/ |__/ \/ 
-               /|                                                
-               \|                                                
-
-we should never use these, but we probably will someday 
-   ========================================================================== */
-
-.visuallyhidden { 
-  border: 0; 
-  clip: rect(0 0 0 0); 
-  height: 1px; 
-  margin: -1px; 
-  overflow: hidden; 
-  padding: 0; 
-  position: absolute; 
-  width: 1px; 
-} 
-.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { 
-  clip: auto; 
-  height: auto; 
-  margin: 0; 
-  overflow: visible; 
-  position: static; 
-  width: auto; 
-}
-.invisible { visibility: hidden; } 
-.clearfix:before, .clearfix:after { content: ""; display: table; } 
-.clearfix:after { clear: both; } 
-.clearfix { *zoom: 1; }
diff --git a/src/lib/converge-ui/stylesheets/media.scss b/src/lib/converge-ui/stylesheets/media.scss
deleted file mode 100644
index 9c71d2a..0000000
--- a/src/lib/converge-ui/stylesheets/media.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-@media only screen and (max-width: 30em) {}
-
-@media only screen and (max-width: 52em) {
-  header { 
-    height:8em; 
-  
-    h1 { text-indent:1em; }
-    article { 
-      padding-left:0em; 
-      
-      section:last-child {
-        padding-right:0.25em;
-        
-        a { margin-right:0em; }
-      }
-    }
-    #appnav { 
-      margin-top:4em ; 
-      width: 100%; 
-      
-      ul{
-        li { 
-          width: 20%; 
-          padding:0em;
-          
-          &:nth-child(1) { width: 16%; }
-          &:nth-child(2) { width: 29%; }
-          &:nth-child(3) { width: 15%; }
-          &:nth-child(4) { width: 20%; }
-          &:nth-child(5) { width: 20%; }
-          &:last-child ul { margin-left: -6.5em !important; }
-          a { padding-left:.5em; padding-right:.5em; }
-        }
-      }
-    }
-  }
-}
-
-@media only screen and (max-width: 49em) { 
-  header  nav#appnav > ul > li > a{  }
-  body > header h1{ text-indent:0em; }
-}
-@media only screen and (max-width: 44em) { 
-  header  nav#appnav { min-width:38em !important; white-space:nowrap; }
-  header  nav#appnav > ul > li > a{  }
-}
diff --git a/src/lib/converge-ui/stylesheets/mixins.scss b/src/lib/converge-ui/stylesheets/mixins.scss
deleted file mode 100644
index e69de29..0000000
diff --git a/src/lib/converge-ui/stylesheets/shell.scss b/src/lib/converge-ui/stylesheets/shell.scss
deleted file mode 100644
index cd7ff4c..0000000
--- a/src/lib/converge-ui/stylesheets/shell.scss
+++ /dev/null
@@ -1,70 +0,0 @@
-body { 
-  background-color: #FFF; 
-}
-body, html {
-  height:100%;
-  font-family: sans-serif;
-  margin: 0; padding: 0; 
-  font-size: 12px;
-  font-family:"overpass";
-}
-  
-html { 
-  /*forcing scrl*/
-  height:100%;  
-  margin-bottom: 1px !important;   
-  overflow-y: scroll;
-}
-
-a:hover, a:focus, a:active { color:#fa0; }
-a:focus{outline:none!important;}
-/* some browsers don't respect outline none without important*/
-a{}
-a:link,body a:visited{color:#36c;}
-body a:hover,body a:focus,body a:active{color:#000;}
-
-
-#maincontent > section, header > article {max-width:85em;margin:0 auto;}
-
-
-section{color:#777;}
-table{overflow:hidden;}
-table{width:100%;line-height:2em;}
-table th{text-align:left;font-weight:700;border-bottom:.1em solid #ccc;}
-/*dont worry i'll replace this stuff with something generic*/blockquote.important{color:#fff!important;background-color:#900!important;border-color:#900!important;}
-
-.boxshadow {padding:1em 2em;box-shadow:0px 0px 1em rgba(0,0,0,0.20);border-style:none; border-radius: 0em 0em .5em .5em;}
-
-#maincontent {
-  background-color: #fff;
-  border-top: 1px solid #f2f2f2;
-  border-bottom: 1px solid #f2f2f2;
-
-  blockquote.important a{color:#fff;}
-  h1, h2, h3 { font-size: 1em; font-weight: normal; color:#333;}
-  h1{font-size:2em;}
-
-  section {
-    min-height:20em;
-    margin: 0 auto;
-  
-    h1 { 
-      color:transparent;
-      padding-top: 3em;
-      color: #ddd; 
-      text-align: center; 
-      font-weight: normal; 
-      text-transform:capitalize;
-    }
-  }
-}
-
-/* microclearfix on all areas */
-section:before, section:after, article:before, article:after {
-  content:"";
-  display:table;
-}
-
-article:after, section:after {
-  clear:both;
-}
-- 
1.7.7.6

